https://bugs.freedesktop.org/show_bug.cgi?id=106625
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: hojur...@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 their
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 it'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 it'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=GstOMXH264Dec
core-name=/usr/lib64/libomxil-bellagio.so.0
component-name=OMX.mesa.video_decoder.avc
rank=258
in-port-index=0
out-port-index=1
[omxmpeg2dec]
type-name=GstOMXMPEG2VideoDec
core-name=/usr/lib64/libomxil-bellagio.so.0
component-name=OMX.mesa.video_decoder.mpeg2
rank=258
in-port-index=0
out-port-index=1
#[omxh265dec]
#type-name=GstOMXH265Dec
#core-name=/usr/lib64/libomxil-bellagio.so.0
#component-name=OMX.mesa.video_decoder.hevc
#in-port-index=0
#out-port-index=1
#rank=258
[omxh264enc]
type-name=GstOMXH264Enc
core-name=/usr/lib64/libomxil-bellagio.so.0
component-name=OMX.mesa.video_encoder.avc
in-port-index=0
out-port-index=1
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/5751001ddc0ea099d6cdbe817a6882959991a3c9
"Add HEVC decoder for the zynqultrascaleplus platform.
I used the H264 decoder code as a template.
https://bugzilla.gnome.org/show_bug.cgi?id=785434"
I know you probably implemented it differently but these are some of the things
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 = 0x6F000000, /**< Reserved region for
introducing Khronos Standard Extensions */
OMX_VIDEO_CodingVendorStartUnused = 0x7F000000, /**< Reserved region for
introducing Vendor Extensions */
OMX_VIDEO_CodingMax = 0x7FFFFFFF
} OMX_VIDEO_CODINGTYPE;
gstomxh265utils.h:29:1: error: unknown type name ‘OMX_VIDEO_HEVCPROFILETYPE’;
did you mean ‘OMX_VIDEO_AVCPROFILETYPE’?
OMX_VIDEO_HEVCPROFILETYPE gst_omx_h265_utils_get_profile_from_str (const
^~~~~~~~~~~~~~~~~~~~~~~~~
OMX_VIDEO_AVCPROFILETYPE
gstomxh265utils.h:31:1: error: unknown type name ‘OMX_VIDEO_HEVCLEVELTYPE’; did
you mean ‘OMX_VIDEO_AVCLEVELTYPE’?
OMX_VIDEO_HEVCLEVELTYPE gst_omx_h265_utils_get_level_from_str (const gchar *
^~~~~~~~~~~~~~~~~~~~~~~
OMX_VIDEO_AVCLEVELTYPE
gstomxh265utils.h:34:57: error: unknown type name ‘OMX_VIDEO_HEVCPROFILETYPE’;
did you mean ‘OMX_VIDEO_AVCPROFILETYPE’?
const gchar * gst_omx_h265_utils_get_profile_from_enum
(OMX_VIDEO_HEVCPROFILETYPE e);
^~~~~~~~~~~~~~~~~~~~~~~~~
OMX_VIDEO_AVCPROFILETYPE
gstomxh265dec.c: In function ‘set_profile_and_level’:
gstomxh265dec.c:138:25: error: ‘OMX_VIDEO_HEVCProfileUnknown’ undeclared (first
use in this function); did you mean ‘OMX_VIDEO_AVCProfileMain’?
if (param.eProfile == OMX_VIDEO_HEVCProfileUnknown)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
OMX_VIDEO_AVCProfileMain
gstomxh265dec.c:138:25: note: each undeclared identifier is reported only once
for each function it appears in
gstomxh265dec.c:148:23: error: ‘OMX_VIDEO_HEVCLevelUnknown’ undeclared (first
use in this function); did you mean ‘OMX_VIDEO_HEVCProfileUnknown’?
if (param.eLevel == OMX_VIDEO_HEVCLevelUnknown)
^~~~~~~~~~~~~~~~~~~~~~~~~~
OMX_VIDEO_HEVCProfileUnknown
--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel