Merge commit 'e121ac634ba324a318f4a97f978dcfb48da6b735'
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 23 Jun 2014 11:54:17 +0000 (13:54 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 23 Jun 2014 11:56:52 +0000 (13:56 +0200)
* commit 'e121ac634ba324a318f4a97f978dcfb48da6b735':
  indeo45: use is_indeo4 context flag instead of checking codec ID

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/indeo4.c
libavcodec/indeo5.c
libavcodec/ivi_common.c
libavcodec/ivi_common.h

Simple merge
Simple merge
@@@ -1057,11 -1020,13 +1056,11 @@@ int ff_ivi_decode_frame(AVCodecContext 
      if (result < 0)
          return result;
  
 -    if ((result = ff_get_buffer(avctx, frame, 0)) < 0) {
 -        av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
 +    if ((result = ff_get_buffer(avctx, frame, 0)) < 0)
          return result;
 -    }
  
      if (ctx->is_scalable) {
-         if (avctx->codec_id == AV_CODEC_ID_INDEO4)
+         if (ctx->is_indeo4)
              ff_ivi_recompose_haar(&ctx->planes[0], frame->data[0], frame->linesize[0]);
          else
              ff_ivi_recompose53   (&ctx->planes[0], frame->data[0], frame->linesize[0]);
       * to be the only way to handle the B-frames mode.
       * That's exactly the same Intel decoders do.
       */
-     if (avctx->codec_id == AV_CODEC_ID_INDEO4 &&
-         ctx->frame_type == IVI4_FRAMETYPE_INTRA) {
+     if (ctx->is_indeo4 && ctx->frame_type == IVI4_FRAMETYPE_INTRA) {
          int left;
  
 -        while (get_bits(&ctx->gb, 8)); // skip version string
 +            // skip version string
 +        while (get_bits(&ctx->gb, 8)) {
 +            if (get_bits_left(&ctx->gb) < 8)
 +                return AVERROR_INVALIDDATA;
 +        }
          left = get_bits_count(&ctx->gb) & 0x18;
          skip_bits_long(&ctx->gb, 64 - left);
          if (get_bits_left(&ctx->gb) > 18 &&
@@@ -261,8 -260,9 +261,10 @@@ typedef struct IVI45DecContext 
      int             (*is_nonnull_frame)(struct IVI45DecContext *ctx);
  
      int gop_invalid;
 +    int buf_invalid[3];
  
+     int is_indeo4;
      AVFrame         *p_frame;
      int             got_p_frame;
  } IVI45DecContext;