Hi, > -----Original Message----- > From: Hans Verkuil [mailto:hverkuil@xxxxxxxxx] > Sent: 15 June 2011 08:40 > To: Kamil Debski > Cc: linux-media@xxxxxxxxxxxxxxx; m.szyprowski@xxxxxxxxxxx; > kyungmin.park@xxxxxxxxxxx; jaeryul.oh@xxxxxxxxxxx; > laurent.pinchart@xxxxxxxxxxxxxxxx; jtp.park@xxxxxxxxxxx > Subject: Re: [PATCH 1/4 v9] v4l: add fourcc definitions for compressed > formats. > > On Tuesday, June 14, 2011 18:36:53 Kamil Debski wrote: > > Add fourcc definitions and documentation for the following > > compressed formats: H264, H264 without start codes, > > MPEG1/2/4 ES, DIVX versions 3.11, 4, 5.0-5.0.2, 5.03 and up, > > XVID, VC1 Annex G and Annex L compliant. > > > > Signed-off-by: Kamil Debski <k.debski@xxxxxxxxxxx> > > Signed-off-by: Kyungmin Park <kyungmin.park@xxxxxxxxxxx> > > --- > > Documentation/DocBook/media/v4l/controls.xml | 7 ++- > > Documentation/DocBook/media/v4l/pixfmt.xml | 67 > +++++++++++++++++++++++++- > > include/linux/videodev2.h | 21 +++++++-- > > 3 files changed, 88 insertions(+), 7 deletions(-) > > > > diff --git a/Documentation/DocBook/media/v4l/controls.xml > b/Documentation/DocBook/media/v4l/controls.xml [snip] > > diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h > > index 8a4c309..65bcb61 100644 > > --- a/include/linux/videodev2.h > > +++ b/include/linux/videodev2.h > > @@ -376,7 +376,20 @@ struct v4l2_pix_format { > > #define V4L2_PIX_FMT_MJPEG v4l2_fourcc('M', 'J', 'P', 'G') /* Motion- > JPEG */ > > #define V4L2_PIX_FMT_JPEG v4l2_fourcc('J', 'P', 'E', 'G') /* JFIF > JPEG */ > > #define V4L2_PIX_FMT_DV v4l2_fourcc('d', 'v', 's', 'd') /* 1394 > */ > > -#define V4L2_PIX_FMT_MPEG v4l2_fourcc('M', 'P', 'E', 'G') /* MPEG- > 1/2/4 */ > > +#define V4L2_PIX_FMT_MPEG v4l2_fourcc('M', 'P', 'E', 'G') /* MPEG- > 1/2/4 Multiplexed */ > > +#define V4L2_PIX_FMT_H264 v4l2_fourcc('H', '2', '6', '4') /* H264 > with start codes */ > > +#define V4L2_PIX_FMT_H264_NO_SC v4l2_fourcc('A', 'V', 'C', '1') /* H264 > without start codes */ > > +#define V4L2_PIX_FMT_H263 v4l2_fourcc('H', '2', '6', '3') /* H263 > */ > > +#define V4L2_PIX_FMT_MPEG1 v4l2_fourcc('M', 'P', 'G', '1') /* MPEG-1 > ES */ > > +#define V4L2_PIX_FMT_MPEG2 v4l2_fourcc('M', 'P', 'G', '2') /* MPEG-2 > ES */ > > +#define V4L2_PIX_FMT_MPEG4 v4l2_fourcc('M', 'P', 'G', '4') /* MPEG-4 > ES */ > > +#define V4L2_PIX_FMT_DIVX3 v4l2_fourcc('D', 'I', 'V', '3') /* DivX > 3.11 */ > > +#define V4L2_PIX_FMT_DIVX4 v4l2_fourcc('D', 'I', 'V', '4') /* DivX > 4.12 */ > > +#define V4L2_PIX_FMT_DIVX500 v4l2_fourcc('D', 'X', '5', '0') /* DivX > 5.00 - 5.02 */ > > +#define V4L2_PIX_FMT_DIVX5 v4l2_fourcc('D', 'I', 'V', '5') /* DivX > 5.03 - x */ > > Wasn't DIVX removed due to licensing issues? The idea is to have a separate patch that will add DIVX support to the driver. I thought that I could leave the pixel format definitions here - if any other driver cares to use them. There is no problem to remove it from videodev2.h also and have the DIVX patch add it. Do you think we should do it this way? > > +#define V4L2_PIX_FMT_XVID v4l2_fourcc('X', 'V', 'I', 'D') /* Xvid > */ > > +#define V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G') /* SMPTE > 421M Annex G compliant stream */ > > +#define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L') /* SMPTE > 421M Annex L compliant stream */ > > Just to verify: are all these formats actually used in the driver? All but the DIVX and V4L2_PIX_FMT_H264_NO_SC pixel format. V4L2_PIX_FMT_H264_NO_SC pixel format was requested by Laurent. > > > > /* Vendor-specific formats */ > > #define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 > YUV */ > > @@ -1151,7 +1164,7 @@ enum v4l2_colorfx { > > #define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | > 0x900) > > #define V4L2_CID_MPEG_CLASS (V4L2_CTRL_CLASS_MPEG | 1) > > > > -/* MPEG streams */ > > +/* MPEG streams, specific to multiplexed streams */ > > #define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_MPEG_BASE+0) > > enum v4l2_mpeg_stream_type { > > V4L2_MPEG_STREAM_TYPE_MPEG2_PS = 0, /* MPEG-2 program stream */ > > @@ -1173,7 +1186,7 @@ enum v4l2_mpeg_stream_vbi_fmt { > > V4L2_MPEG_STREAM_VBI_FMT_IVTV = 1, /* VBI in private packets, IVTV > format */ > > }; > > > > -/* MPEG audio */ > > +/* MPEG audio controls specific to multiplexed streams */ > > #define V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (V4L2_CID_MPEG_BASE+100) > > enum v4l2_mpeg_audio_sampling_freq { > > V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100 = 0, > > @@ -1289,7 +1302,7 @@ enum v4l2_mpeg_audio_ac3_bitrate { > > V4L2_MPEG_AUDIO_AC3_BITRATE_640K = 18, > > }; > > > > -/* MPEG video */ > > +/* MPEG video controls specific to multiplexed streams */ > > The 'multiplexed' part of this comment is only true for VIDEO_ENCODING. The > other controls are valid for elementary streams as well. Ok, I will remove this comment. > > > #define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_MPEG_BASE+200) > > enum v4l2_mpeg_video_encoding { > > V4L2_MPEG_VIDEO_ENCODING_MPEG_1 = 0, > > > > Regards, > > Hans Best regards, -- Kamil Debski Linux Platform Group Samsung Poland R&D Center -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html