Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 29 Dec 2011 00:40:34 +0000 (01:40 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 29 Dec 2011 00:40:34 +0000 (01:40 +0100)
* qatar/master:
  v410dec: Check for sufficient input data. Fixes crash
  fate: Add v210 codec regression tests
  mpegts: adjustable minimum PES payload
  mpegts: properly output large audio packets
  avformat: Add SMJPEG demuxer.
  Indeo 4 decoder

Conflicts:
doc/general.texi
libavcodec/v410dec.c
libavcodec/version.h
libavformat/mpegtsenc.c
libavformat/smjpeg.c
libavformat/version.h
tests/codec-regression.sh

Merged-by: Michael Niedermayer <michaelni@gmx.at>
12 files changed:
1  2 
Changelog
doc/general.texi
libavcodec/Makefile
libavcodec/allcodecs.c
libavcodec/ivi_dsp.c
libavcodec/ivi_dsp.h
libavcodec/v410dec.c
libavcodec/version.h
libavformat/mpegtsenc.c
libavformat/smjpeg.c
libavformat/version.h
tests/codec-regression.sh

diff --cc Changelog
+++ b/Changelog
@@@ -133,25 -103,44 +133,27 @@@ easier to use. The changes are
  - Discworld II BMV decoding support
  - VBLE Decoder
  - OS X Video Decoder Acceleration (VDA) support
 +- compact and csv output in ffprobe
 +- pan audio filter
 +- IFF Amiga Continuous Bitmap (ACBM) decoder
 +- ass filter
  - CRI ADX audio format demuxer
  - Playstation Portable PMP format demuxer
 +- Microsoft Windows ICO demuxer
 +- life source
  - PCM format support in OMA demuxer
  - CLJR encoder
 +- new option: -report
  - Dxtory capture format decoder
 -- v410 QuickTime uncompressed 4:4:4 10-bit encoder and decoder
 -- OpenMG Audio muxer
 +- cellauto source
  - Simple segmenting muxer
+ - Indeo 4 decoder
+ - SMJPEG demuxer
  
  
 -version 0.7:
 -
 -- E-AC-3 audio encoder
 -- ac3enc: add channel coupling support
 -- floating-point sample format support for (E-)AC-3, DCA, AAC, Vorbis decoders
 -- H.264/MPEG frame-level multithreading
 -- av_metadata_* functions renamed to av_dict_* and moved to libavutil
 -- 4:4:4 H.264 decoding support
 -- 10-bit H.264 optimizations for x86
 -- bump libswscale for recently reported ABI break
 -
 -
 -version 0.7_beta2:
 -
 -- VP8 frame-level multithreading
 -- NEON optimizations for VP8
 -- removed a lot of deprecated API cruft
 -- FFT and IMDCT optimizations for AVX (Sandy Bridge) processors
 -- DPX image encoder
 -- SMPTE 302M AES3 audio decoder
 -- ffmpeg no longer quits after the 'q' key is pressed; use 'ctrl+c' instead
 -- 9bit and 10bit per sample support in the H.264 decoder
 -
 -
 -version 0.7_beta1:
 +version 0.8:
  
 +- many many things we forgot because we rather write code than changelogs
  - WebM support in Matroska de/muxer
  - low overhead Ogg muxing
  - MMS-TCP support
Simple merge
Simple merge
@@@ -133,9 -128,9 +133,10 @@@ void avcodec_register_all(void
      REGISTER_DECODER (IFF_ILBM, iff_ilbm);
      REGISTER_DECODER (INDEO2, indeo2);
      REGISTER_DECODER (INDEO3, indeo3);
+     REGISTER_DECODER (INDEO4, indeo4);
      REGISTER_DECODER (INDEO5, indeo5);
      REGISTER_DECODER (INTERPLAY_VIDEO, interplay_video);
 +    REGISTER_ENCDEC  (JPEG2000, jpeg2000);
      REGISTER_ENCDEC  (JPEGLS, jpegls);
      REGISTER_DECODER (JV, jv);
      REGISTER_DECODER (KGV1, kgv1);
@@@ -1,11 -1,11 +1,11 @@@
  /*
   * DSP functions for Indeo Video Interactive codecs (Indeo4 and Indeo5)
   *
-  * Copyright (c) 2009 Maxim Poliakovski
+  * Copyright (c) 2009-2011 Maxim Poliakovski
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
@@@ -1,11 -1,11 +1,11 @@@
  /*
   * DSP functions for Indeo Video Interactive codecs (Indeo4 and Indeo5)
   *
-  * Copyright (c) 2009 Maxim Poliakovski
+  * Copyright (c) 2009-2011 Maxim Poliakovski
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
Simple merge
@@@ -21,8 -21,8 +21,8 @@@
  #define AVCODEC_VERSION_H
  
  #define LIBAVCODEC_VERSION_MAJOR 53
- #define LIBAVCODEC_VERSION_MINOR 48
 -#define LIBAVCODEC_VERSION_MINOR 32
 -#define LIBAVCODEC_VERSION_MICRO  0
++#define LIBAVCODEC_VERSION_MINOR 49
 +#define LIBAVCODEC_VERSION_MICRO 100
  
  #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
                                                 LIBAVCODEC_VERSION_MINOR, \
@@@ -76,9 -76,12 +77,13 @@@ typedef struct MpegTSWrite 
  
      int pmt_start_pid;
      int start_pid;
 +    int m2ts_mode;
  } MpegTSWrite;
  
+ /* a PES packet header is generated every DEFAULT_PES_HEADER_FREQ packets */
+ #define DEFAULT_PES_HEADER_FREQ 16
+ #define DEFAULT_PES_PAYLOAD_SIZE ((DEFAULT_PES_HEADER_FREQ - 1) * 184 + 170)
  static const AVOption options[] = {
      { "mpegts_transport_stream_id", "Set transport_stream_id field.",
        offsetof(MpegTSWrite, transport_stream_id), AV_OPT_TYPE_INT, {.dbl = 0x0001 }, 0x0001, 0xffff, AV_OPT_FLAG_ENCODING_PARAM},
      { "mpegts_service_id", "Set service_id field.",
        offsetof(MpegTSWrite, service_id), AV_OPT_TYPE_INT, {.dbl = 0x0001 }, 0x0001, 0xffff, AV_OPT_FLAG_ENCODING_PARAM},
      { "mpegts_pmt_start_pid", "Set the first pid of the PMT.",
 -      offsetof(MpegTSWrite, pmt_start_pid), AV_OPT_TYPE_INT, {.dbl = 0x1000 }, 0x1000, 0x1f00, AV_OPT_FLAG_ENCODING_PARAM},
 +      offsetof(MpegTSWrite, pmt_start_pid), AV_OPT_TYPE_INT, {.dbl = 0x1000 }, 0x0010, 0x1f00, AV_OPT_FLAG_ENCODING_PARAM},
      { "mpegts_start_pid", "Set the first pid.",
        offsetof(MpegTSWrite, start_pid), AV_OPT_TYPE_INT, {.dbl = 0x0100 }, 0x0100, 0x0f00, AV_OPT_FLAG_ENCODING_PARAM},
 +    {"mpegts_m2ts_mode", "Enable m2ts mode.",
 +        offsetof(MpegTSWrite, m2ts_mode), AV_OPT_TYPE_INT, {.dbl = -1 },
 +        -1,1, AV_OPT_FLAG_ENCODING_PARAM},
      { "muxrate", NULL, offsetof(MpegTSWrite, mux_rate), AV_OPT_TYPE_INT, {1}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM},
+     { "pes_payload_size", "Minimum PES packet payload in bytes",
+       offsetof(MpegTSWrite, pes_payload_size), AV_OPT_TYPE_INT, {DEFAULT_PES_PAYLOAD_SIZE}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM},
      { NULL },
  };
  
@@@ -190,13 -192,9 +197,9 @@@ static int mpegts_write_section1(MpegTS
  /*********************************************/
  /* mpegts writer */
  
 -#define DEFAULT_PROVIDER_NAME   "Libav"
 +#define DEFAULT_PROVIDER_NAME   "FFmpeg"
  #define DEFAULT_SERVICE_NAME    "Service01"
  
- /* a PES packet header is generated every DEFAULT_PES_HEADER_FREQ packets */
- #define DEFAULT_PES_HEADER_FREQ 16
- #define DEFAULT_PES_PAYLOAD_SIZE ((DEFAULT_PES_HEADER_FREQ - 1) * 184 + 170)
  /* we retransmit the SI info at this rate */
  #define SDT_RETRANS_TIME 500
  #define PAT_RETRANS_TIME 100
@@@ -1034,15 -1015,7 +1050,15 @@@ static int mpegts_write_packet(AVFormat
          }
      }
  
-     if (ts_st->payload_size && ts_st->payload_size + size > DEFAULT_PES_PAYLOAD_SIZE) {
 -    if (st->codec->codec_type != AVMEDIA_TYPE_AUDIO) {
++    if (ts_st->payload_size && ts_st->payload_size + size > ts->pes_payload_size) {
 +        mpegts_write_pes(s, st, ts_st->payload, ts_st->payload_size,
 +                         ts_st->payload_pts, ts_st->payload_dts,
 +                         ts_st->payload_flags & AV_PKT_FLAG_KEY);
 +        ts_st->payload_size = 0;
 +    }
 +
-     if (st->codec->codec_type != AVMEDIA_TYPE_AUDIO || size > DEFAULT_PES_PAYLOAD_SIZE) {
++    if (st->codec->codec_type != AVMEDIA_TYPE_AUDIO || size > ts->pes_payload_size) {
 +        av_assert0(!ts_st->payload_size);
          // for video and subtitle, write a single pes packet
          mpegts_write_pes(s, st, buf, size, pts, dts, pkt->flags & AV_PKT_FLAG_KEY);
          av_free(data);
Simple merge
@@@ -30,8 -30,8 +30,8 @@@
  #include "libavutil/avutil.h"
  
  #define LIBAVFORMAT_VERSION_MAJOR 53
- #define LIBAVFORMAT_VERSION_MINOR 28
 -#define LIBAVFORMAT_VERSION_MINOR 19
 -#define LIBAVFORMAT_VERSION_MICRO  0
++#define LIBAVFORMAT_VERSION_MINOR 29
 +#define LIBAVFORMAT_VERSION_MICRO 100
  
  #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
                                                 LIBAVFORMAT_VERSION_MINOR, \
Simple merge