mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-29 00:11:14 +02:00
streamts: add dvbsub and teletext pid to stream
This commit is contained in:
@@ -247,7 +247,7 @@ int CGenPsi::genpsi(int fd)
|
|||||||
}
|
}
|
||||||
//-- write row with desc. for pcr stream (eq. video) --
|
//-- write row with desc. for pcr stream (eq. video) --
|
||||||
pkt[ofs] = EN_TYPE_PCR;
|
pkt[ofs] = EN_TYPE_PCR;
|
||||||
pkt[ofs+1] = 0x02;//vtype ???
|
pkt[ofs+1] = 0x02;
|
||||||
pkt[ofs+2] = (pcrpid>>8);
|
pkt[ofs+2] = (pcrpid>>8);
|
||||||
pkt[ofs+3] = (pcrpid & 0xFF);
|
pkt[ofs+3] = (pcrpid & 0xFF);
|
||||||
|
|
||||||
|
@@ -345,8 +345,8 @@ void CRecordInstance::GetPids(CZapitChannel * channel)
|
|||||||
allpids.PIDs.vtxtpid = channel->getTeletextPid();
|
allpids.PIDs.vtxtpid = channel->getTeletextPid();
|
||||||
allpids.PIDs.pmtpid = channel->getPmtPid();
|
allpids.PIDs.pmtpid = channel->getPmtPid();
|
||||||
allpids.PIDs.selected_apid = channel->getAudioChannelIndex();
|
allpids.PIDs.selected_apid = channel->getAudioChannelIndex();
|
||||||
#if 0 // not needed
|
|
||||||
allpids.PIDs.pcrpid = channel->getPcrPid();
|
allpids.PIDs.pcrpid = channel->getPcrPid();
|
||||||
|
#if 0 // not needed
|
||||||
allpids.PIDs.privatepid = channel->getPrivatePid();
|
allpids.PIDs.privatepid = channel->getPrivatePid();
|
||||||
#endif
|
#endif
|
||||||
allpids.APIDs.clear();
|
allpids.APIDs.clear();
|
||||||
|
@@ -394,6 +394,27 @@ bool CStreamManager::Parse(int fd, stream_pids_t &pids, t_channel_id &chid)
|
|||||||
pids.insert(channel->getPcrPid());
|
pids.insert(channel->getPcrPid());
|
||||||
psi.addPid(channel->getPcrPid(), EN_TYPE_PCR, 0);
|
psi.addPid(channel->getPcrPid(), EN_TYPE_PCR, 0);
|
||||||
}
|
}
|
||||||
|
//add teletext pid
|
||||||
|
if (g_settings.recording_stream_vtxt_pid && channel->getTeletextPid() != 0){
|
||||||
|
pids.insert(channel->getTeletextPid());
|
||||||
|
psi.addPid(channel->getTeletextPid(), EN_TYPE_TELTEX, 0, channel->getTeletextLang());
|
||||||
|
}
|
||||||
|
//add dvb sub pid
|
||||||
|
if (g_settings.recording_stream_subtitle_pids){
|
||||||
|
for (int i = 0 ; i < (int)channel->getSubtitleCount() ; ++i) {
|
||||||
|
CZapitAbsSub* s = channel->getChannelSub(i);
|
||||||
|
if (s->thisSubType == CZapitAbsSub::DVB) {
|
||||||
|
if(i>9)//max sub pids
|
||||||
|
break;
|
||||||
|
|
||||||
|
CZapitDVBSub* sd = reinterpret_cast<CZapitDVBSub*>(s);
|
||||||
|
pids.insert(sd->pId);
|
||||||
|
psi.addPid( sd->pId, EN_TYPE_DVBSUB, 0, sd->ISO639_language_code.c_str() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
psi.genpsi(fd);
|
psi.genpsi(fd);
|
||||||
|
|
||||||
return !pids.empty();
|
return !pids.empty();
|
||||||
|
Reference in New Issue
Block a user