| sheu@chromium.org: trimmed from 3.4 kernel patch |
| |
| From 122c0bd18b7df7d40e28be846d57eba291fae955 Mon Sep 17 00:00:00 2001 |
| From: Naveen Krishna Chatradhi <ch.naveen@samsung.com> |
| Date: Wed, 23 May 2012 10:21:26 +0100 |
| Subject: [PATCH] MFC: update MFC v4l2 driver to support MFC6.x |
| |
| Multi Format Codec 6.x is a hardware video coding acceleration |
| module fount in new Exynos5 SoC series. |
| It is capable of handling a range of video codecs and this driver |
| provides a V4L2 interface for video decoding and encoding. |
| |
| Change-Id: I69854c51ef20599add4e17b5d4df338785b5432f |
| Signed-off-by: Jeongtae Park <jtp.park@xxxxxxxxxxx> |
| Singed-off-by: Janghyuck Kim <janghyuck.kim@xxxxxxxxxxx> |
| Singed-off-by: Jaeryul Oh <jaeryul.oh@xxxxxxxxxxx> |
| Cc: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> |
| Cc: Kamil Debski <k.debski@xxxxxxxxxxx> |
| --- |
| drivers/media/video/Kconfig | 26 +- |
| drivers/media/video/s5p-mfc/Makefile | 7 +- |
| drivers/media/video/s5p-mfc/regs-mfc-v6.h | 671 ++++++++++ |
| drivers/media/video/s5p-mfc/regs-mfc.h | 29 + |
| drivers/media/video/s5p-mfc/s5p_mfc.c | 192 ++- |
| drivers/media/video/s5p-mfc/s5p_mfc_cmd.c | 4 +- |
| drivers/media/video/s5p-mfc/s5p_mfc_cmd.h | 3 + |
| drivers/media/video/s5p-mfc/s5p_mfc_cmd_v6.c | 130 ++ |
| drivers/media/video/s5p-mfc/s5p_mfc_common.h | 125 ++- |
| drivers/media/video/s5p-mfc/s5p_mfc_ctrl.c | 161 ++- |
| drivers/media/video/s5p-mfc/s5p_mfc_dec.c | 237 +++- |
| drivers/media/video/s5p-mfc/s5p_mfc_dec.h | 1 + |
| drivers/media/video/s5p-mfc/s5p_mfc_enc.c | 374 +++++-- |
| drivers/media/video/s5p-mfc/s5p_mfc_enc.h | 1 + |
| drivers/media/video/s5p-mfc/s5p_mfc_opr.c | 266 +++-- |
| drivers/media/video/s5p-mfc/s5p_mfc_opr.h | 20 +- |
| drivers/media/video/s5p-mfc/s5p_mfc_opr_v6.c | 1677 ++++++++++++++++++++++++++ |
| drivers/media/video/s5p-mfc/s5p_mfc_opr_v6.h | 137 +++ |
| drivers/media/video/s5p-mfc/s5p_mfc_pm.c | 6 +- |
| drivers/media/video/s5p-mfc/s5p_mfc_shm.c | 27 +- |
| drivers/media/video/s5p-mfc/s5p_mfc_shm.h | 13 +- |
| include/linux/videodev2.h | 364 +++++- |
| 22 files changed, 4015 insertions(+), 456 deletions(-) |
| mode change 100644 => 100755 drivers/media/video/s5p-mfc/Makefile |
| create mode 100644 drivers/media/video/s5p-mfc/regs-mfc-v6.h |
| mode change 100644 => 100755 drivers/media/video/s5p-mfc/regs-mfc.h |
| mode change 100644 => 100755 drivers/media/video/s5p-mfc/s5p_mfc.c |
| create mode 100644 drivers/media/video/s5p-mfc/s5p_mfc_cmd_v6.c |
| mode change 100644 => 100755 drivers/media/video/s5p-mfc/s5p_mfc_common.h |
| mode change 100644 => 100755 drivers/media/video/s5p-mfc/s5p_mfc_ctrl.c |
| mode change 100644 => 100755 drivers/media/video/s5p-mfc/s5p_mfc_dec.c |
| mode change 100644 => 100755 drivers/media/video/s5p-mfc/s5p_mfc_enc.c |
| create mode 100755 drivers/media/video/s5p-mfc/s5p_mfc_opr_v6.c |
| create mode 100644 drivers/media/video/s5p-mfc/s5p_mfc_opr_v6.h |
| mode change 100644 => 100755 drivers/media/video/s5p-mfc/s5p_mfc_pm.c |
| mode change 100644 => 100755 drivers/media/video/s5p-mfc/s5p_mfc_shm.h |
| |
| diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h |
| index 320ce9c..a58bdd1 100644 |
| --- a/include/linux/videodev2.h |
| +++ b/include/linux/videodev2.h |
| @@ -289,12 +289,12 @@ struct v4l2_capability { |
| * V I D E O I M A G E F O R M A T |
| */ |
| struct v4l2_pix_format { |
| - __u32 width; |
| + __u32 width; |
| __u32 height; |
| __u32 pixelformat; |
| - enum v4l2_field field; |
| - __u32 bytesperline; /* for padding, zero if unused */ |
| - __u32 sizeimage; |
| + enum v4l2_field field; |
| + __u32 bytesperline; /* for padding, zero if unused */ |
| + __u32 sizeimage; |
| enum v4l2_colorspace colorspace; |
| __u32 priv; /* private data, depends on pixelformat */ |
| }; |
| @@ -359,6 +359,7 @@ struct v4l2_pix_format { |
| |
| /* two non contiguous planes - one Y, one Cr + Cb interleaved */ |
| #define V4L2_PIX_FMT_NV12M v4l2_fourcc('N', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 */ |
| +#define V4L2_PIX_FMT_NV21M v4l2_fourcc('N', 'M', '2', '1') /* 21 Y/CrCb 4:2:0 */ |
| #define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 64x32 macroblocks */ |
| |
| /* three non contiguous planes - Y, Cb, Cr */ |
| @@ -392,13 +393,23 @@ struct v4l2_pix_format { |
| #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_H264_MVC v4l2_fourcc('M', '2', '6', '4') /* H264 MVC */ |
| #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_MPEG12 v4l2_fourcc('M', 'P', '1', '2') /* MPEG-1/2 */ |
| #define V4L2_PIX_FMT_MPEG4 v4l2_fourcc('M', 'P', 'G', '4') /* MPEG-4 ES */ |
| +#define V4L2_PIX_FMT_FIMV v4l2_fourcc('F', 'I', 'M', 'V') /* FIMV */ |
| +#define V4L2_PIX_FMT_FIMV1 v4l2_fourcc('F', 'I', 'M', '1') /* FIMV1 */ |
| +#define V4L2_PIX_FMT_FIMV2 v4l2_fourcc('F', 'I', 'M', '2') /* FIMV2 */ |
| +#define V4L2_PIX_FMT_FIMV3 v4l2_fourcc('F', 'I', 'M', '3') /* FIMV3 */ |
| +#define V4L2_PIX_FMT_FIMV4 v4l2_fourcc('F', 'I', 'M', '4') /* FIMV4 */ |
| #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 */ |
| +#define V4L2_PIX_FMT_VC1 v4l2_fourcc('V', 'C', '1', 'A') /* VC-1 */ |
| +#define V4L2_PIX_FMT_VC1_RCV v4l2_fourcc('V', 'C', '1', 'R') /* VC-1 RCV */ |
| +#define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0') /* VP8 */ |
| |
| /* Vendor-specific formats */ |
| #define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */ |
| @@ -859,7 +870,7 @@ typedef __u64 v4l2_std_id; |
| V4L2_STD_NTSC_M_JP |\ |
| V4L2_STD_NTSC_M_KR) |
| /* Secam macros */ |
| -#define V4L2_STD_SECAM_DK (V4L2_STD_SECAM_D |\ |
| +#define V4L2_STD_SECAM_DK (V4L2_STD_SECAM_D |\ |
| V4L2_STD_SECAM_K |\ |
| V4L2_STD_SECAM_K1) |
| /* All Secam Standards */ |
| @@ -1162,8 +1173,9 @@ struct v4l2_ext_controls { |
| #define V4L2_CTRL_CLASS_MPEG 0x00990000 /* MPEG-compression controls */ |
| #define V4L2_CTRL_CLASS_CAMERA 0x009a0000 /* Camera class controls */ |
| #define V4L2_CTRL_CLASS_FM_TX 0x009b0000 /* FM Modulator control class */ |
| -#define V4L2_CTRL_CLASS_FLASH 0x009c0000 /* Camera flash controls */ |
| -#define V4L2_CTRL_CLASS_JPEG 0x009d0000 /* JPEG-compression controls */ |
| +#define V4L2_CTRL_CLASS_CODEC 0x009c0000 /* Codec control class */ |
| +#define V4L2_CTRL_CLASS_FLASH 0x009d0000 /* Camera flash controls */ |
| +#define V4L2_CTRL_CLASS_JPEG 0x009e0000 /* JPEG-compression controls */ |
| |
| #define V4L2_CTRL_ID_MASK (0x0fffffff) |
| |
| @@ -1206,11 +1218,11 @@ struct v4l2_querymenu { |
| /* Control flags */ |
| #define V4L2_CTRL_FLAG_DISABLED 0x0001 |
| #define V4L2_CTRL_FLAG_GRABBED 0x0002 |
| -#define V4L2_CTRL_FLAG_READ_ONLY 0x0004 |
| -#define V4L2_CTRL_FLAG_UPDATE 0x0008 |
| -#define V4L2_CTRL_FLAG_INACTIVE 0x0010 |
| -#define V4L2_CTRL_FLAG_SLIDER 0x0020 |
| -#define V4L2_CTRL_FLAG_WRITE_ONLY 0x0040 |
| +#define V4L2_CTRL_FLAG_READ_ONLY 0x0004 |
| +#define V4L2_CTRL_FLAG_UPDATE 0x0008 |
| +#define V4L2_CTRL_FLAG_INACTIVE 0x0010 |
| +#define V4L2_CTRL_FLAG_SLIDER 0x0020 |
| +#define V4L2_CTRL_FLAG_WRITE_ONLY 0x0040 |
| #define V4L2_CTRL_FLAG_VOLATILE 0x0080 |
| |
| /* Query flag, to be ORed with the control ID */ |
| @@ -1223,7 +1235,7 @@ struct v4l2_querymenu { |
| /* IDs reserved for driver specific controls */ |
| #define V4L2_CID_PRIVATE_BASE 0x08000000 |
| |
| -#define V4L2_CID_USER_CLASS (V4L2_CTRL_CLASS_USER | 1) |
| +#define V4L2_CID_USER_CLASS (V4L2_CTRL_CLASS_USER | 1) |
| #define V4L2_CID_BRIGHTNESS (V4L2_CID_BASE+0) |
| #define V4L2_CID_CONTRAST (V4L2_CID_BASE+1) |
| #define V4L2_CID_SATURATION (V4L2_CID_BASE+2) |
| @@ -1261,21 +1273,21 @@ enum v4l2_power_line_frequency { |
| #define V4L2_CID_HUE_AUTO (V4L2_CID_BASE+25) |
| #define V4L2_CID_WHITE_BALANCE_TEMPERATURE (V4L2_CID_BASE+26) |
| #define V4L2_CID_SHARPNESS (V4L2_CID_BASE+27) |
| -#define V4L2_CID_BACKLIGHT_COMPENSATION (V4L2_CID_BASE+28) |
| -#define V4L2_CID_CHROMA_AGC (V4L2_CID_BASE+29) |
| -#define V4L2_CID_COLOR_KILLER (V4L2_CID_BASE+30) |
| +#define V4L2_CID_BACKLIGHT_COMPENSATION (V4L2_CID_BASE+28) |
| +#define V4L2_CID_CHROMA_AGC (V4L2_CID_BASE+29) |
| +#define V4L2_CID_COLOR_KILLER (V4L2_CID_BASE+30) |
| #define V4L2_CID_COLORFX (V4L2_CID_BASE+31) |
| enum v4l2_colorfx { |
| V4L2_COLORFX_NONE = 0, |
| V4L2_COLORFX_BW = 1, |
| V4L2_COLORFX_SEPIA = 2, |
| - V4L2_COLORFX_NEGATIVE = 3, |
| - V4L2_COLORFX_EMBOSS = 4, |
| - V4L2_COLORFX_SKETCH = 5, |
| - V4L2_COLORFX_SKY_BLUE = 6, |
| + V4L2_COLORFX_NEGATIVE = 3, |
| + V4L2_COLORFX_EMBOSS = 4, |
| + V4L2_COLORFX_SKETCH = 5, |
| + V4L2_COLORFX_SKY_BLUE = 6, |
| V4L2_COLORFX_GRASS_GREEN = 7, |
| V4L2_COLORFX_SKIN_WHITEN = 8, |
| - V4L2_COLORFX_VIVID = 9, |
| + V4L2_COLORFX_VIVID = 9, |
| }; |
| #define V4L2_CID_AUTOBRIGHTNESS (V4L2_CID_BASE+32) |
| #define V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE+33) |
| @@ -1310,13 +1322,13 @@ enum v4l2_mpeg_stream_type { |
| V4L2_MPEG_STREAM_TYPE_MPEG1_VCD = 4, /* MPEG-1 VCD-compatible stream */ |
| V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD = 5, /* MPEG-2 SVCD-compatible stream */ |
| }; |
| -#define V4L2_CID_MPEG_STREAM_PID_PMT (V4L2_CID_MPEG_BASE+1) |
| -#define V4L2_CID_MPEG_STREAM_PID_AUDIO (V4L2_CID_MPEG_BASE+2) |
| -#define V4L2_CID_MPEG_STREAM_PID_VIDEO (V4L2_CID_MPEG_BASE+3) |
| -#define V4L2_CID_MPEG_STREAM_PID_PCR (V4L2_CID_MPEG_BASE+4) |
| -#define V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (V4L2_CID_MPEG_BASE+5) |
| -#define V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (V4L2_CID_MPEG_BASE+6) |
| -#define V4L2_CID_MPEG_STREAM_VBI_FMT (V4L2_CID_MPEG_BASE+7) |
| +#define V4L2_CID_MPEG_STREAM_PID_PMT (V4L2_CID_MPEG_BASE+1) |
| +#define V4L2_CID_MPEG_STREAM_PID_AUDIO (V4L2_CID_MPEG_BASE+2) |
| +#define V4L2_CID_MPEG_STREAM_PID_VIDEO (V4L2_CID_MPEG_BASE+3) |
| +#define V4L2_CID_MPEG_STREAM_PID_PCR (V4L2_CID_MPEG_BASE+4) |
| +#define V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (V4L2_CID_MPEG_BASE+5) |
| +#define V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (V4L2_CID_MPEG_BASE+6) |
| +#define V4L2_CID_MPEG_STREAM_VBI_FMT (V4L2_CID_MPEG_BASE+7) |
| enum v4l2_mpeg_stream_vbi_fmt { |
| V4L2_MPEG_STREAM_VBI_FMT_NONE = 0, /* No VBI in the MPEG stream */ |
| V4L2_MPEG_STREAM_VBI_FMT_IVTV = 1, /* VBI in private packets, IVTV format */ |
| @@ -1329,7 +1341,7 @@ enum v4l2_mpeg_audio_sampling_freq { |
| V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000 = 1, |
| V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000 = 2, |
| }; |
| -#define V4L2_CID_MPEG_AUDIO_ENCODING (V4L2_CID_MPEG_BASE+101) |
| +#define V4L2_CID_MPEG_AUDIO_ENCODING (V4L2_CID_MPEG_BASE+101) |
| enum v4l2_mpeg_audio_encoding { |
| V4L2_MPEG_AUDIO_ENCODING_LAYER_1 = 0, |
| V4L2_MPEG_AUDIO_ENCODING_LAYER_2 = 1, |
| @@ -1337,7 +1349,7 @@ enum v4l2_mpeg_audio_encoding { |
| V4L2_MPEG_AUDIO_ENCODING_AAC = 3, |
| V4L2_MPEG_AUDIO_ENCODING_AC3 = 4, |
| }; |
| -#define V4L2_CID_MPEG_AUDIO_L1_BITRATE (V4L2_CID_MPEG_BASE+102) |
| +#define V4L2_CID_MPEG_AUDIO_L1_BITRATE (V4L2_CID_MPEG_BASE+102) |
| enum v4l2_mpeg_audio_l1_bitrate { |
| V4L2_MPEG_AUDIO_L1_BITRATE_32K = 0, |
| V4L2_MPEG_AUDIO_L1_BITRATE_64K = 1, |
| @@ -1371,7 +1383,7 @@ enum v4l2_mpeg_audio_l2_bitrate { |
| V4L2_MPEG_AUDIO_L2_BITRATE_320K = 12, |
| V4L2_MPEG_AUDIO_L2_BITRATE_384K = 13, |
| }; |
| -#define V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_MPEG_BASE+104) |
| +#define V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_MPEG_BASE+104) |
| enum v4l2_mpeg_audio_l3_bitrate { |
| V4L2_MPEG_AUDIO_L3_BITRATE_32K = 0, |
| V4L2_MPEG_AUDIO_L3_BITRATE_40K = 1, |
| @@ -1388,32 +1400,32 @@ enum v4l2_mpeg_audio_l3_bitrate { |
| V4L2_MPEG_AUDIO_L3_BITRATE_256K = 12, |
| V4L2_MPEG_AUDIO_L3_BITRATE_320K = 13, |
| }; |
| -#define V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_MPEG_BASE+105) |
| +#define V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_MPEG_BASE+105) |
| enum v4l2_mpeg_audio_mode { |
| V4L2_MPEG_AUDIO_MODE_STEREO = 0, |
| V4L2_MPEG_AUDIO_MODE_JOINT_STEREO = 1, |
| V4L2_MPEG_AUDIO_MODE_DUAL = 2, |
| V4L2_MPEG_AUDIO_MODE_MONO = 3, |
| }; |
| -#define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_MPEG_BASE+106) |
| +#define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_MPEG_BASE+106) |
| enum v4l2_mpeg_audio_mode_extension { |
| V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4 = 0, |
| V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8 = 1, |
| V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12 = 2, |
| V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16 = 3, |
| }; |
| -#define V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_MPEG_BASE+107) |
| +#define V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_MPEG_BASE+107) |
| enum v4l2_mpeg_audio_emphasis { |
| V4L2_MPEG_AUDIO_EMPHASIS_NONE = 0, |
| V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS = 1, |
| V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17 = 2, |
| }; |
| -#define V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_MPEG_BASE+108) |
| +#define V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_MPEG_BASE+108) |
| enum v4l2_mpeg_audio_crc { |
| V4L2_MPEG_AUDIO_CRC_NONE = 0, |
| V4L2_MPEG_AUDIO_CRC_CRC16 = 1, |
| }; |
| -#define V4L2_CID_MPEG_AUDIO_MUTE (V4L2_CID_MPEG_BASE+109) |
| +#define V4L2_CID_MPEG_AUDIO_MUTE (V4L2_CID_MPEG_BASE+109) |
| #define V4L2_CID_MPEG_AUDIO_AAC_BITRATE (V4L2_CID_MPEG_BASE+110) |
| #define V4L2_CID_MPEG_AUDIO_AC3_BITRATE (V4L2_CID_MPEG_BASE+111) |
| enum v4l2_mpeg_audio_ac3_bitrate { |
| @@ -1449,33 +1461,33 @@ enum v4l2_mpeg_audio_dec_playback { |
| #define V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK (V4L2_CID_MPEG_BASE+113) |
| |
| /* MPEG video controls specific to multiplexed streams */ |
| -#define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_MPEG_BASE+200) |
| +#define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_MPEG_BASE+200) |
| enum v4l2_mpeg_video_encoding { |
| V4L2_MPEG_VIDEO_ENCODING_MPEG_1 = 0, |
| V4L2_MPEG_VIDEO_ENCODING_MPEG_2 = 1, |
| V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC = 2, |
| }; |
| -#define V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_MPEG_BASE+201) |
| +#define V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_MPEG_BASE+201) |
| enum v4l2_mpeg_video_aspect { |
| V4L2_MPEG_VIDEO_ASPECT_1x1 = 0, |
| V4L2_MPEG_VIDEO_ASPECT_4x3 = 1, |
| V4L2_MPEG_VIDEO_ASPECT_16x9 = 2, |
| V4L2_MPEG_VIDEO_ASPECT_221x100 = 3, |
| }; |
| -#define V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_MPEG_BASE+202) |
| -#define V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_MPEG_BASE+203) |
| -#define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_MPEG_BASE+204) |
| -#define V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_MPEG_BASE+205) |
| -#define V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_MPEG_BASE+206) |
| +#define V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_MPEG_BASE+202) |
| +#define V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_MPEG_BASE+203) |
| +#define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_MPEG_BASE+204) |
| +#define V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_MPEG_BASE+205) |
| +#define V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_MPEG_BASE+206) |
| enum v4l2_mpeg_video_bitrate_mode { |
| V4L2_MPEG_VIDEO_BITRATE_MODE_VBR = 0, |
| V4L2_MPEG_VIDEO_BITRATE_MODE_CBR = 1, |
| }; |
| -#define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_MPEG_BASE+207) |
| -#define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_MPEG_BASE+208) |
| +#define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_MPEG_BASE+207) |
| +#define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_MPEG_BASE+208) |
| #define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_MPEG_BASE+209) |
| -#define V4L2_CID_MPEG_VIDEO_MUTE (V4L2_CID_MPEG_BASE+210) |
| -#define V4L2_CID_MPEG_VIDEO_MUTE_YUV (V4L2_CID_MPEG_BASE+211) |
| +#define V4L2_CID_MPEG_VIDEO_MUTE (V4L2_CID_MPEG_BASE+210) |
| +#define V4L2_CID_MPEG_VIDEO_MUTE_YUV (V4L2_CID_MPEG_BASE+211) |
| #define V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (V4L2_CID_MPEG_BASE+212) |
| #define V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (V4L2_CID_MPEG_BASE+213) |
| #define V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (V4L2_CID_MPEG_BASE+214) |
| @@ -1489,16 +1501,20 @@ enum v4l2_mpeg_video_header_mode { |
| #define V4L2_CID_MPEG_VIDEO_MAX_REF_PIC (V4L2_CID_MPEG_BASE+217) |
| #define V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE (V4L2_CID_MPEG_BASE+218) |
| #define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES (V4L2_CID_MPEG_BASE+219) |
| +#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BITS (V4L2_CID_MPEG_BASE+219) |
| #define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB (V4L2_CID_MPEG_BASE+220) |
| #define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE (V4L2_CID_MPEG_BASE+221) |
| enum v4l2_mpeg_video_multi_slice_mode { |
| V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE = 0, |
| V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_MB = 1, |
| V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_BYTES = 2, |
| + V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB = 1, |
| + V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BITS = 2, |
| }; |
| #define V4L2_CID_MPEG_VIDEO_VBV_SIZE (V4L2_CID_MPEG_BASE+222) |
| #define V4L2_CID_MPEG_VIDEO_DEC_PTS (V4L2_CID_MPEG_BASE+223) |
| #define V4L2_CID_MPEG_VIDEO_DEC_FRAME (V4L2_CID_MPEG_BASE+224) |
| +#define V4L2_CID_MPEG_VIDEO_VBV_DELAY (V4L2_CID_MPEG_BASE+225) |
| |
| #define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300) |
| #define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301) |
| @@ -1589,6 +1605,46 @@ enum v4l2_mpeg_video_h264_vui_sar_idc { |
| V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1 = 16, |
| V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED = 17, |
| }; |
| +#define V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING (V4L2_CID_MPEG_BASE+368) |
| +#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 (V4L2_CID_MPEG_BASE+369) |
| +#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE (V4L2_CID_MPEG_BASE+370) |
| +enum v4l2_mpeg_video_h264_sei_fp_arrangement_type { |
| + V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHEKERBOARD = 0, |
| + V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN = 1, |
| + V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_ROW = 2, |
| + V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_SIDE_BY_SIDE = 3, |
| + V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM = 4, |
| + V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL = 5, |
| +}; |
| +#define V4L2_CID_MPEG_VIDEO_H264_FMO (V4L2_CID_MPEG_BASE+371) |
| +#define V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE (V4L2_CID_MPEG_BASE+372) |
| +enum v4l2_mpeg_video_h264_fmo_map_type { |
| + V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES = 0, |
| + V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES = 1, |
| + V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER = 2, |
| + V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT = 3, |
| + V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN = 4, |
| + V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN = 5, |
| + V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT = 6, |
| +}; |
| +#define V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP (V4L2_CID_MPEG_BASE+373) |
| +#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION (V4L2_CID_MPEG_BASE+374) |
| +enum v4l2_mpeg_video_h264_fmo_change_dir { |
| + V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT = 0, |
| + V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT = 1, |
| +}; |
| +#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE (V4L2_CID_MPEG_BASE+375) |
| +#define V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH (V4L2_CID_MPEG_BASE+376) |
| +#define V4L2_CID_MPEG_VIDEO_H264_ASO (V4L2_CID_MPEG_BASE+377) |
| +#define V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER (V4L2_CID_MPEG_BASE+378) |
| +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING (V4L2_CID_MPEG_BASE+379) |
| +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE (V4L2_CID_MPEG_BASE+380) |
| +enum v4l2_mpeg_video_h264_hierarchical_coding_type { |
| + V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B = 0, |
| + V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P = 1, |
| +}; |
| +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (V4L2_CID_MPEG_BASE+381) |
| +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (V4L2_CID_MPEG_BASE+382) |
| #define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_MPEG_BASE+400) |
| #define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_MPEG_BASE+401) |
| #define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_MPEG_BASE+402) |
| @@ -1683,6 +1739,220 @@ enum v4l2_mpeg_mfc51_video_force_frame_type { |
| #define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_MPEG_MFC51_BASE+53) |
| #define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_MPEG_MFC51_BASE+54) |
| |
| +#define V4L2_CID_CODEC_BASE (V4L2_CTRL_CLASS_CODEC | 0x900) |
| +#define V4L2_CID_CODEC_CLASS (V4L2_CTRL_CLASS_CODEC | 1) |
| + |
| +/* Codec class control IDs specific to the MFC5X driver */ |
| +#define V4L2_CID_CODEC_MFC5X_BASE (V4L2_CTRL_CLASS_CODEC | 0x1000) |
| + |
| +/* For both decoding and encoding */ |
| + |
| +/* For decoding */ |
| + |
| +#define V4L2_CID_CODEC_LOOP_FILTER_MPEG4_ENABLE (V4L2_CID_CODEC_BASE + 110) |
| +#define V4L2_CID_CODEC_DISPLAY_DELAY (V4L2_CID_CODEC_BASE + 137) |
| +#define V4L2_CID_CODEC_REQ_NUM_BUFS (V4L2_CID_CODEC_BASE + 140) |
| +#define V4L2_CID_CODEC_SLICE_INTERFACE (V4L2_CID_CODEC_BASE + 141) |
| +#define V4L2_CID_CODEC_PACKED_PB (V4L2_CID_CODEC_BASE + 142) |
| +#define V4L2_CID_CODEC_FRAME_TAG (V4L2_CID_CODEC_BASE + 143) |
| +#define V4L2_CID_CODEC_CRC_ENABLE (V4L2_CID_CODEC_BASE + 144) |
| +#define V4L2_CID_CODEC_CRC_DATA_LUMA (V4L2_CID_CODEC_BASE + 145) |
| +#define V4L2_CID_CODEC_CRC_DATA_CHROMA (V4L2_CID_CODEC_BASE + 146) |
| +#define V4L2_CID_CODEC_CRC_DATA_LUMA_BOT (V4L2_CID_CODEC_BASE + 147) |
| +#define V4L2_CID_CODEC_CRC_DATA_CHROMA_BOT (V4L2_CID_CODEC_BASE + 148) |
| +#define V4L2_CID_CODEC_CRC_GENERATED (V4L2_CID_CODEC_BASE + 149) |
| +#define V4L2_CID_CODEC_FRAME_TYPE (V4L2_CID_CODEC_BASE + 154) |
| +#define V4L2_CID_CODEC_CHECK_STATE (V4L2_CID_CODEC_BASE + 155) |
| +#define V4L2_CID_CODEC_DISPLAY_STATUS (V4L2_CID_CODEC_BASE + 156) |
| +#define V4L2_CID_CODEC_FRAME_PACK_SEI_PARSE (V4L2_CID_CODEC_BASE + 157) |
| +#define V4L2_CID_CODEC_FRAME_PACK_SEI_AVAIL (V4L2_CID_CODEC_BASE + 158) |
| +#define V4L2_CID_CODEC_FRAME_PACK_ARRGMENT_ID (V4L2_CID_CODEC_BASE + 159) |
| +#define V4L2_CID_CODEC_FRAME_PACK_SEI_INFO (V4L2_CID_CODEC_BASE + 160) |
| +#define V4L2_CID_CODEC_FRAME_PACK_GRID_POS (V4L2_CID_CODEC_BASE + 161) |
| + |
| +/* For encoding */ |
| +#define V4L2_CID_CODEC_LOOP_FILTER_H264 (V4L2_CID_CODEC_BASE + 9) |
| +enum v4l2_cid_codec_loop_filter_h264 { |
| + V4L2_CID_CODEC_LOOP_FILTER_H264_ENABLE = 0, |
| + V4L2_CID_CODEC_LOOP_FILTER_H264_DISABLE = 1, |
| + V4L2_CID_CODEC_LOOP_FILTER_H264_DISABLE_AT_BOUNDARY = 2, |
| +}; |
| + |
| +#define V4L2_CID_CODEC_FRAME_INSERTION (V4L2_CID_CODEC_BASE + 10) |
| +enum v4l2_cid_codec_frame_insertion { |
| + V4L2_CID_CODEC_FRAME_INSERT_NONE = 0x0, |
| + V4L2_CID_CODEC_FRAME_INSERT_I_FRAME = 0x1, |
| + V4L2_CID_CODEC_FRAME_INSERT_NOT_CODED = 0x2, |
| +}; |
| + |
| +#define V4L2_CID_CODEC_ENCODED_LUMA_ADDR (V4L2_CID_CODEC_BASE + 11) |
| +#define V4L2_CID_CODEC_ENCODED_CHROMA_ADDR (V4L2_CID_CODEC_BASE + 12) |
| + |
| +#define V4L2_CID_CODEC_ENCODED_I_PERIOD_CH V4L2_CID_CODEC_MFC5X_ENC_GOP_SIZE |
| +#define V4L2_CID_CODEC_ENCODED_FRAME_RATE_CH V4L2_CID_CODEC_MFC5X_ENC_H264_RC_FRAME_RATE |
| +#define V4L2_CID_CODEC_ENCODED_BIT_RATE_CH V4L2_CID_CODEC_MFC5X_ENC_RC_BIT_RATE |
| + |
| +#define V4L2_CID_CODEC_FRAME_PACK_SEI_GEN (V4L2_CID_CODEC_BASE + 13) |
| +#define V4L2_CID_CODEC_FRAME_PACK_FRM0_FLAG (V4L2_CID_CODEC_BASE + 14) |
| +enum v4l2_codec_mfc5x_enc_flag { |
| + V4L2_CODEC_MFC5X_ENC_FLAG_DISABLE = 0, |
| + V4L2_CODEC_MFC5X_ENC_FLAG_ENABLE = 1, |
| +}; |
| +#define V4L2_CID_CODEC_FRAME_PACK_ARRGMENT_TYPE (V4L2_CID_CODEC_BASE + 15) |
| +enum v4l2_codec_mfc5x_enc_frame_pack_arrgment_type { |
| + V4L2_CODEC_MFC5X_ENC_FRAME_PACK_SIDE_BY_SIDE = 0, |
| + V4L2_CODEC_MFC5X_ENC_FRAME_PACK_TOP_AND_BOT = 1, |
| + V4L2_CODEC_MFC5X_ENC_FRAME_PACK_TMP_INTER = 2, |
| +}; |
| + |
| +/* common */ |
| +enum v4l2_codec_mfc5x_enc_switch { |
| + V4L2_CODEC_MFC5X_ENC_SW_DISABLE = 0, |
| + V4L2_CODEC_MFC5X_ENC_SW_ENABLE = 1, |
| +}; |
| +enum v4l2_codec_mfc5x_enc_switch_inv { |
| + V4L2_CODEC_MFC5X_ENC_SW_INV_ENABLE = 0, |
| + V4L2_CODEC_MFC5X_ENC_SW_INV_DISABLE = 1, |
| +}; |
| +#define V4L2_CID_CODEC_MFC5X_ENC_GOP_SIZE (V4L2_CID_CODEC_MFC5X_BASE+300) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_MULTI_SLICE_MODE (V4L2_CID_CODEC_MFC5X_BASE+301) |
| +enum v4l2_codec_mfc5x_enc_multi_slice_mode { |
| + V4L2_CODEC_MFC5X_ENC_MULTI_SLICE_MODE_DISABLE = 0, |
| + V4L2_CODEC_MFC5X_ENC_MULTI_SLICE_MODE_MACROBLOCK_COUNT = 1, |
| + V4L2_CODEC_MFC5X_ENC_MULTI_SLICE_MODE_BIT_COUNT = 3, |
| +}; |
| +#define V4L2_CID_CODEC_MFC5X_ENC_MULTI_SLICE_MB (V4L2_CID_CODEC_MFC5X_BASE+302) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_MULTI_SLICE_BIT (V4L2_CID_CODEC_MFC5X_BASE+303) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_INTRA_REFRESH_MB (V4L2_CID_CODEC_MFC5X_BASE+304) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_PAD_CTRL_ENABLE (V4L2_CID_CODEC_MFC5X_BASE+305) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_PAD_LUMA_VALUE (V4L2_CID_CODEC_MFC5X_BASE+306) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_PAD_CB_VALUE (V4L2_CID_CODEC_MFC5X_BASE+307) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_PAD_CR_VALUE (V4L2_CID_CODEC_MFC5X_BASE+308) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_RC_FRAME_ENABLE (V4L2_CID_CODEC_MFC5X_BASE+309) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_RC_BIT_RATE (V4L2_CID_CODEC_MFC5X_BASE+310) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_RC_REACTION_COEFF (V4L2_CID_CODEC_MFC5X_BASE+311) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_STREAM_SIZE (V4L2_CID_CODEC_MFC5X_BASE+312) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_FRAME_COUNT (V4L2_CID_CODEC_MFC5X_BASE+313) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_FRAME_TYPE (V4L2_CID_CODEC_MFC5X_BASE+314) |
| +enum v4l2_codec_mfc5x_enc_frame_type { |
| + V4L2_CODEC_MFC5X_ENC_FRAME_TYPE_NOT_CODED = 0, |
| + V4L2_CODEC_MFC5X_ENC_FRAME_TYPE_I_FRAME = 1, |
| + V4L2_CODEC_MFC5X_ENC_FRAME_TYPE_P_FRAME = 2, |
| + V4L2_CODEC_MFC5X_ENC_FRAME_TYPE_B_FRAME = 3, |
| + V4L2_CODEC_MFC5X_ENC_FRAME_TYPE_SKIPPED = 4, |
| + V4L2_CODEC_MFC5X_ENC_FRAME_TYPE_OTHERS = 5, |
| +}; |
| +#define V4L2_CID_CODEC_MFC5X_ENC_FORCE_FRAME_TYPE (V4L2_CID_CODEC_MFC5X_BASE+315) |
| +enum v4l2_codec_mfc5x_enc_force_frame_type { |
| + V4L2_CODEC_MFC5X_ENC_FORCE_FRAME_TYPE_I_FRAME = 1, |
| + V4L2_CODEC_MFC5X_ENC_FORCE_FRAME_TYPE_NOT_CODED = 2, |
| +}; |
| +#define V4L2_CID_CODEC_MFC5X_ENC_VBV_BUF_SIZE (V4L2_CID_CODEC_MFC5X_BASE+316) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_SEQ_HDR_MODE (V4L2_CID_CODEC_MFC5X_BASE+317) |
| +enum v4l2_codec_mfc5x_enc_seq_hdr_mode { |
| + V4L2_CODEC_MFC5X_ENC_SEQ_HDR_MODE_SEQ = 0, |
| + V4L2_CODEC_MFC5X_ENC_SEQ_HDR_MODE_SEQ_FRAME = 1, |
| +}; |
| +#define V4L2_CID_CODEC_MFC5X_ENC_FRAME_SKIP_MODE (V4L2_CID_CODEC_MFC5X_BASE+318) |
| +enum v4l2_codec_mfc5x_enc_frame_skip_mode { |
| + V4L2_CODEC_MFC5X_ENC_FRAME_SKIP_MODE_DISABLE = 0, |
| + V4L2_CODEC_MFC5X_ENC_FRAME_SKIP_MODE_LEVEL = 1, |
| + V4L2_CODEC_MFC5X_ENC_FRAME_SKIP_MODE_VBV_BUF_SIZE = 2, |
| +}; |
| +#define V4L2_CID_CODEC_MFC5X_ENC_RC_FIXED_TARGET_BIT (V4L2_CID_CODEC_MFC5X_BASE+319) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_FRAME_DELTA (V4L2_CID_CODEC_MFC5X_BASE+320) |
| + |
| +/* codec specific */ |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_B_FRAMES (V4L2_CID_CODEC_MFC5X_BASE+400) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_PROFILE (V4L2_CID_CODEC_MFC5X_BASE+401) |
| +enum v4l2_codec_mfc5x_enc_h264_profile { |
| + V4L2_CODEC_MFC5X_ENC_H264_PROFILE_MAIN = 0, |
| + V4L2_CODEC_MFC5X_ENC_H264_PROFILE_HIGH = 1, |
| + V4L2_CODEC_MFC5X_ENC_H264_PROFILE_BASELINE = 2, |
| +}; |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_LEVEL (V4L2_CID_CODEC_MFC5X_BASE+402) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_INTERLACE (V4L2_CID_CODEC_MFC5X_BASE+403) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_LOOP_FILTER_MODE (V4L2_CID_CODEC_MFC5X_BASE+404) |
| +enum v4l2_codec_mfc5x_enc_h264_loop_filter { |
| + V4L2_CODEC_MFC5X_ENC_H264_LOOP_FILTER_ENABLE = 0, |
| + V4L2_CODEC_MFC5X_ENC_H264_LOOP_FILTER_DISABLE = 1, |
| + V4L2_CODEC_MFC5X_ENC_H264_LOOP_FILTER_DISABLE_AT_BOUNDARY = 2, |
| +}; |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_LOOP_FILTER_ALPHA (V4L2_CID_CODEC_MFC5X_BASE+405) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_LOOP_FILTER_BETA (V4L2_CID_CODEC_MFC5X_BASE+406) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_ENTROPY_MODE (V4L2_CID_CODEC_MFC5X_BASE+407) |
| +enum v4l2_codec_mfc5x_enc_h264_entropy_mode { |
| + V4L2_CODEC_MFC5X_ENC_H264_ENTROPY_MODE_CAVLC = 0, |
| + V4L2_CODEC_MFC5X_ENC_H264_ENTROPY_MODE_CABAC = 1, |
| +}; |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_MAX_REF_PIC (V4L2_CID_CODEC_MFC5X_BASE+408) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_NUM_REF_PIC_4P (V4L2_CID_CODEC_MFC5X_BASE+409) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_8X8_TRANSFORM (V4L2_CID_CODEC_MFC5X_BASE+410) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_RC_MB_ENABLE (V4L2_CID_CODEC_MFC5X_BASE+411) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_RC_FRAME_RATE (V4L2_CID_CODEC_MFC5X_BASE+412) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_RC_FRAME_QP (V4L2_CID_CODEC_MFC5X_BASE+413) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_RC_MIN_QP (V4L2_CID_CODEC_MFC5X_BASE+414) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_RC_MAX_QP (V4L2_CID_CODEC_MFC5X_BASE+415) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_RC_MB_DARK (V4L2_CID_CODEC_MFC5X_BASE+416) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_RC_MB_SMOOTH (V4L2_CID_CODEC_MFC5X_BASE+417) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_RC_MB_STATIC (V4L2_CID_CODEC_MFC5X_BASE+418) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_RC_MB_ACTIVITY (V4L2_CID_CODEC_MFC5X_BASE+419) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_RC_P_FRAME_QP (V4L2_CID_CODEC_MFC5X_BASE+420) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_RC_B_FRAME_QP (V4L2_CID_CODEC_MFC5X_BASE+421) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_AR_VUI_ENABLE (V4L2_CID_CODEC_MFC5X_BASE+422) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_AR_VUI_IDC (V4L2_CID_CODEC_MFC5X_BASE+423) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_EXT_SAR_WIDTH (V4L2_CID_CODEC_MFC5X_BASE+424) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_EXT_SAR_HEIGHT (V4L2_CID_CODEC_MFC5X_BASE+425) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_OPEN_GOP (V4L2_CID_CODEC_MFC5X_BASE+426) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_I_PERIOD (V4L2_CID_CODEC_MFC5X_BASE+427) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_HIER_P_ENABLE (V4L2_CID_CODEC_MFC5X_BASE+428) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_LAYER0_QP (V4L2_CID_CODEC_MFC5X_BASE+429) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_LAYER1_QP (V4L2_CID_CODEC_MFC5X_BASE+430) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_LAYER2_QP (V4L2_CID_CODEC_MFC5X_BASE+431) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_FMO_ENABLE (V4L2_CID_CODEC_MFC5X_BASE+432) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_ASO_ENABLE (V4L2_CID_CODEC_MFC5X_BASE+433) |
| + |
| +#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_B_FRAMES (V4L2_CID_CODEC_MFC5X_BASE+440) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_PROFILE (V4L2_CID_CODEC_MFC5X_BASE+441) |
| +enum v4l2_codec_mfc5x_enc_mpeg4_profile { |
| + V4L2_CODEC_MFC5X_ENC_MPEG4_PROFILE_SIMPLE = 0, |
| + V4L2_CODEC_MFC5X_ENC_MPEG4_PROFILE_ADVANCED_SIMPLE = 1, |
| +}; |
| +#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_LEVEL (V4L2_CID_CODEC_MFC5X_BASE+442) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_RC_FRAME_QP (V4L2_CID_CODEC_MFC5X_BASE+443) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_RC_MIN_QP (V4L2_CID_CODEC_MFC5X_BASE+444) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_RC_MAX_QP (V4L2_CID_CODEC_MFC5X_BASE+445) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_QUARTER_PIXEL (V4L2_CID_CODEC_MFC5X_BASE+446) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_RC_P_FRAME_QP (V4L2_CID_CODEC_MFC5X_BASE+447) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_RC_B_FRAME_QP (V4L2_CID_CODEC_MFC5X_BASE+448) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_VOP_TIME_RES (V4L2_CID_CODEC_MFC5X_BASE+449) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_VOP_FRM_DELTA (V4L2_CID_CODEC_MFC5X_BASE+450) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_RC_MB_ENABLE (V4L2_CID_CODEC_MFC5X_BASE+451) |
| + |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H263_RC_FRAME_RATE (V4L2_CID_CODEC_MFC5X_BASE+460) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H263_RC_FRAME_QP (V4L2_CID_CODEC_MFC5X_BASE+461) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H263_RC_MIN_QP (V4L2_CID_CODEC_MFC5X_BASE+462) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H263_RC_MAX_QP (V4L2_CID_CODEC_MFC5X_BASE+463) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H263_RC_P_FRAME_QP (V4L2_CID_CODEC_MFC5X_BASE+464) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H263_RC_MB_ENABLE (V4L2_CID_CODEC_MFC5X_BASE+465) |
| + |
| +/* FMO/ASO parameters */ |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_FMO_MAP_TYPE (V4L2_CID_CODEC_MFC5X_BASE+480) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_FMO_SLICE_NUM (V4L2_CID_CODEC_MFC5X_BASE+481) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_FMO_RUN_LEN1 (V4L2_CID_CODEC_MFC5X_BASE+482) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_FMO_RUN_LEN2 (V4L2_CID_CODEC_MFC5X_BASE+483) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_FMO_RUN_LEN3 (V4L2_CID_CODEC_MFC5X_BASE+484) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_FMO_RUN_LEN4 (V4L2_CID_CODEC_MFC5X_BASE+485) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_FMO_SG_DIR (V4L2_CID_CODEC_MFC5X_BASE+486) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_FMO_SG_RATE (V4L2_CID_CODEC_MFC5X_BASE+487) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_ASO_SL_ORDER_0 (V4L2_CID_CODEC_MFC5X_BASE+488) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_ASO_SL_ORDER_1 (V4L2_CID_CODEC_MFC5X_BASE+489) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_ASO_SL_ORDER_2 (V4L2_CID_CODEC_MFC5X_BASE+490) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_ASO_SL_ORDER_3 (V4L2_CID_CODEC_MFC5X_BASE+491) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_ASO_SL_ORDER_4 (V4L2_CID_CODEC_MFC5X_BASE+492) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_ASO_SL_ORDER_5 (V4L2_CID_CODEC_MFC5X_BASE+493) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_ASO_SL_ORDER_6 (V4L2_CID_CODEC_MFC5X_BASE+494) |
| +#define V4L2_CID_CODEC_MFC5X_ENC_H264_ASO_SL_ORDER_7 (V4L2_CID_CODEC_MFC5X_BASE+495) |
| /* Camera class control IDs */ |
| #define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900) |
| #define V4L2_CID_CAMERA_CLASS (V4L2_CTRL_CLASS_CAMERA | 1) |
| -- |
| 1.7.8.6 |
| |