Marcus Metzler wrote:
Not if the demux is in hardware. As I said the DVB API makes more
sense for the decoder part of the pvr 350. Although you need more for
encoding than supporting open and read. If your encoder card has the
ability to provide more than one cmpressed format and bitrate (and
whatever other parameters you have to set for MPEG encoding) you need
an API (i.e. some ioctls) that let you control these features, in my opinion
user space I2C is not suitable for that because that would limit you
to one particular hardware and would limit the user to root or give to
much ability to mess up the system.
Yes this true, there should actually be an V4L2 extension for MPEG
encoding. For me the I2C user space solution is perfect, as I can also
use my userspace program to control standalone SAA6752 application
boards. But, this is indeed not suitable for regular users.
I considered adding a V4L2 MPEG encoder extension, but I did not find
the time to do it. And making a good generic API for MPEG encoders is
quite difficult, although most encoder have a lot of settings in common
(features which can be found in MPEG standard), there also important
settings which are quite different between encoder implementations (e.g.
variable bitrate control settings).
And at the time I added the SAA6752 support to the SAA7134 driver, such
a board was (as far as I know) not available outside of Philips and I
was the only one running it under Linux, so it did not make much sense
for me to add this.
Setting these kind of settings to the hardware, certainly belongs to
kernel space.
But to my opion, the compressed stream should be passed "as is" to user
space and then a user space program/library should demux/mux/convert
this stream to something which can be used be used by other programs
(e.g. cat /dev/video1 | ./convert_to_mpeg_ts | mpeg2dec -t 0x100).
It looks strange to me that a demux
(/usr/src/linux-2.5.x/drivers/media/dvb/dvb-core) was added to kernel
space for the DVB driver. What is the reason for doing this in the
kernel, instead of a user space solution?
Gert