asfdec: do not align Data Object when Broadcast Flag is set

its size is invalid in this case

Signed-off-by: Anton Khirnov <anton@khirnov.net>
pull/161/head
Alexandra Hájková 9 years ago committed by Anton Khirnov
parent db21dde3f7
commit b5c1c16247
  1. 4
      libavformat/asfdec.c

@ -928,7 +928,7 @@ static int asf_read_data(AVFormatContext *s, const GUIDParseTable *g)
size, asf->nb_packets);
avio_skip(pb, 2); // skip reserved field
asf->first_packet_offset = avio_tell(pb);
if (pb->seekable)
if (pb->seekable && !(asf->b_flags & ASF_FLAG_BROADCAST))
align_position(pb, asf->offset, asf->data_size);
return 0;
@ -1676,7 +1676,7 @@ static int asf_read_header(AVFormatContext *s)
size = avio_rl64(pb);
align_position(pb, asf->offset, size);
}
if (asf->data_reached && !pb->seekable)
if (asf->data_reached && (!pb->seekable || (asf->b_flags & ASF_FLAG_BROADCAST)))
break;
}

Loading…
Cancel
Save