After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 766048 - Add VP9 Encoding support
Add VP9 Encoding support
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer-vaapi
unspecified
Other Linux
: Normal enhancement
: 1.9.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks: 766832
 
 
Reported: 2016-05-06 08:28 UTC by sreerenj
Modified: 2016-05-30 12:07 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
build: Add check for VP9 encode API support in libva (2.38 KB, patch)
2016-05-24 09:08 UTC, sreerenj
none Details | Review
encoder: vp9: Add vp9 encoder support in libgstvaapi (17.13 KB, patch)
2016-05-24 09:08 UTC, sreerenj
none Details | Review
encoder: vp9: Add vp9 encoder element to "vaapi" plugin (10.93 KB, patch)
2016-05-24 09:09 UTC, sreerenj
none Details | Review
encoder: vp9: Add more propertis for tuning encode quality (5.11 KB, patch)
2016-05-24 09:09 UTC, sreerenj
none Details | Review
encoder: vp9: Define Max frame width and height (1.46 KB, patch)
2016-05-24 09:10 UTC, sreerenj
none Details | Review
encoder: vp9: Add some simple algorithams for reference picture selection (8.75 KB, patch)
2016-05-24 09:11 UTC, sreerenj
none Details | Review

Description sreerenj 2016-05-06 08:28:29 UTC
This is a place holder to track VP9 encoding support in gstreamer-vaapi.
Comment 1 sreerenj 2016-05-24 09:08:07 UTC
Created attachment 328421 [details] [review]
build: Add check for VP9 encode API support in libva
Comment 2 sreerenj 2016-05-24 09:08:44 UTC
Created attachment 328422 [details] [review]
encoder: vp9: Add vp9 encoder support in libgstvaapi
Comment 3 sreerenj 2016-05-24 09:09:12 UTC
Created attachment 328423 [details] [review]
encoder: vp9: Add vp9 encoder element to "vaapi" plugin
Comment 4 sreerenj 2016-05-24 09:09:44 UTC
Created attachment 328424 [details] [review]
encoder: vp9: Add more propertis for tuning encode quality
Comment 5 sreerenj 2016-05-24 09:10:33 UTC
Created attachment 328425 [details] [review]
encoder: vp9: Define Max frame width and height
Comment 6 sreerenj 2016-05-24 09:11:03 UTC
Created attachment 328426 [details] [review]
encoder: vp9: Add some simple algorithams for reference  picture selection
Comment 7 sreerenj 2016-05-24 09:14:46 UTC
The vaapi-intel-driver patches are landed in mailing list:
https://lists.freedesktop.org/archives/libva/2016-May/003977.html

Once those land in master , I can push the gstreamer-vaapi patches too.
Comment 8 sreerenj 2016-05-30 11:12:56 UTC
commit 76c2e5fdb5095e67067572725897faa7b833d76a
Author: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
Date:   Mon May 30 11:30:40 2016 +0300

    encoder: vp9: Add simple algorithms for reference picture selection
    
    Added two modes(as properties) for reference picture selection:
    
    ref-mode-0: AltRef and GoldRef pointing to the recent keyframe
    and LastRef is pointing to the previous frame.
    
    ref-mode-1: Previous frame (n) as LastRef , n-1 th frame as GoldRef
    and n-2 th frame as AltRef
    
    https://bugzilla.gnome.org/show_bug.cgi?id=766048

commit 5dc63dbf5a0efa8d8e20839ebf1a64b6bd48d787
Author: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
Date:   Mon May 30 11:25:52 2016 +0300

    encoder: vp9: Define Max frame width and height
    
    https://bugzilla.gnome.org/show_bug.cgi?id=766048
commit 1606d4bd779701c9450a00bd6143441da43f8efe
Author: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
Date:   Mon May 30 11:25:03 2016 +0300

    encoder: vp9: Add more propertis for tuning encode quality
    
    Added three tuning properties:
    1: filter_level
    2: sharpness_level
    3: luma ac quant-table index
    
    https://bugzilla.gnome.org/show_bug.cgi?id=766048

commit 4464d81b6a300db3c6cc77d37557dc39d3d2195d
Author: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
Date:   Mon May 30 11:24:14 2016 +0300

    Add vp9 encode element to "vaapi" plugin
    
    https://bugzilla.gnome.org/show_bug.cgi?id=766048
commit 221fb9351a9563a221bf4981cc0223627c252658
Author: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
Date:   Mon May 30 11:23:12 2016 +0300

    Add vp9 encoder support in libgstvaapi
    
    https://bugzilla.gnome.org/show_bug.cgi?id=766048

commit 266650054aa365141e4e7a26bcca9514671ce810
Author: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
Date:   Mon May 30 11:22:35 2016 +0300

    build: Add check for VP9 encode API support in libva
    
    https://bugzilla.gnome.org/show_bug.cgi?id=766048
Comment 9 Tim-Philipp Müller 2016-05-30 11:50:55 UTC
In "Define max width and height" you changed the values as well - it would be nice to mention why in the commit message next time :)
Comment 10 sreerenj 2016-05-30 12:07:17 UTC
(In reply to Tim-Philipp Müller from comment #9)
> In "Define max width and height" you changed the values as well - it would
> be nice to mention why in the commit message next time :)

Yup, will do :)

In theory we can have a max resolution as indicated in max_frame_width/max_frame_height and then it is possible to dynamically change the frame resolution of each frame. But we are not supporting this yet. So i just defined a hard limit for now based on what the driver currently supports for the specific platform(KBL [1]) which is 4k. The initial values 8k were used by some sample test cases i have seen in libva which is wrong as per the current vaapi-intel-driver implementation.

[1]: https://en.wikipedia.org/wiki/Kaby_Lake