If I change in pidscanner.c IptvChannel->SetPids(Vpid, Ppid, 0, Apids, ALangs, Dpids, DLangs, Spids, SLangs, Tpid); to IptvChannel->SetPids(Vpid, Ppid, 2, Apids, ALangs, Dpids, DLangs, Spids, SLangs, Tpid);
I can see all channels.
Than I change pidscanner.c .............. #if defined(APIVERSNUM) && APIVERSNUM >= 10700 SI::PMT::Stream stream; int Vtype = stream.getStreamType(); IptvChannel->SetPids(Vpid, Ppid, Vtype, Apids, ALangs, Dpids, DLangs, Spids, SLangs, Tpid); #else ................
And add debug line in remux.c in vdr, and see:
vdr: [14719] switching to channel 183 vdr: [14887] IPTV streamer thread ended (pid=14719, tid=14887) vdr: [14886] receiver on device 9 thread ended (pid=14719, tid=14886) vdr: [14893] receiver on device 9 thread started (pid=14719, tid=14893) vdr: [14894] IPTV streamer thread started (pid=14719, tid=14894) vdr: [14891] Text2Skin: menu display update thread ended (pid=14719, tid=14891) vdr: [14719] stream type = 02, pid = 300 vdr: [14719] stream type = 04, pid = 301 vdr: [14896] Text2Skin: channelInfo display update thread started (pid=14719, tid=14896) vdr: [14895] [VideoOut] reset: sync info: repF = 15, drpF = 0, totF = 114 vdr: [14893] changing pids of channel 183 from 300+300=2:301:0:0 to 300+300=71:301:0:0 vdr: [14719] retuning due to modification of channel 183 vdr: [14719] switching to channel 183 vdr: [14894] IPTV streamer thread ended (pid=14719, tid=14894) vdr: [14893] receiver on device 9 thread ended (pid=14719, tid=14893) vdr: [14900] receiver on device 9 thread started (pid=14719, tid=14900) vdr: [14901] IPTV streamer thread started (pid=14719, tid=14901) vdr: [14719] stream type = 47, pid = 300 vdr: [14719] stream type = 04, pid = 301 vdr: [14902] [VideoOut] reset: sync info: repF = 0, drpF = 0, totF = 0 vdr: [14904] [softdevice-audio]: Xrun (at least 1352.643 ms long) vdr: [14904] [softdevice-audio]: xrun
What is a stream type = 47 ??!
As a quick hack, you should disable PAT tables in IPTV's section filter (or disable channel updates in VDR) and manually edit the channel entry to use a correct video stream type (501+501=2).
Success if I disable pid and sid update in iptv channel menu. Disable PAT tables not help...
If I remove all changes in pidscanner.c, I have:
vdr: [16900] switching to channel 270 vdr: [16974] IPTV streamer thread ended (pid=16900, tid=16974) vdr: [16973] receiver on device 9 thread ended (pid=16900, tid=16973) vdr: [16977] receiver on device 9 thread started (pid=16900, tid=16977) vdr: [16978] IPTV streamer thread started (pid=16900, tid=16978) vdr: [16900] stream type = 00, pid = 901 vdr: [16900] stream type = 04, pid = 902 vdr: [16980] [softdevice-audio]: Xrun (at least 451.542 ms long) vdr: [16980] [softdevice-audio]: xrun
vdr not change stream type from 0, which give him a pidscanner.
Who must change stream type to actual, vdr or iptv plugin?
I can send a ts dump, how long and what mail?
Thank you.
----- Original Message ----- From: "Rolf Ahrenberg" rahrenbe@cc.hut.fi To: "VDR Mailing List" vdr@linuxtv.org Sent: Friday, March 06, 2009 4:50 AM Subject: Re: [vdr] vdr-1.7.4 and iptv plugin
On Thu, 5 Mar 2009, ua0lnj wrote:
Sometimes when change channel I can see normal iptv aprox. 3 sec, but after still picture again... vdr: [5981] changing pids of channel 259 from 501+501=2:502:0:0 to 501+501=0:502:0:0 vdr: [5852] retuning due to modification of channel 259
VDR's PAT/PMT scanner detects changes in pid information usually after a few seconds and the channel it retuned as your log states. If you look at the change, you'll see that VDR changes the video stream type from MPEG2 (2) to an invalid/reserved (0) value. Software decoders might rely on that that information and therefore cannot display the video.
As a quick hack, you should disable PAT tables in IPTV's section filter (or disable channel updates in VDR) and manually edit the channel entry to use a correct video stream type (501+501=2).
Now, the real question is why the video stream type is marked as zero in your streams: a bug in vdr, a bug in iptv plugin, or some kind of attempt from your provider to allow only their proprietary hardware? If it's the latter one, you could try simply to make VDR detect stream type 0 as a MPEG2 (0x02) or H264 (0x1B) stream in pat.c, although I cannot see how you could end up with non-zero video pid with zeroed video type in current VDR code base. Are you using any other VDR patches than the pluginparam?
You could always provide us a stream dump for further analyzing: $ emcast 127.0.0.1:1234 > dump.ts
BR,
rofa
vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr