msm: vidc: Add support for Vp9 decode in vidc driver
This change adds support for VP9 codec type in vidc driver and sets the compression format to venus HFI. Change-Id: I2499f39c7adc1064d7f1a6ff4f1f8e639fb3f667 Signed-off-by: Sowmya Pandiri <spandiri@codeaurora.org> Signed-off-by: Deepak Kushwah <dkushwah@codeaurora.org>
This commit is contained in:
parent
54ec6413ca
commit
98d2152982
|
@ -805,6 +805,11 @@ extended control <constant>V4L2_CID_MPEG_STREAM_TYPE</constant>, see
|
|||
<entry>'VP8'</entry>
|
||||
<entry>VP8 video elementary stream.</entry>
|
||||
</row>
|
||||
<row id="V4L2-PIX-FMT-VP9">
|
||||
<entry><constant>V4L2_PIX_FMT_VP9</constant></entry>
|
||||
<entry>'VP9'</entry>
|
||||
<entry>VP9 video elementary stream.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
|
|
@ -165,6 +165,9 @@ static inline u32 get_hfi_codec(enum hal_video_codec hal_codec)
|
|||
case HAL_VIDEO_CODEC_HEVC:
|
||||
hfi_codec = HFI_VIDEO_CODEC_HEVC;
|
||||
break;
|
||||
case HAL_VIDEO_CODEC_VP9:
|
||||
hfi_codec = HFI_VIDEO_CODEC_VP9;
|
||||
break;
|
||||
case HAL_VIDEO_CODEC_HEVC_HYBRID:
|
||||
hfi_codec = HFI_VIDEO_CODEC_HEVC_HYBRID;
|
||||
break;
|
||||
|
|
|
@ -726,6 +726,14 @@ struct msm_vidc_format vdec_formats[] = {
|
|||
.get_frame_size = get_frame_size_compressed,
|
||||
.type = OUTPUT_PORT,
|
||||
},
|
||||
{
|
||||
.name = "VP9",
|
||||
.description = "VP9 compressed format",
|
||||
.fourcc = V4L2_PIX_FMT_VP9,
|
||||
.num_planes = 1,
|
||||
.get_frame_size = get_frame_size_compressed,
|
||||
.type = OUTPUT_PORT,
|
||||
},
|
||||
{
|
||||
.name = "DIVX 311",
|
||||
.description = "DIVX 311 compressed format",
|
||||
|
|
|
@ -207,6 +207,9 @@ enum hal_video_codec get_hal_codec_type(int fourcc)
|
|||
case V4L2_PIX_FMT_VP8:
|
||||
codec = HAL_VIDEO_CODEC_VP8;
|
||||
break;
|
||||
case V4L2_PIX_FMT_VP9:
|
||||
codec = HAL_VIDEO_CODEC_VP9;
|
||||
break;
|
||||
case V4L2_PIX_FMT_DIVX_311:
|
||||
codec = HAL_VIDEO_CODEC_DIVX_311;
|
||||
break;
|
||||
|
|
|
@ -261,7 +261,8 @@ enum hal_video_codec {
|
|||
HAL_VIDEO_CODEC_VP7 = 0x00000800,
|
||||
HAL_VIDEO_CODEC_VP8 = 0x00001000,
|
||||
HAL_VIDEO_CODEC_HEVC = 0x00002000,
|
||||
HAL_VIDEO_CODEC_HEVC_HYBRID = 0x00004000,
|
||||
HAL_VIDEO_CODEC_VP9 = 0x00004000,
|
||||
HAL_VIDEO_CODEC_HEVC_HYBRID = 0x80000000,
|
||||
HAL_UNUSED_CODEC = 0x10000000,
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2012-2014, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2012-2015, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -86,7 +86,8 @@
|
|||
#define HFI_VIDEO_CODEC_SPARK 0x00000200
|
||||
#define HFI_VIDEO_CODEC_VP8 0x00001000
|
||||
#define HFI_VIDEO_CODEC_HEVC 0x00002000
|
||||
#define HFI_VIDEO_CODEC_HEVC_HYBRID 0x00004000
|
||||
#define HFI_VIDEO_CODEC_VP9 0x00004000
|
||||
#define HFI_VIDEO_CODEC_HEVC_HYBRID 0x80000000
|
||||
|
||||
#define HFI_H264_PROFILE_BASELINE 0x00000001
|
||||
#define HFI_H264_PROFILE_MAIN 0x00000002
|
||||
|
|
|
@ -402,9 +402,10 @@ struct v4l2_pix_format {
|
|||
#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_VP8 v4l2_fourcc('V', 'P', '8', '0') /* VP8 */
|
||||
#define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0') /* VP9 */
|
||||
#define V4L2_PIX_FMT_DIVX_311 v4l2_fourcc('D', 'I', 'V', '3') /* DIVX311 */
|
||||
#define V4L2_PIX_FMT_DIVX v4l2_fourcc('D', 'I', 'V', 'X') /* DIVX */
|
||||
#define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0') /* VP8 */
|
||||
#define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C') /* for HEVC stream */
|
||||
#define V4L2_PIX_FMT_HEVC_HYBRID v4l2_fourcc('H', 'V', 'C', 'H')
|
||||
|
||||
|
|
Loading…
Reference in New Issue