Media (Intel® Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
Announcements
The Intel Media SDK project is no longer active. For continued support and access to new features, Intel Media SDK users are encouraged to read the transition guide on upgrading from Intel® Media SDK to Intel® Video Processing Library (VPL), and to move to VPL as soon as possible.
For more information, see the VPL website.
3075 Discussions

On what conditions whill MFXVideoENCODE_Query() return -9(MFX_ERR_NOT_FOUND)

Chenglin_H_
Beginner
778 Views

When run commands below, ffmpeg and libav(both are built from mainline) always fail with 'Selected ratecontrol mode is not supported by the QSV runtime. Choose a different mode.'.

./avconv -loglevel verbose -y -i src_55A16E560CEFFFF7F98994D086A220F0.mp4 -c:a copy -q 20 -c:v hevc_qsv -load_plugin hevc_hw out_qsv.mp4
ffmpeg   -loglevel verbose -y -i src_55A16E560CEFFFF7F98994D086A220F0.mp4 -c:a copy -q 20 -c:v hevc_qsv -load_plugin hevc_hw out_qsv.mp4


$ ./avconv -loglevel verbose -y -i ~/chenglinhuang/videos/617547/src_55A16E560CEFFFF7F98994D086A220F0.mp4 -c:a copy -q 20 -c:v hevc_qsv -load_plugin hevc_hw out_qsv.mp4
avconv version v13_dev0-1115-g59cee42, Copyright (c) 2000-2017 the Libav developers
  built on May  9 2017 06:05:44 with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-4)
  configuration: --disable-avplay --disable-avserver --extra-libs='-pthread -lstdc++ -lm -lrt -ldl -lnuma' --enable-gpl --enable-version3 --disable-shared --enable-static --disable-debug --disable-indev=sndio --disable-outdev=sndio --enable-libmp3lame --enable-libvorbis --enable-libx264 --enable-libx265 --enable-libmfx --enable-nonfree --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --enable-debug --disable-optimizations
  libavutil     56.  1. 1 / 56.  1. 1
  libavcodec    58.  3. 1 / 58.  3. 1
  libavformat   58.  0. 0 / 58.  0. 0
  libavdevice   57.  0. 0 / 57.  0. 0
  libavfilter    7.  0. 0 /  7.  0. 0
  libavresample  4.  0. 0 /  4.  0. 0
  libswscale     5.  0. 0 /  5.  0. 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x3ed0ac0] Unknown UUID found: 0xbe7acfcb97a942e89c71999491e3afac
[h264 @ 0x3ee2d40] Reinit context to 1920x1088, pix_fmt: 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/mm/chenglinhuang/videos/617547/src_55A16E560CEFFFF7F98994D086A220F0.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42mp41
    creation_time   : 2017-04-28 15:39:04
  Duration: 00:33:27.72, start: 0.000000, bitrate: 2019 kb/s
    Stream #0:0(eng): Video: h264 (Main) [avc1 / 0x31637661]
      yuv420p, tv, bt709/bt709/bt709
      1920x1080 (0x0), 1698 kb/s
      25 fps, 25k tbn (default)
    Metadata:
      creation_time   : 2017-04-28 15:39:04
      handler_name    : Alias Data Handler
      encoder         : AVC Coding
    Stream #0:1(eng): Audio: aac (LC) [mp4a / 0x6134706D]
      48000 Hz, stereo, fltp, 317 kb/s (default)
    Metadata:
      creation_time   : 2017-04-28 15:39:04
      handler_name    : Alias Data Handler
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> hevc (hevc_qsv))
  Stream #0:1 -> #0:1 (copy)
Press ctrl-c to stop encoding
[h264 @ 0x3ee86c0] Reinit context to 1920x1088, pix_fmt: 0
[buffer @ 0x403c0e0] w:1920 h:1080 pixfmt:yuv420p tb:1/25000 sar:0/1
[fps @ 0x3ee4d80] fps=25/1
[buffersink @ 0x3ee9b00] auto-inserting filter 'auto-inserted fifo 0' between the filter 'fps for output stream 0:0' and the filter 'output stream 0:0'
[format @ 0x40e3160] auto-inserting filter 'auto-inserted scaler 0' between the filter 'Parsed filter 0 null' and the filter 'format'
[scale @ 0x40c18a0] w:1920 h:1080 fmt:yuv420p -> w:1920 h:1080 fmt:nv12 flags:0x4
[hevc_qsv @ 0x3f3c3a0] No device available for encoder (device type qsv for codec hevc_qsv).
[hevc_qsv @ 0x3f3c3a0] Initialized an internal MFX session using hardware accelerated implementation
[hevc_qsv @ 0x3f3c3a0] Using the constant quantization parameter (CQP) ratecontrol method
[hevc_qsv @ 0x3f3c3a0] MFXVideoENCODE_Query() = -9
[hevc_qsv @ 0x3f3c3a0] Selected ratecontrol mode is not supported by the QSV runtime. Choose a different mode.
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
[fps @ 0x3ee4d80] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.



-------------------------------------------------------

I can't find any document  describes  exact meaning of MFX_ERR_NOT_FOUND.

I have checked the system(Media Server Studio 2017 R2, CentOS 7.2 “Gold”) with sample_encode and sample_decode.

Any help would be greatly appreciated

