aboutsummaryrefslogtreecommitdiff
path: root/lib/service/servicedvb.cpp
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2009-12-22 16:08:24 +0100
committerghost <andreas.monzner@multimedia-labs.de>2009-12-22 16:08:24 +0100
commit864bab84ceacbaa2cf2814aa74f1379a0b9c8426 (patch)
tree74126a81ce57f9b3ccd6fccd5d2ac5362018a59f /lib/service/servicedvb.cpp
parent4e8904ef73e3ce5e275a1f5fbf369c4f9dab648e (diff)
parent9ec56f0aae40fe0c4afb071df436eacf79ac10af (diff)
downloadenigma2-864bab84ceacbaa2cf2814aa74f1379a0b9c8426.tar.gz
enigma2-864bab84ceacbaa2cf2814aa74f1379a0b9c8426.zip
Merge branch 'bug_271_ac3pcm_delay_servicemp3'
Diffstat (limited to 'lib/service/servicedvb.cpp')
-rw-r--r--lib/service/servicedvb.cpp33
1 files changed, 18 insertions, 15 deletions
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp
index 9a995e7b..a6b6cc6f 100644
--- a/lib/service/servicedvb.cpp
+++ b/lib/service/servicedvb.cpp
@@ -2421,17 +2421,8 @@ void eDVBServicePlay::updateDecoder()
}
}
- std::string config_delay;
- int config_delay_int = 0;
- if(ePythonConfigQuery::getConfigValue("config.av.generalAC3delay", config_delay) == 0)
- config_delay_int = atoi(config_delay.c_str());
- m_decoder->setAC3Delay(ac3_delay == -1 ? config_delay_int : ac3_delay + config_delay_int);
-
- if(ePythonConfigQuery::getConfigValue("config.av.generalPCMdelay", config_delay) == 0)
- config_delay_int = atoi(config_delay.c_str());
- else
- config_delay_int = 0;
- m_decoder->setPCMDelay(pcm_delay == -1 ? config_delay_int : pcm_delay + config_delay_int);
+ setAC3Delay(ac3_delay == -1 ? 0 : ac3_delay);
+ setPCMDelay(pcm_delay == -1 ? 0 : pcm_delay);
m_decoder->setVideoPID(vpid, vpidtype);
selectAudioStream();
@@ -2955,16 +2946,28 @@ void eDVBServicePlay::setAC3Delay(int delay)
{
if (m_dvb_service)
m_dvb_service->setCacheEntry(eDVBService::cAC3DELAY, delay ? delay : -1);
- if (m_decoder)
- m_decoder->setAC3Delay(delay);
+ if (m_decoder) {
+ std::string config_delay;
+ int config_delay_int = 0;
+ if(ePythonConfigQuery::getConfigValue("config.av.generalAC3delay", config_delay) == 0)
+ config_delay_int = atoi(config_delay.c_str());
+ m_decoder->setAC3Delay(delay + config_delay_int);
+ }
}
void eDVBServicePlay::setPCMDelay(int delay)
{
if (m_dvb_service)
m_dvb_service->setCacheEntry(eDVBService::cPCMDELAY, delay ? delay : -1);
- if (m_decoder)
- m_decoder->setPCMDelay(delay);
+ if (m_decoder) {
+ std::string config_delay;
+ int config_delay_int = 0;
+ if(ePythonConfigQuery::getConfigValue("config.av.generalPCMdelay", config_delay) == 0)
+ config_delay_int = atoi(config_delay.c_str());
+ else
+ config_delay_int = 0;
+ m_decoder->setPCMDelay(delay + config_delay_int);
+ }
}
void eDVBServicePlay::video_event(struct iTSMPEGDecoder::videoEvent event)