Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 10 Dec 2012 01:13:26 +0000 (02:13 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 10 Dec 2012 01:16:33 +0000 (02:16 +0100)
* qatar/master:
  dsputil: remove unused macro WRAPPER8_16
  configure: fix automatic processing of _extralibs in check_deps
  libvpxenc: Support forcing keyframes
  ac3dec: decode directly into output buffers

Conflicts:
libavcodec/ac3dec.c
libavcodec/libvpxenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/ac3dec.c
libavcodec/dsputil.h
libavcodec/libvpxenc.c

@@@ -1392,12 -1388,19 +1396,21 @@@ static int ac3_decode_frame(AVCodecCont
              av_log(avctx, AV_LOG_ERROR, "error decoding the audio block\n");
              err = 1;
          }
-         for (ch = 0; ch < s->out_channels; ch++)
-             memcpy(s->frame.data[ch] + blk * 1024, output[ch], 1024);
+         if (err)
+             for (ch = 0; ch < s->out_channels; ch++)
+                 memcpy(s->outptr[channel_map[ch]], output[ch], 1024);
+         for (ch = 0; ch < s->out_channels; ch++) {
+             output[ch] = s->outptr[channel_map[ch]];
+             s->outptr[channel_map[ch]] += AC3_BLOCK_SIZE;
+         }
      }
  
 +    s->frame.decode_error_flags = err ? FF_DECODE_ERROR_INVALID_BITSTREAM : 0;
 +
+     /* keep last block for error concealment in next frame */
+     for (ch = 0; ch < s->out_channels; ch++)
+         memcpy(s->output[ch], output[ch], 1024);
      *got_frame_ptr   = 1;
      *(AVFrame *)data = s->frame;
  
Simple merge
Simple merge