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 782741 - Improve element's metadata in regard to hw decoding
Improve element's metadata in regard to hw decoding
Status: RESOLVED DUPLICATE of bug 796921
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
1.11.91
Other All
: Normal enhancement
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2017-05-17 12:19 UTC by Victor Toso
Modified: 2018-08-08 15:04 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Victor Toso 2017-05-17 12:19:46 UTC
Hi,

In Spice [0] we can be have vp8, vp9, h264, mjepg streams (and more in the future) and having a way to identify based on GstCaps which elements can do hw decoding would help to sort the preference of which video codec the server could chose for encoding.

I have something like [1] to find which elements are available to decode but that is not enough to separate which elements do hw decoding.

[0] http://spice-space.org/
[1] https://gitlab.com/victortoso/spice-gtk/commit/e90785e1181786f3a00342dfe09df79a845ab3af
Comment 1 Sebastian Dröge (slomo) 2017-05-17 12:45:13 UTC
Why are the ranks not enough for sorting here?

And there's more to this than knowing if a encoder uses hardware. The hardware based on might still be slower in some use cases, its quality might be worse, it might only support different profiles than what you want to produce, etc.
Comment 2 Victor Toso 2017-05-17 14:25:17 UTC
(In reply to Sebastian Dröge (slomo) from comment #1)
> Why are the ranks not enough for sorting here?

That would mean I need to know the plugins that do hw decoding in every platform while I'm interested if I have any that can do h264/vp9 etc hw decoding.

> And there's more to this than knowing if a encoder uses hardware. The
> hardware based on might still be slower in some use cases, its quality might
> be worse, it might only support different profiles than what you want to
> produce, etc.

IMHO it would be good enough to state that a given element uses hw decode. If it can't decode a given profile or if the quality is worse, shouldn't matter much.

The point is that in general we would like to try hw decode first. That's probably covered by using playbin. But knowing if it is possible to hw decode given video codec would help setup which codec should we use for streaming in the host/guest machine.
Comment 3 Víctor Manuel Jáquez Leal 2018-02-20 12:24:10 UTC
(In reply to Victor Toso from comment #2)
> (In reply to Sebastian Dröge (slomo) from comment #1)
> > Why are the ranks not enough for sorting here?
> 
> That would mean I need to know the plugins that do hw decoding in every
> platform while I'm interested if I have any that can do h264/vp9 etc hw
> decoding.

After you get the decoder list for a specific codec, you can sort it with their ranks.

Now, bear in mind that in the specific case of VA-API/MSDK or OMX, it is not assured that the backend will use specific hardware, there could be software only backends.

> > And there's more to this than knowing if a encoder uses hardware. The
> > hardware based on might still be slower in some use cases, its quality might
> > be worse, it might only support different profiles than what you want to
> > produce, etc.
> 
> IMHO it would be good enough to state that a given element uses hw decode.
> If it can't decode a given profile or if the quality is worse, shouldn't
> matter much.
> 
> The point is that in general we would like to try hw decode first. That's
> probably covered by using playbin. But knowing if it is possible to hw
> decode given video codec would help setup which codec should we use for
> streaming in the host/guest machine.
Comment 4 Tim-Philipp Müller 2018-08-08 15:04:50 UTC

*** This bug has been marked as a duplicate of bug 796921 ***