#ifdef USE_QSV
if(job && job->vcodec == HB_VCODEC_QSV_H264 ){
- pv->context->hwaccel_context = &pv->qsv_config;
+ pv->context->hwaccel_context = &pv->qsv_config;
pv->qsv_config.io_pattern = MFX_IOPATTERN_OUT_OPAQUE_MEMORY;
pv->qsv_config.additional_buffers = 32; // FIFO_LARGE for now
// decode is async, sync only at encode
pv->qsv_config.sync_need = 0;
pv->qsv_config.usage_threaded = 1;
-
-//#define QSV_IMPL_HARDWARE
- #ifdef QSV_IMPL_HARDWARE
- pv->qsv_config.impl_requested = MFX_IMPL_HARDWARE;
- #elif QSV_IMPL_SOFTWARE
- pv->qsv_config.impl_requested = MFX_IMPL_SOFTWARE;
- #else
- pv->qsv_config.impl_requested = MFX_IMPL_AUTO;
- #endif
+ pv->qsv_config.impl_requested = MFX_IMPL_AUTO;
}
#endif
// decode is async, sync only at encode
pv->qsv_config.sync_need = 0;
pv->qsv_config.usage_threaded = 1;
-
-//#define QSV_IMPL_HARDWARE
- #ifdef QSV_IMPL_HARDWARE
- pv->qsv_config.impl_requested = MFX_IMPL_HARDWARE;
- #elif QSV_IMPL_SOFTWARE
- pv->qsv_config.impl_requested = MFX_IMPL_SOFTWARE;
- #else
- pv->qsv_config.impl_requested = MFX_IMPL_AUTO;
- #endif
+ pv->qsv_config.impl_requested = MFX_IMPL_AUTO;
}
#endif
SWS_LANCZOS|SWS_ACCURATE_RND);
}
- MFXQueryIMPL(qsv->mfx_session,&qsv->impl);
+ sts = MFXQueryIMPL(qsv->mfx_session,&qsv->impl);
+ AV_QSV_CHECK_RESULT(sts, MFX_ERR_NONE, sts);
- char* impl_name = (MFX_IMPL_HARDWARE == qsv->impl) ? "hardware" : "software";
+ char* impl_name = (MFX_IMPL_SOFTWARE == qsv->impl) ? "software" : "hardware";
hb_log("qsv: Intel QSV/MediaSDK uses %s implementation", impl_name);
if(pv->is_sys_mem)
// no need to use additional sync as encode only -> single thread
av_qsv_add_context_usage(qsv,0);
-//#define QSV_IMPL_HARDWARE
- #ifdef QSV_IMPL_HARDWARE
- qsv->impl = MFX_IMPL_HARDWARE;
- #elif QSV_IMPL_SOFTWARE
- qsv->impl = MFX_IMPL_SOFTWARE;
- #else
- qsv->impl = MFX_IMPL_AUTO;
- #endif
+ qsv->impl = MFX_IMPL_AUTO;
memset(&qsv->mfx_session, 0, sizeof(mfxSession));
qsv->ver.Major = AV_QSV_MSDK_VERSION_MAJOR;