Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] Re: Streaming from hard disk
Gert-Jan van Dijk wrote:
Hi,
I'm working on a STB implementation, we chose the DVB-API together with
a Linux Platform to start with. This will ease developement, and give us
better debugging tools ,and the possibility to stream our test TS's.
Now in the latter lies the problem. If you take a look at VDR, it uses
streams to playback recorded events (AFAIK). We, however, want to be
able to use our teststreams to test our stack, and thus zap from one
service to another, ie the middleware stack doesn't "see" the difference
between a HD feed, or a FE feed (there is a logical device abstraction
layer, to, amongst other things, make it HW independant (at least we
hope ;-) )).
As of last week, I was able to fool the stack (upon a zap to another
service) by first stopping the filters (and thus the streaming from HD),
then stopping the decoders, starting the filters (on different PIDs, and
the streaming) and starting the decoders. In any other order would cause
the demux write function to lock.
But, as of now, we don't have hard-coded pids anymore, we retrieve them
on the fly from the PMT. You see, we have a problem, as the PES filters
are stopped, and thus our PSI/SI parser cannot retrieve the PMT.
What I did, and did not:
1) I did tincker with it quite a lot, but see no way to make it work.
2) Tried the newsgroup to look for related topics. No luck.
3) Did take a look at the release notes of newer drivers, but didn't
find related issues being resolved.
4) Did NOT look at th driver code.
So my questions:
1) Is there another (hidden/unknown (to me?)) API that I can use?
2) Is this not foreseen in the driver, and yes, this is not a feature to
be expected, I agree?
3) What I would like is that HD streaming would be independant from PES
filtering. Sure, I need to give a symbol rate or something, but that's
no problem.
a) Is such a feature available?
b) If not, can I make it in the driver, and can somebody point me into
the right direction?
4) Am I missing something obvously, and did I perhaps take the wrong route?
We used a modified PCI DVB card for this purpose - one where the
frontend was replaced by a ribbon cable which is used to feed a TTL
MPEG2 transport stream transparently into the card.
But you can do this in software, too - in this case you need to
implemend a dummy driver that implements a pseudo frontend (see e.g.
http://linuxtv.org/cgi-bin/cvsweb.cgi/dvb-kernel/linux/drivers/media/dvb/frontends/dvb_dummy_fe.c?rev=1.5&content-type=text/x-cvsweb-markup
- you would use this to switch between different streams from your disk
or to switch between different streams from network streaming servers)
and some code that registers a software demux and calls the
dvb_dmx_swfilter() callback with the data read from disk or a network
connection. Since multiple people asked for a solution like this we
highly welcome patches implementing such a debugging driver.
Faking the video decoder is somewhat more tricky, if you need one it's
probably easier to grab the solder iron and use the ribbon cable solution.
hope that helps,
Holger
--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.
Home |
Main Index |
Thread Index