* [FFmpeg-devel] [PATCH] lavc/qsv: fallback to the default mfx implementation for internal session on Windows
@ 2023-05-15 6:04 Xiang, Haihao
2023-05-15 6:33 ` Hendrik Leppkes
0 siblings, 1 reply; 4+ messages in thread
From: Xiang, Haihao @ 2023-05-15 6:04 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Haihao Xiang
From: Haihao Xiang <haihao.xiang@intel.com>
The mfx implementation based on D3D11 is expected for an internal
session on Windows, however sometimes this implemntation is not
supported [1]. A fallback to the default mfx implementation is added in
this patch.
[1] https://github.com/intel/cartwheel-ffmpeg/issues/246
Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
---
libavcodec/qsv.c | 25 +++++++++++++++++++------
1 file changed, 19 insertions(+), 6 deletions(-)
diff --git a/libavcodec/qsv.c b/libavcodec/qsv.c
index 8eabf46b45..7563625627 100644
--- a/libavcodec/qsv.c
+++ b/libavcodec/qsv.c
@@ -677,18 +677,31 @@ static int qsv_create_mfx_session(AVCodecContext *avctx,
int ff_qsv_init_internal_session(AVCodecContext *avctx, QSVSession *qs,
const char *load_plugins, int gpu_copy)
{
+ mfxIMPL impls[] = {
#if CONFIG_D3D11VA
- mfxIMPL impl = MFX_IMPL_AUTO_ANY | MFX_IMPL_VIA_D3D11;
-#else
- mfxIMPL impl = MFX_IMPL_AUTO_ANY;
+ MFX_IMPL_AUTO_ANY | MFX_IMPL_VIA_D3D11,
#endif
+ MFX_IMPL_AUTO_ANY
+ };
+ mfxIMPL impl;
mfxVersion ver = { { QSV_VERSION_MINOR, QSV_VERSION_MAJOR } };
const char *desc;
- int ret = qsv_create_mfx_session(avctx, impl, &ver, gpu_copy, &qs->session,
+ int ret;
+
+ for (int i = 0; i < FF_ARRAY_ELEMS(impls); i++) {
+ ret = qsv_create_mfx_session(avctx, impls[i], &ver, gpu_copy, &qs->session,
&qs->loader);
- if (ret)
- return ret;
+
+ if (ret == 0)
+ break;
+
+ if (i == FF_ARRAY_ELEMS(impls) - 1)
+ return ret;
+ else
+ av_log(avctx, AV_LOG_ERROR, "The current mfx implementation is not "
+ "supported, try next mfx implementation.\n");
+ }
#ifdef AVCODEC_QSV_LINUX_SESSION_HANDLE
ret = ff_qsv_set_display_handle(avctx, qs);
--
2.34.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [FFmpeg-devel] [PATCH] lavc/qsv: fallback to the default mfx implementation for internal session on Windows
2023-05-15 6:04 [FFmpeg-devel] [PATCH] lavc/qsv: fallback to the default mfx implementation for internal session on Windows Xiang, Haihao
@ 2023-05-15 6:33 ` Hendrik Leppkes
2023-05-15 8:47 ` Xiang, Haihao
0 siblings, 1 reply; 4+ messages in thread
From: Hendrik Leppkes @ 2023-05-15 6:33 UTC (permalink / raw)
To: FFmpeg development discussions and patches
On Mon, May 15, 2023 at 8:04 AM Xiang, Haihao
<haihao.xiang-at-intel.com@ffmpeg.org> wrote:
>
> From: Haihao Xiang <haihao.xiang@intel.com>
>
> The mfx implementation based on D3D11 is expected for an internal
> session on Windows, however sometimes this implemntation is not
> supported [1]. A fallback to the default mfx implementation is added in
> this patch.
>
> [1] https://github.com/intel/cartwheel-ffmpeg/issues/246
>
From the issue description, the user is trying to use it a as software
library, not a hardware one?
I don't think software fallback, especially an automatic one, is
really quite appropriate. When someone requests a "qsv" encoder, they
expect hardware.
- Hendrik
_______________________________________________
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".
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [FFmpeg-devel] [PATCH] lavc/qsv: fallback to the default mfx implementation for internal session on Windows
2023-05-15 6:33 ` Hendrik Leppkes
@ 2023-05-15 8:47 ` Xiang, Haihao
2023-05-22 1:36 ` Xiang, Haihao
0 siblings, 1 reply; 4+ messages in thread
From: Xiang, Haihao @ 2023-05-15 8:47 UTC (permalink / raw)
To: ffmpeg-devel
On Ma, 2023-05-15 at 08:33 +0200, Hendrik Leppkes wrote:
> On Mon, May 15, 2023 at 8:04 AM Xiang, Haihao
> <haihao.xiang-at-intel.com@ffmpeg.org> wrote:
> >
> > From: Haihao Xiang <haihao.xiang@intel.com>
> >
> > The mfx implementation based on D3D11 is expected for an internal
> > session on Windows, however sometimes this implemntation is not
> > supported [1]. A fallback to the default mfx implementation is added in
> > this patch.
> >
> > [1] https://github.com/intel/cartwheel-ffmpeg/issues/246
> >
>
> From the issue description, the user is trying to use it a as software
> library, not a hardware one?
Yes, because the user has sw library only.
> I don't think software fallback, especially an automatic one, is
> really quite appropriate. When someone requests a "qsv" encoder, they
> expect hardware.
It is not a software fallback. it is a fallback to the default one (which might
be hw based or sw based, it is up to user's hw and media stack).
Thanks
Haihao
>
> - Hendrik
> _______________________________________________
> 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".
_______________________________________________
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".
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [FFmpeg-devel] [PATCH] lavc/qsv: fallback to the default mfx implementation for internal session on Windows
2023-05-15 8:47 ` Xiang, Haihao
@ 2023-05-22 1:36 ` Xiang, Haihao
0 siblings, 0 replies; 4+ messages in thread
From: Xiang, Haihao @ 2023-05-22 1:36 UTC (permalink / raw)
To: ffmpeg-devel
On Ma, 2023-05-15 at 08:47 +0000, Xiang, Haihao wrote:
> On Ma, 2023-05-15 at 08:33 +0200, Hendrik Leppkes wrote:
> > On Mon, May 15, 2023 at 8:04 AM Xiang, Haihao
> > <haihao.xiang-at-intel.com@ffmpeg.org> wrote:
> > >
> > > From: Haihao Xiang <haihao.xiang@intel.com>
> > >
> > > The mfx implementation based on D3D11 is expected for an internal
> > > session on Windows, however sometimes this implemntation is not
> > > supported [1]. A fallback to the default mfx implementation is added in
> > > this patch.
> > >
> > > [1] https://github.com/intel/cartwheel-ffmpeg/issues/246
> > >
> >
> > From the issue description, the user is trying to use it a as software
> > library, not a hardware one?
>
> Yes, because the user has sw library only.
>
> > I don't think software fallback, especially an automatic one, is
> > really quite appropriate. When someone requests a "qsv" encoder, they
> > expect hardware.
>
> It is not a software fallback. it is a fallback to the default one (which
> might
> be hw based or sw based, it is up to user's hw and media stack).
I'll push this in a few days if there are no more comments.
Thanks
Haihao
_______________________________________________
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".
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-05-22 1:36 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-15 6:04 [FFmpeg-devel] [PATCH] lavc/qsv: fallback to the default mfx implementation for internal session on Windows Xiang, Haihao
2023-05-15 6:33 ` Hendrik Leppkes
2023-05-15 8:47 ` Xiang, Haihao
2023-05-22 1:36 ` Xiang, Haihao
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