From 1446dc7551cab6dfac53dda7eb8a8c3b3182cf48 Mon Sep 17 00:00:00 2001 From: ghost Date: Tue, 17 Feb 2009 00:36:12 +0100 Subject: filter \n and \t in short description title --- lib/service/event.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/service') diff --git a/lib/service/event.cpp b/lib/service/event.cpp index e78ddc4e..e15eebfc 100644 --- a/lib/service/event.cpp +++ b/lib/service/event.cpp @@ -88,7 +88,7 @@ bool eServiceEvent::loadLanguage(Event *evt, std::string lang, int tsidonid) lang = cc; // use first found language if (cc == lang) { - m_event_name = convertDVBUTF8(sed->getEventName(), table, tsidonid); + m_event_name = convertDVBUTF8(replace_all(replace_all(sed->getEventName(), "\n", " "), "\t", " "), table, tsidonid); m_short_description = convertDVBUTF8(sed->getText(), table, tsidonid); retval=1; } -- cgit v1.2.3 From 4b8fe9d6650b7527b3c588f72540cea3c04423b9 Mon Sep 17 00:00:00 2001 From: Fraxinas Date: Mon, 23 Feb 2009 15:42:59 +0100 Subject: show warning message when trying to play video container with DTS stream (requires gst-plugins-dvbmedisink > 20090223) --- lib/python/Plugins/Extensions/MediaPlayer/plugin.py | 15 +++++++++++---- lib/service/servicemp3.cpp | 15 ++++++++++++--- 2 files changed, 23 insertions(+), 7 deletions(-) (limited to 'lib/service') diff --git a/lib/python/Plugins/Extensions/MediaPlayer/plugin.py b/lib/python/Plugins/Extensions/MediaPlayer/plugin.py index 3e023841..e81750ba 100644 --- a/lib/python/Plugins/Extensions/MediaPlayer/plugin.py +++ b/lib/python/Plugins/Extensions/MediaPlayer/plugin.py @@ -224,7 +224,8 @@ class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoB self.__event_tracker = ServiceEventTracker(screen=self, eventmap= { iPlayableService.evUpdatedInfo: self.__evUpdatedInfo, - iPlayableService.evUser+11: self.__evDecodeError, + iPlayableService.evUser+10: self.__evAudioDecodeError, + iPlayableService.evUser+11: self.__evVideoDecodeError, iPlayableService.evUser+12: self.__evPluginError, iPlayableService.evUser+13: self["coverArt"].embeddedCoverArt }) @@ -268,11 +269,17 @@ class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoB print "[__evUpdatedInfo] title %d of %d (%s)" % (currenttitle, totaltitles, sTitle) self.readTitleInformation() - def __evDecodeError(self): + def __evAudioDecodeError(self): + currPlay = self.session.nav.getCurrentService() + sAudioType = currPlay.info().getInfoString(iServiceInformation.sUser+10) + print "[__evAudioDecodeError] audio-codec %s can't be decoded by hardware" % (sAudioType) + self.session.open(MessageBox, _("This Dreambox can't decode %s streams!") % sAudioType, type = MessageBox.TYPE_INFO,timeout = 20 ) + + def __evVideoDecodeError(self): currPlay = self.session.nav.getCurrentService() sVideoType = currPlay.info().getInfoString(iServiceInformation.sVideoType) - print "[__evDecodeError] video-codec %s can't be decoded by hardware" % (sVideoType) - self.session.open(MessageBox, _("This Dreambox can't decode %s video streams!") % sVideoType, type = MessageBox.TYPE_INFO,timeout = 20 ) + print "[__evVideoDecodeError] video-codec %s can't be decoded by hardware" % (sVideoType) + self.session.open(MessageBox, _("This Dreambox can't decode %s streams!") % sVideoType, type = MessageBox.TYPE_INFO,timeout = 20 ) def __evPluginError(self): currPlay = self.session.nav.getCurrentService() diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp index bbcb3b5c..d90186a5 100644 --- a/lib/service/servicemp3.cpp +++ b/lib/service/servicemp3.cpp @@ -838,6 +838,7 @@ int eServiceMP3::getInfo(int w) case sGenre: case sVideoType: case sTimeCreate: + case sUser+10: case sUser+12: return resIsString; case sCurrentTitle: @@ -886,6 +887,9 @@ std::string eServiceMP3::getInfoString(int w) case sGenre: tag = GST_TAG_GENRE; break; + case sUser+10: + tag = GST_TAG_AUDIO_CODEC; + break; case sVideoType: tag = GST_TAG_VIDEO_CODEC; break; @@ -1025,7 +1029,7 @@ void eServiceMP3::gstBusCall(GstBus *bus, GstMessage *msg) source = GST_MESSAGE_SRC(msg); sourceName = gst_object_get_name(source); -#if 0 +#if 1 if (gst_message_get_structure(msg)) { gchar *string = gst_structure_to_string(gst_message_get_structure(msg)); @@ -1050,8 +1054,13 @@ void eServiceMP3::gstBusCall(GstBus *bus, GstMessage *msg) eWarning("Gstreamer error: %s (%i) from %s", err->message, err->code, sourceName ); if ( err->domain == GST_STREAM_ERROR ) { - if ( err->code == GST_STREAM_ERROR_CODEC_NOT_FOUND && g_strrstr(sourceName, "videosink") ) - m_event((iPlayableService*)this, evUser+11); + if ( err->code == GST_STREAM_ERROR_CODEC_NOT_FOUND ) + { + if ( g_strrstr(sourceName, "videosink") ) + m_event((iPlayableService*)this, evUser+11); + else if ( g_strrstr(sourceName, "audiosink") ) + m_event((iPlayableService*)this, evUser+10); + } else if ( err->code == GST_STREAM_ERROR_FAILED && g_strrstr(sourceName, "file-source") ) { eWarning("error in tag parsing, linking mp3parse directly to file-sink, bypassing id3demux..."); -- cgit v1.2.3 From 404743faf9cbf0c70d68ca047f2a8e914a0d94b5 Mon Sep 17 00:00:00 2001 From: ghost Date: Wed, 4 Mar 2009 11:50:27 +0100 Subject: no more need to use fluendo mpeg stuff --- lib/service/servicemp3.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/service') diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp index d90186a5..569272b0 100644 --- a/lib/service/servicemp3.cpp +++ b/lib/service/servicemp3.cpp @@ -321,11 +321,11 @@ eServiceMP3::eServiceMP3(const char *filename): m_filename(filename), m_pump(eAp switch (sourceinfo.containertype) { case ctMPEGTS: - demux_type = "flutsdemux"; + demux_type = "mpegtsdemux"; break; case ctMPEGPS: case ctVCD: - demux_type = "flupsdemux"; + demux_type = "mpegpsdemux"; break; case ctMKV: demux_type = "matroskademux"; -- cgit v1.2.3 From 4531ea135c84d78d96d66a08b67f1f5e09475c55 Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Wed, 11 Mar 2009 08:12:01 +0100 Subject: Patch by Moritz Venn: Allow to set an additional delay via config. Note that this requires driver support, which is not necessarily complete. --- data/setup.xml | 2 ++ lib/python/Components/AVSwitch.py | 5 ++++- lib/python/Plugins/SystemPlugins/Videomode/plugin.py | 4 ++++ lib/service/servicedvb.cpp | 14 ++++++++++++-- 4 files changed, 22 insertions(+), 3 deletions(-) (limited to 'lib/service') diff --git a/data/setup.xml b/data/setup.xml index e2ab09b1..17301f23 100644 --- a/data/setup.xml +++ b/data/setup.xml @@ -13,6 +13,8 @@ config.av.tvsystem config.av.wss config.av.defaultac3 + config.av.generalAC3delay + config.av.generalPCMdelay config.av.downmix_ac3 config.av.vcrswitch diff --git a/lib/python/Components/AVSwitch.py b/lib/python/Components/AVSwitch.py index 3188469a..8f4255b8 100644 --- a/lib/python/Components/AVSwitch.py +++ b/lib/python/Components/AVSwitch.py @@ -1,4 +1,5 @@ -from config import config, ConfigSlider, ConfigSelection, ConfigYesNo, ConfigEnableDisable, ConfigSubsection, ConfigBoolean +from config import config, ConfigSlider, ConfigSelection, ConfigYesNo, \ + ConfigEnableDisable, ConfigSubsection, ConfigBoolean, ConfigNumber from enigma import eAVSwitch, getDesktop from SystemInfo import SystemInfo @@ -110,6 +111,8 @@ def InitAVSwitch(): config.av.tvsystem = ConfigSelection(choices = {"pal": _("PAL"), "ntsc": _("NTSC"), "multinorm": _("multinorm")}, default="pal") config.av.wss = ConfigEnableDisable(default = True) config.av.defaultac3 = ConfigYesNo(default = False) + config.av.generalAC3delay = ConfigNumber(default = 0) + config.av.generalPCMdelay = ConfigNumber(default = 0) config.av.vcrswitch = ConfigEnableDisable(default = False) iAVSwitch = AVSwitch() diff --git a/lib/python/Plugins/SystemPlugins/Videomode/plugin.py b/lib/python/Plugins/SystemPlugins/Videomode/plugin.py index 5a7dfd1b..6b6d5045 100644 --- a/lib/python/Plugins/SystemPlugins/Videomode/plugin.py +++ b/lib/python/Plugins/SystemPlugins/Videomode/plugin.py @@ -98,6 +98,10 @@ class VideoSetup(Screen, ConfigListScreen): self.list.append(getConfigListEntry(_("AC3 default"), config.av.defaultac3)) if SystemInfo["CanDownmixAC3"]: self.list.append(getConfigListEntry(_("AC3 downmix"), config.av.downmix_ac3)) + self.list.extend(( + getConfigListEntry(_("General AC3 Delay"), config.av.generalAC3delay), + getConfigListEntry(_("General PCM Delay"), config.av.generalPCMdelay) + )) if SystemInfo["CanChangeOsdAlpha"]: self.list.append(getConfigListEntry(_("OSD visibility"), config.av.osd_alpha)) diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp index 12b75f80..012493fa 100644 --- a/lib/service/servicedvb.cpp +++ b/lib/service/servicedvb.cpp @@ -2267,8 +2267,18 @@ void eDVBServicePlay::updateDecoder() } } } - m_decoder->setAC3Delay(ac3_delay == -1 ? 0 : ac3_delay); - m_decoder->setPCMDelay(pcm_delay == -1 ? 0 : pcm_delay); + + 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); m_decoder->setVideoPID(vpid, vpidtype); selectAudioStream(); -- cgit v1.2.3