Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: vdr-1.1.12 TransferMode strangeness



Andreas Schultz wrote:
> 
> Hi Klaus, Hi List,
> 
> I just discoverd something strange with at least 1.1.12 and
> DVB_DRIVER_VERSION set to 2002090101. Have a look at the following log
> snippet and keep in mind that i have only one card:
> 
> Oct 10 14:56:08 apophis vdr[2482]: switching to channel 3
> Oct 10 14:56:19 apophis vdr[2482]: timer 1 added
> Oct 10 14:56:23 apophis vdr[2486]: transfer thread started (pid=2486)
> Oct 10 14:56:23 apophis vdr[2487]: receiver thread started on device 1
> (pid=2487)
> Oct 10 14:56:23 apophis vdr[2482]: timer 1 start
> Oct 10 14:56:23 apophis vdr[2482]: Title: 'Arabella' Subtitle: 'Arabella
> testet Deine Liebe!'
> Oct 10 14:56:23 apophis vdr[2482]: record
> /video1/Arabella/2002-10-10.13:57.50.50.rec
> Oct 10 14:56:24 apophis vdr[2482]: recording to
> '/video1/Arabella/2002-10-10.13:57.50.50.rec/004.vdr'
> Oct 10 14:56:24 apophis vdr[2489]: recording thread started (pid=2489)
> Oct 10 14:56:27 apophis kernel: buffer empty
> Oct 10 14:56:29 apophis kernel: buffer empty
> Oct 10 14:56:31 apophis vdr[2482]: timer 1 deactivated
> Oct 10 14:56:33 apophis vdr[2489]: recording thread ended (pid=2489)
> Oct 10 14:56:33 apophis vdr[2482]: buffer stats: 24252 (0%) used
> Oct 10 14:56:33 apophis vdr[2482]: timer 1 stop
> 
> Now you can see that 3 threads are beeing started, a receiver, a
> recorder and a transfer thread. I have then manualy removed the timer
> which correctly stoped the recorder thread. The receiver and the
> transfer thread however remain. The receiver thread can not be stopped
> since the transfer thread keeps running.
> The question is now why is the transfer thread not beeing beeing stopped
> and why is it beeing started in the first place. Isn't transfermode only
> needed when multiple cards are present?
> 
> I have added a bit debug output to dvbdevice.c to determin what going
> on, but i'm not sure i understand the logic there completly:
> 
>    fprintf(stderr, "TransferMode: %d, %d, %d, %d - %d, %d",
>                    IsPrimaryDevice(), DoTune, LiveView,
>                    HasPid(Channel->Vpid()),
>                    pidHandles[ptVideo].pid, Channel->Vpid());
> 
>    bool StartTransferMode = IsPrimaryDevice() ........
> 
>    fprintf(stderr, " = %d\n", StartTransferMode);
> 
> Here is the output:
> 
> TransferMode: 1, 0, 0, 1 - 255, 255 = 1
> 
> Hope that information helps  ....

If you have only a single DVB card and start recording the channel you are
currently watching, the PIDs for that recording will be set with DMX_PES_OTHER
in order to allow you to switch the channel you are viewing live. After the recording
has started, you now need a Transfer Mode to transfer the data from the DMX_PES_OTHER
setup to your live viewing. Once the timer has ended, we could, of course, end the
transfer mode and switch back to live viewing, but that would cause a short
interrupt in the viewed programme, and I guess that shouldn't be done. The transfer
mode will end as soon as you switch to another channel.

The thing is that you have to put the PIDs away from DMX_PES_AUDIO and DMX_PES_VIDEO
when recording in order to be able to switch live channels.

Klaus
-- 
_______________________________________________________________

Klaus Schmidinger                       Phone: +49-8635-6989-10
CadSoft Computer GmbH                   Fax:   +49-8635-6989-40
Hofmark 2                               Email:   kls@cadsoft.de
D-84568 Pleiskirchen, Germany           URL:     www.cadsoft.de
_______________________________________________________________


-- 
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe vdr" as subject.



Home | Main Index | Thread Index