Merge commit 'c0329748b04e1f175dad8c9c2ebf22a5e2dc5b72'
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 19 Oct 2012 11:29:24 +0000 (13:29 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 19 Oct 2012 11:29:24 +0000 (13:29 +0200)
* commit 'c0329748b04e1f175dad8c9c2ebf22a5e2dc5b72':
  fate: add a dependency helper macro
  Add support for building shared libraries with MSVC
  avcodec: Rename avpriv_frame_rate_tab to ff_mpeg12_frame_rate_tab
  gxf: Add a local copy of the relevant parts of the frame rate table
  configure: Split out msvc as a separate target OS
  aviobuf: Remove a senseless ifdef in avio_seek

Conflicts:
configure
libavcodec/dirac.c
libavcodec/mpeg12data.h
libavcodec/mpeg12enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
17 files changed:
1  2 
configure
libavcodec/ac3tab.h
libavcodec/cavsdec.c
libavcodec/dca.h
libavcodec/dirac.c
libavcodec/mjpeg.h
libavcodec/mpeg12.c
libavcodec/mpeg12data.c
libavcodec/mpeg12data.h
libavcodec/mpeg12enc.c
libavcodec/mpeg4audio.h
libavcodec/mpegaudiodata.h
libavcodec/mpegvideo_parser.c
libavformat/aviobuf.c
libavformat/gxf.c
libavutil/internal.h
tests/Makefile

diff --cc configure
+++ b/configure
@@@ -2252,21 -1989,8 +2252,21 @@@ if enabled cross_compile; the
          die "Must specify target arch and OS when cross-compiling"
  fi
  
- set_default arch target_os postproc_version
++set_default postproc_version
 +
 +# Check if we should build alternative libpostproc version instead of current
 +if   test "$postproc_version" = $ALT_PP_VER; then
 +  LIBPOSTPROC_VERSION=$ALT_PP_VER
 +  LIBPOSTPROC_VERSION_MAJOR=$ALT_PP_VER_MAJOR
 +  LIBPOSTPROC_VERSION_MINOR=$ALT_PP_VER_MINOR
 +  LIBPOSTPROC_VERSION_MICRO=$ALT_PP_VER_MICRO
 +elif test "$postproc_version" != current; then
 +  die "Invalid argument to --postproc-version. See --help output."
 +fi
 +
  ar_default="${cross_prefix}${ar_default}"
  cc_default="${cross_prefix}${cc_default}"
 +cxx_default="${cross_prefix}${cxx_default}"
  nm_default="${cross_prefix}${nm_default}"
  pkg_config_default="${cross_prefix}${pkg_config_default}"
  ranlib="${cross_prefix}${ranlib}"
@@@ -2296,7 -2020,7 +2297,7 @@@ case "$toolchain" i
      ;;
  esac
  
- set_default cc cxx pkg_config strip sysinclude yasmexe
 -set_default arch cc pkg_config sysinclude target_os
++set_default arch cc cxx pkg_config strip sysinclude target_os yasmexe
  enabled cross_compile || host_cc_default=$cc
  set_default host_cc
  
@@@ -2372,7 -2095,7 +2373,8 @@@ msvc_flags()
              -Wall)                echo -W4 -wd4244 -wd4127 -wd4018 -wd4389 \
                                         -wd4146 -wd4057 -wd4204 -wd4706 -wd4305 \
                                         -wd4152 -wd4324 -we4013 -wd4100 -wd4214 \
-                                        -wd4996 -wd4554 ;;
++                                       -wd4554 \
+                                        -wd4996 -wd4273 ;;
              -std=c99)             ;;
              -fno-math-errno)      ;;
              -fno-common)          ;;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -48,8 -48,7 +48,8 @@@ extern const uint8_t ff_mpeg12_mbPatTab
  
  extern const uint8_t ff_mpeg12_mbMotionVectorTable[17][2];
  
