private void OnMetaData(DataMessage msg)
{
this.metadata = msg;
var info = new AtomCollection();
info.SetChanInfoType("FLV");
info.SetChanInfoStreamType("video/x-flv");
info.SetChanInfoStreamExt(".flv");
if (metadata.Arguments[0].Type==AMF.AMFValueType.ECMAArray || metadata.Arguments[0].Type==AMF.AMFValueType.Object){
var bitrate = 0.0;
var val = metadata.Arguments[0]["maxBitrate"];
if (!AMF.AMFValue.IsNull(val)) {
double maxBitrate;
string maxBitrateStr = System.Text.RegularExpressions.Regex.Replace((string)val, @"([\d]+)k", "$1");
if (double.TryParse(maxBitrateStr, out maxBitrate)) {
bitrate += maxBitrate;
}
}
else if (!AMF.AMFValue.IsNull(val = metadata.Arguments[0]["videodatarate"])) {
bitrate += (double)val;
}
if (!AMF.AMFValue.IsNull(val = metadata.Arguments[0]["audiodatarate"])) {
bitrate += (double)val;
}
info.SetChanInfoBitrate((int)bitrate);
}
OnChannelInfoChanged(info);
OnHeaderChanged(msg);
OnContentChanged(msg);
}