Closed Louro closed 11 years ago
I have looking and making some debugging at the code and found this:
unsigned int ts_pid = TsPid(buf);
m_FilterMutex.Lock();
cTSDemuxer *demuxer = FindStreamDemuxer(ts_pid);
if (demuxer)
{
demuxer->ProcessTSPacket(buf);
}
m_FilterMutex.Unlock();
buf += TS_SIZE;
size -= TS_SIZE;
used += TS_SIZE;
The demuxer is always NULL, so we havent created any demuxers...
a bit more debuging
// get cached demuxer data DEBUGLOG("Creating demuxers"); cChannelCache cache = cChannelCache::GetFromCache(uid); if(cache.size() != 0) { DEBUGLOG("Creating demuxers --- Cache != 0"); cache.CreateDemuxers(this); RequestStreamChange(); } else DEBUGLOG("Creating demuxers --- Cache == 0");
The demuxers are not created since the cache.size is always == 0
Your stream has to be a real transport stream. It must contain PAT/PMT information. Without these tables XVDR is unable to find stream information. I dont know if the iptv plugin is able to create these tables.
Regards, Alex
Hi Alex,
Ya that is the problem IPTV doesn't create PAT or PMT data, i was trying to feed IPTV just a mpegts file that i have created via FFmpeg, but ofc it doesnt contain PAT or PMT, only Video and Audio.. Will need to find a real dump of a TS stream to see if it works after all.
Will report back later.
It just a small report after some more testing
I have used dvbstream to grap a TS from my dvb card and dump it to a .ts file. Then i feed it to IPTV plugin but nothing is happening.
From my syslog i can see that everything goes ok until iptv start buffering and then nothing else happens. While if i use my DVB card, xvdr start scanning PMT packets.
You can find below the two syslog, one for iptv+xvdr and another for dvb+xvdr
Any help pointing on the right direction is very welcome and in advanced thank you so much for your time Alex. PS: I have read some parts of xvdr code, and i need to say, fuc.. that is really good coding.
Regards, Louro
IPTV PLUGING SYSLOG:
[8284] XVDR: -------------------------------------- [8284] XVDR: Channel streaming request: 5 - TV3 [8284] XVDR: Found available device 9 [8284] IPTV: cIptvTransponderParameters::cIptvTransponderParameters(): Parameters=S=0|P=0|F=FILE|U=/media/RAID5/Extra900/testt.ts|A=5 [8284] IPTV: cIptvTransponderParameters::Parse(): s=S=0|P=0|F=FILE|U=/media/RAID5/Extra900/testt.ts|A=5 [8284] IPTV: cIptvDevice::SetChannelDevice(0) [8284] IPTV: cIptvStreamer::Set(): /media/RAID5/Extra900/testt.ts:5 [8284] IPTV: cIptvProtocolFile::Set(): Location=/media/RAID5/Extra900/testt.ts Parameter=5 Index=0 [8284] IPTV: cIptvProtocolFile::CloseFile() [8284] IPTV: cIptvProtocolFile::OpenFile() [8284] IPTV: NAROG:: isActive 0, isempty 0, filelocation /media/RAID5/Extra900/testt.ts [8284] IPTV: cIptvProtocolFile::Open() [8284] IPTV: cIptvProtocolFile::OpenFile() [8284] IPTV: NAROG:: isActive 1, isempty 0, filelocation /media/RAID5/Extra900/testt.ts [8284] XVDR: cStreamdevPatFilter("TV3") [8285] XVDR: LiveQueue started [8284] XVDR: Starting live receiver [8284] XVDR: NAROG:: cLiveReceiver is Activated [8284] XVDR: VDR active, sending stream start message [8286] cLiveStreamer stream processor thread started (pid=8269, tid=8286) [8286] XVDR: Entering function cLiveStreamer::Action [8269] max. latency time 1 seconds [8286] XVDR: returning from streamer thread, receiver is no more attached [8286] cLiveStreamer stream processor thread ended (pid=8269, tid=8286) [8284] XVDR: Creating demuxers [8284] XVDR: Creating demuxers --- Cache == 0 [8284] XVDR: Starting PAT scanner [8284] IPTV: cIptvDevice::SetPid(0) Pid=4297 Type=5 On=1 [8284] IPTV: cIptvDevice::SetPid(0) Pid=4298 Type=6 On=1 [8284] XVDR: NAROG:: cLiveReceiver is Activated [8284] XVDR: VDR active, sending stream start message [8287] cLiveStreamer stream processor thread started (pid=8269, tid=8287) [8287] XVDR: Entering function cLiveStreamer::Action [8284] XVDR: Successfully switched to channel 5 - TV3 [8284] XVDR: Started streaming of channel TV3 (timeout 3 seconds, priority 50) [8288] receiver on device 9 thread started (pid=8269, tid=8288) [8288] IPTV: cIptvDevice::OpenDvr(0) [8288] IPTV: cIptvDevice::ResetBuffering(0) [8288] IPTV: cIptvStreamer::Open() [8288] IPTV: cIptvProtocolFile::Open() [8288] IPTV: cIptvProtocolFile::OpenFile() [8288] IPTV: NAROG:: isActive 1, isempty 0, filelocation /media/RAID5/Extra900/testt.ts [8288] IPTV: cIptvDevice::GetTSPacket(0) [8289] IPTV streamer thread started (pid=8269, tid=8289) [8288] IPTV: cIptvDevice::IsBuffering(1) [8289] IPTV: cIptvStreamer::Action(): Entering [8288] IPTV: cIptvDevice::GetTSPacket(0) [8288] IPTV: cIptvDevice::IsBuffering(1) [8288] IPTV: cIptvDevice::GetTSPacket(0) [8288] IPTV: cIptvDevice::IsBuffering(1) [8288] IPTV: cIptvDevice::GetTSPacket(0) [8288] IPTV: cIptvDevice::IsBuffering(1) [8288] IPTV: cIptvDevice::GetTSPacket(0) [8288] IPTV: cIptvDevice::IsBuffering(1) [8288] IPTV: cIptvDevice::GetTSPacket(0) [8288] IPTV: cIptvDevice::IsBuffering(0) [8288] IPTV: cIptvDevice::GetTSPacket(0) [8288] IPTV: cIptvDevice::IsBuffering(0) [8288] IPTV: cIptvDevice::GetTSPacket(0) [8288] IPTV: cIptvDevice::IsBuffering(0) [8288] IPTV: cIptvDevice::GetTSPacket(0) [8288] IPTV: cIptvDevice::IsBuffering(0) [8288] IPTV: cIptvDevice::GetTSPacket(0) [8288] IPTV: cIptvDevice::IsBuffering(0)
XVDR SYSLOG:
[8582] XVDR: -------------------------------------- [8582] XVDR: Channel streaming request: 3 - Euronews [8582] XVDR: Found available device 1 [8583] XVDR: LiveQueue started [8582] XVDR: cStreamdevPatFilter("Euronews") [8582] XVDR: Starting live receiver [8582] XVDR: NAROG:: cLiveReceiver is Activated [8582] XVDR: VDR active, sending stream start message [8584] cLiveStreamer stream processor thread started (pid=8566, tid=8584) [8584] XVDR: Entering function cLiveStreamer::Action [8584] XVDR: returning from streamer thread, receiver is no more attached [8584] cLiveStreamer stream processor thread ended (pid=8566, tid=8584) [8582] XVDR: Creating demuxers [8582] XVDR: Creating demuxers --- Cache == 0 [8582] XVDR: Starting PAT scanner [8582] XVDR: NAROG:: cLiveReceiver is Activated [8582] XVDR: VDR active, sending stream start message [8586] cLiveStreamer stream processor thread started (pid=8566, tid=8586) [8586] XVDR: Entering function cLiveStreamer::Action [8582] XVDR: Successfully switched to channel 3 - Euronews [8582] XVDR: Started streaming of channel Euronews (timeout 3 seconds, priority 50) [8587] receiver on device 1 thread started (pid=8566, tid=8587) [8588] TS buffer on device 1 thread started (pid=8566, tid=8588) [8572] XVDR: PMT scanner adding PID 4297 (ISO/IEC 14496-10 Video (MPEG-4 part 10/AVC, aka H.264)) [8572] XVDR: PMT scanner: adding PID 4298 (ISO/IEC 14496-3 Audio with LATM transport syntax) LATM (por) [8572] XVDR: PMT scanner: adding PID 4555 (ISO/IEC 14496-3 Audio with LATM transport syntax) LATM (eng) [8572] XVDR: NAROG:: Entered cChannelCache::CreateDemuxers [8572] XVDR: Currently unknown new streams found, requesting stream change [8586] XVDR: Entering function cTSDemuxer::ProcessTSPacket [8586] XVDR: sendStreamPacket [8586] XVDR: NAROG:: Writing to stream: 334 [8586] XVDR: Entering function cTSDemuxer::ProcessTSPacket [8586] XVDR: sendStreamPacket [8586] XVDR: NAROG:: Writing to stream: 338 [8586] XVDR: Entering function cTSDemuxer::ProcessTSPacket [8586] XVDR: sendStreamPacket [8586] XVDR: NAROG:: Writing to stream: 23516 [8586] XVDR: Entering function cTSDemuxer::ProcessTSPacket [8586] XVDR: sendStreamPacket [8586] XVDR: NAROG:: Writing to stream: 316 [8586] XVDR: Entering function cTSDemuxer::ProcessTSPacket
I believe I'm experiencing the same issue with vdr-plugin-pvrinput.
The problem is solved, after reading almost all the code and understanding it all, lots of hours debugging all came to an end.
Needed to activate SID scanning on IPTV, on livepatfilter.c line295 the comparation: if (Channel && (Channel == m_Channel)), was failing since the channel didn't had the ServiceID set, when vdr starts and IPTV plugin parses the channel information this information is not yet available.
Reading from a full TS file dumped from my DVB card with 10 channels encrypted and free worked without a problem. Also tried the http://www.bigbuckbunny.org/ TS file FULL HD, 100% working. Next step will be to convert a FLV stream from the net to TS using Ffmpeg add feed it to iptv.
Hello,
I´m trying to make IPTV plugin work with xvdr and XBMC, but i can't manage to get any picture on XBMC,
The channel changes to IPtv plugin but in XBMC the buffering is stuck at 0%.
Here is some logs http://pastebin.com/QYhqq4Lz
Thanks, Louro