Merge remote branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 13 Apr 2011 00:49:22 +0000 (02:49 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 13 Apr 2011 00:49:22 +0000 (02:49 +0200)
* qatar/master:
Partially merged:flvdec: Allow parsing keyframes metadata without seeking in most cases
  Error out if vaapi is not found
  avio: undeprecate av_url_read_fseek/fpause under nicer names
  libvo-*: Don't use deprecated sample format names and enum names
DUPLICATE  flvdec: Fix support for flvtool2 "keyframes based" generated index
DUPLICATE  libavcodec: Use "const enum AVSampleFormat[]" in AVCodec initialization
  Fix the conversion of AV_SAMPLE_FMT_FLT and _DBL to AV_SAMPLE_FMT_S32.
  Convert some undefined 1<<31 shifts into 1U<<31.

Conflicts:
configure
libavcodec/libvo-aacenc.c
libavcodec/libvo-amrwbenc.c
libavformat/flvdec.c

Marged-by: Michael Niedermayer <michaelni@gmx.at>
13 files changed:
1  2 
configure
libavcodec/aacdec.c
libavcodec/audioconvert.c
libavcodec/dsputil.c
libavcodec/fraps.c
libavcodec/ppc/fft_altivec.c
libavcodec/vorbis_enc.c
libavformat/asfdec.c
libavformat/avio.h
libavformat/avio_internal.h
libavformat/aviobuf.c
libavformat/flvdec.c
libavformat/utils.c

diff --cc configure
+++ b/configure
@@@ -2871,7 -2840,7 +2871,8 @@@ for thread in $THREADS_LIST; d
  done
  
  check_lib math.h sin -lm
 +disabled crystalhd || check_lib libcrystalhd/libcrystalhd_if.h DtsCrystalHDVersion -lcrystalhd || disable crystalhd
+ enabled vaapi && require vaapi va/va.h vaInitialize -lva
  
  check_mathfunc exp2
  check_mathfunc exp2f
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -130,12 -135,11 +130,12 @@@ static int parse_keyframes_index(AVForm
      char str_val[256];
      int64_t *times = NULL;
      int64_t *filepositions = NULL;
-     int ret = 0;
-     int64_t initial_pos = url_ftell(ioc);
+     int ret = AVERROR(ENOSYS);
+     int64_t initial_pos = avio_tell(ioc);
  
      while (avio_tell(ioc) < max_pos - 2 && amf_get_string(ioc, str_val, sizeof(str_val)) > 0) {
 -        int64_t* current_array;
 +        int64_t** current_array;
 +        unsigned int arraylen;
  
          // Expect array object in context
          if (avio_r8(ioc) != AMF_DATA_TYPE_ARRAY)
          for (i = 0; i < arraylen && avio_tell(ioc) < max_pos - 1; i++) {
              if (avio_r8(ioc) != AMF_DATA_TYPE_NUMBER)
                  goto finish;
 -            num_val = av_int2dbl(avio_rb64(ioc));
 -            current_array[i] = num_val;
 +            current_array[0][i] = av_int2dbl(avio_rb64(ioc));
          }
+         if (times && filepositions) {
+             // All done, exiting at a position allowing amf_parse_object
+             // to finish parsing the object
+             ret = 0;
+             break;
+         }
      }
  
 -    if (timeslen == fileposlen)
 -         for(i = 0; i < arraylen; i++)
 +    if (timeslen == fileposlen) {
 +         for(i = 0; i < timeslen; i++)
               av_add_index_entry(vstream, filepositions[i], times[i]*1000, 0, 0, AVINDEX_KEYFRAME);
 -    else
 +    else
          av_log(s, AV_LOG_WARNING, "Invalid keyframes object, skipping.\n");
  
  finish:
Simple merge