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 >> 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".