Reviewed-by: Wind Yuan <feng.y...@intel.com> Tested-by: Wind Yuan <feng.y...@intel.com>
>-----Original Message----- >From: libva-boun...@lists.freedesktop.org >[mailto:libva-boun...@lists.freedesktop.org] On Behalf Of Zhao Yakui >Sent: Friday, March 14, 2014 3:21 PM >To: libva@lists.freedesktop.org >Subject: [Libva] [PATCH Libva-intel-driver 1/4] Add the support of create >surface based on YV16 format > >Signed-off-by: Zhao Yakui <yakui.z...@intel.com> >--- > src/i965_drv_video.c | 26 +++++++++++++++++++++++++- > 1 file changed, 25 insertions(+), 1 deletion(-) > >diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c index >0453c04..f306d91 100755 >--- a/src/i965_drv_video.c >+++ b/src/i965_drv_video.c >@@ -816,7 +816,8 @@ i965_surface_native_memory(VADriverContextP ctx, > // todo, should we disable tiling for 422 format? > if (expected_fourcc == VA_FOURCC('I', '4', '2', '0') || > expected_fourcc == VA_FOURCC('I', 'Y', 'U', 'V') || >- expected_fourcc == VA_FOURCC('Y', 'V', '1', '2')) >+ expected_fourcc == VA_FOURCC('Y', 'V', '1', '2') || >+ expected_fourcc == VA_FOURCC('Y', 'V', '1', '6')) > tiling = 0; > > i965_check_alloc_surface_bo(ctx, obj_surface, tiling, expected_fourcc, >get_sampling_from_fourcc(expected_fourcc)); >@@ -963,6 +964,19 @@ i965_suface_external_memory(VADriverContextP >ctx, > > break; > >+ case VA_FOURCC('Y', 'V', '1', '6'): >+ assert(memory_attibute->num_planes == 3); >+ assert(memory_attibute->pitches[1] == >+ memory_attibute->pitches[2]); >+ >+ obj_surface->subsampling = SUBSAMPLE_YUV422H; >+ obj_surface->y_cr_offset = memory_attibute->offsets[1] / >obj_surface->width; >+ obj_surface->y_cb_offset = memory_attibute->offsets[2] / >obj_surface->width; >+ obj_surface->cb_cr_width = obj_surface->orig_width / 2; >+ obj_surface->cb_cr_height = obj_surface->orig_height; >+ obj_surface->cb_cr_pitch = memory_attibute->pitches[1]; >+ >+ break; >+ > case VA_FOURCC('4', '2', '2', 'V'): > assert(memory_attibute->num_planes == 3); > assert(memory_attibute->pitches[1] == >memory_attibute->pitches[2]); @@ -3047,6 +3061,15 @@ >i965_check_alloc_surface_bo(VADriverContextP ctx, > region_height = obj_surface->height + obj_surface->height / >2; > break; > >+ case VA_FOURCC('Y', 'V', '1', '6'): >+ obj_surface->cb_cr_width = obj_surface->orig_width / 2; >+ obj_surface->cb_cr_height = obj_surface->orig_height; >+ obj_surface->y_cr_offset = obj_surface->height; >+ obj_surface->y_cb_offset = obj_surface->y_cr_offset + >ALIGN(obj_surface->cb_cr_height, 32) / 2; >+ obj_surface->cb_cr_pitch = obj_surface->width / 2; >+ region_height = obj_surface->height + >ALIGN(obj_surface->cb_cr_height, 32); >+ break; >+ > case VA_FOURCC('Y', 'V', '1', '2'): > case VA_FOURCC('I', '4', '2', '0'): > if (fourcc == VA_FOURCC('Y', 'V', '1', '2')) { @@ -3340,6 >+3363,7 @@ get_sampling_from_fourcc(unsigned int fourcc) > case VA_FOURCC('Y', 'U', 'Y', '2'): > case VA_FOURCC('U', 'Y', 'V', 'Y'): > case VA_FOURCC('4', '2', '2', 'H'): >+ case VA_FOURCC('Y', 'V', '1', '6'): > surface_sampling = SUBSAMPLE_YUV422H; > break; > case VA_FOURCC('4', '2', '2', 'V'): >-- >1.8.2-rc2 > >_______________________________________________ >Libva mailing list >Libva@lists.freedesktop.org >http://lists.freedesktop.org/mailman/listinfo/libva _______________________________________________ Libva mailing list Libva@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libva