diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2011-10-01 02:54:46 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-10-01 02:54:46 +0200 |
commit | ef74ab20c255abf49b856c15f812cc9ea3fec061 (patch) | |
tree | 8d80c8ff7272908dede2ef2d90b4bac460f3748d /libavformat/mpeg.c | |
parent | 5ca5d432e028ffdd4067b87aed6702168c3207b6 (diff) | |
parent | 08bd22a61b820160bff5f98cd51d2e0135d02e00 (diff) | |
download | ffmpeg-ef74ab20c255abf49b856c15f812cc9ea3fec061.tar.gz |
Merge remote-tracking branch 'qatar/master'
* qatar/master: (34 commits)
dpcm: return error if packet is too small
dpcm: use smaller data types for static tables
dpcm: use sol_table_16 directly instead of through the DPCMContext.
dpcm: replace short with int16_t
dpcm: check to make sure channels is 1 or 2.
dpcm: misc pretty-printing
dpcm: remove unnecessary variable by using bytestream functions.
dpcm: move codec-specific variable declarations to their corresponding decoding blocks.
dpcm: consistently use the variable name 'n' for the next input byte.
dpcm: output AV_SAMPLE_FMT_U8 for Sol DPCM subcodecs 1 and 2.
dpcm: calculate and check actual output data size prior to decoding.
dpcm: factor out the stereo flag calculation
dpcm: cosmetics: rename channel_number to ch
avserver: Fix a bug where the socket is IPv4, but IPv6 is autoselected for the loopback address.
lavf: Avoid using av_malloc(0) in av_dump_format
dxva2_h264: pass the correct 8x8 scaling lists
dca: NEON optimised high freq VQ decoding
avcodec: reject audio packets with NULL data and non-zero size
dxva: Add ability to enable workaround for older ATI cards
latmenc: Set latmBufferFullness to largest value to indicate it is not used
...
Conflicts:
libavcodec/dxva2_h264.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/mpeg.c')
-rw-r--r-- | libavformat/mpeg.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c index ad2358124e..6fb1c5c31b 100644 --- a/libavformat/mpeg.c +++ b/libavformat/mpeg.c @@ -49,6 +49,10 @@ static int check_pes(uint8_t *p, uint8_t *end){ return pes1||pes2; } +static int check_pack_header(const uint8_t *buf) { + return (buf[1] & 0xC0) == 0x40 || (buf[1] & 0xF0) == 0x20; +} + static int mpegps_probe(AVProbeData *p) { uint32_t code= -1; @@ -61,9 +65,10 @@ static int mpegps_probe(AVProbeData *p) if ((code & 0xffffff00) == 0x100) { int len= p->buf[i+1] << 8 | p->buf[i+2]; int pes= check_pes(p->buf+i, p->buf+p->buf_size); + int pack = check_pack_header(p->buf+i); if(code == SYSTEM_HEADER_START_CODE) sys++; - else if(code == PACK_START_CODE) pspack++; + else if(code == PACK_START_CODE && pack) pspack++; else if((code & 0xf0) == VIDEO_ID && pes) vid++; // skip pes payload to avoid start code emulation for private // and audio streams |