Mailing List archive

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

[linux-dvb] Re: API changes (was: C/A routing Question)



Florian Schirmer wrote:
> 
> IMHO the dvr is comletely useless. Instead of adding more and more features
> to it we should remove it. At the same time we have to change the demux API
> to allow more than one pid filter per fd. If it is possible to route more
> than one pid into the same buffer you will basically get the functions the
> dvr device provides. If we do it carefully we're able to extend the API
> without loosing compatibility. 

I thought about it for a while. To me the multi-PID demux filter looks just
as good as the dvr design. State handling in the demux device
driver might be a little more complicated, e.g. it's only allowed for
DMX_OUT_TS_TAP. (It could work for DMX_OUT_TAP to get AVPES, but there
are some difficulties with buffer management due to the unbound video
PES length.)

About backward compatibility:
- input handling for playback is proposed to change, from /dev/.../dvr to
  a /dev/.../frontend of type FE_MEMORY
- I would like to remove the input field of struct dmx_pes_filter_params
  in favour of the DMX_SET_SOURCE ioctl
- we need PS (and maybe AVPES) playback; details are not clear yet,
  but I think this means adding the capability to filter on the
  PS stream id, and adding a corresponding field to struct dmx_caps

In a system with more than one MPEG decoder DMX_OUT_DECODER is
not enough. It will be necessary to specify which decoder. I think
that the video and audio decoder API should have *_SET_SOURCE
ioctls that connect them to the appropriate demux.

This would cause some breakage already. If you have ideas how
to avoid them, please let us know.


> For the PES/PTS/Subtitle problem i would suggest the following: Lets extent
> the demux interface to deliver PES headers only. Adding DMX_OUT_PES_HDR_TAP
> or someting like this. Should be easy to implement (if hw supports it) and
> doesnt break anyting. (Hopefully :)

Hm, I don't get it. For DVB subtitles you need full PES
packages for decoding. For synchronization you need the STC
on demand or set an event (comparable to gettimeofday(2) or setitimer(2)).

For video one needs ES headers for size/aspect ratio &c. These
are extracted by the MPEG decoder. No demux business.

> Just my 2 cents.

Thanks!

Johannes


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



Home | Main Index | Thread Index