[Bug 106625] GPL Request: Where is AMD's patch for libomxil-bellagio / gst-plugins-omx to support HEVC decode?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 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:
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel

[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux