Re: Re: v4l2 api / Zoran v4l2_jpegcompression

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



hi Michael,

On Wed, 2002-10-16 at 16:40, Michael H. Schimek wrote:
> Sequential is always oldest first (fields stored in transmitted =
> temporal order). The app asks for any of V4L2_FIELD_SEQ_TB or
> V4L2_FIELD_SEQ_BT and the driver returns whatever applies.

Exactly.

> Likewise alternating fields are passed in transmitted = temporal order,
> starting with what? One could check V4L2_BUF_FLAG_TOPFIELD/BOTFIELD, but
> it seems they're gone.

enum v4l2_field {
[..]
        V4L2_FIELD_TOP        = 2, /* top field only */
        V4L2_FIELD_BOTTOM     = 3, /* bottom field only */
[..]
};

Isn't that what you're looking for?

> I assumed cropping dimensions apply to capture & overlay alike. A type
> field allows two sets of cropping parameters in simultaneous
> capture/overlay mode. Do you want that?

Yes. For JPEG capture, for example, you can set cropping information,
while the overlay is still uncropped.

> > struct v4l2_jpegcompression
> > {
> >         int quality;
> > 
> >         int  APPn;              /* Number of APP segment to be written,
> >                                  * must be 0..15 */
> >         int  APP_len;           /* Length of data in JPEG APPn segment */
> >         char APP_data[60];      /* Data in the JPEG APPn segment. */
> > 
> >         int  COM_len;           /* Length of data in JPEG COM segment */
> >         char COM_data[60];      /* Data in JPEG COM segment */
> > 
> >         __u32 jpeg_markers;     /* Which markers should go into the JPEG
> >                                  * output. Unless you exactly know what
> >                                  * you do, leave them untouched.
> >                                  * Inluding less markers will make the
> >                                  * resulting code smaller, but there will
> >                                  * be fewer aplications which can read it.
> >                                  * The presence of the APP and COM marker
> >                                  * is influenced by APP_len and COM_len
> >                                  * ONLY, not by this property! */
> > 
> > #define V4L2_JPEG_MARKER_DHT (1<<3)    /* Define Huffman Tables */
> > #define V4L2_JPEG_MARKER_DQT (1<<4)    /* Define Quantization Tables */
> > #define V4L2_JPEG_MARKER_DRI (1<<5)    /* Define Restart Interval */
> > #define V4L2_JPEG_MARKER_COM (1<<6)    /* Comment segment */
> > #define V4L2_JPEG_MARKER_APP (1<<7)    /* App segment, driver will
> >                                         * allways use APP0 */
> > };
> 
> Someone please explain this, better yet write the spec. IMHO it's
> pointless to add when we don't know how this works, what the purpose is.

I'm sorry, here's some short explanation:

APP is some application-specific information. The application can set it
itself, and it'll be stored in the JPEG-encoded fields (e.g. interlacing
information for in an AVI or so). COM is the same, but it's comments,
like 'encoded by me' or so.

jpeg_markers describes whether the huffman tables, quantization tables
and the restart interval information (all JPEG-specific stuff) should be
stored in the JPEG-encoded fields. These define how the JPEG field is
encoded. If you omit them, applications assume you've used standard
encoding. You usually do want to add them.

I hope this is clear.

Ronald





[Index of Archives]     [Linux DVB]     [Video Disk Recorder]     [Asterisk]     [Photo]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Free Photo Albums]     [Fedora Users]     [Fedora Women]     [ALSA Users]     [ALSA Devel]     [Linux USB]

Powered by Linux