From: "Wu, Tong1" <tong1.wu-at-intel.com@ffmpeg.org> To: Soft Works <softworkz@hotmail.com>, "FFmpeg development discussions and patches" <ffmpeg-devel@ffmpeg.org> Subject: Re: [FFmpeg-devel] [PATCH v3 1/4] avutil/hwcontext_qsv: derive QSV frames to D3D11VA frames Date: Fri, 6 May 2022 01:05:23 +0000 Message-ID: <SN6PR11MB2990CF471B500495AAA67FA4C0C59@SN6PR11MB2990.namprd11.prod.outlook.com> (raw) In-Reply-To: <DM8P223MB0365381C1A718EF38271BC9FBAC29@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> > -----Original Message----- > From: Soft Works <softworkz@hotmail.com> > Sent: Thursday, May 5, 2022 7:53 PM > To: FFmpeg development discussions and patches <ffmpeg- > devel@ffmpeg.org> > Cc: Wu, Tong1 <tong1.wu@intel.com> > Subject: RE: [FFmpeg-devel] [PATCH v3 1/4] avutil/hwcontext_qsv: derive > QSV frames to D3D11VA frames > > > > > -----Original Message----- > > From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of > Tong > > Wu > > Sent: Thursday, May 5, 2022 12:53 PM > > To: ffmpeg-devel@ffmpeg.org > > Cc: Tong Wu <tong1.wu@intel.com> > > Subject: [FFmpeg-devel] [PATCH v3 1/4] avutil/hwcontext_qsv: derive > > QSV frames to D3D11VA frames > > > > Fixes: > > $ ffmpeg.exe -y -hwaccel qsv -init_hw_device d3d11va=d3d11 \ > > -init_hw_device qsv=qsv@d3d11 -c:v h264_qsv -i input.h264 \ -vf > > "hwmap=derive_device=d3d11va,format=d3d11" -f null - > > > > Signed-off-by: Tong Wu <tong1.wu@intel.com> > > --- > > libavutil/hwcontext_qsv.c | 15 +++++++++++++-- > > 1 file changed, 13 insertions(+), 2 deletions(-) > > > > diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c > > index b28dcffe2a..65af7130b8 100644 > > --- a/libavutil/hwcontext_qsv.c > > +++ b/libavutil/hwcontext_qsv.c > > @@ -1281,12 +1281,23 @@ static int > > qsv_frames_derive_from(AVHWFramesContext *dst_ctx, #if > CONFIG_D3D11VA > > case AV_HWDEVICE_TYPE_D3D11VA: > > { > > + dst_ctx->initial_pool_size = src_ctx->initial_pool_size; > > AVD3D11VAFramesContext *dst_hwctx = dst_ctx->hwctx; > > - mfxHDLPair *pair = (mfxHDLPair*)src_hwctx- > > >surfaces[i].Data.MemId; > > - dst_hwctx->texture = (ID3D11Texture2D*)pair->first; > > + dst_hwctx->texture_infos = av_calloc(src_hwctx- > > >nb_surfaces, > > + sizeof(*dst_hwctx- > > >texture_infos)); > > if (src_hwctx->frame_type & MFX_MEMTYPE_SHARED_RESOURCE) > > dst_hwctx->MiscFlags = D3D11_RESOURCE_MISC_SHARED; > > dst_hwctx->BindFlags = > > qsv_get_d3d11va_bind_flags(src_hwctx->frame_type); > > This is not right. QSV frames are not only created from here > (hwcontext_qsv) but also from qsvvpp.c AND also by MSDK internally as VPP > output frames, which means that we cannot assume the rules we are using > here being followed. > > You need to query those flags from the (first) texture instead. > Thanks, will resubmit the patchset. > > > + for (i = 0; i < src_hwctx->nb_surfaces; i++) { > > + mfxHDLPair* pair = (mfxHDLPair*)src_hwctx- > > >surfaces[i].Data.MemId; > > + dst_hwctx->texture_infos[i].texture = > > (ID3D11Texture2D*)pair->first; > > + if (dst_hwctx->BindFlags & D3D11_BIND_RENDER_TARGET) > > { > > + dst_hwctx->texture_infos[i].index = 0; > > + } > > + else { > > + dst_hwctx->texture_infos[i].index = > > (intptr_t)pair->second; > > + } > > + } > > Same as above here. With MSDK it is not guaranteed that VPP output frames > will be array textures. This depends on the MSDK runtime version. > They always have the flag D3D11_BIND_RENDER_TARGET, so that's not an > appropriate condition. > > I would check .second for MFX_INFINITE instead. > > Kind regards, > 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-request@ffmpeg.org with subject "unsubscribe".
prev parent reply other threads:[~2022-05-06 1:05 UTC|newest] Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-05-05 10:53 Tong Wu 2022-05-05 10:53 ` [FFmpeg-devel] [PATCH v3 2/4] avutil/hwcontext_d3d11va: pass the format value from outside for staging texture Tong Wu 2022-05-05 10:53 ` [FFmpeg-devel] [PATCH v3 3/4] avutil/hwcontext_qsv: map QSV frames to D3D11VA frames Tong Wu 2022-05-05 10:53 ` [FFmpeg-devel] [PATCH v3 4/4] avutil/hwcontext_qsv: map D3D11VA frames to QSV frames Tong Wu 2022-05-05 12:12 ` Soft Works 2022-05-05 11:52 ` [FFmpeg-devel] [PATCH v3 1/4] avutil/hwcontext_qsv: derive QSV frames to D3D11VA frames Soft Works 2022-05-06 1:05 ` Wu, Tong1 [this message]
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=SN6PR11MB2990CF471B500495AAA67FA4C0C59@SN6PR11MB2990.namprd11.prod.outlook.com \ --to=tong1.wu-at-intel.com@ffmpeg.org \ --cc=ffmpeg-devel@ffmpeg.org \ --cc=softworkz@hotmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git