|
|
|
@ -512,8 +512,10 @@ static int asf_read_ext_stream_properties(AVFormatContext *s, int64_t size) |
|
|
|
|
stream_ct = avio_rl16(pb); //stream-name-count
|
|
|
|
|
payload_ext_ct = avio_rl16(pb); //payload-extension-system-count
|
|
|
|
|
|
|
|
|
|
if (stream_num < 128) |
|
|
|
|
if (stream_num < 128) { |
|
|
|
|
asf->stream_bitrates[stream_num] = leak_rate; |
|
|
|
|
asf->streams[stream_num].payload_ext_ct = 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for (i=0; i<stream_ct; i++){ |
|
|
|
|
avio_rl16(pb); |
|
|
|
@ -522,10 +524,18 @@ static int asf_read_ext_stream_properties(AVFormatContext *s, int64_t size) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for (i=0; i<payload_ext_ct; i++){ |
|
|
|
|
int size; |
|
|
|
|
ff_get_guid(pb, &g); |
|
|
|
|
avio_skip(pb, 2); |
|
|
|
|
size = avio_rl16(pb); |
|
|
|
|
ext_len=avio_rl32(pb); |
|
|
|
|
avio_skip(pb, ext_len); |
|
|
|
|
if (stream_num < 128 && i < FF_ARRAY_ELEMS(asf->streams[stream_num].payload)) { |
|
|
|
|
ASFPayload *p = &asf->streams[stream_num].payload[i]; |
|
|
|
|
p->type = g[0]; |
|
|
|
|
p->size = size; |
|
|
|
|
av_log(s, AV_LOG_DEBUG, "Payload extension %x %d\n", g[0], p->size ); |
|
|
|
|
asf->streams[stream_num].payload_ext_ct ++; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|