Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 7 Oct 2012 09:23:29 +0000 (11:23 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 7 Oct 2012 09:28:38 +0000 (11:28 +0200)
* qatar/master:
  wmaenc: use float planar sample format
  (e)ac3enc: use planar sample format
  aacenc: use planar sample format
  adpcmenc: use planar sample format for adpcm_ima_wav and adpcm_ima_qt
  adpcmenc: move 'ch' variable to higher scope
  adpcmenc: fix 3 instances of variable shadowing
  adpcm_ima_wav: simplify encoding
  libvorbis: use planar sample format
  libmp3lame: use planar sample formats
  vorbisenc: use float planar sample format
  ffm: do not write or read the audio sample format
  parseutils: fix parsing of invalid alpha values
  doc/RELEASE_NOTES: update for the 9 release.
  smoothstreamingenc: Add a more verbose error message
  smoothstreamingenc: Ignore the return value from mkdir
  smoothstreamingenc: Try writing a manifest when opening the muxer
  smoothstreamingenc: Move the output_chunk_list and write_manifest functions up
  smoothstreamingenc: Properly return errors from ism_flush to the caller
  smoothstreamingenc: Check the output UrlContext before accessing it

Conflicts:
doc/RELEASE_NOTES
libavcodec/aacenc.c
libavcodec/ac3enc_template.c
libavcodec/wmaenc.c
tests/ref/lavf/ffm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
17 files changed:
1  2 
libavcodec/aacenc.c
libavcodec/ac3enc_fixed.c
libavcodec/ac3enc_float.c
libavcodec/ac3enc_template.c
libavcodec/adpcmenc.c
libavcodec/eac3enc.c
libavcodec/libmp3lame.c
libavcodec/libvorbisenc.c
libavcodec/vorbisenc.c
libavcodec/wma.c
libavcodec/wma.h
libavcodec/wmaenc.c
libavformat/ffmdec.c
libavformat/ffmenc.c
libavformat/smoothstreamingenc.c
libavutil/parseutils.c
tests/ref/lavf/ffm

@@@ -479,17 -479,17 +479,17 @@@ static void put_bitstream_info(AVCodecC
  }
  
  /*
-  * Deinterleave input samples.
+  * Copy input samples.
 - * Channels are reordered from Libav's default order to AAC order.
 + * Channels are reordered from libavcodec's default order to AAC order.
   */
- static void deinterleave_input_samples(AACEncContext *s, const AVFrame *frame)
+ static void copy_input_samples(AACEncContext *s, const AVFrame *frame)
  {
-     int ch, i;
-     const int sinc = s->channels;
-     const uint8_t *channel_map = aac_chan_maps[sinc - 1];
+     int ch;
+     int end = 2048 + (frame ? frame->nb_samples : 0);
+     const uint8_t *channel_map = aac_chan_maps[s->channels - 1];
  
-     /* deinterleave and remap input samples */
-     for (ch = 0; ch < sinc; ch++) {
+     /* copy and remap input samples */
+     for (ch = 0; ch < s->channels; ch++) {
          /* copy last 1024 samples of previous frame to the start of the current frame */
          memcpy(&s->planar_samples[ch][1024], &s->planar_samples[ch][2048], 1024 * sizeof(s->planar_samples[0][0]));
  
@@@ -824,10 -821,9 +821,10 @@@ AVCodec ff_aac_encoder = 
      .init           = aac_encode_init,
      .encode2        = aac_encode_frame,
      .close          = aac_encode_end,
 +    .supported_samplerates = avpriv_mpeg4audio_sample_rates,
      .capabilities   = CODEC_CAP_SMALL_LAST_FRAME | CODEC_CAP_DELAY |
                        CODEC_CAP_EXPERIMENTAL,
-     .sample_fmts    = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLT,
+     .sample_fmts    = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLTP,
                                                       AV_SAMPLE_FMT_NONE },
      .long_name      = NULL_IF_CONFIG_SMALL("AAC (Advanced Audio Coding)"),
      .priv_class     = &aacenc_class,
Simple merge
Simple merge
@@@ -4,20 -4,20 +4,20 @@@
   * Copyright (c) 2006-2011 Justin Ruggles <justin.ruggles@gmail.com>
   * Copyright (c) 2006-2010 Prakash Punnoor <prakash@punnoor.de>
   *
-- * 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.
   *
-- * Libav is distributed in the hope that it will be useful,
++ * FFmpeg is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   * Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public
-- * License along with Libav; if not, write to the Free Software
++ * License along with FFmpeg; if not, write to the Free Software
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
   */
  
@@@ -68,19 -65,15 +68,15 @@@ alloc_fail
  
  
  /*
-  * Deinterleave input samples.
+  * Copy input samples.
 - * Channels are reordered from Libav's default order to AC-3 order.
 + * Channels are reordered from FFmpeg's default order to AC-3 order.
   */
- static void deinterleave_input_samples(AC3EncodeContext *s,
-                                        const SampleType *samples)
+ static void copy_input_samples(AC3EncodeContext *s, SampleType **samples)
  {
-     int ch, i;
+     int ch;
  
-     /* deinterleave and remap input samples */
+     /* copy and remap input samples */
      for (ch = 0; ch < s->channels; ch++) {
-         const SampleType *sptr;
-         int sinc;
          /* copy last 256 samples of previous frame to the start of the current frame */
          memcpy(&s->planar_samples[ch][0], &s->planar_samples[ch][AC3_BLOCK_SIZE * s->num_blocks],
                 AC3_BLOCK_SIZE * sizeof(s->planar_samples[0][0]));
Simple merge
Simple merge
Simple merge
@@@ -383,9 -355,9 +381,9 @@@ AVCodec ff_libvorbis_encoder = 
      .encode2        = oggvorbis_encode_frame,
      .close          = oggvorbis_encode_close,
      .capabilities   = CODEC_CAP_DELAY,
-     .sample_fmts    = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLT,
+     .sample_fmts    = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
                                                        AV_SAMPLE_FMT_NONE },
 -    .long_name      = NULL_IF_CONFIG_SMALL("libvorbis Vorbis"),
 +    .long_name      = NULL_IF_CONFIG_SMALL("libvorbis"),
      .priv_class     = &class,
      .defaults       = defaults,
  };
Simple merge
Simple merge
Simple merge
@@@ -345,8 -350,7 +346,7 @@@ static int encode_superframe(AVCodecCon
                               const AVFrame *frame, int *got_packet_ptr)
  {
      WMACodecContext *s = avctx->priv_data;
-     const int16_t *samples = (const int16_t *)frame->data[0];
 -    int i, total_gain, ret;
 +    int i, total_gain, ret, error;
  
      s->block_len_bits= s->frame_len_bits; //required by non variable block len
      s->block_len = 1 << s->block_len_bits;
Simple merge
Simple merge
Simple merge
@@@ -394,14 -360,10 +394,14 @@@ int av_parse_color(uint8_t *rgba_color
          if (!strncmp(alpha_string, "0x", 2)) {
              alpha = strtoul(alpha_string, &tail, 16);
          } else {
 -            alpha = 255 * strtod(alpha_string, &tail);
 +            double norm_alpha = strtod(alpha_string, &tail);
 +            if (norm_alpha < 0.0 || norm_alpha > 1.0)
 +                alpha = 256;
 +            else
 +                alpha = 255 * norm_alpha;
          }
  
-         if (tail == alpha_string || *tail || alpha > 255) {
+         if (tail == alpha_string || *tail || alpha > 255 || alpha < 0) {
              av_log(log_ctx, AV_LOG_ERROR, "Invalid alpha value specifier '%s' in '%s'\n",
                     alpha_string, color_string);
              return AVERROR(EINVAL);
@@@ -1,3 -1,3 +1,3 @@@
- e6d8254af2b1ad1f58d60da4d80c6e96 *./tests/data/lavf/lavf.ffm
 -c5dcf5950031020864db57bbde0064df *./tests/data/lavf/lavf.ffm
++c76e8f9a9bcd04379dfa3239e272d049 *./tests/data/lavf/lavf.ffm
  376832 ./tests/data/lavf/lavf.ffm
 -./tests/data/lavf/lavf.ffm CRC=0x38388ba1
 +./tests/data/lavf/lavf.ffm CRC=0x5b136bb1