gstreamer-media-SDK icon indicating copy to clipboard operation
gstreamer-media-SDK copied to clipboard

gstmfxfilter.c:274:gst_mfx_filter_prepare: Unable to query VPP allocation request -15

Open hexray-newbee opened this issue 6 years ago • 12 comments

the following command works on i7-7700HQ, but not on J1900:

gst-launch-1.0 filesrc location=input.h264 ! h264parse ! mfxh264dec ! autovideoconvert ! simplevideomark ! fakesink

errors on J1900:

0:00:00.290986133 10468 0000000003C54180 ERROR                    mfx gstmfxfilter.c:274:gst_mfx_filter_prepare: Unable to query VPP allocation request -15
0:00:00.306609821 10468 0000000003C54180 ERROR                    mfx gstmfxfilter.c:1086:gst_mfx_filter_start: Error initializing MFX VPP -15
0:00:00.306804381 10468 0000000003C54180 ERROR                 mfxvpp gstmfxpostproc.c:828:gst_mfxpostproc_transform: failed to apply VPP (error 2)
ERROR: from element /GstPipeline:pipeline0/GstH264Parse:h264parse0: Internal data stream error.
Additional debug info:
gstbaseparse.c(3598): gst_base_parse_loop (): /GstPipeline:pipeline0/GstH264Parse:h264parse0:
streaming stopped, reason error (-5)
ERROR: pipeline doesn't want to preroll.
0:00:00.308677278 10468 0000000003C54180 ERROR                    mfx gstmfxfilter.c:1086:gst_mfx_filter_start: Error initializing MFX VPP -15
0:00:00.308837535 10468 0000000003C54180 ERROR                 mfxvpp gstmfxpostproc.c:828:gst_mfxpostproc_transform: failed to apply VPP (error 2)
0:00:00.309025439 10468 0000000003C54180 ERROR                    mfx gstmfxfilter.c:1086:gst_mfx_filter_start: Error initializing MFX VPP -15
0:00:00.309148831 10468 0000000003C54180 ERROR                 mfxvpp gstmfxpostproc.c:828:gst_mfxpostproc_transform: failed to apply VPP (error 2)
0:00:00.309547679 10468 0000000003C54180 ERROR                    mfx gstmfxfilter.c:1086:gst_mfx_filter_start: Error initializing MFX VPP -15
0:00:00.309785759 10468 0000000003C54180 ERROR                 mfxvpp gstmfxpostproc.c:828:gst_mfxpostproc_transform: failed to apply VPP (error 2)
0:00:00.310099615 10468 0000000003C54180 ERROR                    mfx gstmfxfilter.c:1086:gst_mfx_filter_start: Error initializing MFX VPP -15
0:00:00.310240927 10468 0000000003C54180 ERROR                 mfxvpp gstmfxpostproc.c:828:gst_mfxpostproc_transform: failed to apply VPP (error 2)

simplevideomark is an element of libgstvideosignal

hexray-newbee avatar Mar 16 '18 09:03 hexray-newbee

This could be the result of a new VPP output format and other optimizations introduced by the following commits:

https://github.com/ishmael1985/gstreamer-media-SDK/commit/9c94f2f54db9c40da7d55442d1c6b54446b490f6 https://github.com/ishmael1985/gstreamer-media-SDK/commit/4f533bb108db3cc480ea62c7a8d7f7dc03e3f4ec

With newer systems such from Haswell onwards, YUY2 output format is supported. Baytrail (J1900) and Ivybridge I suspect doesn't have such support, so unless a newer driver which allows the feature to be supported, you should force the caps:

gst-launch-1.0 filesrc location=input.h264 ! h264parse ! mfxh264dec ! video/x-raw, format=NV12 ! autovideoconvert ! simplevideomark ! fakesink

You can also try the following to get better performance but it might not work on the J1900:

gst-launch-1.0 filesrc location=input.h264 ! h264parse ! mfxh264dec ! video/x-raw, format=NV12 ! mfxvpp ! simplevideomark ! fakesink

ishmael1985 avatar Mar 16 '18 13:03 ishmael1985

I've tried the new commandline. Same erros.

hexray-newbee avatar Mar 18 '18 13:03 hexray-newbee

First one or second one? First one at least should have no errors.

ishmael1985 avatar Mar 18 '18 13:03 ishmael1985

Also you can try to install the latest drivers to see if it resolves your issue.

https://downloadcenter.intel.com/download/27417/Intel-Graphics-Driver-for-Windows-15-33-?product=85552

Pls let me know what you get.

ishmael1985 avatar Mar 18 '18 13:03 ishmael1985

same errors, and I let it output warnings as following.

