Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 20 Dec 2012 11:18:28 +0000 (12:18 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 20 Dec 2012 11:18:28 +0000 (12:18 +0100)
* qatar/master:
  lavr: add option for dithering during sample format conversion to s16
  mpeg12: do not decode extradata more than once.

Conflicts:
libavcodec/mpeg12.c
libavcodec/mpeg12.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/mpeg12.c
libavcodec/mpeg12.h
libavresample/utils.c

@@@ -2558,24 -2456,14 +2558,24 @@@ static int mpeg_decode_frame(AVCodecCon
  
      s->slice_count = 0;
  
-     if (avctx->extradata && !s->parsed_extra) {
+     if (avctx->extradata && !s->extradata_decoded) {
 -        int ret = decode_chunks(avctx, picture, got_output, avctx->extradata, avctx->extradata_size);
 +        ret = decode_chunks(avctx, picture, got_output, avctx->extradata, avctx->extradata_size);
 +        if(*got_output) {
 +            av_log(avctx, AV_LOG_ERROR, "picture in extradata\n");
 +            *got_output = 0;
 +        }
-         s->parsed_extra = 1;
+         s->extradata_decoded = 1;
 -        if (ret < 0 && (avctx->err_recognition & AV_EF_EXPLODE))
 +        if (ret < 0 && (avctx->err_recognition & AV_EF_EXPLODE)) {
 +            s2->current_picture_ptr = NULL;
              return ret;
 +        }
      }
  
 -    return decode_chunks(avctx, picture, got_output, buf, buf_size);
 +    ret = decode_chunks(avctx, picture, got_output, buf, buf_size);
 +    if (ret<0 || *got_output)
 +        s2->current_picture_ptr = NULL;
 +
 +    return ret;
  }
  
  
@@@ -41,8 -41,8 +41,8 @@@ typedef struct Mpeg1Context 
      int save_width, save_height, save_progressive_seq;
      AVRational frame_rate_ext;       ///< MPEG-2 specific framerate modificator
      int sync;                        ///< Did we reach a sync point like a GOP/SEQ/KEYFrame?
 -    int closed_gop;                  ///< GOP is closed
 +    int tmpgexs;
-     int parsed_extra;
+     int extradata_decoded;
  } Mpeg1Context;
  
  extern uint8_t ff_mpeg12_static_rl_table_store[2][2][2*MAX_RUN + MAX_LEVEL + 3];
Simple merge