[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