summaryrefslogtreecommitdiff
path: root/dxr3demuxdevice.c
diff options
context:
space:
mode:
Diffstat (limited to 'dxr3demuxdevice.c')
-rw-r--r--dxr3demuxdevice.c130
1 files changed, 65 insertions, 65 deletions
diff --git a/dxr3demuxdevice.c b/dxr3demuxdevice.c
index 0b08e82..669c729 100644
--- a/dxr3demuxdevice.c
+++ b/dxr3demuxdevice.c
@@ -24,21 +24,21 @@
// ==================================
//! constructor
-cDxr3DemuxDevice::cDxr3DemuxDevice(cDxr3Interface& dxr3Device) :
- m_dxr3Device(dxr3Device),
- m_aBuf(AUDIO_MAX_BUFFER_SIZE, AUIDO_MAX_FRAME_SIZE, m_dxr3Device),
- m_vBuf(VIDEO_MAX_BUFFER_SIZE, VIDEO_MAX_FRAME_SIZE, m_dxr3Device)
+cDxr3DemuxDevice::cDxr3DemuxDevice() :
+ m_dxr3Device(cDxr3Interface::instance()),
+ m_aBuf(AUDIO_MAX_BUFFER_SIZE, AUIDO_MAX_FRAME_SIZE),
+ m_vBuf(VIDEO_MAX_BUFFER_SIZE, VIDEO_MAX_FRAME_SIZE)
{
m_ReUseFrame = 1;
m_synchState = DXR3_DEMUX_UNSYNCHED;
m_demuxMode = DXR3_DEMUX_OFF_MODE;
- m_pAudioThread = new cDxr3AudioOutThread(dxr3Device, m_aBuf);
+ m_pAudioThread = new cDxr3AudioOutThread(m_aBuf);
if (!m_pAudioThread) {
esyslog("dxr3: fatal: unable to allocate memory for audio thread");
exit(1);
}
- m_pVideoThread = new cDxr3VideoOutThread(dxr3Device, m_vBuf);
+ m_pVideoThread = new cDxr3VideoOutThread(m_vBuf);
if (!m_pVideoThread) {
esyslog("dxr3: fatal: unable to allocate memory for video thread");
exit(1);
@@ -65,8 +65,8 @@ cDxr3DemuxDevice::~cDxr3DemuxDevice()
// stop demuxing process
void cDxr3DemuxDevice::Stop()
{
- m_dxr3Device.DisableVideo();
- m_dxr3Device.DisableAudio();
+ m_dxr3Device->DisableVideo();
+ m_dxr3Device->DisableAudio();
m_vBuf.Clear();
m_aBuf.Clear();
m_vBuf.WakeUp();
@@ -77,15 +77,15 @@ void cDxr3DemuxDevice::Stop()
m_synchState = DXR3_DEMUX_UNSYNCHED;
m_demuxMode = DXR3_DEMUX_OFF_MODE;
- m_dxr3Device.PlayBlackFrame();
- m_dxr3Device.ReOpenAudio();
+ m_dxr3Device->PlayBlackFrame();
+ m_dxr3Device->ReOpenAudio();
}
// ==================================
void cDxr3DemuxDevice::Resync()
{
- m_dxr3Device.DisableVideo();
- m_dxr3Device.DisableAudio();
+ m_dxr3Device->DisableVideo();
+ m_dxr3Device->DisableAudio();
m_vBuf.Clear();
m_aBuf.Clear();
m_vBuf.WakeUp();
@@ -100,8 +100,8 @@ void cDxr3DemuxDevice::Resync()
// ==================================
void cDxr3DemuxDevice::Clear()
{
- m_dxr3Device.DisableVideo();
- m_dxr3Device.DisableAudio();
+ m_dxr3Device->DisableVideo();
+ m_dxr3Device->DisableAudio();
m_vBuf.Clear();
m_aBuf.Clear();
m_vBuf.WakeUp();
@@ -121,10 +121,10 @@ void cDxr3DemuxDevice::SetReplayMode()
if (m_demuxMode == DXR3_DEMUX_TRICK_MODE &&
m_trickState == DXR3_FREEZE)
{
- m_dxr3Device.SetPlayMode();
- m_dxr3Device.SetSysClock(m_stopScr);
- m_dxr3Device.EnableVideo();
- m_dxr3Device.EnableAudio();
+ m_dxr3Device->SetPlayMode();
+ m_dxr3Device->SetSysClock(m_stopScr);
+ m_dxr3Device->EnableVideo();
+ m_dxr3Device->EnableAudio();
m_vBuf.Start();
m_aBuf.Start();
m_vBuf.WakeUp();
@@ -145,13 +145,13 @@ void cDxr3DemuxDevice::SetTrickMode(eDxr3TrickState trickState, int Speed)
{
m_demuxMode = DXR3_DEMUX_TRICK_MODE;
m_trickState = trickState;
- m_dxr3Device.DisableAudio();
+ m_dxr3Device->DisableAudio();
if (m_demuxMode == DXR3_DEMUX_TRICK_MODE &&
m_trickState == DXR3_FREEZE)
{
- m_stopScr = m_dxr3Device.GetSysClock();
- // m_dxr3Device.Pause();
+ m_stopScr = m_dxr3Device->GetSysClock();
+ // m_dxr3Device->Pause();
m_vBuf.Stop();
m_aBuf.Stop();
}
@@ -171,7 +171,7 @@ void cDxr3DemuxDevice::StillPicture(const uint8_t* buf, int length)
m_aBuf.Clear();
m_demuxMode = DXR3_DEMUX_TRICK_MODE;
m_trickState = DXR3_FREEZE;
- m_dxr3Device.SingleStep();
+ m_dxr3Device->SingleStep();
dsyslog("dxr3: demux: stillpicture length: %d", length);
@@ -193,7 +193,7 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts)
int scr = 0;
int pcr = 0;
- scr = m_dxr3Device.GetSysClock();
+ scr = m_dxr3Device->GetSysClock();
//printf("vBuf size = %d\n", m_vBuf.Available());
//printf("aBuf size = %d\n", m_aBuf.Available());
@@ -248,7 +248,7 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts)
if (pesFrame->GetPesDataType() == cDxr3PesFrame::PES_VIDEO_DATA) {
/*
- m_dxr3Device.PlayVideoFrame(pesFrame->GetEsStart(),
+ m_dxr3Device->PlayVideoFrame(pesFrame->GetEsStart(),
(int) (pesFrame->GetPayloadLength()));
*/
@@ -256,26 +256,26 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts)
switch (pesFrame->GetFrameType()) {
case I_FRAME:
dsyslog("dxr3: demux: I-frame");
- m_dxr3Device.SingleStep();
+ m_dxr3Device->SingleStep();
bPlaySuc = true;
//if (bPlayedFrame) return length;
bPlayedFrame = true;
- m_dxr3Device.SetHorizontalSize(pesFrame->GetHorizontalSize());
- m_dxr3Device.SetVerticalSize(pesFrame->GetVerticalSize());
- m_dxr3Device.PlayVideoFrame(pesFrame->GetPayload(), pesFrame->GetPayloadLength(), m_ReUseFrame);
+ m_dxr3Device->SetHorizontalSize(pesFrame->GetHorizontalSize());
+ m_dxr3Device->SetVerticalSize(pesFrame->GetVerticalSize());
+ m_dxr3Device->PlayVideoFrame(pesFrame->GetPayload(), pesFrame->GetPayloadLength(), m_ReUseFrame);
break;
case UNKNOWN_FRAME:
dsyslog("dxr3: demux: unknown frame");
if (bPlaySuc) {
- m_dxr3Device.PlayVideoFrame(pesFrame->GetPayload(), pesFrame->GetPayloadLength(), m_ReUseFrame);
+ m_dxr3Device->PlayVideoFrame(pesFrame->GetPayload(), pesFrame->GetPayloadLength(), m_ReUseFrame);
}
break;
default:
dsyslog("dxr3: demux: default frame");
if (bPlaySuc) {
- m_dxr3Device.PlayVideoFrame(pesFrame->GetPayload(), pesFrame->GetPayloadLength(), m_ReUseFrame);
+ m_dxr3Device->PlayVideoFrame(pesFrame->GetPayload(), pesFrame->GetPayloadLength(), m_ReUseFrame);
}
bPlaySuc = false;
@@ -283,12 +283,12 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts)
}
} else if (m_demuxMode == DXR3_DEMUX_VIDEO_ONLY_MODE) {
- m_dxr3Device.PlayVideoFrame(pesFrame->GetPayload(), (int)(pesFrame->GetPayloadLength()));
+ m_dxr3Device->PlayVideoFrame(pesFrame->GetPayload(), (int)(pesFrame->GetPayloadLength()));
} else if (m_synchState == DXR3_DEMUX_VIDEO_SYNCHED ||
m_synchState == DXR3_DEMUX_SYNCHED) {
- m_dxr3Device.SetHorizontalSize(pesFrame->GetHorizontalSize());
- m_dxr3Device.SetVerticalSize(pesFrame->GetVerticalSize());
+ m_dxr3Device->SetHorizontalSize(pesFrame->GetHorizontalSize());
+ m_dxr3Device->SetVerticalSize(pesFrame->GetVerticalSize());
while (!Poll(100));
cFixedLengthFrame* pTempFrame = m_vBuf.Push(pesFrame->GetPayload(), (int) (pesFrame->GetPayloadLength()), pts, ftVideo);
@@ -303,10 +303,10 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts)
if (m_vBuf.GetFillLevel() > 5 && m_synchState != DXR3_DEMUX_SYNCHED) {
m_synchState = DXR3_DEMUX_SYNCHED;
pcr = vPts - PRE_BUFFER_LENGTH;
- m_dxr3Device.SetSysClock(pcr);
- m_dxr3Device.SetPlayMode();
- m_dxr3Device.EnableVideo();
- m_dxr3Device.EnableAudio();
+ m_dxr3Device->SetSysClock(pcr);
+ m_dxr3Device->SetPlayMode();
+ m_dxr3Device->EnableVideo();
+ m_dxr3Device->EnableAudio();
m_vBuf.Start();
m_aBuf.Start();
}
@@ -314,8 +314,8 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts)
if (pesFrame->GetFrameType() == I_FRAME) {
vPts = pts;
- m_dxr3Device.SetHorizontalSize(pesFrame->GetHorizontalSize());
- m_dxr3Device.SetVerticalSize(pesFrame->GetVerticalSize());
+ m_dxr3Device->SetHorizontalSize(pesFrame->GetHorizontalSize());
+ m_dxr3Device->SetVerticalSize(pesFrame->GetVerticalSize());
cFixedLengthFrame* pTempFrame = m_vBuf.Push(pesFrame->GetPayload(), (int) (pesFrame->GetPayloadLength()), pts, ftVideo);
// TODO: rework me
//if (!pTempFrame) /* Push Timeout */
@@ -337,10 +337,10 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts)
} else {
pcr = vPts - PRE_BUFFER_LENGTH;
}
- m_dxr3Device.SetSysClock(pcr);
- m_dxr3Device.SetPlayMode();
- m_dxr3Device.EnableVideo();
- m_dxr3Device.EnableAudio();
+ m_dxr3Device->SetSysClock(pcr);
+ m_dxr3Device->SetPlayMode();
+ m_dxr3Device->EnableVideo();
+ m_dxr3Device->EnableAudio();
m_vBuf.Start();
m_aBuf.Start();
}
@@ -349,16 +349,16 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts)
} else if (pesFrame->GetPesDataType() == cDxr3PesFrame::PES_AUDIO_DATA
&& m_demuxMode != DXR3_DEMUX_VIDEO_ONLY_MODE
- && !cDxr3Interface::Instance().IsAudioModeAC3()) {
+ && !cDxr3Interface::instance()->IsAudioModeAC3()) {
if (m_synchState == DXR3_DEMUX_AUDIO_SYNCHED ||
m_synchState == DXR3_DEMUX_SYNCHED) {
if (pts && m_synchState != DXR3_DEMUX_SYNCHED) {
m_synchState = DXR3_DEMUX_SYNCHED;
pcr = aPts - PRE_BUFFER_LENGTH;
- m_dxr3Device.SetSysClock(pcr);
- m_dxr3Device.SetPlayMode();
- m_dxr3Device.EnableVideo();
- m_dxr3Device.EnableAudio();
+ m_dxr3Device->SetSysClock(pcr);
+ m_dxr3Device->SetPlayMode();
+ m_dxr3Device->EnableVideo();
+ m_dxr3Device->EnableAudio();
m_vBuf.Start();
m_aBuf.Start();
}
@@ -385,10 +385,10 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts)
} else {
pcr = vPts - PRE_BUFFER_LENGTH;
}
- m_dxr3Device.SetSysClock(pcr);
- m_dxr3Device.SetPlayMode();
- m_dxr3Device.EnableVideo();
- m_dxr3Device.EnableAudio();
+ m_dxr3Device->SetSysClock(pcr);
+ m_dxr3Device->SetPlayMode();
+ m_dxr3Device->EnableVideo();
+ m_dxr3Device->EnableAudio();
m_vBuf.Start();
m_aBuf.Start();
}
@@ -396,7 +396,7 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts)
}
} else if (pesFrame->GetPesDataType() == cDxr3PesFrame::PES_PRIVATE_DATA
&& m_demuxMode != DXR3_DEMUX_VIDEO_ONLY_MODE
- && !cDxr3Interface::Instance().IsAudioModeAC3()
+ && !cDxr3Interface::instance()->IsAudioModeAC3()
&& !bAc3Dts) {
if (m_synchState == DXR3_DEMUX_AUDIO_SYNCHED ||
m_synchState == DXR3_DEMUX_SYNCHED) {
@@ -420,10 +420,10 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts)
} else {
pcr = vPts - PRE_BUFFER_LENGTH;
}
- m_dxr3Device.SetSysClock(pcr);
- m_dxr3Device.SetPlayMode();
- m_dxr3Device.EnableVideo();
- m_dxr3Device.EnableAudio();
+ m_dxr3Device->SetSysClock(pcr);
+ m_dxr3Device->SetPlayMode();
+ m_dxr3Device->EnableVideo();
+ m_dxr3Device->EnableAudio();
m_vBuf.Start();
m_aBuf.Start();
}
@@ -431,7 +431,7 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts)
}
} else if (pesFrame->GetPesDataType() == cDxr3PesFrame::PES_PRIVATE_DATA
&& m_demuxMode != DXR3_DEMUX_VIDEO_ONLY_MODE
- && cDxr3Interface::Instance().IsAudioModeAC3()
+ && cDxr3Interface::instance()->IsAudioModeAC3()
&& bAc3Dts) {
if (m_synchState == DXR3_DEMUX_AUDIO_SYNCHED ||
m_synchState == DXR3_DEMUX_SYNCHED) {
@@ -461,10 +461,10 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts)
} else {
pcr = vPts - PRE_BUFFER_LENGTH;
}
- m_dxr3Device.SetSysClock(pcr);
- m_dxr3Device.SetPlayMode();
- m_dxr3Device.EnableVideo();
- m_dxr3Device.EnableAudio();
+ m_dxr3Device->SetSysClock(pcr);
+ m_dxr3Device->SetPlayMode();
+ m_dxr3Device->EnableVideo();
+ m_dxr3Device->EnableAudio();
m_vBuf.Start();
m_aBuf.Start();
}
@@ -497,9 +497,9 @@ int cDxr3DemuxDevice::DemuxAudioPes(const uint8_t* buf, int length)
if (m_synchState != DXR3_DEMUX_AUDIO_SYNCHED &&
syncCounter > 2) {
m_synchState = DXR3_DEMUX_AUDIO_SYNCHED;
- m_dxr3Device.SetPlayMode();
- m_dxr3Device.EnableVideo();
- m_dxr3Device.EnableAudio();
+ m_dxr3Device->SetPlayMode();
+ m_dxr3Device->EnableVideo();
+ m_dxr3Device->EnableAudio();
m_vBuf.Start();
m_aBuf.Start();
}