Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 10 Aug 2012 14:19:23 +0000 (16:19 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 10 Aug 2012 14:25:23 +0000 (16:25 +0200)
* qatar/master:
  g723.1: fix addition overflow
  g723.1: simplify and fix multiplication overflow
  g723.1: deobfuscate an expression
  g723.1: remove unused #includes
  ARM: add missing "cc" clobber in av_clipl_int32_arm()
  rtmp: Factorize the code by adding handle_invoke_error
  rtmp: Factorize the code by adding handle_invoke_status
  rtmp: Factorize the code by adding handle_invoke_result
  libavutil: remove unused av_abort() macro
  ffmenc: replace if/abort with assert()
  libavutil: drop offsetof() fallback definition
  libavutil: drop fallback definitions of INTxx_MIN/MAX
  configure: Check for a sctp struct instead of just the header
  configure: suncc: Add -xc99 to dependency flags, required on Solaris
  doxygen: Fix function parameter names to match the code
  doc: Drop obsolete shared libs cflags hint to workaround Cygwin gcc bugs
  swf: Move shared table out of the header file
  swf: Move swf_audio_codec_tags table to the only place it is used
  fate: add G.723.1 decoder tests

Conflicts:
configure
doc/platform.texi
libavformat/Makefile
libavutil/arm/intmath.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
16 files changed:
1  2 
configure
doc/platform.texi
libavcodec/g723_1.c
libavcodec/vp8.c
libavfilter/buffersink.h
libavformat/Makefile
libavformat/ffmenc.c
libavformat/rtmpproto.c
libavformat/swf.c
libavformat/swf.h
libavformat/swfdec.c
libavformat/swfenc.c
libavutil/arm/intmath.h
libavutil/internal.h
libavutil/xtea.h
tests/fate/voice.mak

diff --cc configure
Simple merge
@@@ -323,22 -292,7 +323,7 @@@ In order to run FATE you will also nee
  bc, diffutils
  @end example
  
- Then run
- @example
- ./configure
- @end example
- to make a static build.
- To build shared libraries add a special compiler flag to work around current
- @code{gcc4-core} package bugs in addition to the normal configure flags:
- @example
- ./configure --enable-shared --disable-static --extra-cflags=-fno-reorder-functions
- @end example
 -If you want to build Libav with additional libraries, download Cygwin
 +If you want to build FFmpeg with additional libraries, download Cygwin
  "Devel" packages for Ogg and Vorbis from any Cygwin packages repository:
  @example
  libogg-devel, libvorbis-devel
  #include "get_bits.h"
  #include "acelp_vectors.h"
  #include "celp_filters.h"
- #include "lsp.h"
 +#include "celp_math.h"
  #include "g723_1_data.h"
  
 -/**
 - * G723.1 frame types
 - */
 -enum FrameType {
 -    ACTIVE_FRAME,        ///< Active speech
 -    SID_FRAME,           ///< Silence Insertion Descriptor frame
 -    UNTRANSMITTED_FRAME
 -};
 -
 -enum Rate {
 -    RATE_6300,
 -    RATE_5300
 -};
 -
 -/**
 - * G723.1 unpacked data subframe
 - */
 -typedef struct {
 -    int ad_cb_lag;     ///< adaptive codebook lag
 -    int ad_cb_gain;
 -    int dirac_train;
 -    int pulse_sign;
 -    int grid_index;
 -    int amp_index;
 -    int pulse_pos;
 -} G723_1_Subframe;
 -
 -/**
 - * Pitch postfilter parameters
 - */
 -typedef struct {
 -    int     index;    ///< postfilter backward/forward lag
 -    int16_t opt_gain; ///< optimal gain
 -    int16_t sc_gain;  ///< scaling gain
 -} PPFParam;
 -
  typedef struct g723_1_context {
      AVClass *class;
      AVFrame frame;
Simple merge
  #include "avfilter.h"
  
  /**
 + * Struct to use for initializing a buffersink context.
 + */
 +typedef struct {
 +    const enum PixelFormat *pixel_fmts; ///< list of allowed pixel formats, terminated by PIX_FMT_NONE
 +} AVBufferSinkParams;
 +
 +/**
 + * Create an AVBufferSinkParams structure.
 + *
 + * Must be freed with av_free().
 + */
 +AVBufferSinkParams *av_buffersink_params_alloc(void);
 +
 +/**
 + * Struct to use for initializing an abuffersink context.
 + */
 +typedef struct {
 +    const enum AVSampleFormat *sample_fmts; ///< list of allowed sample formats, terminated by AV_SAMPLE_FMT_NONE
 +    const int64_t *channel_layouts;         ///< list of allowed channel layouts, terminated by -1
 +} AVABufferSinkParams;
 +
 +/**
 + * Create an AVABufferSinkParams structure.
 + *
 + * Must be freed with av_free().
 + */
 +AVABufferSinkParams *av_abuffersink_params_alloc(void);
 +
 +/**
 + * Set the frame size for an audio buffer sink.
 + *
 + * All calls to av_buffersink_get_buffer_ref will return a buffer with
 + * exactly the specified number of samples, or AVERROR(EAGAIN) if there is
 + * not enough. The last buffer at EOF will be padded with 0.
 + */
 +void av_buffersink_set_frame_size(AVFilterContext *ctx, unsigned frame_size);
 +
 +/**
 + * Tell av_buffersink_get_buffer_ref() to read video/samples buffer
 + * reference, but not remove it from the buffer. This is useful if you
 + * need only to read a video/samples buffer, without to fetch it.
 + */
 +#define AV_BUFFERSINK_FLAG_PEEK 1
 +
 +/**
 + * Tell av_buffersink_get_buffer_ref() not to request a frame from its input.
 + * If a frame is already buffered, it is read (and removed from the buffer),
 + * but if no frame is present, return AVERROR(EAGAIN).
 + */
 +#define AV_BUFFERSINK_FLAG_NO_REQUEST 2
 +
 +/**
 + * Get an audio/video buffer data from buffer_sink and put it in bufref.
 + *
 + * This function works with both audio and video buffer sinks.
 + *
 + * @param buffer_sink pointer to a buffersink or abuffersink context
 + * @param flags a combination of AV_BUFFERSINK_FLAG_* flags
 + * @return >= 0 in case of success, a negative AVERROR code in case of
 + * failure
 + */
 +int av_buffersink_get_buffer_ref(AVFilterContext *buffer_sink,
 +                                 AVFilterBufferRef **bufref, int flags);
 +
 +
 +/**
 + * Get the number of immediately available frames.
 + */
 +int av_buffersink_poll_frame(AVFilterContext *ctx);
 +
 +/**
 + * Get the frame rate of the input.
 + */
 +AVRational av_buffersink_get_frame_rate(AVFilterContext *ctx);
 +
 +/**
 + * @defgroup libav_api Libav API
 + * @{
 + */
 +
 +/**
   * Get a buffer with filtered data from sink and put it in buf.
   *
-  * @param sink pointer to a context of a buffersink or abuffersink AVFilter.
+  * @param ctx pointer to a context of a buffersink or abuffersink AVFilter.
   * @param buf pointer to the buffer will be written here if buf is non-NULL. buf
   *            must be freed by the caller using avfilter_unref_buffer().
   *            Buf may also be NULL to query whether a buffer is ready to be
@@@ -323,14 -297,12 +323,14 @@@ OBJS-$(CONFIG_SOX_MUXER
  OBJS-$(CONFIG_SPDIF_DEMUXER)             += spdif.o spdifdec.o
  OBJS-$(CONFIG_SPDIF_MUXER)               += spdif.o spdifenc.o
  OBJS-$(CONFIG_SRT_DEMUXER)               += srtdec.o
 -OBJS-$(CONFIG_SRT_MUXER)                 += rawenc.o
 +OBJS-$(CONFIG_SRT_MUXER)                 += srtenc.o
  OBJS-$(CONFIG_STR_DEMUXER)               += psxstr.o
- OBJS-$(CONFIG_SWF_DEMUXER)               += swfdec.o
- OBJS-$(CONFIG_SWF_MUXER)                 += swfenc.o
 +OBJS-$(CONFIG_SUBVIEWER_DEMUXER)         += subviewerdec.o
+ OBJS-$(CONFIG_SWF_DEMUXER)               += swfdec.o swf.o
+ OBJS-$(CONFIG_SWF_MUXER)                 += swfenc.o swf.o
  OBJS-$(CONFIG_THP_DEMUXER)               += thp.o
  OBJS-$(CONFIG_TIERTEXSEQ_DEMUXER)        += tiertexseq.o
 +OBJS-$(CONFIG_MKVTIMESTAMP_V2_MUXER)     += mkvtimestamp_v2.o
  OBJS-$(CONFIG_TMV_DEMUXER)               += tmv.o
  OBJS-$(CONFIG_TRUEHD_DEMUXER)            += rawdec.o
  OBJS-$(CONFIG_TRUEHD_MUXER)              += rawenc.o
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
   */
  
+ #include <assert.h>
  #include "libavutil/intreadwrite.h"
  #include "libavutil/intfloat.h"
 +#include "libavutil/avassert.h"
  #include "avformat.h"
  #include "internal.h"
  #include "ffm.h"
Simple merge
index 0000000,1762991..d009507
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,29 +1,29 @@@
 - * This file is part of Libav.
+ /*
+  * Flash Compatible Streaming Format
+  * Copyright (c) 2000 Fabrice Bellard
+  * Copyright (c) 2003 Tinic Uro
+  *
 - * Libav is free software; you can redistribute it and/or
++ * This file is part of FFmpeg.
+  *
 - * Libav is distributed in the hope that it will be useful,
++ * 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.
+  *
 - * License along with Libav; if not, write to the Free Software
++ * 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 FFmpeg; if not, write to the Free Software
+  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+  */
+ #include "internal.h"
+ const AVCodecTag ff_swf_codec_tags[] = {
+     { CODEC_ID_FLV1, 0x02 },
+     { CODEC_ID_VP6F, 0x04 },
+     { CODEC_ID_NONE,    0 },
+ };
@@@ -82,28 -76,8 +82,15 @@@ typedef struct 
      int tag;
      AVFifoBuffer *audio_fifo;
      AVCodecContext *audio_enc, *video_enc;
 +#if CONFIG_ZLIB
 +    AVIOContext *zpb;
 +#define ZBUF_SIZE 4096
 +    uint8_t *zbuf_in;
 +    uint8_t *zbuf_out;
 +    z_stream zstream;
 +#endif
  } SWFContext;
  
- static const AVCodecTag swf_codec_tags[] = {
-     { AV_CODEC_ID_FLV1, 0x02},
-     { AV_CODEC_ID_VP6F, 0x04},
-     { AV_CODEC_ID_NONE,    0},
- };
- static const AVCodecTag swf_audio_codec_tags[] = {
-     { AV_CODEC_ID_PCM_S16LE,  0x00},
-     { AV_CODEC_ID_ADPCM_SWF,  0x01},
-     { AV_CODEC_ID_MP3,        0x02},
-     { AV_CODEC_ID_PCM_S16LE,  0x03},
-   //{ AV_CODEC_ID_NELLYMOSER, 0x06},
-     { AV_CODEC_ID_NONE,          0},
- };
+ extern const AVCodecTag ff_swf_codec_tags[];
  
  #endif /* AVFORMAT_SWF_H */
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -6,9 -6,30 +6,30 @@@ fate-g722-encode: tests/data/asynth-160
  fate-g722-encode: SRC = tests/data/asynth-16000-1.wav
  fate-g722-encode: CMD = enc_dec_pcm wav md5 s16le $(SRC) -c:a g722
  
 -FATE_SAMPLES_AVCONV += $(FATE_G722)
 +FATE_VOICE += $(FATE_G722)
  fate-g722: $(FATE_G722)
  
+ FATE_G723_1 += fate-g723_1-dec-1
+ fate-g723_1-dec-1: CMD = framecrc -postfilter 0 -i $(SAMPLES)/g723_1/ineqd53.tco
+ FATE_G723_1 += fate-g723_1-dec-2
+ fate-g723_1-dec-2: CMD = framecrc -postfilter 0 -i $(SAMPLES)/g723_1/overd53.tco
+ FATE_G723_1 += fate-g723_1-dec-3
+ fate-g723_1-dec-3: CMD = framecrc -postfilter 1 -i $(SAMPLES)/g723_1/overd63p.tco
+ FATE_G723_1 += fate-g723_1-dec-4
+ fate-g723_1-dec-4: CMD = framecrc -postfilter 0 -i $(SAMPLES)/g723_1/pathd53.tco
+ FATE_G723_1 += fate-g723_1-dec-5
+ fate-g723_1-dec-5: CMD = framecrc -postfilter 1 -i $(SAMPLES)/g723_1/pathd63p.tco
+ FATE_G723_1 += fate-g723_1-dec-6
+ fate-g723_1-dec-6: CMD = framecrc -postfilter 1 -i $(SAMPLES)/g723_1/tamed63p.tco
+ FATE_SAMPLES_AVCONV += $(FATE_G723_1)
+ fate-g723_1: $(FATE_G723_1)
  FATE_G726 += fate-g726-encode-2bit
  fate-g726-encode-2bit: tests/data/asynth-8000-1.wav
  fate-g726-encode-2bit: SRC = tests/data/asynth-8000-1.wav