gst-launch-1.0 filesrc location=input.h264 ! h264parse ! mfxh264dec ! video/x-raw, format=NV12 ! autovideoconvert ! simplevideomark ! fakesink
0:00:00.246266494  8044 0000000003C5F690 WARN             autoconvert gstautoconvert.c:1046:gst_auto_convert_sink_query:<autoconvertchild> Got query context while no element was selected, letting through
0:00:00.247388799  8044 0000000003C5F690 WARN                 basesrc gstbasesrc.c:3480:gst_base_src_start_complete:<filesrc0> pad not activated yet
0:00:00.313710241  8044 0000000003C5C180 ERROR                    mfx gstmfxfilter.c:274:gst_mfx_filter_prepare: Unable to query VPP allocation request -15
0:00:00.313966241  8044 0000000003C5C180 WARN           basetransform gstbasetransform.c:1353:gst_base_transform_setcaps:<mfxpostproc0> FAILED to configure incaps video/x-raw, format=(string)NV12, width=(int)1280, height=(int)720, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)24000/1001 and outcaps video/x-raw, format=(string)YUY2, width=(int)1280, height=(int)720, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)24000/1001
0:00:00.349995700  8044 0000000003C5C180 ERROR                    mfx gstmfxfilter.c:1086:gst_mfx_filter_start: Error initializing MFX VPP -15
0:00:00.350152884  8044 0000000003C5C180 ERROR                 mfxvpp gstmfxpostproc.c:828:gst_mfxpostproc_transform: failed to apply VPP (error 2)
0:00:00.350292148  8044 0000000003C5C180 WARN               baseparse gstbaseparse.c:3598:gst_base_parse_loop:<h264parse0> error: Internal data stream error.
0:00:00.350410420  8044 0000000003C5C180 WARN               baseparse gstbaseparse.c:3598:gst_base_parse_loop:<h264parse0> error: streaming stopped, reason error (-5)
ERROR: from element /GstPipeline:pipeline0/GstH264Parse:h264parse0: Internal data stream error.
Additional debug info:
gstbaseparse.c(3598): gst_base_parse_loop (): /GstPipeline:pipeline0/GstH264Parse:h264parse0:
streaming stopped, reason error (-5)
ERROR: pipeline doesn't want to preroll.
0:00:00.354986166  8044 0000000003C5C180 ERROR                    mfx gstmfxfilter.c:1086:gst_mfx_filter_start: Error initializing MFX VPP -15
0:00:00.355133622  8044 0000000003C5C180 ERROR                 mfxvpp gstmfxpostproc.c:828:gst_mfxpostproc_transform: failed to apply VPP (error 2)
0:00:00.355314358  8044 0000000003C5C180 ERROR                    mfx gstmfxfilter.c:1086:gst_mfx_filter_start: Error initializing MFX VPP -15
0:00:00.355439798  8044 0000000003C5C180 ERROR                 mfxvpp gstmfxpostproc.c:828:gst_mfxpostproc_transform: failed to apply VPP (error 2)

hexray-newbee avatar Mar 18 '18 14:03 hexray-newbee

And I've tried replacing autovideoconvert with videoconvert. it works!

hexray-newbee avatar Mar 18 '18 14:03 hexray-newbee

It seems autovideoconvert invokes mfxvpp to perform the NV12 ->YUY2 conversion, which the J1900 unfortunately doesn't support. Have you tried with the latest driver?

ishmael1985 avatar Mar 18 '18 15:03 ishmael1985

the last two comment above were tested under the latest driver.

hexray-newbee avatar Mar 18 '18 15:03 hexray-newbee

That's bad. GST-MFX doesn't yet have a mechanism to determine the hardware support for colorspace conversion before finalizing the output caps. From Haswell onwards, NV12->YUY2 is supported and I enabled it for performance reasons. Can you help confirm to me what other platforms you test to get this error? Then I can work on a way to disable it for those platforms (Baytrail, Ivybridge, etc.).

ishmael1985 avatar Mar 18 '18 15:03 ishmael1985

I'am glad to help you. But, it's a pity that I have only Baytrail, Braswell and Kabylake. And only Baytrail runs with the error.

hexray-newbee avatar Mar 18 '18 16:03 hexray-newbee

Thanks as well for your feedback :) It's fine. I can't just disable YUY2 output format support unless I am sure which hardware doesn't support it. I assume that 3rd gen Intel HD graphics (Baytrail, Ivybridge with HD 4000) doesn't support YUY2 output format in video / system memory. While you confirmed it for Baytrail, I need to confirm it for Ivybridge as well before I do something about it.

ishmael1985 avatar Mar 18 '18 16:03 ishmael1985

Also if you do have have the time to test, can HEVC Main 10 decode work on Braswell? You can get some samples here: https://kodi.wiki/view/Samples

ishmael1985 avatar Mar 18 '18 16:03 ishmael1985