diff options
| author | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2007-04-03 01:18:24 +0200 |
|---|---|---|
| committer | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2007-04-03 01:18:24 +0200 |
| commit | fb09531720a4aa2dfa97e5a9a246a453b6278fd2 (patch) | |
| tree | 61525c3a8ddb419d3838a26e488fc3659079bbcd /contrib/ffmpeg/libavcodec/a52dec.c | |
| parent | 294d01046724e28b7193bcb65bf2a0391b0135b6 (diff) | |
| download | xine-lib-fb09531720a4aa2dfa97e5a9a246a453b6278fd2.tar.gz xine-lib-fb09531720a4aa2dfa97e5a9a246a453b6278fd2.tar.bz2 | |
Sync with a more recent version of FFmpeg.
Diffstat (limited to 'contrib/ffmpeg/libavcodec/a52dec.c')
| -rw-r--r-- | contrib/ffmpeg/libavcodec/a52dec.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/contrib/ffmpeg/libavcodec/a52dec.c b/contrib/ffmpeg/libavcodec/a52dec.c index dec25138e..c2da2283d 100644 --- a/contrib/ffmpeg/libavcodec/a52dec.c +++ b/contrib/ffmpeg/libavcodec/a52dec.c @@ -1,5 +1,5 @@ /* - * A52 decoder + * A52 decoder using liba52 * Copyright (c) 2001 Fabrice Bellard. * * This file is part of FFmpeg. @@ -21,13 +21,13 @@ /** * @file a52dec.c - * A52 decoder. + * A52 decoder using liba52 */ #include "avcodec.h" -#include "liba52/a52.h" +#include <a52dec/a52.h> -#ifdef CONFIG_A52BIN +#ifdef CONFIG_LIBA52BIN #include <dlfcn.h> static const char* liba52name = "liba52.so.0"; #endif @@ -70,7 +70,7 @@ typedef struct AC3DecodeState { } AC3DecodeState; -#ifdef CONFIG_A52BIN +#ifdef CONFIG_LIBA52BIN static void* dlsymm(void* handle, const char* symbol) { void* f = dlsym(handle, symbol); @@ -84,7 +84,7 @@ static int a52_decode_init(AVCodecContext *avctx) { AC3DecodeState *s = avctx->priv_data; -#ifdef CONFIG_A52BIN +#ifdef CONFIG_LIBA52BIN s->handle = dlopen(liba52name, RTLD_LAZY); if (!s->handle) { @@ -104,7 +104,6 @@ static int a52_decode_init(AVCodecContext *avctx) return -1; } #else - /* static linked version */ s->handle = 0; s->a52_init = a52_init; s->a52_samples = a52_samples; @@ -162,6 +161,8 @@ static int a52_decode_frame(AVCodecContext *avctx, 2, 1, 2, 3, 3, 4, 4, 5 }; + *data_size= 0; + buf_ptr = buf; while (buf_size > 0) { len = s->inbuf_ptr - s->inbuf; @@ -217,6 +218,7 @@ static int a52_decode_frame(AVCodecContext *avctx, level = 1; if (s->a52_frame(s->state, s->inbuf, &flags, &level, 384)) { fail: + av_log(avctx, AV_LOG_ERROR, "Error decoding frame\n"); s->inbuf_ptr = s->inbuf; s->frame_size = 0; continue; @@ -239,13 +241,13 @@ static int a52_decode_end(AVCodecContext *avctx) { AC3DecodeState *s = avctx->priv_data; s->a52_free(s->state); -#ifdef CONFIG_A52BIN +#ifdef CONFIG_LIBA52BIN dlclose(s->handle); #endif return 0; } -AVCodec ac3_decoder = { +AVCodec liba52_decoder = { "ac3", CODEC_TYPE_AUDIO, CODEC_ID_AC3, |
