> -----Original Message----- > From: ffmpeg-devel <ffmpeg-devel-boun...@ffmpeg.org> On Behalf Of > Guangxin Xu > Sent: Friday, March 5, 2021 9:46 AM > To: FFmpeg development discussions and patches <ffmpeg- > de...@ffmpeg.org> > Subject: Re: [FFmpeg-devel] [PATCH] avutils/hwcontext_qsv: set the source > device in qsv_device_create > > On Tue, Feb 23, 2021 at 9:34 AM Guangxin Xu <oddst...@gmail.com> wrote: > > > > > > > On Mon, Feb 22, 2021 at 5:17 PM Soft Works <softwo...@hotmail.com> > wrote: > > > >> > >> > >> > -----Original Message----- > >> > From: ffmpeg-devel <ffmpeg-devel-boun...@ffmpeg.org> On Behalf > Of > >> > Xu Guangxin > >> > Sent: Monday, February 22, 2021 9:45 AM > >> > To: ffmpeg-devel@ffmpeg.org > >> > Cc: Xu Guangxin <guangxin...@intel.com> > >> > Subject: [FFmpeg-devel] [PATCH] avutils/hwcontext_qsv: set the > >> > source device in qsv_device_create > >> > > >> > opencl_device_derive only handles AV_HWDEVICE_TYPE_VAAPI. > >> > We need a source device for qsv. > >> > > >> > this will fix following pipeline: > >> > ffmpeg -init_hw_device vaapi=intel:/dev/dri/renderD128 > >> > -init_hw_device opencl=ocl@intel -hwaccel qsv -c:v h264_qsv > >> > -hwaccel_output_format qsv > >> -i > >> > $input -filter_hw_device ocl -vf > >> > > 'hwmap=derive_device=opencl,format=opencl,unsharp_opencl,hwmap=der > >> > ive_device=qsv:reverse=1:extra_hw_frames=32' -c:v hevc_qsv -y > >> test.h265 > >> > --- > >> > libavutil/hwcontext_qsv.c | 8 +++++++- > >> > 1 file changed, 7 insertions(+), 1 deletion(-) > >> > > >> > diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c > >> > index 35a944f8f8..af3ee32cac 100644 > >> > --- a/libavutil/hwcontext_qsv.c > >> > +++ b/libavutil/hwcontext_qsv.c > >> > @@ -1269,7 +1269,13 @@ static int > >> > qsv_device_create(AVHWDeviceContext > >> > *ctx, const char *device, > >> > > >> > impl = choose_implementation(device); > >> > > >> > - return qsv_device_derive_from_child(ctx, impl, child_device, 0); > >> > + ret = qsv_device_derive_from_child(ctx, impl, child_device, 0); > >> > + if (ret == 0) { > >> > + ctx->internal->source_device = > >> av_buffer_ref(priv->child_device_ctx); > >> > + if (!ctx->internal->source_device) > >> > + ret = AVERROR(ENOMEM); > >> > + } > >> > + return ret; > >> > } > >> > >> That's funny, I made almost the same change only two days ago: > >> > >> impl = choose_implementation(device); > >> ret = qsv_device_derive_from_child(ctx, impl, child_device, 0); > >> if (ret >= 0) > >> ctx->internal->source_device = > >> av_buffer_ref(priv->child_device_ctx); > >> > >> return ret; > >> > >> > >> From my POV, this change is correct and required. > >> > > Glad to hear this. Thanks for the endorsement :) > > > Hi softworkz, > Could you help merge this? > thanks > Hmm, this patch will failed for "make fate-hwdevice V=2" It because Qsv's internal->source_device is vaapi. When we derivation qsv to vaapi, and derivation back again, it will create a new qsv device.
Hi Mark, Can we remove this test for qsv and vaapi? Or could you suggest a better way for me? https://github.com/FFmpeg/FFmpeg/blob/069d2b4a50a6eb2f925f36884e6b9bd9a1e54670/libavutil/tests/hwdevice.c#L75 thanks ... Successfully tested derivation vaapi -> qsv. Test passed for vaapi with device :0. Device type qsv successfully created. Derivation qsv to vaapi succeeded, but derivation back again did not return the original device. Test failed for qsv with default options. Attempted to test 2 device types: 1 passed, 1 failed, 0 skipped. make: *** [tests/Makefile:256: fate-hwdevice] Error 1 > > >> softworkz > >> _______________________________________________ > >> ffmpeg-devel mailing list > >> ffmpeg-devel@ffmpeg.org > >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > >> > >> To unsubscribe, visit link above, or email > >> ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". > > > > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org > with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".