> -----Original Message----- > From: ffmpeg-devel <ffmpeg-devel-boun...@ffmpeg.org> On Behalf Of > James Almer > Sent: Thursday, September 9, 2021 8:48 PM > To: ffmpeg-devel@ffmpeg.org > Subject: Re: [FFmpeg-devel] [PATCH] libavutil/hwcontext_qsv: fix a bug for > mapping qsv frame to vaapi > > On 9/9/2021 6:13 AM, Wenbin Chen wrote: > > Command below failed. > > ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 > > -init_hw_device qsv=qs@va -hwaccel qsv -hwaccel_device qs > > -filter_hw_device va -c:v h264_qsv > > -i 1080P.264 -vf "hwmap,format=vaapi" -c:v h264_vaapi output.264 > > > > Cause: Assign pair->first directly to data[3] in vaapi frame. > > pair->first is *VASurfaceID while data[3] in vaapi frame is > > VASurfaceID. I fix this line of code. Now the command above works. > > > > Signed-off-by: Wenbin Chen <wenbin.c...@intel.com> > > --- > > libavutil/hwcontext_qsv.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c > > index d431e71eab..6539cae619 100644 > > --- a/libavutil/hwcontext_qsv.c > > +++ b/libavutil/hwcontext_qsv.c > > @@ -781,7 +781,7 @@ static int qsv_map_from(AVHWFramesContext *ctx, > > case AV_HWDEVICE_TYPE_VAAPI: > > { > > mfxHDLPair *pair = (mfxHDLPair*)surf->Data.MemId; > > - child_data = pair->first; > > + child_data = (uint8_t*)(intptr_t)*(VASurfaceID*)pair->first; > > You can probably remove the intptr_t casting.
If intptr_t is removed, it will report compile warning "cast to pointer from integer of different size" > > Also, shouldn't this same fix be done for all three child device types > used in this function? Which for that matter, child_data seems to be set > for a d3d11va child device, but then never used. Dxva and d3d11 frames store the pointer to surface while vaapi frames store surface, so this part of code for dxva and d3d11va should be correct. D3d11 and dxva share dxva codec, the child_data is used in this part of code. > > > break; > > } > > #endif > > > > _______________________________________________ > 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".