$ ./sample_decode h265 -i ../content/test_stream.265 -o test.yuv -hw
plugin_loader.h :170 [INFO] Plugin was loaded from GUID: { 0x33, 0xa6, 0x1c, 0x0b, 0x4c, 0x27, 0x45, 0x4c, 0xa8, 0xd8, 0x5d, 0xde, 0x75, 0x7c, 0x6f, 0x8e } (Intel (R) Media SDK HW plugin for HEVC DECODE)
pretending that stream is 30fps one
pretending that aspect ratio is 1:1
libva info: VA-API version 0.99.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /opt/intel/mediasdk/lib64/iHD_drv_video.so
libva info: Found init function __vaDriverInit_0_32
libva info: va_openDriver() returns 0
Decoding Sample Version 7.0.16053634


Input video	HEVC
Output format	NV12
Input:
  Resolution	176x96
  Crop X,Y,W,H	0,0,0,0
Output:
  Resolution	176x96
Frame rate	30.00
Memory type		system
MediaSDK impl		hw
MediaSDK version	1.21

Decoding started
Frame number:  101, fps: 2419.509, fread_fps: 0.000, fwrite_fps: 0.000
Decoding finished
plugin_loader.h :196 [INFO] MFXBaseUSER_UnLoad(session=0x0x7fa74d4d01e0), sts=0
$ ./sample_encode h265 -i ../content/test_stream_176x96.yuv -o test.265 -h 176 -w 96 -hw
plugin_loader.h :170 [INFO] Plugin was loaded from GUID: { 0x6f, 0xad, 0xc7, 0x91, 0xa0, 0xc2, 0xeb, 0x47, 0x9a, 0xb6, 0xdc, 0xd5, 0xea, 0x9d, 0xa3, 0x47 } (Intel (R) Media SDK HW plugin for HEVC ENCODE)
libva info: VA-API version 0.99.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /opt/intel/mediasdk/lib64/iHD_drv_video.so
libva info: Found init function __vaDriverInit_0_32
libva info: va_openDriver() returns 0
Encoding Sample Version 7.0.16053634

Input file format	YUV420
Output video		HEVC
Source picture:
	Resolution	96x176
	Crop X,Y,W,H	0,0,96,176
Destination picture:
	Resolution	96x176
	Crop X,Y,W,H	0,0,96,176
Frame rate	30.00
Bit rate(Kbps)	366
Gop size	0
Ref dist	0
Ref number	0
Idr Interval	0
Target usage	balanced
Memory type	system
Media SDK impl		hw
Media SDK version	1.21

Processing started
Frame number: 101
plugin_loader.h :196 [INFO] MFXBaseUSER_UnLoad(session=0x0x7ff2b9e32d90), sts=0

Processing finished

sample_encode and sample_decode work find, so I think the sdk has been installed correctly.

----------------------------------

The system configuration:

$ cat /etc/centos-release
CentOS Linux release 7.2.1511 (Core)

$ uname -a
Linux multimedia 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux


$ lscpu 
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 94
Model name:            Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
Stepping:              3
CPU MHz:               800.000
BogoMIPS:              6382.03
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              6144K
NUMA node0 CPU(s):     0-3


$ vainfo 
error: can't connect to X server!
libva info: VA-API version 0.99.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /opt/intel/mediasdk/lib64/iHD_drv_video.so
libva info: Found init function __vaDriverInit_0_32
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.99 (libva 1.67.0.pre1)
vainfo: Driver version: 16.5.1.59511-ubit
vainfo: Supported profile and entrypoints
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	<unknown entrypoint>
      VAProfileH264ConstrainedBaseline:	<unknown entrypoint>
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264Main               :	<unknown entrypoint>
      VAProfileH264Main               :	<unknown entrypoint>
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileH264High               :	<unknown entrypoint>
      VAProfileH264High               :	<unknown entrypoint>
      VAProfileMPEG2Simple            :	VAEntrypointEncSlice
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointEncSlice
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointEncPicture
      VAProfileVP8Version0_3          :	VAEntrypointEncSlice
      VAProfileVP8Version0_3          :	VAEntrypointVLD
      VAProfileVP8Version0_3          :	<unknown entrypoint>
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice
      VAProfileVP9Profile0            :	<unknown entrypoint>
      <unknown profile>               :	VAEntrypointVideoProc
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileNone                   :	<unknown entrypoint>


$ python ~/sys_analyzer_linux.py 
--------------------------
Hardware readiness checks:
--------------------------
 [ OK ] Processor name: Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
--------------------------
OS readiness checks:
--------------------------
 [ OK ] GPU visible to OS
--------------------------
Intel(R) Media Server Studio Install:
--------------------------
 [ OK ] user in video group
 [ OK ] libva.so.1 found
 [ OK ] vainfo reports valid codec entry points
 [ OK ] /dev/dri/renderD128 connects to Intel i915

--------------------------
Media SDK Plugins available:
(for more info see /opt/intel/mediasdk/plugins/plugins.cfg)
--------------------------
    H264LA Encoder 	= 588f1185d47b42968dea377bb5d0dcb4
    VP8 Decoder 	= f622394d8d87452f878c51f2fc9b4131
    HEVC Decoder 	= 33a61c0b4c27454ca8d85dde757c6f8e
    HEVC Encoder 	= 6fadc791a0c2eb479ab6dcd5ea9da347
--------------------------
Component Smoke Tests:
--------------------------
 [ OK ] Media SDK HW API level:1.21
 [ OK ] Media SDK SW API level:1.21
 [ OK ] OpenCL check:platform:Intel(R) OpenCL GPU OK CPU OK

 

 

 

0 Kudos
1 Reply
Chenglin_H_
Beginner
778 Views

I have confirmed that the hevc_qsv encoder(GUID 6fadc791a0c2eb479ab6dcd5ea9da347) has been loaded successfully.

0 Kudos
Reply