Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 21 Sep 2011 19:25:43 +0000 (21:25 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 21 Sep 2011 19:25:43 +0000 (21:25 +0200)
* qatar/master:
  swfdec: Add support for sample_rate_code 0 (5512 Hz)
  dct-test: factor out some common code and do whas was likely intended
  doc: library versions need to be bumped in version.h
  Revert "ffmpeg: get rid of useless AVInputStream.nb_streams."
  Remove some forgotten AVCodecContext.palctrl usage.
  lavc/utils: move avcodec_init() higher in the file.
  lavc: replace some deprecated FF_*_TYPE with AV_PICTURE_TYPE_*
  ac3dec: actually use drc_scale private option
  lavc: undeprecate AVPALETTE_SIZE and AVPALETTE_COUNT macros
  alsa: add missing header
  msmpeg4: remove leftover unused debug variable declaration
  Fix assert() calls that need updates after FF_COMMON_FRAME macro elimination.
  Fix av_dlog invocations with wrong or missing logging context.
  vf_yadif: add support to yuva420p
  vf_yadif: correct documentation on the parity parameter
  vf_yadif: copy buffer properties like aspect for second frame as well
  oma: support for encrypted files
  id3v2: add support for non-text and GEOB type tag frames
  des: add possibility to calculate DES-CBC-MAC with small buffer

Conflicts:
ffmpeg.c
libavcodec/dct-test.c
libavformat/mpegts.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
22 files changed:
1  2 
doc/developer.texi
libavcodec/ac3dec.c
libavcodec/avcodec.h
libavcodec/dct-test.c
libavcodec/h261dec.c
libavcodec/h264.c
libavcodec/h264_direct.c
libavcodec/mpeg12.c
libavcodec/mpegvideo.c
libavcodec/mpegvideo_enc.c
libavcodec/msmpeg4.c
libavcodec/options.c
libavcodec/utils.c
libavdevice/alsa-audio-common.c
libavformat/id3v2.c
libavformat/id3v2.h
libavformat/mov.c
libavformat/mpegts.c
libavformat/oma.c
libavformat/swfdec.c
libavutil/des.c
libavutil/des.h

Simple merge
Simple merge
Simple merge
@@@ -199,8 -199,57 +199,57 @@@ static inline void mmx_emms(void
  #endif
  }
  
 -static void init_block(DCTELEM block[64], int test, int is_idct, AVLFG *prng)
++static void init_block(DCTELEM block[64], int test, int is_idct, AVLFG *prng, int vals)
+ {
+     int i, j;
+     memset(block, 0, 64 * sizeof(*block));
+     switch (test) {
+     case 0:
+         for (i = 0; i < 64; i++)
 -            block[i] = (av_lfg_get(prng) % 512) - 256;
++            block[i] = (av_lfg_get(prng) % (2*vals)) -vals;
+         if (is_idct) {
+             ff_ref_fdct(block);
+             for (i = 0; i < 64; i++)
+                 block[i] >>= 3;
+         }
+         break;
+     case 1:
+         j = av_lfg_get(prng) % 10 + 1;
+         for (i = 0; i < j; i++)
 -            block[av_lfg_get(prng) % 64] = av_lfg_get(prng) % 512 - 256;
++            block[av_lfg_get(prng) % 64] = av_lfg_get(prng) % (2*vals) -vals;
+         break;
+     case 2:
 -        block[ 0] = av_lfg_get(prng) % 4096 - 2048;
++        block[ 0] = av_lfg_get(prng) % (16*vals) - (8*vals);
+         block[63] = (block[0] & 1) ^ 1;
+         break;
+     }
+ }
+ static void permute(DCTELEM dst[64], const DCTELEM src[64], int perm)
+ {
+     int i;
+     if (perm == MMX_PERM) {
+         for (i = 0; i < 64; i++)
+             dst[idct_mmx_perm[i]] = src[i];
+     } else if (perm == MMX_SIMPLE_PERM) {
+         for (i = 0; i < 64; i++)
+             dst[idct_simple_mmx_perm[i]] = src[i];
+     } else if (perm == SSE2_PERM) {
+         for (i = 0; i < 64; i++)
+             dst[(i & 0x38) | idct_sse2_row_perm[i & 7]] = src[i];
+     } else if (perm == PARTTRANS_PERM) {
+         for (i = 0; i < 64; i++)
+             dst[(i & 0x24) | ((i & 3) << 3) | ((i >> 3) & 3)] = src[i];
+     } else {
+         for (i = 0; i < 64; i++)
+             dst[i] = src[i];
+     }
+ }
  
 -static int dct_error(const struct algo *dct, int test, int is_idct, int speed)
 +static int dct_error(const struct algo *dct, int test, int is_idct, int speed, const int bits)
  {
      void (*ref)(DCTELEM *block) = is_idct ? ff_ref_idct : ff_ref_fdct;
      int it, i, scale;
      for (i = 0; i < 64; i++)
          sysErr[i] = 0;
      for (it = 0; it < NB_ITS; it++) {
-         for (i = 0; i < 64; i++)
-             block1[i] = 0;
-         switch (test) {
-         case 0:
-             for (i = 0; i < 64; i++)
-                 block1[i] = (av_lfg_get(&prng) % (2*vals)) -vals;
-             if (is_idct) {
-                 ff_ref_fdct(block1);
-                 for (i = 0; i < 64; i++)
-                     block1[i] >>= 3;
-             }
-             break;
-         case 1: {
-                 int num = av_lfg_get(&prng) % 10 + 1;
-                 for (i = 0; i < num; i++)
-                     block1[av_lfg_get(&prng) % 64] = av_lfg_get(&prng) % (2*vals) -vals;
-             }
-             break;
-         case 2:
-             block1[0] = av_lfg_get(&prng) % (16*vals) - (8*vals);
-             block1[63] = (block1[0] & 1) ^ 1;
-             break;
-         }
-         if (dct->format == MMX_PERM) {
-             for (i = 0; i < 64; i++)
-                 block[idct_mmx_perm[i]] = block1[i];
-         } else if (dct->format == MMX_SIMPLE_PERM) {
-             for (i = 0; i < 64; i++)
-                 block[idct_simple_mmx_perm[i]] = block1[i];
-         } else if (dct->format == SSE2_PERM) {
-             for (i = 0; i < 64; i++)
-                 block[(i & 0x38) | idct_sse2_row_perm[i & 7]] = block1[i];
-         } else if (dct->format == PARTTRANS_PERM) {
-             for (i = 0; i < 64; i++)
-                 block[(i & 0x24) | ((i & 3) << 3) | ((i >> 3) & 3)] = block1[i];
-         } else {
-             for (i = 0; i < 64; i++)
-                 block[i] = block1[i];
-         }
 -        init_block(block1, test, is_idct, &prng);
++        init_block(block1, test, is_idct, &prng, vals);
+         permute(block, block1, dct->format);
  
          dct->func(block);
          mmx_emms();
          return 0;
  
      /* speed test */
-     for (i = 0; i < 64; i++)
-         block1[i] = 0;
 -    init_block(block, test, is_idct, &prng);
 +
-     switch (test) {
-     case 0:
-         for (i = 0; i < 64; i++)
-             block1[i] = av_lfg_get(&prng) % (2*vals) -vals;
-         if (is_idct) {
-             ff_ref_fdct(block1);
-             for (i = 0; i < 64; i++)
-                 block1[i] >>= 3;
-         }
-         break;
-     case 1:
-     case 2:
-         block1[0] = av_lfg_get(&prng) % (2*vals) -vals;
-         block1[1] = av_lfg_get(&prng) % (2*vals) -vals;
-         block1[2] = av_lfg_get(&prng) % (2*vals) -vals;
-         block1[3] = av_lfg_get(&prng) % (2*vals) -vals;
-         break;
-     }
-     if (dct->format == MMX_PERM) {
-         for (i = 0; i < 64; i++)
-             block[idct_mmx_perm[i]] = block1[i];
-     } else if (dct->format == MMX_SIMPLE_PERM) {
-         for (i = 0; i < 64; i++)
-             block[idct_simple_mmx_perm[i]] = block1[i];
-     } else {
-         for (i = 0; i < 64; i++)
-             block[i] = block1[i];
-     }
++    init_block(block, test, is_idct, &prng, vals);
+     permute(block1, block, dct->format);
  
      ti = gettime();
      it1 = 0;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -1141,23 -1076,9 +1155,9 @@@ const char *avcodec_configuration(void
  const char *avcodec_license(void)
  {
  #define LICENSE_PREFIX "libavcodec license: "
 -    return LICENSE_PREFIX LIBAV_LICENSE + sizeof(LICENSE_PREFIX) - 1;
 +    return LICENSE_PREFIX FFMPEG_LICENSE + sizeof(LICENSE_PREFIX) - 1;
  }
  
- #if !FF_API_AVCODEC_INIT
- static
- #endif
- void avcodec_init(void)
- {
-     static int initialized = 0;
-     if (initialized != 0)
-         return;
-     initialized = 1;
-     dsputil_static_init();
- }
  void avcodec_flush_buffers(AVCodecContext *avctx)
  {
      if(HAVE_PTHREADS && avctx->active_thread_type&FF_THREAD_FRAME)
@@@ -29,8 -29,9 +29,9 @@@
   */
  
  #include <alsa/asoundlib.h>
 -#include "libavformat/avformat.h"
 +#include "avdevice.h"
  #include "libavutil/avassert.h"
+ #include "libavutil/audioconvert.h"
  
  #include "alsa-audio.h"
  
@@@ -189,10 -324,29 +331,30 @@@ finish
          av_dict_set(m, "date", date, 0);
  }
  
- static void ff_id3v2_parse(AVFormatContext *s, int len, uint8_t version, uint8_t flags)
+ /**
+  * Get the corresponding ID3v2EMFunc struct for a tag.
+  * @param isv34 Determines if v2.2 or v2.3/4 strings are used
+  * @return A pointer to the ID3v2EMFunc struct if found, NULL otherwise.
+  */
+ static const ID3v2EMFunc *get_extra_meta_func(const char *tag, int isv34)
+ {
+     int i = 0;
+     while (ff_id3v2_extra_meta_funcs[i].tag3) {
+         if (!memcmp(tag,
+                     (isv34 ?
+                         ff_id3v2_extra_meta_funcs[i].tag4 :
+                         ff_id3v2_extra_meta_funcs[i].tag3),
+                     (isv34 ? 4 : 3)))
+             return &ff_id3v2_extra_meta_funcs[i];
+         i++;
+     }
+     return NULL;
+ }
+ static void ff_id3v2_parse(AVFormatContext *s, int len, uint8_t version, uint8_t flags, ID3v2ExtraMeta **extra_meta)
  {
 -    int isv34, tlen, unsync;
 +    int isv34, unsync;
 +    unsigned tlen;
      char tag[5];
      int64_t next, end = avio_tell(s->pb) + len;
      int taghdrlen;
Simple merge
Simple merge
Simple merge
@@@ -3,10 -3,11 +3,11 @@@
   *
   * Copyright (c) 2008 Maxim Poliakovski
   *               2008 Benjamin Larsson
+  *               2011 David Goldwich
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
Simple merge
diff --cc libavutil/des.c
Simple merge
diff --cc libavutil/des.h
Simple merge