Bug 1239152 - missing support for VP8 encoder
Summary: missing support for VP8 encoder
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: gstreamer1-vaapi
Version: 22
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Simon Farnsworth
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1243615
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-07-03 18:45 UTC by Hisham Galal
Modified: 2015-08-04 13:36 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2015-08-04 13:36:36 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Hisham Galal 2015-07-03 18:45:04 UTC
Upstream gstreamer-vaapi features a vaapiencode_VP8 element that isn't included in the fedora package. Please add it to future builds of the package.

Comment 1 Francesco Frassinelli (frafra) 2015-07-18 10:46:34 UTC
gstreamer1-vaapi-0.6.0 test package built with vaapiencode_vp8 enabled: https://bugzilla.redhat.com/show_bug.cgi?id=1243615#c4

$ rpm -q gstreamer1-vaapi
gstreamer1-vaapi-0.6.0-1.fc22.x86_64
$ gst-inspect-1.0 | grep vaapiencode_vp8
vaapi:  vaapiencode_vp8: VA-API VP8 encoder

It doesn't seems to work on my laptop:
$ LC_ALL=C GST_DEBUG="*:4"  gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=1800 ! video/x-raw,format=I420,width=640,height=480 ! vaapipostproc ! queue ! vaapiencode_vp8 ! webmmux ! filesink location=test2.webm 2>&1 | grep -i 'warn\|error'
0:00:00.423317640 29922      0x1156140 ERROR                  vaapi gstvaapiencoder_vp8.c:116:ensure_hw_profile: unsupported HW profile (0x01385056)
0:00:00.423326758 29922      0x1156140 WARN            videoencoder gstvideoencoder.c:647:gst_video_encoder_setcaps:<vaapiencodevp8-0> rejected caps video/x-raw(memory:VASurface), format=(string)I420, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)30/1
0:00:00.423348151 29922      0x1156140 WARN            videoencoder gstvideoencoder.c:1463:gst_video_encoder_chain:<vaapiencodevp8-0> error: encoder not initialized
0:00:00.423367811 29922      0x1156140 INFO        GST_ERROR_SYSTEM gstelement.c:1835:gst_element_message_full:<vaapiencodevp8-0> posting message: GStreamer error: negotiation problem.
0:00:00.423404811 29922      0x1156140 INFO        GST_ERROR_SYSTEM gstelement.c:1858:gst_element_message_full:<vaapiencodevp8-0> posted error message: GStreamer error: negotiation problem.
ERROR: from element /GstPipeline:pipeline0/GstVaapiEncodeVP8:vaapiencodevp8-0: GStreamer error: negotiation problem.

I tried the same action with h264 and I found a bug: https://bugzilla.gnome.org/show_bug.cgi?id=752558
If I compile using commit 3f28da7f5a224178d104992fe902212015dfb2e4 in order to avoid the bug, the command works with h264/qtmux, while it doesn't if using vp8/webmmux.

$ gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=1800 ! video/x-raw,format=I420,width=640,height=480 ! vaapipostproc ! queue ! vaapiencode_h264 ! qtmux ! filesink location=test2.mp4

I don't know if it's a different bug related with vp8 or I should use a different pipeline. I got this example from http://www.intel.co.uk/content/dam/www/public/us/en/documents/white-papers/video-encode-atom-e38xx-emgd-gstreamer-paper.pdf page 8.
While the same action with h264 works

Comment 2 Francesco Frassinelli (frafra) 2015-07-20 15:27:12 UTC
Ok, my problem is caused by my Intel CPU: only Skylake and greater seems to support vp8 encoding.

What about you? Does it works?
If it segfaults, it could be related with this vaapipostproc bug: https://bugzilla.gnome.org/show_bug.cgi?id=752558

Comment 3 Hisham Galal 2015-07-20 21:37:59 UTC
My bad... I was under the impression that Broadwell supported VP8 decoding as well as encoding. I don't have access to a Skylake CPU so I can't comment on the fix. Thanks for looking into this one.

Comment 4 Nicolas Chauvet (kwizart) 2015-08-03 11:24:21 UTC
@Fransceco
Thx for the patches, I'm updating libva to 1.6 on f23 and later. You can request acl to update gstreamer-vaapi in master, I will handle the build override and update along libva for f23.

Thx

Comment 5 Nicolas Chauvet (kwizart) 2015-08-04 13:36:36 UTC
fixed for f23+


Note You need to log in before you can comment on or make changes to this bug.