From mboxrd@z Thu Jan 1 00:00:00 1970 From: bugzilla-daemon@freedesktop.org Subject: [Bug 106625] GPL Request: Where is AMD's patch for libomxil-bellagio / gst-plugins-omx to support HEVC decode? Date: Wed, 23 May 2018 07:53:18 +0000 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0284075132==" Return-path: Received: from culpepper.freedesktop.org (culpepper.freedesktop.org [IPv6:2610:10:20:722:a800:ff:fe98:4b55]) by gabe.freedesktop.org (Postfix) with ESMTP id 985096E3E8 for ; Wed, 23 May 2018 07:53:18 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org --===============0284075132== Content-Type: multipart/alternative; boundary="15270619980.5fF3Bb6.16010" Content-Transfer-Encoding: 7bit --15270619980.5fF3Bb6.16010 Date: Wed, 23 May 2018 07:53:18 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://bugs.freedesktop.org/ Auto-Submitted: auto-generated https://bugs.freedesktop.org/show_bug.cgi?id=3D106625 Bug ID: 106625 Summary: GPL Request: Where is AMD's patch for libomxil-bellagio / gst-plugins-omx to support HEVC decode? Product: Mesa Version: git Hardware: x86-64 (AMD64) OS: All Status: NEW Severity: enhancement Priority: medium Component: Drivers/Gallium/radeonsi Assignee: dri-devel@lists.freedesktop.org Reporter: hojuruku@gmail.com QA Contact: dri-devel@lists.freedesktop.org The gallium driver has a h265 decode module for libomxil-bellagio, but not = for https://github.com/tizonia/tizonia-openmax-il implementation. It's in /gallium/state_trackers/omx https://github.com/freedesktop/mesa/blob/master/src/gallium/state_trackers/= omx/bellagio/vid_dec_h265.c tizonia includes EGL support so maybe it would be better to add the H265 encode/decode support to that because libomxil-beligago hasn't been updated upstream since 2012. Now I've checked with the official AMD Radeon (amdgpu) drivers 18.10 and th= eir bundled /etc/xdg/gstomx.conf doesn't have the hevc video decoder enabled by default (through the configuration file), though I haven't checked yet if i= t's enabled in the code to make this a proper "GPL" source code request. The patches are probably already floating AMD, OMX HEVC support has found i= t's way into mesa mesa but to the libraries that use it. Can one use omx HEVC decode in the mesa state tracker without AMD's patch to libomxil-bellago? Can you please release it? [omxh264dec] type-name=3DGstOMXH264Dec core-name=3D/usr/lib64/libomxil-bellagio.so.0 component-name=3DOMX.mesa.video_decoder.avc rank=3D258 in-port-index=3D0 out-port-index=3D1 [omxmpeg2dec] type-name=3DGstOMXMPEG2VideoDec core-name=3D/usr/lib64/libomxil-bellagio.so.0 component-name=3DOMX.mesa.video_decoder.mpeg2 rank=3D258 in-port-index=3D0 out-port-index=3D1 #[omxh265dec] #type-name=3DGstOMXH265Dec #core-name=3D/usr/lib64/libomxil-bellagio.so.0 #component-name=3DOMX.mesa.video_decoder.hevc #in-port-index=3D0 #out-port-index=3D1 #rank=3D258 [omxh264enc] type-name=3DGstOMXH264Enc core-name=3D/usr/lib64/libomxil-bellagio.so.0 component-name=3DOMX.mesa.video_encoder.avc in-port-index=3D0 out-port-index=3D1 The hevc decode support added a 6 months ago (1.14.0) to gst-plugins-omx is= for a different openmax implementation: https://github.com/GStreamer/gst-omx/commit/5751001ddc0ea099d6cdbe817a68829= 59991a3c9 "Add HEVC decoder for the zynqultrascaleplus platform. I used the H264 decoder code as a template. https://bugzilla.gnome.org/show_bug.cgi?id=3D785434" I know you probably implemented it differently but these are some of the th= ings missing from OMX_Video.h typedef enum OMX_VIDEO_CODINGTYPE { OMX_VIDEO_CodingUnused, /**< Value when coding is N/A */ OMX_VIDEO_CodingAutoDetect, /**< Autodetection of coding type */ OMX_VIDEO_CodingMPEG2, /**< AKA: H.262 */ OMX_VIDEO_CodingH263, /**< H.263 */ OMX_VIDEO_CodingMPEG4, /**< MPEG-4 */ OMX_VIDEO_CodingWMV, /**< all versions of Windows Media Video */ OMX_VIDEO_CodingRV, /**< all versions of Real Video */ OMX_VIDEO_CodingAVC, /**< H.264/AVC */ OMX_VIDEO_CodingMJPEG, /**< Motion JPEG */ OMX_VIDEO_CodingHEVC, OMX_VIDEO_CodingKhronosExtensions =3D 0x6F000000, /**< Reserved region = for introducing Khronos Standard Extensions */ OMX_VIDEO_CodingVendorStartUnused =3D 0x7F000000, /**< Reserved region = for introducing Vendor Extensions */ OMX_VIDEO_CodingMax =3D 0x7FFFFFFF } OMX_VIDEO_CODINGTYPE; gstomxh265utils.h:29:1: error: unknown type name =E2=80=98OMX_VIDEO_HEVCPRO= FILETYPE=E2=80=99; did you mean =E2=80=98OMX_VIDEO_AVCPROFILETYPE=E2=80=99? OMX_VIDEO_HEVCPROFILETYPE gst_omx_h265_utils_get_profile_from_str (const ^~~~~~~~~~~~~~~~~~~~~~~~~ OMX_VIDEO_AVCPROFILETYPE gstomxh265utils.h:31:1: error: unknown type name =E2=80=98OMX_VIDEO_HEVCLEV= ELTYPE=E2=80=99; did you mean =E2=80=98OMX_VIDEO_AVCLEVELTYPE=E2=80=99? OMX_VIDEO_HEVCLEVELTYPE gst_omx_h265_utils_get_level_from_str (const gchar= * ^~~~~~~~~~~~~~~~~~~~~~~ OMX_VIDEO_AVCLEVELTYPE gstomxh265utils.h:34:57: error: unknown type name =E2=80=98OMX_VIDEO_HEVCPR= OFILETYPE=E2=80=99; did you mean =E2=80=98OMX_VIDEO_AVCPROFILETYPE=E2=80=99? const gchar * gst_omx_h265_utils_get_profile_from_enum (OMX_VIDEO_HEVCPROFILETYPE e); =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20 ^~~~~~~~~~~~~~~~~~~~~~~~~ =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20 OMX_VIDEO_AVCPROFILETYPE gstomxh265dec.c: In function =E2=80=98set_profile_and_level=E2=80=99: gstomxh265dec.c:138:25: error: =E2=80=98OMX_VIDEO_HEVCProfileUnknown=E2=80= =99 undeclared (first use in this function); did you mean =E2=80=98OMX_VIDEO_AVCProfileMain=E2=80= =99? if (param.eProfile =3D=3D OMX_VIDEO_HEVCProfileUnknown) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ OMX_VIDEO_AVCProfileMain gstomxh265dec.c:138:25: note: each undeclared identifier is reported only o= nce for each function it appears in gstomxh265dec.c:148:23: error: =E2=80=98OMX_VIDEO_HEVCLevelUnknown=E2=80=99= undeclared (first use in this function); did you mean =E2=80=98OMX_VIDEO_HEVCProfileUnknown= =E2=80=99? if (param.eLevel =3D=3D OMX_VIDEO_HEVCLevelUnknown) ^~~~~~~~~~~~~~~~~~~~~~~~~~ OMX_VIDEO_HEVCProfileUnknown --=20 You are receiving this mail because: You are the assignee for the bug.= --15270619980.5fF3Bb6.16010 Date: Wed, 23 May 2018 07:53:18 +0000 MIME-Version: 1.0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://bugs.freedesktop.org/ Auto-Submitted: auto-generated
Bug ID 106625
Summary GPL Request: Where is AMD's patch for libomxil-bellagio / gst= -plugins-omx to support HEVC decode?
Product Mesa
Version git
Hardware x86-64 (AMD64)
OS All
Status NEW
Severity enhancement
Priority medium
Component Drivers/Gallium/radeonsi
Assignee dri-devel@lists.freedesktop.org
Reporter hojuruku@gmail.com
QA Contact dri-devel@lists.freedesktop.org