- extern const AVRational avpriv_frame_rate_tab[];
+ extern const AVRational ff_mpeg12_frame_rate_tab[];
 +extern const AVRational ff_mpeg2_frame_rate_tab[];
  
  extern const float ff_mpeg1_aspect[16];
  extern const AVRational ff_mpeg2_aspect[16];
@@@ -108,34 -107,21 +108,34 @@@ static void init_uni_ac_vlc(RLTable *rl
  
  static int find_frame_rate_index(MpegEncContext *s){
      int i;
 -    int64_t dmin= INT64_MAX;
 -    int64_t d;
 +    AVRational bestq= (AVRational){0, 0};
 +    AVRational ext;
 +    AVRational target = av_inv_q(s->avctx->time_base);
  
      for(i=1;i<14;i++) {
 -        int64_t n0 = 1001LL / ff_mpeg12_frame_rate_tab[i].den * ff_mpeg12_frame_rate_tab[i].num * s->avctx->time_base.num;
 -        int64_t n1= 1001LL*s->avctx->time_base.den;
          if(s->avctx->strict_std_compliance > FF_COMPLIANCE_UNOFFICIAL && i>=9) break;
  
 -        d = FFABS(n0 - n1);
 -        if(d < dmin){
 -            dmin=d;
 -            s->frame_rate_index= i;
 +        for (ext.num=1; ext.num <= 4; ext.num++) {
 +            for (ext.den=1; ext.den <= 32; ext.den++) {
-                 AVRational q = av_mul_q(ext, avpriv_frame_rate_tab[i]);
++                AVRational q = av_mul_q(ext, ff_mpeg12_frame_rate_tab[i]);
 +
 +                if(s->codec_id != AV_CODEC_ID_MPEG2VIDEO && (ext.den!=1 || ext.num!=1))
 +                    continue;
 +                if(av_gcd(ext.den, ext.num) != 1)
 +                    continue;
 +
 +                if(    bestq.num==0
 +                    || av_nearer_q(target, bestq, q) < 0
 +                    || ext.num==1 && ext.den==1 && av_nearer_q(target, bestq, q) == 0){
 +                    bestq = q;
 +                    s->frame_rate_index= i;
 +                    s->mpeg2_frame_rate_ext.num = ext.num;
 +                    s->mpeg2_frame_rate_ext.den = ext.den;
 +                }
 +            }
          }
      }
 -    if(dmin)
 +    if(av_cmp_q(target, bestq))
          return -1;
      else
          return 0;
@@@ -188,16 -171,6 +188,16 @@@ static av_cold int encode_init(AVCodecC
          return -1;
      }
  
-         AVRational rate = avpriv_frame_rate_tab[s->frame_rate_index];
 +    if (s->tc_opt_str) {
++        AVRational rate = ff_mpeg12_frame_rate_tab[s->frame_rate_index];
 +        int ret = av_timecode_init_from_string(&s->tc, rate, s->tc_opt_str, s);
 +        if (ret < 0)
 +            return ret;
 +        s->drop_frame_timecode = !!(s->tc.flags & AV_TIMECODE_FLAG_DROPFRAME);
 +        s->avctx->timecode_frame_start = s->tc.start;
 +    } else {
 +        s->avctx->timecode_frame_start = 0; // default is -1
 +    }
      return 0;
  }
  
@@@ -982,10 -958,10 +982,10 @@@ AVCodec ff_mpeg1video_encoder = 
      .init                 = encode_init,
      .encode2              = ff_MPV_encode_picture,
      .close                = ff_MPV_encode_end,
-     .supported_framerates = avpriv_frame_rate_tab+1,
+     .supported_framerates = ff_mpeg12_frame_rate_tab + 1,
      .pix_fmts             = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P,
                                                          AV_PIX_FMT_NONE },
 -    .capabilities         = CODEC_CAP_DELAY | CODEC_CAP_SLICE_THREADS,
 +    .capabilities         = CODEC_CAP_DELAY,
      .long_name            = NULL_IF_CONFIG_SMALL("MPEG-1 video"),
      .priv_class           = &mpeg1_class,
  };
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc tests/Makefile
Simple merge