[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12124] trunk/blender/extern/ffmpeg: == Sequencer / FFMPEG ==
Peter Schlaile
peter at schlaile.de
Sun Sep 23 20:22:19 CEST 2007
Revision: 12124
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12124
Author: schlaile
Date: 2007-09-23 20:22:18 +0200 (Sun, 23 Sep 2007)
Log Message:
-----------
== Sequencer / FFMPEG ==
Forgotten files for ffmpeg upgrade. Have to really learn SVN... Sorry!
Added Paths:
-----------
trunk/blender/extern/ffmpeg/libavcodec/aac_ac3_parser.c
trunk/blender/extern/ffmpeg/libavcodec/aac_ac3_parser.h
trunk/blender/extern/ffmpeg/libavcodec/aac_parser.c
trunk/blender/extern/ffmpeg/libavcodec/ac3.c
trunk/blender/extern/ffmpeg/libavcodec/ac3_parser.c
trunk/blender/extern/ffmpeg/libavcodec/ac3_parser.h
trunk/blender/extern/ffmpeg/libavcodec/ac3tab.c
trunk/blender/extern/ffmpeg/libavcodec/apedec.c
trunk/blender/extern/ffmpeg/libavcodec/armv4l/mathops.h
trunk/blender/extern/ffmpeg/libavcodec/armv4l/mpegvideo_armv5te.c
trunk/blender/extern/ffmpeg/libavcodec/armv4l/simple_idct_armv5te.S
trunk/blender/extern/ffmpeg/libavcodec/armv4l/simple_idct_armv6.S
trunk/blender/extern/ffmpeg/libavcodec/atrac3.c
trunk/blender/extern/ffmpeg/libavcodec/atrac3data.h
trunk/blender/extern/ffmpeg/libavcodec/audioconvert.c
trunk/blender/extern/ffmpeg/libavcodec/bethsoftvideo.c
trunk/blender/extern/ffmpeg/libavcodec/bethsoftvideo.h
trunk/blender/extern/ffmpeg/libavcodec/bitstream_filter.c
trunk/blender/extern/ffmpeg/libavcodec/bmp.h
trunk/blender/extern/ffmpeg/libavcodec/bmpenc.c
trunk/blender/extern/ffmpeg/libavcodec/bytestream.h
trunk/blender/extern/ffmpeg/libavcodec/c93.c
trunk/blender/extern/ffmpeg/libavcodec/cavs.c
trunk/blender/extern/ffmpeg/libavcodec/cavs.h
trunk/blender/extern/ffmpeg/libavcodec/cavs_parser.c
trunk/blender/extern/ffmpeg/libavcodec/cavsdata.h
trunk/blender/extern/ffmpeg/libavcodec/cavsdec.c
trunk/blender/extern/ffmpeg/libavcodec/cavsdsp.c
trunk/blender/extern/ffmpeg/libavcodec/colorspace.h
trunk/blender/extern/ffmpeg/libavcodec/dca.c
trunk/blender/extern/ffmpeg/libavcodec/dca.h
trunk/blender/extern/ffmpeg/libavcodec/dca_parser.c
trunk/blender/extern/ffmpeg/libavcodec/dcadata.h
trunk/blender/extern/ffmpeg/libavcodec/dcahuff.h
trunk/blender/extern/ffmpeg/libavcodec/dnxhddata.c
trunk/blender/extern/ffmpeg/libavcodec/dnxhddata.h
trunk/blender/extern/ffmpeg/libavcodec/dnxhddec.c
trunk/blender/extern/ffmpeg/libavcodec/dsicinav.c
trunk/blender/extern/ffmpeg/libavcodec/dump_extradata_bsf.c
trunk/blender/extern/ffmpeg/libavcodec/dvbsub_parser.c
trunk/blender/extern/ffmpeg/libavcodec/dvdsub_parser.c
trunk/blender/extern/ffmpeg/libavcodec/dvdsubdec.c
trunk/blender/extern/ffmpeg/libavcodec/dxa.c
trunk/blender/extern/ffmpeg/libavcodec/elbg.c
trunk/blender/extern/ffmpeg/libavcodec/elbg.h
trunk/blender/extern/ffmpeg/libavcodec/eval.h
trunk/blender/extern/ffmpeg/libavcodec/flacenc.c
trunk/blender/extern/ffmpeg/libavcodec/flashsvenc.c
trunk/blender/extern/ffmpeg/libavcodec/gif.c
trunk/blender/extern/ffmpeg/libavcodec/gifdec.c
trunk/blender/extern/ffmpeg/libavcodec/h261.h
trunk/blender/extern/ffmpeg/libavcodec/h261_parser.c
trunk/blender/extern/ffmpeg/libavcodec/h261dec.c
trunk/blender/extern/ffmpeg/libavcodec/h261enc.c
trunk/blender/extern/ffmpeg/libavcodec/h263.h
trunk/blender/extern/ffmpeg/libavcodec/h263_parser.c
trunk/blender/extern/ffmpeg/libavcodec/h263_parser.h
trunk/blender/extern/ffmpeg/libavcodec/h264.h
trunk/blender/extern/ffmpeg/libavcodec/h264_mp4toannexb_bsf.c
trunk/blender/extern/ffmpeg/libavcodec/h264_parser.c
trunk/blender/extern/ffmpeg/libavcodec/h264_parser.h
trunk/blender/extern/ffmpeg/libavcodec/h264dspenc.c
trunk/blender/extern/ffmpeg/libavcodec/h264enc.c
trunk/blender/extern/ffmpeg/libavcodec/h264pred.c
trunk/blender/extern/ffmpeg/libavcodec/h264pred.h
trunk/blender/extern/ffmpeg/libavcodec/i386/cavsdsp_mmx.c
trunk/blender/extern/ffmpeg/libavcodec/i386/dsputil_mmx_qns.h
trunk/blender/extern/ffmpeg/libavcodec/i386/mathops.h
trunk/blender/extern/ffmpeg/libavcodec/i386/vp3dsp_mmx.h
trunk/blender/extern/ffmpeg/libavcodec/i386/vp3dsp_sse2.h
trunk/blender/extern/ffmpeg/libavcodec/imc.c
trunk/blender/extern/ffmpeg/libavcodec/imcdata.h
trunk/blender/extern/ffmpeg/libavcodec/imx_dump_header_bsf.c
trunk/blender/extern/ffmpeg/libavcodec/jpegls.c
trunk/blender/extern/ffmpeg/libavcodec/jpegls.h
trunk/blender/extern/ffmpeg/libavcodec/jpeglsdec.c
trunk/blender/extern/ffmpeg/libavcodec/jpeglsdec.h
trunk/blender/extern/ffmpeg/libavcodec/jpeglsenc.c
trunk/blender/extern/ffmpeg/libavcodec/lcl.h
trunk/blender/extern/ffmpeg/libavcodec/lcldec.c
trunk/blender/extern/ffmpeg/libavcodec/lclenc.c
trunk/blender/extern/ffmpeg/libavcodec/liba52.c
trunk/blender/extern/ffmpeg/libavcodec/libamr.c
trunk/blender/extern/ffmpeg/libavcodec/libfaac.c
trunk/blender/extern/ffmpeg/libavcodec/libfaad.c
trunk/blender/extern/ffmpeg/libavcodec/libmp3lame.c
trunk/blender/extern/ffmpeg/libavcodec/libtheoraenc.c
trunk/blender/extern/ffmpeg/libavcodec/libvorbis.c
trunk/blender/extern/ffmpeg/libavcodec/libx264.c
trunk/blender/extern/ffmpeg/libavcodec/libxvid_internal.h
trunk/blender/extern/ffmpeg/libavcodec/libxvid_rc.c
trunk/blender/extern/ffmpeg/libavcodec/libxvidff.c
trunk/blender/extern/ffmpeg/libavcodec/ljpegenc.c
trunk/blender/extern/ffmpeg/libavcodec/lzw.c
trunk/blender/extern/ffmpeg/libavcodec/lzw.h
trunk/blender/extern/ffmpeg/libavcodec/lzwenc.c
trunk/blender/extern/ffmpeg/libavcodec/mathops.h
trunk/blender/extern/ffmpeg/libavcodec/mjpeg.h
trunk/blender/extern/ffmpeg/libavcodec/mjpeg_parser.c
trunk/blender/extern/ffmpeg/libavcodec/mjpega_dump_header_bsf.c
trunk/blender/extern/ffmpeg/libavcodec/mjpegbdec.c
trunk/blender/extern/ffmpeg/libavcodec/mjpegdec.c
trunk/blender/extern/ffmpeg/libavcodec/mjpegdec.h
trunk/blender/extern/ffmpeg/libavcodec/mjpegenc.c
trunk/blender/extern/ffmpeg/libavcodec/mjpegenc.h
trunk/blender/extern/ffmpeg/libavcodec/motion-test.c
trunk/blender/extern/ffmpeg/libavcodec/mp3_header_compress_bsf.c
trunk/blender/extern/ffmpeg/libavcodec/mp3_header_decompress_bsf.c
trunk/blender/extern/ffmpeg/libavcodec/mpc.c
trunk/blender/extern/ffmpeg/libavcodec/mpcdata.h
trunk/blender/extern/ffmpeg/libavcodec/mpeg12.h
trunk/blender/extern/ffmpeg/libavcodec/mpeg12data.c
trunk/blender/extern/ffmpeg/libavcodec/mpeg12decdata.h
trunk/blender/extern/ffmpeg/libavcodec/mpeg12enc.c
trunk/blender/extern/ffmpeg/libavcodec/mpeg4video_parser.c
trunk/blender/extern/ffmpeg/libavcodec/mpeg4video_parser.h
trunk/blender/extern/ffmpeg/libavcodec/mpegaudio_parser.c
trunk/blender/extern/ffmpeg/libavcodec/mpegaudiodata.c
trunk/blender/extern/ffmpeg/libavcodec/mpegaudiodata.h
trunk/blender/extern/ffmpeg/libavcodec/mpegaudiodecheader.c
trunk/blender/extern/ffmpeg/libavcodec/mpegaudiodecheader.h
trunk/blender/extern/ffmpeg/libavcodec/mpegaudioenc.c
trunk/blender/extern/ffmpeg/libavcodec/mpegvideo_common.h
trunk/blender/extern/ffmpeg/libavcodec/mpegvideo_enc.c
trunk/blender/extern/ffmpeg/libavcodec/mpegvideo_parser.c
trunk/blender/extern/ffmpeg/libavcodec/msmpeg4.h
trunk/blender/extern/ffmpeg/libavcodec/msmpeg4data.c
trunk/blender/extern/ffmpeg/libavcodec/noise_bsf.c
trunk/blender/extern/ffmpeg/libavcodec/parser.h
trunk/blender/extern/ffmpeg/libavcodec/png.h
trunk/blender/extern/ffmpeg/libavcodec/pngdec.c
trunk/blender/extern/ffmpeg/libavcodec/pngenc.c
trunk/blender/extern/ffmpeg/libavcodec/pnm.h
trunk/blender/extern/ffmpeg/libavcodec/pnm_parser.c
trunk/blender/extern/ffmpeg/libavcodec/pnmenc.c
trunk/blender/extern/ffmpeg/libavcodec/ppc/float_altivec.c
trunk/blender/extern/ffmpeg/libavcodec/ppc/h264_altivec.c
trunk/blender/extern/ffmpeg/libavcodec/ppc/h264_template_altivec.c
trunk/blender/extern/ffmpeg/libavcodec/ppc/int_altivec.c
trunk/blender/extern/ffmpeg/libavcodec/ppc/mathops.h
trunk/blender/extern/ffmpeg/libavcodec/ppc/snow_altivec.c
trunk/blender/extern/ffmpeg/libavcodec/ppc/types_altivec.h
trunk/blender/extern/ffmpeg/libavcodec/ppc/vc1dsp_altivec.c
trunk/blender/extern/ffmpeg/libavcodec/ptx.c
trunk/blender/extern/ffmpeg/libavcodec/qtrleenc.c
trunk/blender/extern/ffmpeg/libavcodec/ratecontrol.h
trunk/blender/extern/ffmpeg/libavcodec/raw.h
trunk/blender/extern/ffmpeg/libavcodec/rawdec.c
trunk/blender/extern/ffmpeg/libavcodec/rawenc.c
trunk/blender/extern/ffmpeg/libavcodec/remove_extradata_bsf.c
trunk/blender/extern/ffmpeg/libavcodec/rl.h
trunk/blender/extern/ffmpeg/libavcodec/rle.c
trunk/blender/extern/ffmpeg/libavcodec/rle.h
trunk/blender/extern/ffmpeg/libavcodec/roqaudioenc.c
trunk/blender/extern/ffmpeg/libavcodec/roqvideo.h
trunk/blender/extern/ffmpeg/libavcodec/roqvideodec.c
trunk/blender/extern/ffmpeg/libavcodec/roqvideoenc.c
trunk/blender/extern/ffmpeg/libavcodec/s3tc.c
trunk/blender/extern/ffmpeg/libavcodec/s3tc.h
trunk/blender/extern/ffmpeg/libavcodec/sgi.h
trunk/blender/extern/ffmpeg/libavcodec/sgidec.c
trunk/blender/extern/ffmpeg/libavcodec/sgienc.c
trunk/blender/extern/ffmpeg/libavcodec/sp5xdec.c
trunk/blender/extern/ffmpeg/libavcodec/sparc/simple_idct_vis.c
trunk/blender/extern/ffmpeg/libavcodec/svq1.h
trunk/blender/extern/ffmpeg/libavcodec/svq1dec.c
trunk/blender/extern/ffmpeg/libavcodec/svq1enc.c
trunk/blender/extern/ffmpeg/libavcodec/svq1enc_cb.h
trunk/blender/extern/ffmpeg/libavcodec/targa.c
trunk/blender/extern/ffmpeg/libavcodec/targaenc.c
trunk/blender/extern/ffmpeg/libavcodec/tiertexseqv.c
trunk/blender/extern/ffmpeg/libavcodec/tiff.c
trunk/blender/extern/ffmpeg/libavcodec/tiff.h
trunk/blender/extern/ffmpeg/libavcodec/tiffenc.c
trunk/blender/extern/ffmpeg/libavcodec/txd.c
trunk/blender/extern/ffmpeg/libavcodec/unary.h
trunk/blender/extern/ffmpeg/libavcodec/vc1.c
trunk/blender/extern/ffmpeg/libavcodec/vc1.h
trunk/blender/extern/ffmpeg/libavcodec/vc1_parser.c
trunk/blender/extern/ffmpeg/libavcodec/vc1acdata.h
trunk/blender/extern/ffmpeg/libavcodec/vc1data.c
trunk/blender/extern/ffmpeg/libavcodec/vc1data.h
trunk/blender/extern/ffmpeg/libavcodec/vc1dsp.c
trunk/blender/extern/ffmpeg/libavcodec/vmnc.c
trunk/blender/extern/ffmpeg/libavcodec/vorbis_data.c
trunk/blender/extern/ffmpeg/libavcodec/vorbis_dec.c
trunk/blender/extern/ffmpeg/libavcodec/vorbis_enc.c
trunk/blender/extern/ffmpeg/libavcodec/vorbis_enc_data.h
trunk/blender/extern/ffmpeg/libavcodec/vp5.c
trunk/blender/extern/ffmpeg/libavcodec/vp56.c
trunk/blender/extern/ffmpeg/libavcodec/vp56.h
trunk/blender/extern/ffmpeg/libavcodec/vp56data.c
trunk/blender/extern/ffmpeg/libavcodec/vp56data.h
trunk/blender/extern/ffmpeg/libavcodec/vp5data.h
trunk/blender/extern/ffmpeg/libavcodec/vp6.c
trunk/blender/extern/ffmpeg/libavcodec/vp6data.h
trunk/blender/extern/ffmpeg/libavcodec/wavpack.c
trunk/blender/extern/ffmpeg/libavcodec/wma.c
trunk/blender/extern/ffmpeg/libavcodec/wma.h
trunk/blender/extern/ffmpeg/libavcodec/wmaenc.c
trunk/blender/extern/ffmpeg/libavcodec/xiph.c
trunk/blender/extern/ffmpeg/libavcodec/xiph.h
trunk/blender/extern/ffmpeg/libavcodec/xsubdec.c
trunk/blender/extern/ffmpeg/libavcodec/xvmc_render.h
trunk/blender/extern/ffmpeg/libavcodec/zmbvenc.c
trunk/blender/extern/ffmpeg/libavformat/apc.c
trunk/blender/extern/ffmpeg/libavformat/ape.c
trunk/blender/extern/ffmpeg/libavformat/avisynth.c
trunk/blender/extern/ffmpeg/libavformat/bethsoftvid.c
trunk/blender/extern/ffmpeg/libavformat/bktr.c
trunk/blender/extern/ffmpeg/libavformat/c93.c
trunk/blender/extern/ffmpeg/libavformat/dsicin.c
trunk/blender/extern/ffmpeg/libavformat/dvenc.c
trunk/blender/extern/ffmpeg/libavformat/dxa.c
trunk/blender/extern/ffmpeg/libavformat/flv.h
trunk/blender/extern/ffmpeg/libavformat/gxf.c
trunk/blender/extern/ffmpeg/libavformat/gxf.h
trunk/blender/extern/ffmpeg/libavformat/gxfenc.c
trunk/blender/extern/ffmpeg/libavformat/isom.c
trunk/blender/extern/ffmpeg/libavformat/isom.h
trunk/blender/extern/ffmpeg/libavformat/libdc1394.c
trunk/blender/extern/ffmpeg/libavformat/libnut.c
trunk/blender/extern/ffmpeg/libavformat/matroska.h
trunk/blender/extern/ffmpeg/libavformat/matroskadec.c
trunk/blender/extern/ffmpeg/libavformat/matroskaenc.c
trunk/blender/extern/ffmpeg/libavformat/mpc.c
trunk/blender/extern/ffmpeg/libavformat/mpeg.h
trunk/blender/extern/ffmpeg/libavformat/mpegenc.c
trunk/blender/extern/ffmpeg/libavformat/mtv.c
trunk/blender/extern/ffmpeg/libavformat/mxf.c
trunk/blender/extern/ffmpeg/libavformat/network.h
trunk/blender/extern/ffmpeg/libavformat/nut.h
trunk/blender/extern/ffmpeg/libavformat/nutdec.c
trunk/blender/extern/ffmpeg/libavformat/nutenc.c
trunk/blender/extern/ffmpeg/libavformat/raw.h
trunk/blender/extern/ffmpeg/libavformat/riff.c
trunk/blender/extern/ffmpeg/libavformat/riff.h
trunk/blender/extern/ffmpeg/libavformat/rm.h
trunk/blender/extern/ffmpeg/libavformat/rmdec.c
trunk/blender/extern/ffmpeg/libavformat/rmenc.c
trunk/blender/extern/ffmpeg/libavformat/rtp_aac.c
trunk/blender/extern/ffmpeg/libavformat/rtp_aac.h
trunk/blender/extern/ffmpeg/libavformat/rtp_h264.c
trunk/blender/extern/ffmpeg/libavformat/rtp_h264.h
trunk/blender/extern/ffmpeg/libavformat/rtp_internal.h
trunk/blender/extern/ffmpeg/libavformat/rtp_mpv.c
trunk/blender/extern/ffmpeg/libavformat/rtp_mpv.h
trunk/blender/extern/ffmpeg/libavformat/sdp.c
trunk/blender/extern/ffmpeg/libavformat/thp.c
trunk/blender/extern/ffmpeg/libavformat/tiertexseq.c
trunk/blender/extern/ffmpeg/libavformat/txd.c
trunk/blender/extern/ffmpeg/libavformat/v4l.c
trunk/blender/extern/ffmpeg/libavformat/vocdec.c
trunk/blender/extern/ffmpeg/libavformat/vocenc.c
trunk/blender/extern/ffmpeg/libavformat/wv.c
trunk/blender/extern/ffmpeg/libavformat/x11grab.c
trunk/blender/extern/ffmpeg/libavutil/adler32.c
trunk/blender/extern/ffmpeg/libavutil/adler32.h
trunk/blender/extern/ffmpeg/libavutil/aes.c
trunk/blender/extern/ffmpeg/libavutil/aes.h
trunk/blender/extern/ffmpeg/libavutil/avstring.h
trunk/blender/extern/ffmpeg/libavutil/base64.c
trunk/blender/extern/ffmpeg/libavutil/base64.h
trunk/blender/extern/ffmpeg/libavutil/fifo.c
trunk/blender/extern/ffmpeg/libavutil/fifo.h
trunk/blender/extern/ffmpeg/libavutil/internal.h
trunk/blender/extern/ffmpeg/libavutil/intreadwrite.h
trunk/blender/extern/ffmpeg/libavutil/lls.c
trunk/blender/extern/ffmpeg/libavutil/lls.h
trunk/blender/extern/ffmpeg/libavutil/log.c
trunk/blender/extern/ffmpeg/libavutil/log.h
trunk/blender/extern/ffmpeg/libavutil/lzo.c
trunk/blender/extern/ffmpeg/libavutil/lzo.h
trunk/blender/extern/ffmpeg/libavutil/md5.c
trunk/blender/extern/ffmpeg/libavutil/md5.h
trunk/blender/extern/ffmpeg/libavutil/mem.c
trunk/blender/extern/ffmpeg/libavutil/mem.h
trunk/blender/extern/ffmpeg/libavutil/random.c
trunk/blender/extern/ffmpeg/libavutil/random.h
trunk/blender/extern/ffmpeg/libavutil/sha1.c
trunk/blender/extern/ffmpeg/libavutil/sha1.h
trunk/blender/extern/ffmpeg/libavutil/softfloat.c
trunk/blender/extern/ffmpeg/libavutil/softfloat.h
trunk/blender/extern/ffmpeg/libavutil/string.c
trunk/blender/extern/ffmpeg/libavutil/tree.c
trunk/blender/extern/ffmpeg/libavutil/tree.h
trunk/blender/extern/ffmpeg/libavutil/x86_cpu.h
Added: trunk/blender/extern/ffmpeg/libavcodec/aac_ac3_parser.c
===================================================================
--- trunk/blender/extern/ffmpeg/libavcodec/aac_ac3_parser.c (rev 0)
+++ trunk/blender/extern/ffmpeg/libavcodec/aac_ac3_parser.c 2007-09-23 18:22:18 UTC (rev 12124)
@@ -0,0 +1,91 @@
+/*
+ * Common AAC and AC3 parser
+ * Copyright (c) 2003 Fabrice Bellard.
+ * Copyright (c) 2003 Michael Niedermayer.
+ *
+ * This file is part of FFmpeg.
+ *
+ * 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.
+ *
+ * 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 "parser.h"
+#include "aac_ac3_parser.h"
+
+int ff_aac_ac3_parse(AVCodecParserContext *s1,
+ AVCodecContext *avctx,
+ const uint8_t **poutbuf, int *poutbuf_size,
+ const uint8_t *buf, int buf_size)
+{
+ AACAC3ParseContext *s = s1->priv_data;
+ const uint8_t *buf_ptr;
+ int len, sample_rate, bit_rate, channels, samples;
+
+ *poutbuf = NULL;
+ *poutbuf_size = 0;
+
+ buf_ptr = buf;
+ while (buf_size > 0) {
+ len = s->inbuf_ptr - s->inbuf;
+ if (s->frame_size == 0) {
+ /* no header seen : find one. We need at least s->header_size
+ bytes to parse it */
+ len = FFMIN(s->header_size - len, buf_size);
+
+ memcpy(s->inbuf_ptr, buf_ptr, len);
+ buf_ptr += len;
+ s->inbuf_ptr += len;
+ buf_size -= len;
+ if ((s->inbuf_ptr - s->inbuf) == s->header_size) {
+ len = s->sync(s->inbuf, &channels, &sample_rate, &bit_rate,
+ &samples);
+ if (len == 0) {
+ /* no sync found : move by one byte (inefficient, but simple!) */
+ memmove(s->inbuf, s->inbuf + 1, s->header_size - 1);
+ s->inbuf_ptr--;
+ } else {
+ s->frame_size = len;
+ /* update codec info */
+ avctx->sample_rate = sample_rate;
+ /* set channels,except if the user explicitly requests 1 or 2 channels, XXX/FIXME this is a bit ugly */
+ if(avctx->codec_id == CODEC_ID_AC3){
+ if(avctx->channels!=1 && avctx->channels!=2){
+ avctx->channels = channels;
+ }
+ } else {
+ avctx->channels = channels;
+ }
+ avctx->bit_rate = bit_rate;
+ avctx->frame_size = samples;
+ }
+ }
+ } else {
+ len = FFMIN(s->frame_size - len, buf_size);
+
+ memcpy(s->inbuf_ptr, buf_ptr, len);
+ buf_ptr += len;
+ s->inbuf_ptr += len;
+ buf_size -= len;
+
+ if(s->inbuf_ptr - s->inbuf == s->frame_size){
+ *poutbuf = s->inbuf;
+ *poutbuf_size = s->frame_size;
+ s->inbuf_ptr = s->inbuf;
+ s->frame_size = 0;
+ break;
+ }
+ }
+ }
+ return buf_ptr - buf;
+}
Added: trunk/blender/extern/ffmpeg/libavcodec/aac_ac3_parser.h
===================================================================
--- trunk/blender/extern/ffmpeg/libavcodec/aac_ac3_parser.h (rev 0)
+++ trunk/blender/extern/ffmpeg/libavcodec/aac_ac3_parser.h 2007-09-23 18:22:18 UTC (rev 12124)
@@ -0,0 +1,43 @@
+/*
+ * Common AAC and AC3 parser prototypes
+ * Copyright (c) 2003 Fabrice Bellard.
+ * Copyright (c) 2003 Michael Niedermayer.
+ *
+ * This file is part of FFmpeg.
+ *
+ * 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.
+ *
+ * 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
+ */
+
+#ifndef AAC_AC3_PARSER_H
+#define AAC_AC3_PARSER_H
+
+#include <stdint.h>
+#include "avcodec.h"
+
+typedef struct AACAC3ParseContext {
+ uint8_t *inbuf_ptr;
+ int frame_size;
+ int header_size;
+ int (*sync)(const uint8_t *buf, int *channels, int *sample_rate,
+ int *bit_rate, int *samples);
+ uint8_t inbuf[8192]; /* input buffer */
+} AACAC3ParseContext;
+
+int ff_aac_ac3_parse(AVCodecParserContext *s1,
+ AVCodecContext *avctx,
+ const uint8_t **poutbuf, int *poutbuf_size,
+ const uint8_t *buf, int buf_size);
+
+#endif /* AAC_AC3_PARSER_H */
Added: trunk/blender/extern/ffmpeg/libavcodec/aac_parser.c
===================================================================
--- trunk/blender/extern/ffmpeg/libavcodec/aac_parser.c (rev 0)
+++ trunk/blender/extern/ffmpeg/libavcodec/aac_parser.c 2007-09-23 18:22:18 UTC (rev 12124)
@@ -0,0 +1,97 @@
+/*
+ * Audio and Video frame extraction
+ * Copyright (c) 2003 Fabrice Bellard.
+ * Copyright (c) 2003 Michael Niedermayer.
+ *
+ * This file is part of FFmpeg.
+ *
+ * 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.
+ *
+ * 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 "parser.h"
+#include "aac_ac3_parser.h"
+#include "bitstream.h"
+
+
+#define AAC_HEADER_SIZE 7
+
+
+static const int aac_sample_rates[16] = {
+ 96000, 88200, 64000, 48000, 44100, 32000,
+ 24000, 22050, 16000, 12000, 11025, 8000, 7350
+};
+
+static const int aac_channels[8] = {
+ 0, 1, 2, 3, 4, 5, 6, 8
+};
+
+
+static int aac_sync(const uint8_t *buf, int *channels, int *sample_rate,
+ int *bit_rate, int *samples)
+{
+ GetBitContext bits;
+ int size, rdb, ch, sr;
+
+ init_get_bits(&bits, buf, AAC_HEADER_SIZE * 8);
+
+ if(get_bits(&bits, 12) != 0xfff)
+ return 0;
+
+ skip_bits1(&bits); /* id */
+ skip_bits(&bits, 2); /* layer */
+ skip_bits1(&bits); /* protection_absent */
+ skip_bits(&bits, 2); /* profile_objecttype */
+ sr = get_bits(&bits, 4); /* sample_frequency_index */
+ if(!aac_sample_rates[sr])
+ return 0;
+ skip_bits1(&bits); /* private_bit */
+ ch = get_bits(&bits, 3); /* channel_configuration */
+ if(!aac_channels[ch])
+ return 0;
+ skip_bits1(&bits); /* original/copy */
+ skip_bits1(&bits); /* home */
+
+ /* adts_variable_header */
+ skip_bits1(&bits); /* copyright_identification_bit */
+ skip_bits1(&bits); /* copyright_identification_start */
+ size = get_bits(&bits, 13); /* aac_frame_length */
+ skip_bits(&bits, 11); /* adts_buffer_fullness */
+ rdb = get_bits(&bits, 2); /* number_of_raw_data_blocks_in_frame */
+
+ *channels = aac_channels[ch];
+ *sample_rate = aac_sample_rates[sr];
+ *samples = (rdb + 1) * 1024;
+ *bit_rate = size * 8 * *sample_rate / *samples;
+
+ return size;
+}
+
+static int aac_parse_init(AVCodecParserContext *s1)
+{
+ AACAC3ParseContext *s = s1->priv_data;
+ s->inbuf_ptr = s->inbuf;
+ s->header_size = AAC_HEADER_SIZE;
+ s->sync = aac_sync;
+ return 0;
+}
+
+
+AVCodecParser aac_parser = {
+ { CODEC_ID_AAC },
+ sizeof(AACAC3ParseContext),
+ aac_parse_init,
+ ff_aac_ac3_parse,
+ NULL,
+};
Added: trunk/blender/extern/ffmpeg/libavcodec/ac3.c
===================================================================
--- trunk/blender/extern/ffmpeg/libavcodec/ac3.c (rev 0)
+++ trunk/blender/extern/ffmpeg/libavcodec/ac3.c 2007-09-23 18:22:18 UTC (rev 12124)
@@ -0,0 +1,239 @@
+/*
+ * Common code between AC3 encoder and decoder
+ * Copyright (c) 2000 Fabrice Bellard.
+ *
+ * This file is part of FFmpeg.
+ *
+ * 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.
+ *
+ * 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
+ */
+
+/**
+ * @file ac3.c
+ * Common code between AC3 encoder and decoder.
+ */
+
+#include "avcodec.h"
+#include "ac3.h"
+#include "bitstream.h"
+
+static uint8_t bndtab[51];
+static uint8_t masktab[253];
+
+static inline int calc_lowcomp1(int a, int b0, int b1, int c)
+{
+ if ((b0 + 256) == b1) {
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list