Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] Re: V4 Video API Questions
js@convergence.de wrote on 15/07/2004 15:15:29:
> Rob.McConnell@Zarlink.Com wrote:
>
> > linux-dvb-bounce@linuxtv.org wrote on 15/07/2004 13:42:40:
>
> Who's that?
Don't know. ;^) Stupid Lotus Notes strikes again!
>
> > > Rob.McConnell@Zarlink.Com wrote:
> > OK, the clearing of the video rate buffer is fine. However, with MHEG
> > applications we find that the last frame can be displayed before the
new
> > one has been decoded and displayed. How about we add a new type to
> > "dvb_video_still_format" called "DVB_VIDEO_STILL_YUV" that will allow
any
> > YUV image to be displayed (common on STB hardware rather than JPEG)?
We
> > could then use this to display splash screens as well as blanking the
> > current display frame buffer.
>
> I have no objections about YUV images. Please send a patch.
Will do.
>
> I think our current drivers clear the frame buffer as a side effect of
> doing VIDEO_STOP/VIDEO_PLAY. We might as well offer this functionality
> explicitly, but I#m not sure.
Sounds good to me. I currently do the same on a STOP.
BTW, I noticed that the "video_format" field of the "sequence display
extension" data is not stored in the "dvb_video_sequence_header" structure.
Should we add this so that we know whether we are in PAL/SECAM/NTSC/etc
modes?
>
> > BTW, would it be useful to have an ioctl somewhere in the API to setup
the
> > WSS in the CVBS line 23? This would allow an MHEG application or AFD
to
> > set the appropriate WSS for a connected analogue chassis.
>
> Please take a look at linux/dvb/vbi.h.
Looks like this one is "sewn-up" : )
I also have another question with regards to the operation of the
"DVB_VIDEO_GET_EVENT" ioctl. Does the call take into account the event
"type" and a process then blocks waiting for just that event type to occur?
Does it block waiting for any event type to occur? Can multiple
calls/processes waiting on _different_ event types be allowed (i.e.
separate wait queue for each event type)?
The reason why I ask this is because it would be useful to allow waiting on
a change of user-data in the bitstream (to obtain a change in AFD for
example). However, the user-data's length is not defined so you don't know
the amount of user-data until it arrives. What I was intending on
providing (of course if you agree), was an extra event
"DVB_VIDEO_USER_DATA_HEADER_CHANGED" flag and a new user-data event
structure
such as this:
struct dvb_video_user_data_header {
uint8_t byte_count;
uint8_t *data;
};
In this way you can specify the number of bytes of user-data to compare in
the ioctl call with the data returned where *data points to (obviously with
appropriate "copy_from_user" and "copy_to_user" functions). The ioctl
would also return with "byte_count" being updated with the actual number of
bytes received by the hardware (for use in later calls perhaps). This of
course relies on the fact that the ioctl call _looks_ at the event type
field to determine the appropriate action. Is this the intention? If not,
can we have it work this way?
Oh, yeah there's yet another question I need to ask ;^)
Does the "DVB_VIDEO_FREEZE" ioctl stop on a reference frame (I or P) or
does it stop on a B-frame? If it can stop on a B-frame, then what is the
difference between this ioctl and "DVB_VIDEO_STOP"? Does
"DVB_VIDEO_FREEZE" just freeze the display frame but the video decoder
keeps running in the background?
Does "DVB_VIDEO_CONTINUE" start playing back immediately or should it wait
until you have received say 2 reference frames first to ensure that no
artifacts are generated? I guess these questions are related to how we
describe/comment the ioctl functions, as they are probably h/w dependent.
Thanks Again,
Rob : )
Home |
Main Index |
Thread Index