diff --git a/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp b/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp index c1a8ed2d2..e407d85bb 100644 --- a/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp +++ b/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp @@ -1737,7 +1737,8 @@ void CControlAPI::SendAllCurrentVAPid(CyhookHandler *hh) hh->printf("%05u vtxt\n",pids.PIDs.vtxtpid); if (pids.PIDs.pmtpid) hh->printf("%05u pmt\n",pids.PIDs.pmtpid); - + if (pids.PIDs.pcrpid) + hh->printf("%05u pcr\n",pids.PIDs.pcrpid); } //----------------------------------------------------------------------------- void CControlAPI::SendTimers(CyhookHandler *hh) @@ -2067,9 +2068,17 @@ void CControlAPI::YWeb_SendVideoStreamingPids(CyhookHandler *hh, int apid_no) if(!pids.APIDs.empty()) apid = pids.APIDs[apid_idx].pid; if(hh->ParamList["no_commas"] != "") + { hh->printf("0x%04x 0x%04x 0x%04x",pids.PIDs.pmtpid,pids.PIDs.vpid,apid); + if (pids.PIDs.pcrpid != pids.PIDs.vpid) + hh->printf(" 0x%04x", pids.PIDs.pcrpid); + } else + { hh->printf("0x%04x,0x%04x,0x%04x",pids.PIDs.pmtpid,pids.PIDs.vpid,apid); + if (pids.PIDs.pcrpid != pids.PIDs.vpid) + hh->printf(",0x%04x", pids.PIDs.pcrpid); + } } //----------------------------------------------------------------------------- @@ -2543,6 +2552,8 @@ void CControlAPI::build_live_url(CyhookHandler *hh) if(!pids.APIDs.empty()) apid = pids.APIDs[apid_idx].pid; xpids = string_printf("0x%04x,0x%04x,0x%04x",pids.PIDs.pmtpid,pids.PIDs.vpid,apid); + if (pids.PIDs.pcrpid != pids.PIDs.vpid) + xpids += string_printf(",0x%04x", pids.PIDs.pcrpid); } else if ( mode == CZapitClient::MODE_RADIO) { diff --git a/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.cpp b/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.cpp index a3489f34a..fa62bb6ad 100644 --- a/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.cpp +++ b/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.cpp @@ -520,6 +520,7 @@ std::string CNeutrinoYParser::func_get_mode(CyhookHandler *, std::string) //------------------------------------------------------------------------- std::string CNeutrinoYParser::func_get_video_pids(CyhookHandler *, std::string para) { + std::string yresult; CZapitClient::responseGetPIDs pids; int apid=0,apid_no=0,apid_idx=0; pids.PIDs.vpid=0; @@ -532,7 +533,10 @@ std::string CNeutrinoYParser::func_get_video_pids(CyhookHandler *, std::string apid_idx=apid_no; if(!pids.APIDs.empty()) apid = pids.APIDs[apid_idx].pid; - return string_printf("0x%04x,0x%04x,0x%04x",pids.PIDs.pmtpid,pids.PIDs.vpid,apid); + yresult = string_printf("0x%04x,0x%04x,0x%04x", pids.PIDs.pmtpid, pids.PIDs.vpid, apid); + if (pids.PIDs.pcrpid != pids.PIDs.vpid) + yresult += string_printf(",0x%04x", pids.PIDs.pcrpid); + return yresult; } //------------------------------------------------------------------------- // y-func : get_radio_pids (returns: 0x0000) @@ -738,6 +742,7 @@ std::string CNeutrinoYParser::func_get_current_stream_info(CyhookHandler *hh, s hh->ParamList["apid"] = itoh(serviceinfo.apid); hh->ParamList["vtxtpid"] = (serviceinfo.vtxtpid != 0)?itoh(serviceinfo.vtxtpid):"not available"; hh->ParamList["pmtpid"] = (serviceinfo.pmtpid != 0)?itoh(serviceinfo.pmtpid):"not available"; + hh->ParamList["pcrpid"] = (serviceinfo.pcrpid != 0)?itoh(serviceinfo.pcrpid):"not available"; hh->ParamList["tsfrequency"] = string_printf("%d.%d MHz", serviceinfo.tsfrequency/1000, serviceinfo.tsfrequency%1000); hh->ParamList["polarisation"] = serviceinfo.polarisation==1?"h":"v"; hh->ParamList["ServiceName"] = NeutrinoAPI->GetServiceName(CZapit::getInstance()->GetCurrentChannelID()); diff --git a/src/nhttpd/web/Y_StreamInfo.yhtm b/src/nhttpd/web/Y_StreamInfo.yhtm index d554b0417..944651899 100644 --- a/src/nhttpd/web/Y_StreamInfo.yhtm +++ b/src/nhttpd/web/Y_StreamInfo.yhtm @@ -79,6 +79,16 @@