Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 9 Jun 2012 18:30:17 +0000 (20:30 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 9 Jun 2012 18:30:17 +0000 (20:30 +0200)
* qatar/master:
  h264: allow cropping to AVCodecContext.width/height
  mov: set AVCodecContext.width/height for h264
  iac: generate codec tables as they are supposed to be
  indeo4: handle frame type 1 properly
  lavu: change versioning script to include all av* prefixed symbols

Conflicts:
libavcodec/h264.c
libavutil/libavutil.v

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/h264.c
libavcodec/imc.c
libavcodec/imcdata.h
libavcodec/indeo4.c
libavformat/mov.c

@@@ -2966,11 -2962,26 +2966,10 @@@ static int decode_slice_header(H264Cont
  
      s->chroma_y_shift = h->sps.chroma_format_idc <= 1; // 400 uses yuv420p
  
 -    s->width = 16 * s->mb_width - (2 >> CHROMA444) * FFMIN(h->sps.crop_right, (8 << CHROMA444) - 1);
 -    if (h->sps.frame_mbs_only_flag)
 -        s->height = 16 * s->mb_height - (1 << s->chroma_y_shift) * FFMIN(h->sps.crop_bottom, (16 >> s->chroma_y_shift) - 1);
 -    else
 -        s->height = 16 * s->mb_height - (2 << s->chroma_y_shift) * FFMIN(h->sps.crop_bottom, (16 >> s->chroma_y_shift) - 1);
 +    s->width  = 16 * s->mb_width;
 +    s->height = 16 * s->mb_height;
  
 -    if (FFALIGN(s->avctx->width,  16) == s->width &&
 -        FFALIGN(s->avctx->height, 16) == s->height) {
 -        s->width  = s->avctx->width;
 -        s->height = s->avctx->height;
 -    }
--
 -    if (s->context_initialized &&
 -        (s->width != s->avctx->width || s->height != s->avctx->height ||
 -         av_cmp_q(h->sps.sar, s->avctx->sample_aspect_ratio))) {
 -        if (h != h0 || (HAVE_THREADS && h->s.avctx->active_thread_type & FF_THREAD_FRAME)) {
 -            av_log_missing_feature(s->avctx,
 -                                   "Width/height changing with threads is", 0);
 -            return AVERROR_PATCHWELCOME;   // width / height changed during parallelized decoding
 -        }
 +    if(must_reinit) {
          free_tables(h, 0);
          flush_dpb(s->avctx);
          ff_MPV_common_end(s);
Simple merge
Simple merge
@@@ -498,9 -468,10 +497,10 @@@ static int decode_mb_info(IVI45DecConte
                      }
                  }
              } else {
 -                if (band->inherit_mv) {
 +                if (band->inherit_mv && ref_mb) {
                      mb->type = ref_mb->type; /* copy mb_type from corresponding reference mb */
-                 } else if (ctx->frame_type == FRAMETYPE_INTRA) {
+                 } else if (ctx->frame_type == FRAMETYPE_INTRA ||
+                            ctx->frame_type == FRAMETYPE_INTRA1) {
                      mb->type = 0; /* mb_type is always INTRA for intra-frames */
                  } else {
                      mb->type = get_bits(&ctx->gb, mb_type_bits);
Simple merge