Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 4 Jan 2012 00:12:34 +0000 (01:12 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 4 Jan 2012 00:12:34 +0000 (01:12 +0100)
* qatar/master:
  fate: add dxtory test
  adx_parser: rewrite.
  adxdec: Validate channel count to fix a division by zero.
  adxdec: Do not require extradata.
  cmdutils: K&R reformatting cosmetics
  alacdec: implement the 2-pass prediction type.
  alacenc: implement the 2-pass prediction type.
  alacenc: do not generate invalid multi-channel ALAC files
  alacdec: fill in missing or guessed info about the extradata format.
  utvideo: proper median prediction for interlaced videos
  lavu: bump lavu minor for av_popcount64
  dca: K&R formatting cosmetics
  dct: K&R formatting cosmetics
  lavf: flush decoders in avformat_find_stream_info().
  win32: detect number of CPUs using affinity
  Add av_popcount64
  snow: Restore three mistakenly removed casts.

Conflicts:
cmdutils.c
doc/APIchanges
libavcodec/adx_parser.c
libavcodec/adxdec.c
libavcodec/alacenc.c
libavutil/avutil.h
tests/fate/screen.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
15 files changed:
1  2 
cmdutils.c
configure
doc/APIchanges
libavcodec/adxdec.c
libavcodec/alac.c
libavcodec/alacenc.c
libavcodec/dca.c
libavcodec/dct.c
libavcodec/pthread.c
libavcodec/snow.c
libavcodec/utvideo.c
libavformat/utils.c
libavutil/avutil.h
libavutil/common.h
tests/fate/screen.mak

diff --cc cmdutils.c
@@@ -80,21 -78,8 +81,22 @@@ void log_callback_help(void *ptr, int l
      vfprintf(stdout, fmt, vl);
  }
  
- double parse_number_or_die(const char *context, const char *numstr, int type, double min, double max)
 +static void log_callback_report(void *ptr, int level, const char *fmt, va_list vl)
 +{
 +    va_list vl2;
 +    char line[1024];
 +    static int print_prefix = 1;
 +
 +    va_copy(vl2, vl);
 +    av_log_default_callback(ptr, level, fmt, vl);
 +    av_log_format_line(ptr, level, fmt, vl2, line, sizeof(line), &print_prefix);
 +    va_end(vl2);
 +    fputs(line, report_file);
 +    fflush(report_file);
 +}
 +
+ double parse_number_or_die(const char *context, const char *numstr, int type,
+                            double min, double max)
  {
      char *tail;
      const char *error;
@@@ -419,15 -373,16 +427,18 @@@ int opt_default(const char *opt, const 
          p = opt + strlen(opt);
      av_strlcpy(opt_stripped, opt, FFMIN(sizeof(opt_stripped), p - opt + 1));
  
-     if ((oc = av_opt_find(&cc, opt_stripped, NULL, 0, AV_OPT_SEARCH_CHILDREN|AV_OPT_SEARCH_FAKE_OBJ)) ||
-          ((opt[0] == 'v' || opt[0] == 'a' || opt[0] == 's') &&
-           (oc = av_opt_find(&cc, opt+1, NULL, 0, AV_OPT_SEARCH_FAKE_OBJ))))
 -    if ((o = av_opt_find(&cc, opt_stripped, NULL, 0,
++    if ((oc = av_opt_find(&cc, opt_stripped, NULL, 0,
+                          AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ)) ||
+         ((opt[0] == 'v' || opt[0] == 'a' || opt[0] == 's') &&
 -         (o = av_opt_find(&cc, opt + 1, NULL, 0, AV_OPT_SEARCH_FAKE_OBJ))))
 -        av_dict_set(&codec_opts, opt, arg, FLAGS);
 -    else if ((o = av_opt_find(&fc, opt, NULL, 0,
 -                              AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ)))
 -        av_dict_set(&format_opts, opt, arg, FLAGS);
 -    else if ((o = av_opt_find(&sc, opt, NULL, 0,
 -                              AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) {
++         (oc = av_opt_find(&cc, opt + 1, NULL, 0, AV_OPT_SEARCH_FAKE_OBJ))))
 +        av_dict_set(&codec_opts, opt, arg, FLAGS(oc));
-     if ((of = av_opt_find(&fc, opt, NULL, 0, AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ)))
++    if ((of = av_opt_find(&fc, opt, NULL, 0,
++                          AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ)))
 +        av_dict_set(&format_opts, opt, arg, FLAGS(of));
 +#if CONFIG_SWSCALE
 +    sc = sws_get_class();
-     if ((os = av_opt_find(&sc, opt, NULL, 0, AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) {
++    if ((os = av_opt_find(&sc, opt, NULL, 0,
++                          AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) {
          // XXX we only support sws_flags, not arbitrary sws options
          int ret = av_opt_set(sws_opts, opt, arg, 0);
          if (ret < 0) {
@@@ -598,13 -499,10 +609,14 @@@ static void print_all_libs_info(int fla
      PRINT_LIB_INFO(postproc, POSTPROC, flags, level);
  }
  
 -void show_banner(void)
 +void show_banner(int argc, char **argv, const OptionDef *options)
  {
-     av_log(NULL, AV_LOG_INFO, "%s version " FFMPEG_VERSION ", Copyright (c) %d-%d the FFmpeg developers\n",
 +    int idx = locate_option(argc, argv, options, "version");
 +    if (idx)
 +        return;
 +
 -           "%s version " LIBAV_VERSION ", Copyright (c) %d-%d the Libav developers\n",
+     av_log(NULL, AV_LOG_INFO,
++           "%s version " FFMPEG_VERSION ", Copyright (c) %d-%d the FFmpeg developers\n",
             program_name, program_birth_year, this_year);
      av_log(NULL, AV_LOG_INFO, "  built on %s %s with %s %s\n",
             __DATE__, __TIME__, CC_TYPE, CC_VERSION);
@@@ -687,91 -584,88 +699,90 @@@ int opt_license(const char *opt, const 
      program_name, program_name, program_name
  #endif
      );
 +    return 0;
  }
  
 -void show_formats(void)
 +int opt_formats(const char *opt, const char *arg)
  {
-     AVInputFormat *ifmt=NULL;
-     AVOutputFormat *ofmt=NULL;
+     AVInputFormat *ifmt  = NULL;
+     AVOutputFormat *ofmt = NULL;
      const char *last_name;
  
-     printf(
-         "File formats:\n"
-         " D. = Demuxing supported\n"
-         " .E = Muxing supported\n"
-         " --\n");
-     last_name= "000";
-     for(;;){
-         int decode=0;
-         int encode=0;
-         const char *name=NULL;
-         const char *long_name=NULL;
-         while((ofmt= av_oformat_next(ofmt))) {
-             if((name == NULL || strcmp(ofmt->name, name)<0) &&
-                 strcmp(ofmt->name, last_name)>0){
-                 name= ofmt->name;
-                 long_name= ofmt->long_name;
-                 encode=1;
+     printf("File formats:\n"
+            " D. = Demuxing supported\n"
+            " .E = Muxing supported\n"
+            " --\n");
+     last_name = "000";
+     for (;;) {
+         int decode = 0;
+         int encode = 0;
+         const char *name      = NULL;
+         const char *long_name = NULL;
+         while ((ofmt = av_oformat_next(ofmt))) {
+             if ((name == NULL || strcmp(ofmt->name, name) < 0) &&
+                 strcmp(ofmt->name, last_name) > 0) {
+                 name      = ofmt->name;
+                 long_name = ofmt->long_name;
+                 encode    = 1;
              }
          }
-         while((ifmt= av_iformat_next(ifmt))) {
-             if((name == NULL || strcmp(ifmt->name, name)<0) &&
-                 strcmp(ifmt->name, last_name)>0){
-                 name= ifmt->name;
-                 long_name= ifmt->long_name;
-                 encode=0;
+         while ((ifmt = av_iformat_next(ifmt))) {
+             if ((name == NULL || strcmp(ifmt->name, name) < 0) &&
+                 strcmp(ifmt->name, last_name) > 0) {
+                 name      = ifmt->name;
+                 long_name = ifmt->long_name;
+                 encode    = 0;
              }
-             if(name && strcmp(ifmt->name, name)==0)
-                 decode=1;
+             if (name && strcmp(ifmt->name, name) == 0)
+                 decode = 1;
          }
-         if(name==NULL)
+         if (name == NULL)
              break;
-         last_name= name;
+         last_name = name;
  
-         printf(
-             " %s%s %-15s %s\n",
-             decode ? "D":" ",
-             encode ? "E":" ",
-             name,
+         printf(" %s%s %-15s %s\n",
+                decode ? "D" : " ",
+                encode ? "E" : " ",
+                name,
              long_name ? long_name:" ");
      }
 +    return 0;
  }
  
 -void show_codecs(void)
 +int opt_codecs(const char *opt, const char *arg)
  {
-     AVCodec *p=NULL, *p2;
+     AVCodec *p = NULL, *p2;
      const char *last_name;
-     printf(
-         "Codecs:\n"
-         " D..... = Decoding supported\n"
-         " .E.... = Encoding supported\n"
-         " ..V... = Video codec\n"
-         " ..A... = Audio codec\n"
-         " ..S... = Subtitle codec\n"
-         " ...S.. = Supports draw_horiz_band\n"
-         " ....D. = Supports direct rendering method 1\n"
-         " .....T = Supports weird frame truncation\n"
-         " ------\n");
+     printf("Codecs:\n"
+            " D..... = Decoding supported\n"
+            " .E.... = Encoding supported\n"
+            " ..V... = Video codec\n"
+            " ..A... = Audio codec\n"
+            " ..S... = Subtitle codec\n"
+            " ...S.. = Supports draw_horiz_band\n"
+            " ....D. = Supports direct rendering method 1\n"
+            " .....T = Supports weird frame truncation\n"
+            " ------\n");
      last_name= "000";
-     for(;;){
-         int decode=0;
-         int encode=0;
-         int cap=0;
+     for (;;) {
+         int decode = 0;
+         int encode = 0;
+         int cap    = 0;
          const char *type_str;
  
-         p2=NULL;
-         while((p= av_codec_next(p))) {
-             if((p2==NULL || strcmp(p->name, p2->name)<0) &&
-                 strcmp(p->name, last_name)>0){
-                 p2= p;
-                 decode= encode= cap=0;
+         p2 = NULL;
+         while ((p = av_codec_next(p))) {
+             if ((p2 == NULL || strcmp(p->name, p2->name) < 0) &&
+                 strcmp(p->name, last_name) > 0) {
+                 p2 = p;
+                 decode = encode = cap = 0;
              }
-             if(p2 && strcmp(p->name, p2->name)==0){
-                 if(p->decode) decode=1;
-                 if(p->encode) encode=1;
+             if (p2 && strcmp(p->name, p2->name) == 0) {
+                 if (p->decode)
+                     decode = 1;
+                 if (p->encode)
+                     encode = 1;
                  cap |= p->capabilities;
              }
          }
          printf("\n");
      }
      printf("\n");
-     printf(
- "Note, the names of encoders and decoders do not always match, so there are\n"
- "several cases where the above table shows encoder only or decoder only entries\n"
- "even though both encoding and decoding are supported. For example, the h263\n"
- "decoder corresponds to the h263 and h263p encoders, for file formats it is even\n"
- "worse.\n");
+     printf("Note, the names of encoders and decoders do not always match, so there are\n"
+            "several cases where the above table shows encoder only or decoder only entries\n"
+            "even though both encoding and decoding are supported. For example, the h263\n"
+            "decoder corresponds to the h263 and h263p encoders, for file formats it is even\n"
+            "worse.\n");
 +    return 0;
  }
  
 -void show_bsfs(void)
 +int opt_bsfs(const char *opt, const char *arg)
  {
-     AVBitStreamFilter *bsf=NULL;
+     AVBitStreamFilter *bsf = NULL;
  
      printf("Bitstream filters:\n");
-     while((bsf = av_bitstream_filter_next(bsf)))
+     while ((bsf = av_bitstream_filter_next(bsf)))
          printf("%s\n", bsf->name);
      printf("\n");
 +    return 0;
  }
  
 -void show_protocols(void)
 +int opt_protocols(const char *opt, const char *arg)
  {
 -    void *opaque = NULL;
 -    const char *name;
 +    URLProtocol *up=NULL;
  
      printf("Supported file protocols:\n"
 -           "Input:\n");
 -    while ((name = avio_enum_protocols(&opaque, 0)))
 -        printf("%s\n", name);
 -    printf("Output:\n");
 -    while ((name = avio_enum_protocols(&opaque, 1)))
 -        printf("%s\n", name);
 +           "I.. = Input  supported\n"
 +           ".O. = Output supported\n"
 +           "..S = Seek   supported\n"
 +           "FLAGS NAME\n"
 +           "----- \n");
 +    while((up = av_protocol_next(up)))
 +        printf("%c%c%c   %s\n",
 +               up->url_read  ? 'I' : '.',
 +               up->url_write ? 'O' : '.',
 +               up->url_seek  ? 'S' : '.',
 +               up->name);
 +    return 0;
  }
  
 -void show_filters(void)
 +int opt_filters(const char *opt, const char *arg)
  {
      AVFilter av_unused(**filter) = NULL;
  
@@@ -951,15 -834,43 +962,15 @@@ int cmdutils_read_file(const char *file
      return ret;
  }
  
 -void init_pts_correction(PtsCorrectionContext *ctx)
 -{
 -    ctx->num_faulty_pts = ctx->num_faulty_dts = 0;
 -    ctx->last_pts = ctx->last_dts = INT64_MIN;
 -}
 -
 -int64_t guess_correct_pts(PtsCorrectionContext *ctx, int64_t reordered_pts,
 -                          int64_t dts)
 -{
 -    int64_t pts = AV_NOPTS_VALUE;
 -
 -    if (dts != AV_NOPTS_VALUE) {
 -        ctx->num_faulty_dts += dts <= ctx->last_dts;
 -        ctx->last_dts = dts;
 -    }
 -    if (reordered_pts != AV_NOPTS_VALUE) {
 -        ctx->num_faulty_pts += reordered_pts <= ctx->last_pts;
 -        ctx->last_pts = reordered_pts;
 -    }
 -    if ((ctx->num_faulty_pts<=ctx->num_faulty_dts || dts == AV_NOPTS_VALUE)
 -        && reordered_pts != AV_NOPTS_VALUE)
 -        pts = reordered_pts;
 -    else
 -        pts = dts;
 -
 -    return pts;
 -}
 -
  FILE *get_preset_file(char *filename, size_t filename_size,
-                       const char *preset_name, int is_path, const char *codec_name)
+                       const char *preset_name, int is_path,
+                       const char *codec_name)
  {
      FILE *f = NULL;
      int i;
-     const char *base[3]= { getenv("FFMPEG_DATADIR"),
-                            getenv("HOME"),
-                            FFMPEG_DATADIR,
-                          };
 -    const char *base[3] = { getenv("AVCONV_DATADIR"),
++    const char *base[3] = { getenv("FFMPEG_DATADIR"),
+                             getenv("HOME"),
 -                            AVCONV_DATADIR, };
++                            FFMPEG_DATADIR, };
  
      if (is_path) {
          av_strlcpy(filename, preset_name, filename_size);
          for (i = 0; i < 3 && !f; i++) {
              if (!base[i])
                  continue;
-             snprintf(filename, filename_size, "%s%s/%s.ffpreset", base[i], i != 1 ? "" : "/.ffmpeg", preset_name);
+             snprintf(filename, filename_size, "%s%s/%s.ffpreset", base[i],
 -                     i != 1 ? "" : "/.avconv", preset_name);
++                     i != 1 ? "" : "/.ffmpeg", preset_name);
              f = fopen(filename, "r");
              if (!f && codec_name) {
                  snprintf(filename, filename_size,
-                          "%s%s/%s-%s.ffpreset", base[i],  i != 1 ? "" : "/.ffmpeg", codec_name, preset_name);
+                          "%s%s/%s-%s.ffpreset",
 -                         base[i], i != 1 ? "" : "/.avconv", codec_name,
++                         base[i],  i != 1 ? "" : "/.ffmpeg", codec_name,
+                          preset_name);
                  f = fopen(filename, "r");
              }
          }
@@@ -1006,12 -904,11 +1021,12 @@@ int check_stream_specifier(AVFormatCont
          enum AVMediaType type;
  
          switch (*spec++) {
-         case 'v': type = AVMEDIA_TYPE_VIDEO;    break;
-         case 'a': type = AVMEDIA_TYPE_AUDIO;    break;
-         case 's': type = AVMEDIA_TYPE_SUBTITLE; break;
-         case 'd': type = AVMEDIA_TYPE_DATA;     break;
+         case 'v': type = AVMEDIA_TYPE_VIDEO;      break;
+         case 'a': type = AVMEDIA_TYPE_AUDIO;      break;
+         case 's': type = AVMEDIA_TYPE_SUBTITLE;   break;
+         case 'd': type = AVMEDIA_TYPE_DATA;       break;
          case 't': type = AVMEDIA_TYPE_ATTACHMENT; break;
 +        default: abort(); // never reached, silence warning
          }
          if (type != st->codec->codec_type)
              return 0;
      return AVERROR(EINVAL);
  }
  
- AVDictionary *filter_codec_opts(AVDictionary *opts, AVCodec *codec, AVFormatContext *s, AVStream *st)
 -AVDictionary *filter_codec_opts(AVDictionary *opts, enum CodecID codec_id,
++AVDictionary *filter_codec_opts(AVDictionary *opts, AVCodec *codec,
+                                 AVFormatContext *s, AVStream *st)
  {
      AVDictionary    *ret = NULL;
      AVDictionaryEntry *t = NULL;
-     int            flags = s->oformat ? AV_OPT_FLAG_ENCODING_PARAM : AV_OPT_FLAG_DECODING_PARAM;
 -    AVCodec       *codec = s->oformat ? avcodec_find_encoder(codec_id)
 -                                      : avcodec_find_decoder(codec_id);
+     int            flags = s->oformat ? AV_OPT_FLAG_ENCODING_PARAM
+                                       : AV_OPT_FLAG_DECODING_PARAM;
      char          prefix = 0;
      const AVClass    *cc = avcodec_get_class();
  
@@@ -1104,7 -1020,8 +1136,8 @@@ AVDictionary **setup_find_stream_info_o
          return NULL;
      }
      for (i = 0; i < s->nb_streams; i++)
-         opts[i] = filter_codec_opts(codec_opts, avcodec_find_decoder(s->streams[i]->codec->codec_id), s, s->streams[i]);
 -        opts[i] = filter_codec_opts(codec_opts, s->streams[i]->codec->codec_id,
++        opts[i] = filter_codec_opts(codec_opts, avcodec_find_decoder(s->streams[i]->codec->codec_id),
+                                     s, s->streams[i]);
      return opts;
  }
  
diff --cc configure
Simple merge
diff --cc doc/APIchanges
@@@ -13,24 -13,23 +13,27 @@@ libavutil:   2011-04-1
  
  API changes, most recent first:
  
 -2011-01-03 - b73ec05 - lavu 51.21.0
 -  Add av_popcount64
 +2011-12-08 - a502939 - lavfi 2.52.0
 +  Add av_buffersink_poll_frame() to buffersink.h.
 +
 +2011-12-08 - xxxxxxx - lavu 51.31.0
 +  Add av_log_format_line.
 +
 +2011-12-03 - xxxxxxx - lavu 51.30.0
 +  Add AVERROR_BUG.
  
 -2011-12-25 - lavfi 2.14.0
 -  e1d9dbf Add a new installed header - buffersrc.h
 -  It contains a new function av_buffersrc_buffer() that allows passing
 -  frames to the 'buffer' filter, but unlike av_vsrc_buffer_add_frame()
 -  it allows for direct rendering.
 -  1c9e340 Add avfilter_copy_frame_props() for copying properties from
 -  AVFrame to AVFilterBufferRef.
 +2011-xx-xx - xxxxxxx - lavu 51.28.1
 +  Add av_get_alt_sample_fmt() to samplefmt.h.
  
 -2011-12-25 - lavc 53.31.0
 -  Add the following new fields to AVFrame:
 -    b58dbb5 sample_aspect_ratio
 -    3a2ddf7 width, height
 -    8a4a5f6 format
 +2011-11-03 - 96949da - lavu 51.23.0
 +  Add av_strcasecmp() and av_strncasecmp() to avstring.h.
 +
 +2011-10-20 - b35e9e1 - lavu 51.22.0
 +  Add av_strtok() to avstring.h.
 +
++2011-01-03 - b73ec05 - lavu 51.21.0
++  Add av_popcount64
  2011-12-18 - 8400b12 - lavc 53.28.1
    Deprecate AVFrame.age. The field is unused.
  
Simple merge
@@@ -461,27 -451,30 +457,32 @@@ static int alac_decode_frame(AVCodecCon
                                          alac->setinfo_rice_kmodifier,
                                          ricemodifier[ch] * alac->setinfo_rice_historymult / 4,
                                          (1 << alac->setinfo_rice_kmodifier) - 1);
 +            if(ret<0)
 +                return ret;
  
-             if (prediction_type[ch] == 0) {
-                 /* adaptive fir */
-                 predictor_decompress_fir_adapt(alac->predicterror_buffer[ch],
-                                                alac->outputsamples_buffer[ch],
-                                                outputsamples,
-                                                readsamplesize,
-                                                predictor_coef_table[ch],
-                                                predictor_coef_num[ch],
-                                                prediction_quantitization[ch]);
-             } else {
-                 av_log(avctx, AV_LOG_ERROR, "FIXME: unhandled prediction type: %i\n", prediction_type[ch]);
-                 /* I think the only other prediction type (or perhaps this is
-                  * just a boolean?) runs adaptive fir twice.. like:
-                  * predictor_decompress_fir_adapt(predictor_error, tempout, ...)
-                  * predictor_decompress_fir_adapt(predictor_error, outputsamples ...)
-                  * little strange..
+             /* adaptive FIR filter */
+             if (prediction_type[ch] == 15) {
+                 /* Prediction type 15 runs the adaptive FIR twice.
+                  * The first pass uses the special-case coef_num = 31, while
+                  * the second pass uses the coefs from the bitstream.
+                  *
+                  * However, this prediction type is not currently used by the
+                  * reference encoder.
                   */
+                 predictor_decompress_fir_adapt(alac->predicterror_buffer[ch],
+                                                alac->predicterror_buffer[ch],
+                                                outputsamples, readsamplesize,
+                                                NULL, 31, 0);
+             } else if (prediction_type[ch] > 0) {
+                 av_log(avctx, AV_LOG_WARNING, "unknown prediction type: %i\n",
+                        prediction_type[ch]);
              }
+             predictor_decompress_fir_adapt(alac->predicterror_buffer[ch],
+                                            alac->outputsamples_buffer[ch],
+                                            outputsamples, readsamplesize,
+                                            predictor_coef_table[ch],
+                                            predictor_coef_num[ch],
+                                            prediction_quantitization[ch]);
          }
      } else {
          /* not compressed, easy case */
Simple merge
@@@ -1816,12 -1850,8 +1849,12 @@@ static int dca_decode_frame(AVCodecCont
              s->output = DCA_STEREO;
              avctx->channel_layout = AV_CH_LAYOUT_STEREO;
          }
 +        else if (avctx->request_channel_layout & AV_CH_LAYOUT_NATIVE) {
 +            static const int8_t dca_channel_order_native[9] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
 +            s->channel_order_tab = dca_channel_order_native;
 +        }
      } else {
-         av_log(avctx, AV_LOG_ERROR, "Non standard configuration %d !\n",s->amode);
+         av_log(avctx, AV_LOG_ERROR, "Non standard configuration %d !\n", s->amode);
          return AVERROR_INVALIDDATA;
      }
  
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
   */
  
  #define LIBAVUTIL_VERSION_MAJOR 51
- #define LIBAVUTIL_VERSION_MINOR 33
 -#define LIBAVUTIL_VERSION_MINOR 21
 -#define LIBAVUTIL_VERSION_MICRO  0
++#define LIBAVUTIL_VERSION_MINOR 34
 +#define LIBAVUTIL_VERSION_MICRO 100
  
  #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
                                                 LIBAVUTIL_VERSION_MINOR, \
Simple merge
@@@ -1,47 -1,47 +1,50 @@@
 -FATE_TESTS += fate-cscd
 +FATE_SCREEN += fate-cscd
  fate-cscd: CMD = framecrc -i $(SAMPLES)/CSCD/sample_video.avi -an -vsync 0 -pix_fmt rgb24
  
 -FATE_TESTS += fate-dxtory
++FATE_SCREEN += fate-dxtory
+ fate-dxtory: CMD = framecrc -i $(SAMPLES)/dxtory/dxtory_mic.avi
 -FATE_TESTS += fate-fraps-v0
 +FATE_SCREEN += fate-fraps-v0
  fate-fraps-v0: CMD = framecrc -i $(SAMPLES)/fraps/Griffin_Ragdoll01-partial.avi
  
 -FATE_TESTS += fate-fraps-v1
 +FATE_SCREEN += fate-fraps-v1
  fate-fraps-v1: CMD = framecrc -i $(SAMPLES)/fraps/sample-v1.avi -an
  
 -FATE_TESTS += fate-fraps-v2
 +FATE_SCREEN += fate-fraps-v2
  fate-fraps-v2: CMD = framecrc -i $(SAMPLES)/fraps/test3-nosound-partial.avi
  
 -FATE_TESTS += fate-fraps-v3
 +FATE_SCREEN += fate-fraps-v3
  fate-fraps-v3: CMD = framecrc -i $(SAMPLES)/fraps/psclient-partial.avi -pix_fmt rgb24
  
 -FATE_TESTS += fate-fraps-v4
 +FATE_SCREEN += fate-fraps-v4
  fate-fraps-v4: CMD = framecrc -i $(SAMPLES)/fraps/WoW_2006-11-03_14-58-17-19-nosound-partial.avi
  
 -FATE_TESTS += fate-fraps-v5
 +FATE_SCREEN += fate-fraps-v5
  fate-fraps-v5: CMD = framecrc -i $(SAMPLES)/fraps/fraps-v5-bouncing-balls-partial.avi
  
 -FATE_TESTS += fate-tscc-15bit
 +FATE_SCREEN += fate-tscc-15bit
  fate-tscc-15bit: CMD = framecrc -i $(SAMPLES)/tscc/oneminute.avi -t 15 -pix_fmt rgb24
  
 -FATE_TESTS += fate-tscc-32bit
 +FATE_SCREEN += fate-tscc-32bit
  fate-tscc-32bit: CMD = framecrc -i $(SAMPLES)/tscc/2004-12-17-uebung9-partial.avi -pix_fmt rgb24 -an
  
 -FATE_TESTS += fate-vmnc-16bit
 +FATE_SCREEN += fate-vmnc-16bit
  fate-vmnc-16bit: CMD = framecrc -i $(SAMPLES)/VMnc/test.avi -pix_fmt rgb24
  
 -FATE_TESTS += fate-vmnc-32bit
 +FATE_SCREEN += fate-vmnc-32bit
  fate-vmnc-32bit: CMD = framecrc -i $(SAMPLES)/VMnc/VS2k5DebugDemo-01-partial.avi -pix_fmt rgb24
  
 -FATE_TESTS += fate-zmbv-8bit
 +FATE_SCREEN += fate-zmbv-8bit
  fate-zmbv-8bit: CMD = framecrc -i $(SAMPLES)/zmbv/wc2_001-partial.avi -an -pix_fmt rgb24
  
 -FATE_TESTS += fate-zmbv-15bit
 +FATE_SCREEN += fate-zmbv-15bit
  fate-zmbv-15bit: CMD = framecrc -i $(SAMPLES)/zmbv/zmbv_15bit.avi -pix_fmt rgb24 -t 25
  
 -FATE_TESTS += fate-zmbv-16bit
 +FATE_SCREEN += fate-zmbv-16bit
  fate-zmbv-16bit: CMD = framecrc -i $(SAMPLES)/zmbv/zmbv_16bit.avi -pix_fmt rgb24 -t 25
  
 -FATE_TESTS += fate-zmbv-32bit
 +FATE_SCREEN += fate-zmbv-32bit
  fate-zmbv-32bit: CMD = framecrc -i $(SAMPLES)/zmbv/zmbv_32bit.avi -pix_fmt rgb24 -t 25
 +
 +FATE_TESTS += $(FATE_SCREEN)
 +fate-screen: $(FATE_SCREEN)