diff --git a/src/gui/streaminfo2.cpp b/src/gui/streaminfo2.cpp index 63cdeafc2..a4a255b33 100644 --- a/src/gui/streaminfo2.cpp +++ b/src/gui/streaminfo2.cpp @@ -665,26 +665,26 @@ void CStreamInfo2::paint_techinfo(int xpos, int ypos) spaceoffset = 7 * fontW; //onid ypos+= sheight; - sprintf((char*) buf, "0x%04x (%i)", si.onid, si.onid); + sprintf((char*) buf, "0x%04X (%i)", si.onid, si.onid); g_Font[font_small]->RenderString(xpos, ypos, box_width, "ONid:" , COL_INFOBAR, 0, true); // UTF-8 g_Font[font_small]->RenderString(xpos+spaceoffset, ypos, box_width, buf, COL_INFOBAR, 0, true); // UTF-8 //sid ypos+= sheight; - sprintf((char*) buf, "0x%04x (%i)", si.sid, si.sid); + sprintf((char*) buf, "0x%04X (%i)", si.sid, si.sid); g_Font[font_small]->RenderString(xpos, ypos, box_width, "Sid:" , COL_INFOBAR, 0, true); // UTF-8 g_Font[font_small]->RenderString(xpos+spaceoffset, ypos, box_width, buf, COL_INFOBAR, 0, true); // UTF-8 //tsid ypos+= sheight; - sprintf((char*) buf, "0x%04x (%i)", si.tsid, si.tsid); + sprintf((char*) buf, "0x%04X (%i)", si.tsid, si.tsid); g_Font[font_small]->RenderString(xpos, ypos, box_width, "TSid:" , COL_INFOBAR, 0, true); // UTF-8 g_Font[font_small]->RenderString(xpos+spaceoffset, ypos, box_width, buf, COL_INFOBAR, 0, true); // UTF-8 //pmtpid ypos+= sheight; pmt_version = si.pmt_version; - sprintf((char*) buf, "0x%04x (%i) [%i]", si.pmtpid, si.pmtpid,pmt_version); + sprintf((char*) buf, "0x%04X (%i) [%i]", si.pmtpid, si.pmtpid,pmt_version); g_Font[font_small]->RenderString(xpos, ypos, box_width, "PMTpid:", COL_INFOBAR, 0, true); // UTF-8 g_Font[font_small]->RenderString(xpos+spaceoffset, ypos, box_width, buf, COL_INFOBAR, 0, true); // UTF-8 @@ -692,7 +692,7 @@ void CStreamInfo2::paint_techinfo(int xpos, int ypos) //vpid ypos+= sheight; if ( g_RemoteControl->current_PIDs.PIDs.vpid > 0 ){ - sprintf((char*) buf, "0x%04x (%i)", g_RemoteControl->current_PIDs.PIDs.vpid, g_RemoteControl->current_PIDs.PIDs.vpid ); + sprintf((char*) buf, "0x%04X (%i)", g_RemoteControl->current_PIDs.PIDs.vpid, g_RemoteControl->current_PIDs.PIDs.vpid ); } else { sprintf((char*) buf, "%s", g_Locale->getText(LOCALE_STREAMINFO_NOT_AVAILABLE)); } @@ -708,7 +708,7 @@ void CStreamInfo2::paint_techinfo(int xpos, int ypos) unsigned int sw=spaceoffset; for (unsigned int li= 0; (licurrent_PIDs.APIDs.size()) && (li<10); li++) { - sprintf((char*) buf, "0x%04x (%i)", g_RemoteControl->current_PIDs.APIDs[li].pid, g_RemoteControl->current_PIDs.APIDs[li].pid ); + sprintf((char*) buf, "0x%04X (%i)", g_RemoteControl->current_PIDs.APIDs[li].pid, g_RemoteControl->current_PIDs.APIDs[li].pid ); if (li == g_RemoteControl->current_PIDs.PIDs.selected_apid){ g_Font[font_small]->RenderString(xpos+sw, ypos, box_width, buf, COL_MENUHEAD, 0, true); // UTF-8 } @@ -728,7 +728,7 @@ void CStreamInfo2::paint_techinfo(int xpos, int ypos) if ( g_RemoteControl->current_PIDs.PIDs.vtxtpid == 0 ) sprintf((char*) buf, "%s", g_Locale->getText(LOCALE_STREAMINFO_NOT_AVAILABLE)); else - sprintf((char*) buf, "0x%04x (%i)", g_RemoteControl->current_PIDs.PIDs.vtxtpid, g_RemoteControl->current_PIDs.PIDs.vtxtpid ); + sprintf((char*) buf, "0x%04X (%i)", g_RemoteControl->current_PIDs.PIDs.vtxtpid, g_RemoteControl->current_PIDs.PIDs.vtxtpid ); g_Font[font_small]->RenderString(xpos, ypos, box_width, "VTXTpid:" , COL_INFOBAR, 0, true); // UTF-8 g_Font[font_small]->RenderString(xpos+spaceoffset, ypos, box_width, buf, COL_INFOBAR, 0, true); // UTF-8 if(box_h == 0) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index d224a6f8b..42736de80 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -146,11 +146,13 @@ void * sectionsd_main_thread(void *data); extern bool timeset; // sectionsd extern cVideo * videoDecoder; +extern cDemux *videoDemux; extern cAudio * audioDecoder; cPowerManager *powerManager; cCpuFreqManager * cpuFreq; void stop_daemons(bool stopall = true); +void stop_video(void); // uncomment if you want to have a "test" menue entry (rasc) //#define __EXPERIMENTAL_CODE__ @@ -2960,8 +2962,7 @@ void CNeutrinoApp::ExitRun(const bool /*write_si*/, int retcode) standby.timer_minutes_hi = fp_timer >> 8;; standby.timer_minutes_lo = fp_timer & 0xFF; - delete videoDecoder; - cs_api_exit(); + stop_video(); int fd = open("/dev/display", O_RDONLY); if (fd < 0) { @@ -3026,7 +3027,8 @@ void CNeutrinoApp::ExitRun(const bool /*write_si*/, int retcode) delete funNotifier; } //CVFD::getInstance()->ShowText(g_Locale->getText(LOCALE_MAINMENU_REBOOT)); - //delete frameBuffer; + stop_video(); + #if 0 /* FIXME this next hack to test, until we find real crash on exit reason */ system("/etc/init.d/rcK"); system("/bin/sync"); @@ -3608,9 +3610,9 @@ int CNeutrinoApp::exec(CMenuTarget* parent, const std::string & actionKey) delete g_fontRenderer; delete hintBox; - delete frameBuffer; stop_daemons(true); + stop_video(); /* g_Timerd, g_Zapit and CVFD are used in stop_daemons */ delete g_Timerd; delete g_Zapit; //do we really need this? @@ -3728,6 +3730,14 @@ void stop_daemons(bool stopall) } } +void stop_video() +{ + delete videoDecoder; + delete videoDemux; + delete CFrameBuffer::getInstance(); + cs_api_exit(); +} + void sighandler (int signum) { signal (signum, SIG_IGN); @@ -3737,8 +3747,7 @@ void sighandler (int signum) delete CRecordManager::getInstance(); CNeutrinoApp::getInstance()->saveSetup(NEUTRINO_SETTINGS_FILE); stop_daemons(); - delete videoDecoder; - cs_api_exit(); + stop_video(); _exit(0); default: break; diff --git a/src/zapit/src/zapit.cpp b/src/zapit/src/zapit.cpp index e3dd7750c..3664bc084 100644 --- a/src/zapit/src/zapit.cpp +++ b/src/zapit/src/zapit.cpp @@ -2143,7 +2143,6 @@ void CZapit::run() delete pcrDemux; delete pmtDemux; delete audioDecoder; - delete videoDemux; delete audioDemux; INFO("demuxes/decoders deleted");