The gallium driver has a h265 decode module for libomxil-bella=
gio, but not for
https://github.co=
m/tizonia/tizonia-openmax-il implementation.

It's in /gallium/state_trackers/omx
https://github.com/freedesktop/mesa=
/blob/master/src/gallium/state_trackers/omx/bellagio/vid_dec_h265.c

tizonia includes EGL support so maybe it would be better to add the H265
encode/decode support to that because libomxil-beligago hasn't been updated
upstream since 2012.


Now I've checked with the official AMD Radeon (amdgpu) drivers 18.10 and th=
eir
bundled /etc/xdg/gstomx.conf doesn't have the hevc video decoder enabled by
default (through the configuration file), though I haven't checked yet if i=
t's
enabled in the code to make this a proper "GPL" source code reque=
st.

The patches are probably already floating AMD, OMX HEVC support has found i=
t's
way into mesa mesa but to the libraries that use it.

Can one use omx HEVC decode in the mesa state tracker without AMD's patch to
libomxil-bellago? Can you please release it?

[omxh264dec]
type-name=3DGstOMXH264Dec
core-name=3D/usr/lib64/libomxil-bellagio.so.0
component-name=3DOMX.mesa.video_decoder.avc
rank=3D258
in-port-index=3D0
out-port-index=3D1

[omxmpeg2dec]
type-name=3DGstOMXMPEG2VideoDec
core-name=3D/usr/lib64/libomxil-bellagio.so.0
component-name=3DOMX.mesa.video_decoder.mpeg2
rank=3D258
in-port-index=3D0
out-port-index=3D1

