Merge commit '9925f7df0a50387ade8d83cb85b40c53e41e7041' into release/0.10
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 16 Jan 2014 21:41:41 +0000 (22:41 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 16 Jan 2014 21:44:32 +0000 (22:44 +0100)
* commit '9925f7df0a50387ade8d83cb85b40c53e41e7041':
  vc1dec: Make sure last_picture is initialized in vc1_decode_skip_blocks
  r3d: Add more input value validation
  fraps: Make the input buffer size checks more strict
  svq3: Avoid a division by zero
  rmdec: Validate the fps value
  twinvqdec: Check the ibps parameter separately
  asfdec: Check the return value of asf_read_stream_properties
  mxfdec: set audio timebase to 1/samplerate
  pcx: Check the packet size before assuming it fits a palette
  rpza: Fix a buffer size check
  xxan: Disallow odd width
  xan: Only read within the data that actually was initialized

Conflicts:
libavcodec/fraps.c
libavformat/mxfdec.c
tests/ref/seek/lavf_mxf
tests/ref/seek/lavf_mxf_d10

Merged-by: Michael Niedermayer <michaelni@gmx.at>
14 files changed:
1  2 
libavcodec/fraps.c
libavcodec/pcx.c
libavcodec/rpza.c
libavcodec/svq3.c
libavcodec/twinvq.c
libavcodec/vc1dec.c
libavcodec/xan.c
libavcodec/xxan.c
libavformat/asfdec.c
libavformat/mxfdec.c
libavformat/r3d.c
libavformat/rmdec.c
tests/ref/seek/lavf_mxf
tests/ref/seek/lavf_mxf_d10

@@@ -138,10 -137,15 +138,15 @@@ static int decode_frame(AVCodecContext 
      const uint32_t *buf32;
      uint32_t *luma1,*luma2,*cb,*cr;
      uint32_t offs[4];
 -    int i, j, is_chroma, planes;
 +    int i, j, is_chroma;
 +    const int planes = 3;
      enum PixelFormat pix_fmt;
 -    int prev_pic_bit, expected_size;
  
+     if (buf_size < 4) {
+         av_log(avctx, AV_LOG_ERROR, "Packet is too short\n");
+         return AVERROR_INVALIDDATA;
+     }
      header = AV_RL32(buf);
      version = header & 0xff;
      header_size = (header & (1<<30))? 8 : 4; /* bit 30 means pad to 8 bytes */
      }
      avctx->pix_fmt = pix_fmt;
  
-     switch(version) {
 -    expected_size = header_size;
 -
+     switch (version) {
      case 0:
      default:
          /* Fraps v0 is a reordered YUV420 */
  
      case 1:
          /* Fraps v1 is an upside-down BGR24 */
 -        if (!prev_pic_bit)
 -            expected_size += avctx->width * avctx->height * 3;
 -        if (buf_size != expected_size) {
 -            av_log(avctx, AV_LOG_ERROR,
 -                   "Invalid frame length %d (should be %d)\n",
 -                   buf_size, expected_size);
 -            return AVERROR_INVALIDDATA;
 -        }
 -        f->reference = 1;
 -        f->buffer_hints = FF_BUFFER_HINTS_VALID |
 -                          FF_BUFFER_HINTS_PRESERVE |
 -                          FF_BUFFER_HINTS_REUSABLE;
          if (avctx->reget_buffer(avctx, f)) {
              av_log(avctx, AV_LOG_ERROR, "reget_buffer() failed\n");
              return -1;
Simple merge
@@@ -202,9 -202,8 +202,9 @@@ static void rpza_decode_stream(RpzaCont
  
          /* Fill block with 16 colors */
          case 0x00:
-             if (s->size - stream_ptr < 16)
+             if (s->size - stream_ptr < 30)
                  return;
 +            ADVANCE_BLOCK();
              block_ptr = row_ptr + pixel_ptr;
              for (pixel_y = 0; pixel_y < 4; pixel_y++) {
                  for (pixel_x = 0; pixel_x < 4; pixel_x++){
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -1,48 -1,53 +1,48 @@@
 -ret: 0         st: 0 flags:1 dts: 0.000000 pts: NOPTS    pos:   6144 size: 24801
 +ret: 0         st: 0 flags:1 dts:-0.040000 pts: 0.000000 pos:   6144 size: 24801
  ret: 0         st:-1 flags:0  ts:-1.000000
 -ret: 0         st: 0 flags:1 dts: 0.000000 pts: NOPTS    pos:   6144 size: 24801
 +ret: 0         st: 0 flags:1 dts:-0.040000 pts: 0.000000 pos:   6144 size: 24801
  ret: 0         st:-1 flags:1  ts: 1.894167
 -ret:-1
 +ret: 0         st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
  ret: 0         st: 0 flags:0  ts: 0.800000
 -ret:-1
 +ret: 0         st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
  ret: 0         st: 0 flags:1  ts:-0.320000
 -ret: 0         st: 0 flags:1 dts: 0.000000 pts: NOPTS    pos:   6144 size: 24801
 -ret: 0         st: 1 flags:0  ts: 2.576667
 -ret:-1
 +ret: 0         st: 0 flags:1 dts:-0.040000 pts: 0.000000 pos:   6144 size: 24801
- ret:-1         st: 1 flags:0  ts: 2.560000
- ret: 0         st: 1 flags:1  ts: 1.480000
++ret:-1         st: 1 flags:0  ts: 2.576667
+ ret: 0         st: 1 flags:1  ts: 1.470833
 -ret:-1
 +ret: 0         st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
  ret: 0         st:-1 flags:0  ts: 0.365002
 -ret: 0         st: 0 flags:1 dts: 0.360000 pts: NOPTS    pos:   6144 size: 24801
 +ret: 0         st: 0 flags:1 dts: 0.360000 pts: 0.480000 pos: 211968 size: 24787
  ret: 0         st:-1 flags:1  ts:-0.740831
 -ret: 0         st: 0 flags:1 dts: 0.000000 pts: NOPTS    pos:   6144 size: 24801
 -ret: 0         st: 0 flags:0  ts: 2.160000
 -ret:-1
 +ret: 0         st: 0 flags:1 dts:-0.040000 pts: 0.000000 pos:   6144 size: 24801
 +ret:-1         st: 0 flags:0  ts: 2.160000
  ret: 0         st: 0 flags:1  ts: 1.040000
 -ret:-1
 +ret: 0         st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
- ret: 0         st: 1 flags:0  ts:-0.040000
+ ret: 0         st: 1 flags:0  ts:-0.058333
 -ret: 0         st: 0 flags:1 dts: 0.000000 pts: NOPTS    pos:   6144 size: 24801
 +ret: 0         st: 0 flags:1 dts:-0.040000 pts: 0.000000 pos:   6144 size: 24801
- ret: 0         st: 1 flags:1  ts: 2.840000
+ ret: 0         st: 1 flags:1  ts: 2.835833
 -ret:-1
 -ret: 0         st:-1 flags:0  ts: 1.730004
 -ret:-1
 +ret: 0         st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
 +ret:-1         st:-1 flags:0  ts: 1.730004
  ret: 0         st:-1 flags:1  ts: 0.624171
 -ret:-1
 +ret: 0         st: 0 flags:1 dts: 0.360000 pts: 0.480000 pos: 211968 size: 24787
  ret: 0         st: 0 flags:0  ts:-0.480000
 -ret: 0         st: 0 flags:1 dts: 0.000000 pts: NOPTS    pos:   6144 size: 24801
 +ret: 0         st: 0 flags:1 dts:-0.040000 pts: 0.000000 pos:   6144 size: 24801
  ret: 0         st: 0 flags:1  ts: 2.400000
 -ret:-1
 -ret: 0         st: 1 flags:0  ts: 1.306667
 -ret:-1
 +ret: 0         st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
- ret:-1         st: 1 flags:0  ts: 1.320000
- ret: 0         st: 1 flags:1  ts: 0.200000
- ret: 0         st: 0 flags:1 dts:-0.040000 pts: 0.000000 pos:   6144 size: 24801
++ret:-1         st: 1 flags:0  ts: 1.306667
+ ret: 0         st: 1 flags:1  ts: 0.200833
 -ret: 0         st: 0 flags:1 dts: 0.200000 pts: NOPTS    pos:   6144 size: 24801
++ret: 0         st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
  ret: 0         st:-1 flags:0  ts:-0.904994
 -ret: 0         st: 0 flags:1 dts: 0.000000 pts: NOPTS    pos:   6144 size: 24801
 +ret: 0         st: 0 flags:1 dts:-0.040000 pts: 0.000000 pos:   6144 size: 24801
  ret: 0         st:-1 flags:1  ts: 1.989173
 -ret:-1
 +ret: 0         st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
  ret: 0         st: 0 flags:0  ts: 0.880000
 -ret:-1
 +ret: 0         st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
  ret: 0         st: 0 flags:1  ts:-0.240000
 -ret: 0         st: 0 flags:1 dts: 0.000000 pts: NOPTS    pos:   6144 size: 24801
 -ret: 0         st: 1 flags:0  ts: 2.671667
 -ret:-1
 +ret: 0         st: 0 flags:1 dts:-0.040000 pts: 0.000000 pos:   6144 size: 24801
- ret:-1         st: 1 flags:0  ts: 2.680000
- ret: 0         st: 1 flags:1  ts: 1.560000
++ret:-1         st: 1 flags:0  ts: 2.671667
+ ret: 0         st: 1 flags:1  ts: 1.565833
 -ret:-1
 +ret: 0         st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
  ret: 0         st:-1 flags:0  ts: 0.460008
 -ret: 0         st: 0 flags:1 dts: 0.480000 pts: NOPTS    pos:   6144 size: 24801
 +ret: 0         st: 0 flags:1 dts: 0.840000 pts: 0.960000 pos: 460800 size: 24712
  ret: 0         st:-1 flags:1  ts:-0.645825
 -ret: 0         st: 0 flags:1 dts: 0.000000 pts: NOPTS    pos:   6144 size: 24801
 +ret: 0         st: 0 flags:1 dts:-0.040000 pts: 0.000000 pos:   6144 size: 24801
@@@ -2,52 -2,52 +2,52 @@@ ret: 0         st: 0 flags:1 dts: 0.000
  ret: 0         st:-1 flags:0  ts:-1.000000
  ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:   6144 size:150000
  ret: 0         st:-1 flags:1  ts: 1.894167
 -ret:-1
 +ret: 0         st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
  ret: 0         st: 0 flags:0  ts: 0.800000
 -ret:-1
 +ret: 0         st: 0 flags:1 dts: 0.800000 pts: 0.800000 pos:4265984 size:150000
  ret: 0         st: 0 flags:1  ts:-0.320000
  ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:   6144 size:150000
- ret: 0         st: 1 flags:0  ts: 2.560000
- ret: 0         st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
- ret: 0         st: 1 flags:1  ts: 1.480000
- ret: 0         st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
+ ret: 0         st: 1 flags:0  ts: 2.576667
 -ret:-1
++ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:5117952 size:150000
+ ret: 0         st: 1 flags:1  ts: 1.470833
 -ret:-1
++ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:5117952 size:150000
  ret: 0         st:-1 flags:0  ts: 0.365002
 -ret: 0         st: 0 flags:1 dts: 0.360000 pts: 0.360000 pos:   6144 size:150000
 +ret: 0         st: 0 flags:1 dts: 0.360000 pts: 0.360000 pos:1923072 size:150000
  ret: 0         st:-1 flags:1  ts:-0.740831
  ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:   6144 size:150000
  ret: 0         st: 0 flags:0  ts: 2.160000
 -ret:-1
 +ret: 0         st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
  ret: 0         st: 0 flags:1  ts: 1.040000
 -ret:-1
 +ret: 0         st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
- ret: 0         st: 1 flags:0  ts:-0.040000
+ ret: 0         st: 1 flags:0  ts:-0.058333
  ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:   6144 size:150000
- ret: 0         st: 1 flags:1  ts: 2.840000
- ret: 0         st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
+ ret: 0         st: 1 flags:1  ts: 2.835833
 -ret:-1
++ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:5117952 size:150000
  ret: 0         st:-1 flags:0  ts: 1.730004
 -ret:-1
 +ret: 0         st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
  ret: 0         st:-1 flags:1  ts: 0.624171
 -ret:-1
 +ret: 0         st: 0 flags:1 dts: 0.640000 pts: 0.640000 pos:3414016 size:150000
  ret: 0         st: 0 flags:0  ts:-0.480000
  ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:   6144 size:150000
  ret: 0         st: 0 flags:1  ts: 2.400000
 -ret:-1
 +ret: 0         st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
- ret: 0         st: 1 flags:0  ts: 1.320000
- ret: 0         st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
- ret: 0         st: 1 flags:1  ts: 0.200000
- ret: 0         st: 0 flags:1 dts: 0.200000 pts: 0.200000 pos:1071104 size:150000
+ ret: 0         st: 1 flags:0  ts: 1.306667
 -ret:-1
++ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:5117952 size:150000
+ ret: 0         st: 1 flags:1  ts: 0.200833
 -ret: 0         st: 0 flags:1 dts: 0.200000 pts: 0.200000 pos:   6144 size:150000
++ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:5117952 size:150000
  ret: 0         st:-1 flags:0  ts:-0.904994
  ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:   6144 size:150000
  ret: 0         st:-1 flags:1  ts: 1.989173
 -ret:-1
 +ret: 0         st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
  ret: 0         st: 0 flags:0  ts: 0.880000
 -ret:-1
 +ret: 0         st: 0 flags:1 dts: 0.880000 pts: 0.880000 pos:4691968 size:150000
  ret: 0         st: 0 flags:1  ts:-0.240000
  ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:   6144 size:150000
- ret: 0         st: 1 flags:0  ts: 2.680000
- ret: 0         st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
- ret: 0         st: 1 flags:1  ts: 1.560000
- ret: 0         st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:5117952 size:150000
+ ret: 0         st: 1 flags:0  ts: 2.671667
 -ret:-1
++ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:5117952 size:150000
+ ret: 0         st: 1 flags:1  ts: 1.565833
 -ret:-1
++ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:5117952 size:150000
  ret: 0         st:-1 flags:0  ts: 0.460008
 -ret: 0         st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos:   6144 size:150000
 +ret: 0         st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos:2562048 size:150000
  ret: 0         st:-1 flags:1  ts:-0.645825
  ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:   6144 size:150000