[Mesa-dev] [PATCH 6/7] st/va: add initial Video Post Processing support

Julien Isorce julien.isorce at gmail.com
Thu Oct 22 09:11:02 PDT 2015


On 19 October 2015 at 18:10, Emil Velikov <emil.l.velikov at gmail.com> wrote:

> On 17 October 2015 at 00:14, Julien Isorce <julien.isorce at gmail.com>
> wrote:
> > +
> > +   if (!(picture_width && picture_height) && !is_vpp)
> >        return VA_STATUS_ERROR_INVALID_IMAGE_FORMAT;
> >
> >     drv = VL_VA_DRIVER(ctx);
> > @@ -163,38 +177,48 @@ vlVaCreateContext(VADriverContextP ctx, VAConfigID
> config_id, int picture_width,
> >     if (!context)
> >        return VA_STATUS_ERROR_ALLOCATION_FAILED;
> >
> > -   templat.profile = config_id;
> > -   templat.entrypoint = PIPE_VIDEO_ENTRYPOINT_BITSTREAM;
> > -   templat.chroma_format = PIPE_VIDEO_CHROMA_FORMAT_420;
> > -   templat.width = picture_width;
> > -   templat.height = picture_height;
> > -   templat.max_references = num_render_targets;
> > -   templat.expect_chunked_decode = true;
> > -
> > -   if (u_reduce_video_profile(templat.profile) ==
> > -       PIPE_VIDEO_FORMAT_MPEG4_AVC)
> > -      templat.level = u_get_h264_level(templat.width, templat.height,
> > -                            &templat.max_references);
> > -
> > -   context->decoder = drv->pipe->create_video_codec(drv->pipe,
> &templat);
> > -   if (!context->decoder) {
> > -      FREE(context);
> > -      return VA_STATUS_ERROR_ALLOCATION_FAILED;
> > -   }
> > -
> > -   if (u_reduce_video_profile(context->decoder->profile) ==
> > -         PIPE_VIDEO_FORMAT_MPEG4_AVC) {
> > -      context->desc.h264.pps = CALLOC_STRUCT(pipe_h264_pps);
> > -      if (!context->desc.h264.pps) {
> > +   if (is_vpp) {
> > +      context->decoder = NULL;
> > +      if (!drv->compositor.upload) {
> >           FREE(context);
> > -         return VA_STATUS_ERROR_ALLOCATION_FAILED;
> > +         return VA_STATUS_ERROR_INVALID_CONTEXT;
> >        }
> > -      context->desc.h264.pps->sps = CALLOC_STRUCT(pipe_h264_sps);
> > -      if (!context->desc.h264.pps->sps) {
> > -         FREE(context->desc.h264.pps);
> > +   } else {
> > +      templat.profile = config_id;
> > +      templat.entrypoint = PIPE_VIDEO_ENTRYPOINT_BITSTREAM;
> > +      templat.chroma_format = PIPE_VIDEO_CHROMA_FORMAT_420;
> > +      templat.width = picture_width;
> > +      templat.height = picture_height;
> > +      templat.max_references = 2;
> > +      templat.expect_chunked_decode = true;
> > +
> > +      if (u_reduce_video_profile(templat.profile) ==
> > +        PIPE_VIDEO_FORMAT_MPEG4_AVC) {
> > +        templat.max_references = 16;
> > +        templat.level = u_get_h264_level(templat.width, templat.height,
> > +                             &templat.max_references);
> > +      }
> > +
> Why the max_references changes ? Shouldn't those be a separate patch ?
>

Ah thx, I think I messed up a rebase, this patch was originally on top of
"[PATCH v4 4/6] st/va: properly set max number of ref frames" already
submited but not reviewed . And I forgot about it :)

I'll remove the dependency.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20151022/7dc1e403/attachment.html>


More information about the mesa-dev mailing list