From a0c38be60ce102a37b58e85c354da5fc88a4f8af Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Wed, 18 Feb 2009 14:58:38 +0100 Subject: cleanup audiodecoder a little bit If we can not find the audio codec, stop everything, as we need a working ffmpeg installation. Also some unused variables were removed. --- dxr3audiodecoder.c | 23 +++++------------------ dxr3audiodecoder.h | 33 +++++++++++---------------------- 2 files changed, 16 insertions(+), 40 deletions(-) diff --git a/dxr3audiodecoder.c b/dxr3audiodecoder.c index 25a5c8e..8ce0812 100644 --- a/dxr3audiodecoder.c +++ b/dxr3audiodecoder.c @@ -38,11 +38,14 @@ const int LPCM_HEADER_LENGTH = 7; //! constructor cDxr3AudioDecoder::cDxr3AudioDecoder() : rbuf(50000), ac3dtsDecoder(&rbuf) { - decoderOpened = false; audioSynched = false; - volume = 255; Codec.id = CODEC_ID_MP2; + // check if codec is available + if (!cDxr3Ffmpeg::Instance().FindCodec(Codec)) { + exit(-1); + } + Init(); lastHeader[0] = 0xFF; @@ -63,22 +66,13 @@ void cDxr3AudioDecoder::Init() { // (re)init codec cDxr3Ffmpeg::Instance().CloseCodec(Codec); - if (cDxr3Ffmpeg::Instance().FindCodec(Codec)) - { cDxr3Ffmpeg::Instance().OpenCodec(Codec); rate = channels = -1; - frameSize = Codec.codec_context.frame_size; - decoderOpened = true; foundHeader = false; decodeAudio = true; //lastHeader[0] = 0xFF; //lastHeader[1] = lastHeader[2] = lastHeader[3] = 0; - } - else - { - decoderOpened = false; - } } // ================================== @@ -86,13 +80,6 @@ void cDxr3AudioDecoder::Init() void cDxr3AudioDecoder::Decode(const uint8_t* buf, int length, uint32_t pts, cDxr3SyncBuffer &aBuf) { - if (!decoderOpened) - { - // No decoder is open, so it - // is better to stop here. - return; - } - int len; int out_size = AVCODEC_MAX_AUDIO_FRAME_SIZE; diff --git a/dxr3audiodecoder.h b/dxr3audiodecoder.h index 22783d3..fd9dc6b 100644 --- a/dxr3audiodecoder.h +++ b/dxr3audiodecoder.h @@ -38,7 +38,7 @@ public: cDxr3AudioDecoder(); ~cDxr3AudioDecoder(); - void Init(void); // init in const? + void Init(); void Decode(const uint8_t* buf, int length, uint32_t pts, cDxr3SyncBuffer &aBuf); @@ -47,22 +47,13 @@ public: void DecodeAc3Dts(const uint8_t* pPes, const uint8_t* buf, int length, uint32_t pts, cDxr3SyncBuffer &aBuf); - int GetRate(void) const - { - return rate; - } - int GetChannelCount(void) const - { - return channels; - } - int GetFrameSize(void) const - { - return frameSize; - } - void Reset(void) + int GetRate() const { return rate; } + int GetChannelCount() const { return channels; } + + void Reset() { - ac3dtsDecoder.Clear(); - rbuf.Clear(); + ac3dtsDecoder.Clear(); + rbuf.Clear(); } private: @@ -74,15 +65,13 @@ private: cMultichannelAudio ac3dtsDecoder; bool audioSynched; - bool decoderOpened; - uint8_t lastHeader[4]; + bool foundHeader; + bool decodeAudio; + int rate; int channels; - uint32_t frameSize; + uint8_t lastHeader[4]; uint8_t pcmbuf[AVCODEC_MAX_AUDIO_FRAME_SIZE]; - int volume; - bool foundHeader; - bool decodeAudio; cDxr3AudioDecoder(cDxr3AudioDecoder&); // no copy constructor }; -- cgit v1.2.3