Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 28 Jan 2012 23:34:59 +0000 (00:34 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 28 Jan 2012 23:34:59 +0000 (00:34 +0100)
* qatar/master:
  aacenc: Fix LONG_START windowing.
  aacenc: Fix a bug where deinterleaved samples were stored in the wrong place.
  avplay: use the correct array size for stride.
  lavc: extend doxy for avcodec_alloc_context3().
  APIchanges: mention avcodec_alloc_context()/2/3
  avcodec_align_dimensions2: set only 4 linesizes, not AV_NUM_DATA_POINTERS.
  aacsbr: ARM NEON optimised sbrdsp functions
  aacsbr: align some arrays
  aacsbr: move some simdable loops to function pointers
  cosmetics: Remove extra newlines at EOF

Conflicts:
libavcodec/utils.c
libavfilter/formats.c
libavutil/mem.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
99 files changed:
1  2 
doc/APIchanges
libavcodec/4xm.c
libavcodec/Makefile
libavcodec/aacenc.c
libavcodec/aacsbr.c
libavcodec/aacsbrdata.h
libavcodec/acelp_filters.c
libavcodec/allcodecs.c
libavcodec/alsdec.c
libavcodec/amrnbdata.h
libavcodec/arm/Makefile
libavcodec/atrac.c
libavcodec/aura.c
libavcodec/avcodec.h
libavcodec/bitstream.c
libavcodec/cscd.c
libavcodec/dvdata.c
libavcodec/dxa.c
libavcodec/dxva2.c
libavcodec/dxva2_h264.c
libavcodec/dxva2_mpeg2.c
libavcodec/dxva2_vc1.c
libavcodec/escape124.c
libavcodec/fft.c
libavcodec/flashsvenc.c
libavcodec/h261.c
libavcodec/h261enc.c
libavcodec/h264_cavlc.c
libavcodec/h264_mp4toannexb_bsf.c
libavcodec/idcinvideo.c
libavcodec/imgconvert.c
libavcodec/intelh263dec.c
libavcodec/kbdwin.c
libavcodec/libvo-aacenc.c
libavcodec/libvo-amrwbenc.c
libavcodec/libxavs.c
libavcodec/libxvid_rc.c
libavcodec/mace.c
libavcodec/mathops.h
libavcodec/mdec.c
libavcodec/mlp_parser.h
libavcodec/mpeg12.c
libavcodec/mpeg4video.c
libavcodec/msrledec.c
libavcodec/msrledec.h
libavcodec/nellymoserdec.c
libavcodec/nuv.c
libavcodec/pcm_tablegen.c
libavcodec/psymodel.c
libavcodec/qtrle.c
libavcodec/ratecontrol.h
libavcodec/rl2.c
libavcodec/sbr.h
libavcodec/sgidec.c
libavcodec/smacker.c
libavcodec/snow.c
libavcodec/tscc.c
libavcodec/ulti.c
libavcodec/utils.c
libavcodec/utvideo.c
libavcodec/vb.c
libavcodec/vmnc.c
libavcodec/vorbisdec.c
libavcodec/wma.c
libavcodec/xxan.c
libavcodec/zmbv.c
libavdevice/avdevice.h
libavfilter/defaults.c
libavfilter/formats.c
libavfilter/vf_aspect.c
libavfilter/vf_format.c
libavformat/aea.c
libavformat/avio.c
libavformat/httpauth.c
libavformat/id3v1.h
libavformat/iss.c
libavformat/lxfdec.c
libavformat/metadata.c
libavformat/movenchint.c
libavformat/network.c
libavformat/omadec.c
libavformat/rl2.c
libavformat/rtpdec_amr.c
libavformat/rtpdec_h263.c
libavformat/rtpenc_amr.c
libavformat/rtpenc_chain.c
libavformat/rtpenc_mpv.c
libavformat/rtsp.c
libavformat/rtspenc.c
libavformat/sapdec.c
libavformat/sapenc.c
libavformat/sdp.c
libavformat/seek.c
libavutil/crc.h
libavutil/intfloat_readwrite.c
libavutil/md5.h
libavutil/mem.c
libswscale/rgb2rgb.c
libswscale/utils.c

diff --cc doc/APIchanges
@@@ -198,68 -145,27 +198,70 @@@ API changes, most recent first
    - add41de..abc78a5 Do not include intfloat_readwrite.h,
      mathematics.h, rational.h, pixfmt.h, or log.h from avutil.h.
  
 -2011-08-16 - 48f9e45 - lavf 53.4.0
 +2011-08-16 - 48f9e45 - lavf 53.8.0
    Add avformat_query_codec().
  
 -2011-08-16 - bca06e7 - lavc 53.8.0
 +2011-08-16 - bca06e7 - lavc 53.11.0
    Add avcodec_get_type().
  
 -2011-08-06 - 2f63440 - lavf 53.4.0
 +2011-08-06 - 2f63440 - lavf 53.7.0
    Add error_recognition to AVFormatContext.
  
 -2011-08-02 - 9d39cbf - lavc 53.7.1
 +2011-08-02 - 9d39cbf - lavc 53.9.1
    Add AV_PKT_FLAG_CORRUPT AVPacket flag.
  
 -2011-07-10 - a67c061 - lavf 53.3.0
 +2011-07-16 - b57df29 - lavfi 2.27.0
 +  Add audio packing negotiation fields and helper functions.
 +
 +  In particular, add AVFilterPacking enum, planar, in_packings and
 +  out_packings fields to AVFilterLink, and the functions:
 +  avfilter_set_common_packing_formats()
 +  avfilter_all_packing_formats()
 +
 +2011-07-10 - a67c061 - lavf 53.6.0
    Add avformat_find_stream_info(), deprecate av_find_stream_info().
  
 -2011-07-10 - 0b950fe - lavc 53.6.0
 +2011-07-10 - 0b950fe - lavc 53.8.0
    Add avcodec_open2(), deprecate avcodec_open().
+   Add avcodec_alloc_context3. Deprecate avcodec_alloc_context() and
+   avcodec_alloc_context2().
  
 +2011-07-01 - b442ca6 - lavf 53.5.0 - avformat.h
 +  Add function av_get_output_timestamp().
 +
 +2011-06-28 - 5129336 - lavu 51.11.0 - avutil.h
 +  Define the AV_PICTURE_TYPE_NONE value in AVPictureType enum.
 +
 +2011-06-19 - fd2c0a5 - lavfi 2.23.0 - avfilter.h
 +  Add layout negotiation fields and helper functions.
 +
 +  In particular, add in_chlayouts and out_chlayouts to AVFilterLink,
 +  and the functions:
 +  avfilter_set_common_sample_formats()
 +  avfilter_set_common_channel_layouts()
 +  avfilter_all_channel_layouts()
 +
 +2011-06-19 - 527ca39 - lavfi 2.22.0 - AVFilterFormats
 +  Change type of AVFilterFormats.formats from int * to int64_t *,
 +  and update formats handling API accordingly.
 +
 +  avfilter_make_format_list() still takes a int32_t array and converts
 +  it to int64_t. A new function, avfilter_make_format64_list(), that
 +  takes int64_t arrays has been added.
 +
 +2011-06-19 - 44f669e - lavfi 2.21.0 - vsink_buffer.h
 +  Add video sink buffer and vsink_buffer.h public header.
 +
 +2011-06-12 - 9fdf772 - lavfi 2.18.0 - avcodec.h
 +  Add avfilter_get_video_buffer_ref_from_frame() function in
 +  libavfilter/avcodec.h.
 +
 +2011-06-12 - c535494 - lavfi 2.17.0 - avfiltergraph.h
 +  Add avfilter_inout_alloc() and avfilter_inout_free() functions.
 +
 +2011-06-12 - 6119b23 - lavfi 2.16.0 - avfilter_graph_parse()
 +  Change avfilter_graph_parse() signature.
 +
  2011-06-23 - 67e9ae1 - lavu 51.8.0 - attributes.h
    Add av_printf_format().
  
Simple merge
Simple merge
Simple merge
@@@ -32,8 -32,8 +32,9 @@@
  #include "aacsbrdata.h"
  #include "fft.h"
  #include "aacps.h"
+ #include "sbrdsp.h"
  #include "libavutil/libm.h"
 +#include "libavutil/avassert.h"
  
  #include <stdint.h>
  #include <float.h>
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -54,9 -54,5 +54,8 @@@ typedef struct MLPHeaderInf
  
  
  int ff_mlp_read_major_sync(void *log, MLPHeaderInfo *mh, GetBitContext *gb);
 +uint64_t ff_truehd_layout(int chanmap);
 +
 +extern const uint64_t ff_mlp_layout[32];
  
  #endif /* AVCODEC_MLP_PARSER_H */
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -251,8 -228,8 +251,8 @@@ void avcodec_align_dimensions2(AVCodecC
  #if HAVE_MMX
      if(s->codec_id == CODEC_ID_SVQ1 || s->codec_id == CODEC_ID_VP5 ||
         s->codec_id == CODEC_ID_VP6 || s->codec_id == CODEC_ID_VP6F ||
 -       s->codec_id == CODEC_ID_VP6A) {
 +       s->codec_id == CODEC_ID_VP6A || s->codec_id == CODEC_ID_DIRAC) {
-         for (i = 0; i < AV_NUM_DATA_POINTERS; i++)
+         for (i = 0; i < 4; i++)
              linesize_align[i] = 16;
      }
  #endif
Simple merge
diff --cc libavcodec/vb.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -267,8 -291,9 +267,7 @@@ AVFilterBufferRef *avfilter_null_get_vi
  }
  
  AVFilterBufferRef *avfilter_null_get_audio_buffer(AVFilterLink *link, int perms,
 -                                                  enum AVSampleFormat sample_fmt, int size,
 -                                                  uint64_t channel_layout, int packed)
 +                                                  int nb_samples)
  {
 -    return avfilter_get_audio_buffer(link->dst->outputs[0], perms, sample_fmt,
 -                                     size, channel_layout, packed);
 +    return avfilter_get_audio_buffer(link->dst->outputs[0], perms, nb_samples);
  }
