diff options
author | Praveen Chavan <pchavan@codeaurora.org> | 2015-10-07 22:14:06 -0700 |
---|---|---|
committer | Praveen Chavan <pchavan@codeaurora.org> | 2015-10-07 22:14:06 -0700 |
commit | 0acc96d867f93c50144ab8ae1b3eacccbca48212 (patch) | |
tree | 24f861d9c2b10b5944b7ca9c397cc2c82c53a4c4 | |
parent | 532cc44201ff891e0ed40b5a3041c77928916d4e (diff) |
msm: vidc: Allow clients to specify/query the colorspaceandroid-6.0.0_r0.12
When encoder clients specify the color space, the resulting bitstream
will have the color space embedded in it. This allows for the
decoder to display the picture accurately without the color being
skewed.
Similarly decoder clients can query the color space of the bitstream by
enabling MSM_VIDC_EXTRADATA_VUI_DISPLAY_INFO. If the bitstream contains
the colorspace hint, the appropriate extradata will be emitted by the
decoder.
Change-Id: I83a3e28b13c3aa306e7cc2d1552a6d39c0d3d49f
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
Signed-off-by: Praveen Chavan <pchavan@codeaurora.org>
-rw-r--r-- | include/linux/videodev2.h | 3 | ||||
-rw-r--r-- | include/media/msm_vidc.h | 19 |
2 files changed, 21 insertions, 1 deletions
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index e03d605fc812..0212b5c448cf 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h @@ -1853,7 +1853,8 @@ enum v4l2_mpeg_vidc_extradata { V4L2_MPEG_VIDC_EXTRADATA_FRAME_QP, V4L2_MPEG_VIDC_EXTRADATA_FRAME_BITS_INFO, V4L2_MPEG_VIDC_EXTRADATA_METADATA_MBI, - V4L2_MPEG_VIDC_EXTRADATA_LTR + V4L2_MPEG_VIDC_EXTRADATA_LTR, + V4L2_MPEG_VIDC_EXTRADATA_VUI_DISPLAY }; #define V4L2_CID_MPEG_VIDC_SET_PERF_LEVEL (V4L2_CID_MPEG_MSM_VIDC_BASE + 26) diff --git a/include/media/msm_vidc.h b/include/media/msm_vidc.h index 0a91e325bc57..24d36ca61828 100644 --- a/include/media/msm_vidc.h +++ b/include/media/msm_vidc.h @@ -155,6 +155,24 @@ struct msm_vidc_s3d_frame_packing_payload { unsigned int fpa_extension_flag; }; +struct msm_vidc_vui_display_info_payload { + unsigned int video_signal_present_flag; + unsigned int video_format; + unsigned int bit_depth_y; + unsigned int bit_depth_c; + unsigned int video_full_range_flag; + unsigned int color_description_present_flag; + unsigned int color_primaries; + unsigned int transfer_characteristics; + unsigned int matrix_coefficients; + unsigned int chroma_location_info_present_flag; + unsigned int chroma_format_idc; + unsigned int separate_color_plane_flag; + unsigned int chroma_sample_loc_type_top_field; + unsigned int chroma_sample_loc_type_bottom_field; +}; + + enum msm_vidc_extradata_type { MSM_VIDC_EXTRADATA_NONE = 0x00000000, MSM_VIDC_EXTRADATA_MB_QUANTIZATION = 0x00000001, @@ -179,6 +197,7 @@ enum msm_vidc_extradata_type { MSM_VIDC_EXTRADATA_METADATA_LTR = 0x7F100004, MSM_VIDC_EXTRADATA_METADATA_FILLER = 0x7FE00002, MSM_VIDC_EXTRADATA_METADATA_MBI = 0x7F100005, + MSM_VIDC_EXTRADATA_VUI_DISPLAY_INFO = 0x7F100006, }; enum msm_vidc_interlace_type { MSM_VIDC_INTERLACE_FRAME_PROGRESSIVE = 0x01, |