]> git.sesse.net Git - ffmpeg/commitdiff
Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 24 Jan 2012 01:41:53 +0000 (02:41 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 24 Jan 2012 01:41:53 +0000 (02:41 +0100)
* qatar/master:
  Remove ffmpeg.
  aacenc: Simplify windowing
  aacenc: Move saved overlap samples to the beginning of the same buffer as incoming samples.
  aacenc: Deinterleave input samples before processing.
  aacenc: Store channel count in AACEncContext.
  aacenc: Move Q^3/4 calculation to it's own table
  aacenc: Request normalized float samples instead of converting s16 samples to float.
  aacpsy: Replace an if with FFMAX in LAME windowing.
  aacenc: cosmetics, replace 'rd' with 'bits' in codebook_trellis_rate to make it more clear what is being calculated.
  aacpsy: cosmetics, change a FIXME to a NOTE about subshort comparisons
  aacenc: cosmetics: move init() and end() to the bottom of the file.
  aacenc: aac_encode_init() cleanup
  XWD encoder and decoder
  vc1: don't read the interpfrm and bfraction elements for interlaced frames
  mxfdec: fix memleak on mxf_read_close()
  westwood: split the AUD and VQA demuxers into separate files.

Conflicts:
.gitignore
Changelog
Makefile
configure
doc/ffmpeg.texi
ffmpeg.c
libavcodec/Makefile
libavcodec/aacenc.c
libavcodec/allcodecs.c
libavcodec/avcodec.h
libavcodec/version.h
libavformat/Makefile
libavformat/img2.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
16 files changed:
1  2 
Changelog
doc/general.texi
libavcodec/Makefile
libavcodec/aaccoder.c
libavcodec/aacenc.c
libavcodec/aacenc.h
libavcodec/aacpsy.c
libavcodec/allcodecs.c
libavcodec/avcodec.h
libavcodec/psymodel.c
libavcodec/psymodel.h
libavcodec/vc1.c
libavcodec/version.h
libavformat/Makefile
libavformat/img2.c
libavformat/westwood_vqa.c

diff --cc Changelog
index 15c3e712eac734582b3d91e7c0f778644cd4a558,ae092b1f5010593cf5a5572c41c69ea31d340881..6f69c4552968b33a0cc3ce7e9af8dc442a8aa535
+++ b/Changelog
@@@ -2,41 -2,28 +2,42 @@@ Entries are sorted chronologically fro
  releases are sorted from youngest to oldest.
  
  
 -version 0.8:
 -
 +version next:
 +- v410 Quicktime Uncompressed 4:4:4 10-bit encoder and decoder
 +- SBaGen (SBG) binaural beats script demuxer
 +- OpenMG Audio muxer
 +- Timecode extraction in DV and MOV
 +- thumbnail video filter
 +- XML output in ffprobe
 +- asplit audio filter
 +- tinterlace video filter
 +- astreamsync audio filter
 +- amerge audio filter
  - GSM audio parser
  - SMJPEG muxer
 -
 -
 -version 0.8_beta2:
 -
+ - XWD encoder and decoder
  - Automatic thread count based on detection number of (available) CPU cores
 -- Deprecate libpostproc. If desired, the switch --enable-postproc will
 -  enable it but it may be removed in a later Libav release.
 +- y41p Brooktree Uncompressed 4:1:1 12-bit encoder and decoder
 +- ffprobe -show_error option
 +- Avid 1:1 10-bit RGB Packer decoder
 +- v308 Quicktime Uncompressed 4:4:4 encoder and decoder
 +- yuv4 libquicktime packed 4:2:0 encoder and decoder
 +- ffprobe -show_frames option
 +- silencedetect audio filter
 +- ffprobe -show_program_version, -show_library_versions, -show_versions options
  - rv34: frame-level multi-threading
  - optimized iMDCT transform on x86 using SSE for for mpegaudiodec
 +- Improved PGS subtitle decoder
  
  
 -version 0.8_beta1:
 +version 0.9:
  
 +- openal input device added
 +- boxblur filter added
  - BWF muxer
  - Flash Screen Video 2 decoder
 -- ffplay/ffprobe/ffserver renamed to avplay/avprobe/avserver
 -- ffmpeg deprecated, added avconv, which is almost the same for now, except
 +- lavfi input device added
 +- added avconv, which is almost the same for now, except
  for a few incompatible changes in the options, which will hopefully make them
  easier to use. The changes are:
      * The options placement is now strictly enforced! While in theory the
Simple merge
index f094d16a886f6e8dc2bba85a55e2adc74112a98a,3468f66863e41bcae424caa2867dd798d342d152..5942f67a8b6006a3391bae9e088fb86e8521050e
@@@ -470,11 -435,9 +470,13 @@@ OBJS-$(CONFIG_XBIN_DECODER)            
  OBJS-$(CONFIG_XL_DECODER)              += xl.o
  OBJS-$(CONFIG_XSUB_DECODER)            += xsubdec.o
  OBJS-$(CONFIG_XSUB_ENCODER)            += xsubenc.o
+ OBJS-$(CONFIG_XWD_DECODER)             += xwddec.o
+ OBJS-$(CONFIG_XWD_ENCODER)             += xwdenc.o
 +OBJS-$(CONFIG_Y41P_DECODER)            += y41pdec.o
 +OBJS-$(CONFIG_Y41P_ENCODER)            += y41penc.o
  OBJS-$(CONFIG_YOP_DECODER)             += yop.o
 +OBJS-$(CONFIG_YUV4_DECODER)            += yuv4dec.o
 +OBJS-$(CONFIG_YUV4_ENCODER)            += yuv4enc.o
  OBJS-$(CONFIG_ZLIB_DECODER)            += lcldec.o
  OBJS-$(CONFIG_ZLIB_ENCODER)            += lclenc.o
  OBJS-$(CONFIG_ZMBV_DECODER)            += zmbv.o
Simple merge
index 5ab0f1ff6e89a47b588f2f5159702ac4d41e6bd8,760736214244e449566b8eb61b38a02f651f1d6a..a88d75a610ba7cb608391eba12360dddc5f0ec23
@@@ -666,6 -664,102 +664,102 @@@ static av_cold int aac_encode_end(AVCod
      return 0;
  }
  
 -    s->coder = &ff_aac_coders[2];
+ static av_cold int dsp_init(AVCodecContext *avctx, AACEncContext *s)
+ {
+     int ret = 0;
+     dsputil_init(&s->dsp, avctx);
+     // window init
+     ff_kbd_window_init(ff_aac_kbd_long_1024, 4.0, 1024);
+     ff_kbd_window_init(ff_aac_kbd_short_128, 6.0, 128);
+     ff_init_ff_sine_windows(10);
+     ff_init_ff_sine_windows(7);
+     if (ret = ff_mdct_init(&s->mdct1024, 11, 0, 32768.0))
+         return ret;
+     if (ret = ff_mdct_init(&s->mdct128,   8, 0, 32768.0))
+         return ret;
+     return 0;
+ }
+ static av_cold int alloc_buffers(AVCodecContext *avctx, AACEncContext *s)
+ {
+     FF_ALLOCZ_OR_GOTO(avctx, s->buffer.samples, 3 * 1024 * s->channels * sizeof(s->buffer.samples[0]), alloc_fail);
+     FF_ALLOCZ_OR_GOTO(avctx, s->cpe, sizeof(ChannelElement) * s->chan_map[0], alloc_fail);
+     FF_ALLOCZ_OR_GOTO(avctx, avctx->extradata, 5 + FF_INPUT_BUFFER_PADDING_SIZE, alloc_fail);
+     for(int ch = 0; ch < s->channels; ch++)
+         s->planar_samples[ch] = s->buffer.samples + 3 * 1024 * ch;
+     return 0;
+ alloc_fail:
+     return AVERROR(ENOMEM);
+ }
+ static av_cold int aac_encode_init(AVCodecContext *avctx)
+ {
+     AACEncContext *s = avctx->priv_data;
+     int i, ret = 0;
+     const uint8_t *sizes[2];
+     uint8_t grouping[AAC_MAX_CHANNELS];
+     int lengths[2];
+     avctx->frame_size = 1024;
+     for (i = 0; i < 16; i++)
+         if (avctx->sample_rate == avpriv_mpeg4audio_sample_rates[i])
+             break;
+     s->channels = avctx->channels;
+     ERROR_IF(i == 16,
+              "Unsupported sample rate %d\n", avctx->sample_rate);
+     ERROR_IF(s->channels > AAC_MAX_CHANNELS,
+              "Unsupported number of channels: %d\n", s->channels);
+     ERROR_IF(avctx->profile != FF_PROFILE_UNKNOWN && avctx->profile != FF_PROFILE_AAC_LOW,
+              "Unsupported profile %d\n", avctx->profile);
+     ERROR_IF(1024.0 * avctx->bit_rate / avctx->sample_rate > 6144 * s->channels,
+              "Too many bits per frame requested\n");
+     s->samplerate_index = i;
+     s->chan_map = aac_chan_configs[s->channels-1];
+     if (ret = dsp_init(avctx, s))
+         goto fail;
+     if (ret = alloc_buffers(avctx, s))
+         goto fail;
+     avctx->extradata_size = 5;
+     put_audio_specific_config(avctx);
+     sizes[0]   = swb_size_1024[i];
+     sizes[1]   = swb_size_128[i];
+     lengths[0] = ff_aac_num_swb_1024[i];
+     lengths[1] = ff_aac_num_swb_128[i];
+     for (i = 0; i < s->chan_map[0]; i++)
+         grouping[i] = s->chan_map[i + 1] == TYPE_CPE;
+     if (ret = ff_psy_init(&s->psy, avctx, 2, sizes, lengths, s->chan_map[0], grouping))
+         goto fail;
+     s->psypp = ff_psy_preprocess_init(avctx);
++    s->coder = &ff_aac_coders[s->options.aac_coder];
+     s->lambda = avctx->global_quality ? avctx->global_quality : 120;
+     ff_aac_tableinit();
+     for (i = 0; i < 428; i++)
+         ff_aac_pow34sf_tab[i] = sqrt(ff_aac_pow2sf_tab[i] * sqrt(ff_aac_pow2sf_tab[i]));
+     return 0;
+ fail:
+     aac_encode_end(avctx);
+     return ret;
+ }
  #define AACENC_FLAGS AV_OPT_FLAG_ENCODING_PARAM | AV_OPT_FLAG_AUDIO_PARAM
  static const AVOption aacenc_options[] = {
      {"stereo_mode", "Stereo coding method", offsetof(AACEncContext, options.stereo_mode), AV_OPT_TYPE_INT, {.dbl = 0}, -1, 1, AACENC_FLAGS, "stereo_mode"},
Simple merge
Simple merge
index 1e36235f3aa6d4a0ab7b92266a6308d6ba2958a0,d00bd0b79cfcbdb14738fdcd2588ed6ed041f832..9ce50d2634e1e1af67c431bfd128543e3af9ab61
@@@ -245,9 -230,8 +245,10 @@@ void avcodec_register_all(void
      REGISTER_DECODER (XAN_WC3, xan_wc3);
      REGISTER_DECODER (XAN_WC4, xan_wc4);
      REGISTER_DECODER (XL, xl);
+     REGISTER_ENCDEC  (XWD, xwd);
 +    REGISTER_ENCDEC  (Y41P, y41p);
      REGISTER_DECODER (YOP, yop);
 +    REGISTER_ENCDEC  (YUV4, yuv4);
      REGISTER_ENCDEC  (ZLIB, zlib);
      REGISTER_ENCDEC  (ZMBV, zmbv);
  
index 215bfc9bb4e54a045c7b29c254aabe5572ddb14f,967a134bdd3b3d18523c141cf6af833cc21c5c25..cbcf4e3c4207d9e60c71e29c596c2ac068f417d7
@@@ -255,14 -254,7 +255,15 @@@ enum CodecID 
      CODEC_ID_VBLE,
      CODEC_ID_DXTORY,
      CODEC_ID_V410,
+     CODEC_ID_XWD,
 +    CODEC_ID_Y41P       = MKBETAG('Y','4','1','P'),
 +    CODEC_ID_UTVIDEO = 0x800,
 +    CODEC_ID_ESCAPE130  = MKBETAG('E','1','3','0'),
 +    CODEC_ID_AVRP       = MKBETAG('A','V','R','P'),
 +
 +    CODEC_ID_G2M        = MKBETAG( 0 ,'G','2','M'),
 +    CODEC_ID_V308       = MKBETAG('V','3','0','8'),
 +    CODEC_ID_YUV4       = MKBETAG('Y','U','V','4'),
  
      /* various PCM "codecs" */
      CODEC_ID_FIRST_AUDIO = 0x10000,     ///< A dummy id pointing at the start of audio codecs
Simple merge
Simple merge
Simple merge
index 5125916fe16a6a74bbce8455e54c1a9e733af4cd,77e16823f9077b74e34e1120f0d1165d8605d62d..4473c9404dff81d1504a82c4c74bb9ead18da633
@@@ -21,8 -21,8 +21,8 @@@
  #define AVCODEC_VERSION_H
  
  #define LIBAVCODEC_VERSION_MAJOR 53
- #define LIBAVCODEC_VERSION_MINOR 57
- #define LIBAVCODEC_VERSION_MICRO 105
 -#define LIBAVCODEC_VERSION_MINOR 35
 -#define LIBAVCODEC_VERSION_MICRO  0
++#define LIBAVCODEC_VERSION_MINOR 58
++#define LIBAVCODEC_VERSION_MICRO 100
  
  #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
                                                 LIBAVCODEC_VERSION_MINOR, \
index 7c7cea5aad361e0e490c1fc966740d6d1390b774,a19ff3c48bfedcaaf7e0b2d4d4fb70bd73195bcf..e4e32afba2cfb114f1562c46a31c421fae25daa3
@@@ -326,14 -308,12 +326,14 @@@ OBJS-$(CONFIG_WC3_DEMUXER
  OBJS-$(CONFIG_WEBM_MUXER)                += matroskaenc.o matroska.o \
                                              riff.o isom.o avc.o \
                                              flacenc_header.o avlanguage.o
- OBJS-$(CONFIG_WSAUD_DEMUXER)             += westwood.o
- OBJS-$(CONFIG_WSVQA_DEMUXER)             += westwood.o
+ OBJS-$(CONFIG_WSAUD_DEMUXER)             += westwood_aud.o
+ OBJS-$(CONFIG_WSVQA_DEMUXER)             += westwood_vqa.o
 -OBJS-$(CONFIG_WTV_DEMUXER)               += wtv.o asfdec.o asf.o asfcrypt.o \
 +OBJS-$(CONFIG_WTV_DEMUXER)               += wtvdec.o wtv.o asfdec.o asf.o asfcrypt.o \
                                              avlanguage.o mpegts.o isom.o riff.o
 +OBJS-$(CONFIG_WTV_MUXER)                 += wtvenc.o wtv.o asf.o asfenc.o riff.o
  OBJS-$(CONFIG_WV_DEMUXER)                += wv.o apetag.o
  OBJS-$(CONFIG_XA_DEMUXER)                += xa.o
 +OBJS-$(CONFIG_XBIN_DEMUXER)              += bintext.o sauce.o
  OBJS-$(CONFIG_XMV_DEMUXER)               += xmv.o riff.o
  OBJS-$(CONFIG_XWMA_DEMUXER)              += xwma.o riff.o
  OBJS-$(CONFIG_YOP_DEMUXER)               += yop.o
index 775f5e7a0570693c114a00d6d0d0824c26c96798,e3e7d11e43d73acf8648de5b3440bad7a7ceaa78..8adba0ac5fdd8fe06d26cc82baa5b27ac7d4fdb1
@@@ -527,8 -501,8 +528,8 @@@ static const AVClass img2mux_class = 
  AVOutputFormat ff_image2_muxer = {
      .name           = "image2",
      .long_name      = NULL_IF_CONFIG_SMALL("image2 sequence"),
 -    .extensions     = "bmp,dpx,jpeg,jpg,ljpg,pam,pbm,pcx,pgm,pgmyuv,png,"
 -                      "ppm,sgi,tga,tif,tiff,jp2,xwd",
 +    .extensions     = "bmp,dpx,jls,jpeg,jpg,ljpg,pam,pbm,pcx,pgm,pgmyuv,png,"
-                       "ppm,sgi,tga,tif,tiff,jp2,j2c",
++                      "ppm,sgi,tga,tif,tiff,jp2,j2c,xwd",
      .priv_data_size = sizeof(VideoData),
      .video_codec    = CODEC_ID_MJPEG,
      .write_header   = write_header,
index 4cbd5be39671925dcbceec6a814ad58e895199d7,2eff4cc0a5eec0e4c0c92dbfb9dd18bd03d340ba..4a851473b2c8796c85d45174f2177105c14947ac
@@@ -1,10 -1,10 +1,10 @@@
  /*
-  * Westwood Studios Multimedia Formats Demuxer (VQA, AUD)
+  * Westwood Studios VQA Format Demuxer
   * Copyright (c) 2003 The ffmpeg Project
   *
 - * 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.