summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2009-02-18 14:58:38 +0100
committerChristian Gmeiner <christian.gmeiner@gmail.com>2009-02-18 14:58:38 +0100
commita0c38be60ce102a37b58e85c354da5fc88a4f8af (patch)
treed16630f7f9488056dc23b965ec7c880e63c46e94
parent6da5bb7e2348248d5f3439ff01ddd7cc9718a15f (diff)
downloadvdr-plugin-dxr3-a0c38be60ce102a37b58e85c354da5fc88a4f8af.tar.gz
vdr-plugin-dxr3-a0c38be60ce102a37b58e85c354da5fc88a4f8af.tar.bz2
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.
-rw-r--r--dxr3audiodecoder.c23
-rw-r--r--dxr3audiodecoder.h33
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
};