#[omxh265dec]
#type-name=3DGstOMXH265Dec
#core-name=3D/usr/lib64/libomxil-bellagio.so.0
#component-name=3DOMX.mesa.video_decoder.hevc
#in-port-index=3D0
#out-port-index=3D1
#rank=3D258

[omxh264enc]
type-name=3DGstOMXH264Enc
core-name=3D/usr/lib64/libomxil-bellagio.so.0
component-name=3DOMX.mesa.video_encoder.avc
in-port-index=3D0
out-port-index=3D1

The hevc decode support added a 6 months ago (1.14.0) to gst-plugins-omx is=
 for
a different openmax implementation:

https://github.com/GStreamer/gst-omx/commit/5751001dd=
c0ea099d6cdbe817a6882959991a3c9

"Add HEVC decoder for the zynqultrascaleplus platform.

I used the H264 decoder code as a template.

https://bug=
zilla.gnome.org/show_bug.cgi?id=3D785434"

I know you probably implemented it differently but these are some of the th=
ings
missing from OMX_Video.h

typedef enum OMX_VIDEO_CODINGTYPE {
    OMX_VIDEO_CodingUnused,     /**< Value when coding is N/A */
    OMX_VIDEO_CodingAutoDetect, /**< Autodetection of coding type */
    OMX_VIDEO_CodingMPEG2,      /**< AKA: H.262 */
    OMX_VIDEO_CodingH263,       /**< H.263 */
    OMX_VIDEO_CodingMPEG4,      /**< MPEG-4 */
    OMX_VIDEO_CodingWMV,        /**< all versions of Windows Media Video=
 */
    OMX_VIDEO_CodingRV,         /**< all versions of Real Video */
    OMX_VIDEO_CodingAVC,        /**< H.264/AVC */
    OMX_VIDEO_CodingMJPEG,      /**< Motion JPEG */
    OMX_VIDEO_CodingHEVC,
    OMX_VIDEO_CodingKhronosExtensions =3D 0x6F000000, /**< Reserved regi=
on for
introducing Khronos Standard Extensions */
    OMX_VIDEO_CodingVendorStartUnused =3D 0x7F000000, /**< Reserved regi=
on for
introducing Vendor Extensions */
    OMX_VIDEO_CodingMax =3D 0x7FFFFFFF
} OMX_VIDEO_CODINGTYPE;




gstomxh265utils.h:29:1: error: unknown type name =E2=80=98OMX_VIDEO_HEVCPRO=
FILETYPE=E2=80=99;
did you mean =E2=80=98OMX_VIDEO_AVCPROFILETYPE=E2=80=99?
 OMX_VIDEO_HEVCPROFILETYPE gst_omx_h265_utils_get_profile_from_str (const
 ^~~~~~~~~~~~~~~~~~~~~~~~~
 OMX_VIDEO_AVCPROFILETYPE
gstomxh265utils.h:31:1: error: unknown type name =E2=80=98OMX_VIDEO_HEVCLEV=
ELTYPE=E2=80=99; did
you mean =E2=80=98OMX_VIDEO_AVCLEVELTYPE=E2=80=99?
 OMX_VIDEO_HEVCLEVELTYPE gst_omx_h265_utils_get_level_from_str (const gchar=
 *
 ^~~~~~~~~~~~~~~~~~~~~~~
 OMX_VIDEO_AVCLEVELTYPE
gstomxh265utils.h:34:57: error: unknown type name =E2=80=98OMX_VIDEO_HEVCPR=
OFILETYPE=E2=80=99;
did you mean =E2=80=98OMX_VIDEO_AVCPROFILETYPE=E2=80=99?
 const gchar * gst_omx_h265_utils_get_profile_from_enum
(OMX_VIDEO_HEVCPROFILETYPE e);
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20
^~~~~~~~~~~~~~~~~~~~~~~~~
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20
OMX_VIDEO_AVCPROFILETYPE
gstomxh265dec.c: In function =E2=80=98set_profile_and_level=E2=80=99:
gstomxh265dec.c:138:25: error: =E2=80=98OMX_VIDEO_HEVCProfileUnknown=E2=80=
=99 undeclared (first
use in this function); did you mean =E2=80=98OMX_VIDEO_AVCProfileMain=E2=80=
=99?
   if (param.eProfile =3D=3D OMX_VIDEO_HEVCProfileUnknown)
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         OMX_VIDEO_AVCProfileMain
gstomxh265dec.c:138:25: note: each undeclared identifier is reported only o=
nce
for each function it appears in
gstomxh265dec.c:148:23: error: =E2=80=98OMX_VIDEO_HEVCLevelUnknown=E2=80=99=
 undeclared (first
use in this function); did you mean =E2=80=98OMX_VIDEO_HEVCProfileUnknown=
=E2=80=99?
   if (param.eLevel =3D=3D OMX_VIDEO_HEVCLevelUnknown)
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
                       OMX_VIDEO_HEVCProfileUnknown


You are receiving this mail because:
  • You are the assignee for the bug.
= --15270619980.5fF3Bb6.16010-- --===============0284075132== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== --===============0284075132==--