Klaus Schmidinger wrote: > On 02/09/08 16:36, Klaus Schmidinger wrote: >> On 01/06/08 23:57, Reinhard Nissl wrote: >>> Hi, >>> >>> Petri Helin schrieb: >>> >>>> since VDR became subtitles aware some months ago, I have been getting >>>> this kind of entries in the log: >>>> >>>> Jan 6 23:02:48 vdr vdr: [4506] ERROR: can't set PID 2027 on device 9 >>>> >>>> PID 2027 is for a finnish subtitles stream. >>>> >>>> I cannot see anything failing or such when this entry appears, but just >>>> thought to let Klaus know about it, in case it would make some sense to him. >>> I came across this log message today, too. Looks like >>> SetCurrentSubtitleTrack() calls AttachReceiver() on the >>> PrimaryDevice() which is cXineDevice in my case. >>> >>>> (gdb) bt >>>> #0 0x080bbabb in cDevice::AddPid (this=0xb44c49f8, Pid=131, PidType=ptOther) at device.c:612 >>>> #1 0x080bbc00 in cDevice::AttachReceiver (this=0xb44c49f8, Receiver=0xb44e2078) at device.c:1502 >>>> #2 0x080be272 in cDevice::SetCurrentSubtitleTrack (this=0xb44c49f8, Type=ttSubtitle, Manual=false) at device.c:1052 >>>> #3 0x080be3b4 in cDevice::EnsureSubtitleTrack (this=0xb44c49f8) at device.c:1104 >>>> #4 0x080be58d in cDevice::SetAvailableTrack (this=0xb44c49f8, Type=ttSubtitle, Index=0, Id=131, Language=0x82529c8 "deu", Description=0x0) at device.c:984 >>>> #5 0x080bf0cb in cDevice::SetChannel (this=0xb44c49f8, Channel=0x82526c8, LiveView=true) at device.c:845 >>>> #6 0x080bf1ae in cDevice::SwitchChannel (this=0xb44c49f8, Channel=0x82526c8, LiveView=true) at device.c:735 >>>> #7 0x080a59bd in cChannels::SwitchTo (this=0x81a9880, Number=2) at channels.c:1201 >>>> #8 0x08158988 in main (argc=14, argv=0xbf993d34) at vdr.c:762 >>> Looks like Transferring() isn't set at that time and therefore a >>> cLiveSubtitle instance is created although none is needed in >>> transfer mode (which is the only way how my setup works). >>> >>>> 1048 if (currentSubtitleTrack != ttNone && !Replaying() && !Transferring()) { >>>> 1049 const tTrackId *TrackId = GetTrack(currentSubtitleTrack); >>>> 1050 if (TrackId && TrackId->id) { >>>> 1051 liveSubtitle = new cLiveSubtitle(TrackId->id); >>>> 1052 AttachReceiver(liveSubtitle); >>>> 1053 } >>>> 1054 } >> SetChannel() in live mode triggers a Transfer-Mode, but that is actually >> only started after SetChannel() has ended. Therefore, as you correctly >> pointed out, Transferring is not yet set in EnsureSubtitleTrack(). >> >> Maybe the sequence >> >> if (!NeedsTransferMode) >> EnsureAudioTrack(true); >> EnsureSubtitleTrack(); >> >> should be changed to >> >> if (!NeedsTransferMode) { >> EnsureAudioTrack(true); >> EnsureSubtitleTrack(); >> } >> >> >> Could you please test this? >> >> Klaus > > Still waiting for verification. > Sorry, had forgotten this... I made the change you suggested in device.c, but I am still seeing the error message. -Petri _______________________________________________ vdr mailing list vdr@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr