mirror of https://git.ffmpeg.org/ffmpeg.git
qsvdec: do not sync PIX_FMT_QSV surfaces
Introducing enforced sync points in arbitrary places is bad for performance. Since the vast majority of receiving code (QSV VPP or encoders, retrieving frames through hwcontext) will do the syncing, this change should not be visible to most callers. But bumping micro just in case. This is also consistent with what VAAPI hwaccel does.
This commit is contained in:
parent
ac3c3ee678
commit
b68e353136
|
@ -363,9 +363,11 @@ static int qsv_decode(AVCodecContext *avctx, QSVContext *q,
|
|||
av_fifo_generic_read(q->async_fifo, &sync, sizeof(sync), NULL);
|
||||
out_frame->queued = 0;
|
||||
|
||||
do {
|
||||
ret = MFXVideoCORE_SyncOperation(q->session, *sync, 1000);
|
||||
} while (ret == MFX_WRN_IN_EXECUTION);
|
||||
if (avctx->pix_fmt != AV_PIX_FMT_QSV) {
|
||||
do {
|
||||
ret = MFXVideoCORE_SyncOperation(q->session, *sync, 1000);
|
||||
} while (ret == MFX_WRN_IN_EXECUTION);
|
||||
}
|
||||
|
||||
av_freep(&sync);
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
#define LIBAVCODEC_VERSION_MAJOR 57
|
||||
#define LIBAVCODEC_VERSION_MINOR 30
|
||||
#define LIBAVCODEC_VERSION_MICRO 3
|
||||
#define LIBAVCODEC_VERSION_MICRO 4
|
||||
|
||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||
LIBAVCODEC_VERSION_MINOR, \
|
||||
|
|
Loading…
Reference in New Issue