@@@ -262,98 -181,3 +262,99 @@@ void avfilter_formats_changeref(AVFilte
          *oldref = NULL;
      }
  }
 +
 +/* internal functions for parsing audio format arguments */
 +
 +int ff_parse_pixel_format(enum PixelFormat *ret, const char *arg, void *log_ctx)
 +{
 +    char *tail;
 +    int pix_fmt = av_get_pix_fmt(arg);
 +    if (pix_fmt == PIX_FMT_NONE) {
 +        pix_fmt = strtol(arg, &tail, 0);
 +        if (*tail || (unsigned)pix_fmt >= PIX_FMT_NB) {
 +            av_log(log_ctx, AV_LOG_ERROR, "Invalid pixel format '%s'\n", arg);
 +            return AVERROR(EINVAL);
 +        }
 +    }
 +    *ret = pix_fmt;
 +    return 0;
 +}
 +
 +int ff_parse_sample_format(int *ret, const char *arg, void *log_ctx)
 +{
 +    char *tail;
 +    int sfmt = av_get_sample_fmt(arg);
 +    if (sfmt == AV_SAMPLE_FMT_NONE) {
 +        sfmt = strtol(arg, &tail, 0);
 +        if (*tail || (unsigned)sfmt >= AV_SAMPLE_FMT_NB) {
 +            av_log(log_ctx, AV_LOG_ERROR, "Invalid sample format '%s'\n", arg);
 +            return AVERROR(EINVAL);
 +        }
 +    }
 +    *ret = sfmt;
 +    return 0;
 +}
 +
 +int ff_parse_sample_rate(int *ret, const char *arg, void *log_ctx)
 +{
 +    char *tail;
 +    double srate = av_strtod(arg, &tail);
 +    if (*tail || srate < 1 || (int)srate != srate || srate > INT_MAX) {
 +        av_log(log_ctx, AV_LOG_ERROR, "Invalid sample rate '%s'\n", arg);
 +        return AVERROR(EINVAL);
 +    }
 +    *ret = srate;
 +    return 0;
 +}
 +
 +int ff_parse_channel_layout(int64_t *ret, const char *arg, void *log_ctx)
 +{
 +    char *tail;
 +    int64_t chlayout = av_get_channel_layout(arg);
 +    if (chlayout == 0) {
 +        chlayout = strtol(arg, &tail, 10);
 +        if (*tail || chlayout == 0) {
 +            av_log(log_ctx, AV_LOG_ERROR, "Invalid channel layout '%s'\n", arg);
 +            return AVERROR(EINVAL);
 +        }
 +    }
 +    *ret = chlayout;
 +    return 0;
 +}
 +
 +int ff_parse_packing_format(int *ret, const char *arg, void *log_ctx)
 +{
 +    char *tail;
 +    int planar = strtol(arg, &tail, 10);
 +    if (*tail) {
 +        planar = !strcmp(arg, "packed") ? 0:
 +                 !strcmp(arg, "planar") ? 1: -1;
 +    }
 +
 +    if (planar != 0 && planar != 1) {
 +        av_log(log_ctx, AV_LOG_ERROR, "Invalid packing format '%s'\n", arg);
 +        return AVERROR(EINVAL);
 +    }
 +    *ret = planar;
 +    return 0;
 +}
 +
 +#ifdef TEST
 +
 +#undef printf
 +
 +int main(void)
 +{
 +    const int64_t *cl;
 +    char buf[512];
 +
 +    for (cl = avfilter_all_channel_layouts; *cl != -1; cl++) {
 +        av_get_channel_layout_string(buf, sizeof(buf), -1, *cl);
 +        printf("%s\n", buf);
 +    }
 +
 +    return 0;
 +}
 +
 +#endif
++
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc libavutil/crc.h
Simple merge
Simple merge
diff --cc libavutil/md5.h
Simple merge
diff --cc libavutil/mem.c
@@@ -207,24 -170,3 +207,25 @@@ char *av_strdup(const char *s
      }
      return ptr;
  }
 +
 +/* add one element to a dynamic array */
 +void av_dynarray_add(void *tab_ptr, int *nb_ptr, void *elem)
 +{
 +    /* see similar ffmpeg.c:grow_array() */
 +    int nb, nb_alloc;
 +    intptr_t *tab;
 +
 +    nb = *nb_ptr;
 +    tab = *(intptr_t**)tab_ptr;
 +    if ((nb & (nb - 1)) == 0) {
 +        if (nb == 0)
 +            nb_alloc = 1;
 +        else
 +            nb_alloc = nb * 2;
 +        tab = av_realloc(tab, nb_alloc * sizeof(intptr_t));
 +        *(intptr_t**)tab_ptr = tab;
 +    }
 +    tab[nb++] = (intptr_t)elem;
 +    *nb_ptr = nb;
 +}
++
Simple merge
Simple merge