On 02/08/2017 05:13, Huang, Zhengxu wrote:
> On 2017/8/1 17:25, Luca Barbato wrote:
>
>> On 01/08/2017 08:10, Huang, Zhengxu wrote:
>>> On 2017/7/31 19:41, Luca Barbato wrote:
>>>
>>>> On 31/07/2017 03:25, Huang, Zhengxu wrote:
>>>> After a first quick read I couldn't spot any specific problem, but I'm
>>>> wondering if at least some of that code couldn't avoided using the
>>>> device_derive functionality in hwcontext.
>>> Thanks so much for your review, Luca.
>>>
>>> Can you explain in more detail about the "using the device_derive" issue
>>> ? , ^_^ .
>>> So I can check and modify the code much better. Thanks.
>> Basically I was wondering if using av_hwdevice_ctx_create_derived would
>> work for your purpose and shorten init_vpp_session.
> In order to support not only video memory/opaque mode but also system
> mode(in case inserting sw filter in the pipeline )
> So the init_vpp_session function code is much longer.
>
> If we use the *av_hwframe_ctx_create_derived* to replace the follow code
> in init_vpp_session(If I correctly understand your meaning
> because I can't find where to use the *av_hwdevice_ctx_create_derived*)
>
> / AVHWFramesContext *out_frames_ctx;
> AVBufferRef *out_frames_ref = av_hwframe_ctx_alloc(device_ref);
> if (!out_frames_ref)
> return AVERROR(ENOMEM);
>
> out_frames_ctx = (AVHWFramesContext*)out_frames_ref->data;
> out_frames_hwctx = out_frames_ctx->hwctx;
>
> out_frames_ctx->format = AV_PIX_FMT_QSV;
> out_frames_ctx->width = FFALIGN(outlink->w, 32);
> out_frames_ctx->height = FFALIGN(outlink->h, 32);
> out_frames_ctx->sw_format = s->out_sw_format;
> out_frames_ctx->initial_pool_size = 64;
> out_frames_hwctx->frame_type = in_frames_hwctx->frame_type;
> s->out_mem_mode = s->in_mem_mode;
>
> ret = av_hwframe_ctx_init(out_frames_ref);
> if (ret < 0) {
> av_buffer_unref(&out_frames_ref);
> av_log(avctx, AV_LOG_ERROR, "Error creating frames_ctx for
> output pad.\n");
> return ret;
> }/
>
> It maybe will have some problem. Because the derived hwctx must have the
> same width and height with the src. But
> there maybe scale or crop in the vpp.
Let's keep your code as is for now, reducing the code size can happen later.
lu
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel