Mailing List archive

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

[linux-dvb] Re: VDR's first step towards NAPI



On Sunday 22 April 2001 10:52 pm, Klaus Schmidinger wrote:
> > Does this include the updated tuning code Dave Chapman wrote about in
> > http://www.linuxtv.org/mailinglists/linux-dvb/msg04381.html? Channel
> > switching works much better with VDR than with the driver's tool
> > (n)tuxzap! I can also reproduce Peter Seyringer's initialization problem
> > (http://www.linuxtv.org/mailinglists/linux-dvb/msg04385.html).
>
> This is the "latest greatest" test version I have and contains
> everything I have received from Dave. It's (of course) not yet an
> "official release".
>

I'm still working on that problem....

> > Sometimes, I will also get the following error at the start of the
> > recording:
> >
> > [REST OF LOG DELETED]
> > Apr 22 22:46:00 vdr vdr[918]: ERROR (dvbapi.c,752): Unknown error 769

I get this error very frequently when playing with the tuning facilities of 
the driver (i.e. just tuning - not setting any filters).  Once I get one, I 
get them every time I call QPSK_GET_EVENT until I reload the driver.

>
> This error number is defined by the driver as EBUFFEROVERFLOW and happens
> at the beginning of a recording, when the driver's internal buffer hasn't
> been emptied in time. I haven't figured out yet how to start the DMX when
> the recording is to start (not when the channel is tuned). With
> DMX_OUT_TS_TAP one can apparently only use DMX_IMMEDIATE_START.
>
> I wonder if there is a way to tune to a channel and then (at a later time)
> start recording - or do we have to know whether we will be recording when
> tuning the channel, and use either DMX_IMMEDIATE_START or '0' as
> pesFilterParams.flags?
>

Yes.  When you tune the channel for viewing only, use DMX_OUT_DECODER - this 
tells the driver to filter the PES stream and send it to the decoder.  When 
you want to start recording, call the filter again, but this time using 
DMX_OUT_TS_TAP - this tells the tuner to send the stream to both the decoder 
and /dev/ost/dvr.  Once you stop recording, you can then change the filter 
back to DMX_OUT_DECODER again.  All the other parameters (including the demux 
file descriptor) should be the same.

This has been mentioned on the list a few times, and isn't obvious from the 
API docs - DMX_OUT_TS_TAP should more logically be called 
DMX_OUT_DECODER_AND_TS_TAP - or you should be able to OR the two flags.

Looking at your latest VDR, it seems that you always set the output 
destination of the filter to DMX_OUT_TS_TAP - maybe this is causing problems. 
 It is definitely causing the driver to do unneccesary work - i.e. filling 
and constantly overflowing the /dev/ost/dvr buffer.

Your ForRecording flag is the right thing to have - you just need to finish 
implementing it - it is currently always True.

This is all from my experience - if I'm wrong, I hope that someone will 
correct me.

Regards,

Dave.


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



Home | Main Index | Thread Index