mirror of https://git.ffmpeg.org/ffmpeg.git
asfdec: interpret the first flag in an asf packet as length flag
if the error correction flag is not set, a packet starts with payload Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
parent
65c1480152
commit
9e8627a1ff
|
@ -1308,12 +1308,14 @@ static int asf_read_packet_header(AVFormatContext *s)
|
||||||
|
|
||||||
asf->packet_offset = avio_tell(pb);
|
asf->packet_offset = avio_tell(pb);
|
||||||
error_flags = avio_r8(pb); // read Error Correction Flags
|
error_flags = avio_r8(pb); // read Error Correction Flags
|
||||||
if (error_flags & ASF_PACKET_FLAG_ERROR_CORRECTION_PRESENT)
|
if (error_flags & ASF_PACKET_FLAG_ERROR_CORRECTION_PRESENT) {
|
||||||
if (!(error_flags & ASF_ERROR_CORRECTION_LENGTH_TYPE)) {
|
if (!(error_flags & ASF_ERROR_CORRECTION_LENGTH_TYPE)) {
|
||||||
size = error_flags & ASF_PACKET_ERROR_CORRECTION_DATA_SIZE;
|
size = error_flags & ASF_PACKET_ERROR_CORRECTION_DATA_SIZE;
|
||||||
avio_skip(pb, size);
|
avio_skip(pb, size);
|
||||||
}
|
}
|
||||||
len_flags = avio_r8(pb);
|
len_flags = avio_r8(pb);
|
||||||
|
} else
|
||||||
|
len_flags = error_flags;
|
||||||
asf->prop_flags = avio_r8(pb);
|
asf->prop_flags = avio_r8(pb);
|
||||||
READ_LEN(len_flags & ASF_PPI_MASK_PACKET_LENGTH_FIELD_SIZE,
|
READ_LEN(len_flags & ASF_PPI_MASK_PACKET_LENGTH_FIELD_SIZE,
|
||||||
ASF_PPI_FLAG_PACKET_LENGTH_FIELD_, asf->packet_size_internal);
|
ASF_PPI_FLAG_PACKET_LENGTH_FIELD_, asf->packet_size_internal);
|
||||||
|
|
Loading…
Reference in New Issue