summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-10-01 02:54:46 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-10-01 02:54:46 +0200
commitef74ab20c255abf49b856c15f812cc9ea3fec061 (patch)
tree8d80c8ff7272908dede2ef2d90b4bac460f3748d /libavformat
parent5ca5d432e028ffdd4067b87aed6702168c3207b6 (diff)
parent08bd22a61b820160bff5f98cd51d2e0135d02e00 (diff)
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')
-rw-r--r--libavformat/latmenc.c2
-rw-r--r--libavformat/mpeg.c7
-rw-r--r--libavformat/utils.c2
3 files changed, 8 insertions, 3 deletions
diff --git a/libavformat/latmenc.c b/libavformat/latmenc.c
index 9299cc3a7b..c461ac39dc 100644
--- a/libavformat/latmenc.c
+++ b/libavformat/latmenc.c
@@ -120,7 +120,7 @@ static int latm_write_frame_header(AVFormatContext *s, PutBitContext *bs)
}
put_bits(bs, 3, 0); /* frameLengthType */
- put_bits(bs, 8, 0); /* latmBufferFullness */
+ put_bits(bs, 8, 0xff); /* latmBufferFullness */
put_bits(bs, 1, 0); /* otherDataPresent */
put_bits(bs, 1, 0); /* crcCheckPresent */
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
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 93a3f69503..65c244a48f 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -3535,7 +3535,7 @@ void av_dump_format(AVFormatContext *ic,
int is_output)
{
int i;
- uint8_t *printed = av_mallocz(ic->nb_streams);
+ uint8_t *printed = ic->nb_streams ? av_mallocz(ic->nb_streams) : NULL;
if (ic->nb_streams && !printed)
return;