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 792528 - gst-omx: add properties for the Zynqultrascaleplus
gst-omx: add properties for the Zynqultrascaleplus
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-omx
git master
Other Linux
: Normal enhancement
: 1.13.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2018-01-15 10:14 UTC by Guillaume Desmottes
Modified: 2018-01-30 11:52 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
omxvideodec: add internal-entropy-buffers property on zynqultrascaleplus (5.65 KB, patch)
2018-01-15 10:14 UTC, Guillaume Desmottes
needs-work Details | Review
omxvideoenc: add qp-mode property on zynqultrascaleplus (5.79 KB, patch)
2018-01-15 10:15 UTC, Guillaume Desmottes
needs-work Details | Review
omxvideoenc: document unit of target-bitrate property (1.10 KB, patch)
2018-01-15 10:15 UTC, Guillaume Desmottes
accepted-commit_now Details | Review
omxvideoenc: tweak control-rate modes on zynqultrascaleplus (1.44 KB, patch)
2018-01-15 10:15 UTC, Guillaume Desmottes
needs-work Details | Review
omxvideoenc: add min-qp and max-qp properties on zynqultrascaleplus (4.33 KB, patch)
2018-01-15 10:15 UTC, Guillaume Desmottes
needs-work Details | Review
omxvideoenc: add gop-mode and gdr-mode properties on zynqultrascaleplus (6.10 KB, patch)
2018-01-15 10:15 UTC, Guillaume Desmottes
needs-work Details | Review
omxvideoenc: add initial-delay and cpb-size properties on zynqultrascaleplus (4.45 KB, patch)
2018-01-15 10:15 UTC, Guillaume Desmottes
none Details | Review
omxvideoenc: add scaling-list property on zynqultrascaleplus (4.19 KB, patch)
2018-01-15 10:15 UTC, Guillaume Desmottes
none Details | Review
omxvideoenc: add low-bandwidth property on zynqultrascaleplus (3.65 KB, patch)
2018-01-15 10:15 UTC, Guillaume Desmottes
none Details | Review
omxvideoenc: add max-bitrate property on zynqultrascaleplus (3.78 KB, patch)
2018-01-15 10:15 UTC, Guillaume Desmottes
none Details | Review
omxvideoenc: add aspect-ratio property on zynqultrascaleplus (4.58 KB, patch)
2018-01-15 10:15 UTC, Guillaume Desmottes
none Details | Review
omxvideoenc: add filler-data property on zynqultrascaleplus (3.64 KB, patch)
2018-01-15 10:15 UTC, Guillaume Desmottes
none Details | Review
omxh264enc: add entropy-mode property (4.14 KB, patch)
2018-01-15 10:16 UTC, Guillaume Desmottes
none Details | Review
omxh264enc: add constrained-intra-prediction property (3.68 KB, patch)
2018-01-15 10:16 UTC, Guillaume Desmottes
none Details | Review
omxh264enc: add loop-filter-mode property (4.51 KB, patch)
2018-01-15 10:16 UTC, Guillaume Desmottes
none Details | Review
omxh265enc: add constrained-intra-prediction property (3.75 KB, patch)
2018-01-15 10:16 UTC, Guillaume Desmottes
none Details | Review
omxh265enc: add loop-filter-mode property (5.13 KB, patch)
2018-01-15 10:16 UTC, Guillaume Desmottes
none Details | Review
omxvideoenc: add num-slices, slice-size and dependent-slice properties on zynqultrascaleplus (6.37 KB, patch)
2018-01-15 10:16 UTC, Guillaume Desmottes
none Details | Review
omxvideodec: add internal-entropy-buffers property on zynqultrascaleplus (5.80 KB, patch)
2018-01-30 10:33 UTC, Guillaume Desmottes
committed Details | Review
omxvideoenc: document unit of target-bitrate property (1.10 KB, patch)
2018-01-30 10:33 UTC, Guillaume Desmottes
committed Details | Review
omxvideoenc: add zynqultrascaleplus specific properties (24.70 KB, patch)
2018-01-30 10:33 UTC, Guillaume Desmottes
committed Details | Review
omxh264enc: add some encoding properties (7.01 KB, patch)
2018-01-30 10:33 UTC, Guillaume Desmottes
committed Details | Review
omxh265enc: add some encoding properties (6.05 KB, patch)
2018-01-30 10:33 UTC, Guillaume Desmottes
committed Details | Review

Description Guillaume Desmottes 2018-01-15 10:14:42 UTC
Most of those properties are specific to the Zynqultrascaleplus but some are part of the official OMX spec and so can be used on all platforms.
Comment 1 Guillaume Desmottes 2018-01-15 10:14:59 UTC
Created attachment 366814 [details] [review]
omxvideodec: add internal-entropy-buffers property on zynqultrascaleplus

Custom property to control the number of internal buffers used in the
decoder to smooth out entropy decoding performance.
Comment 2 Guillaume Desmottes 2018-01-15 10:15:04 UTC
Created attachment 366815 [details] [review]
omxvideoenc: add qp-mode property on zynqultrascaleplus

Custom property to control the QP mode of the encoder.
Comment 3 Guillaume Desmottes 2018-01-15 10:15:10 UTC
Created attachment 366816 [details] [review]
omxvideoenc: document unit of target-bitrate property

nTargetBitrate and nEncodeBitrate are defined in bits per second in the
OMX spec.
Comment 4 Guillaume Desmottes 2018-01-15 10:15:15 UTC
Created attachment 366817 [details] [review]
omxvideoenc: tweak control-rate modes on zynqultrascaleplus

The zynqultrascaleplus platform doesn't support the
OMX_Video_ControlRateVariableSkipFrames and
OMX_Video_ControlRateConstantSkipFrame modes but has a special mode
to reduce the decoding latency by avoiding bitrate peaks.
Comment 5 Guillaume Desmottes 2018-01-15 10:15:20 UTC
Created attachment 366818 [details] [review]
omxvideoenc: add min-qp and max-qp properties on zynqultrascaleplus

Allow users to control the minimum and maximum QP values allowed for the
rate control.
Comment 6 Guillaume Desmottes 2018-01-15 10:15:25 UTC
Created attachment 366819 [details] [review]
omxvideoenc: add gop-mode and gdr-mode properties on zynqultrascaleplus

Allow users to control Group of Pictures and Gradual Decoder Refresh
settings.
Comment 7 Guillaume Desmottes 2018-01-15 10:15:30 UTC
Created attachment 366820 [details] [review]
omxvideoenc: add initial-delay and cpb-size properties on zynqultrascaleplus
Comment 8 Guillaume Desmottes 2018-01-15 10:15:36 UTC
Created attachment 366821 [details] [review]
omxvideoenc: add scaling-list property on zynqultrascaleplus
Comment 9 Guillaume Desmottes 2018-01-15 10:15:40 UTC
Created attachment 366822 [details] [review]
omxvideoenc: add low-bandwidth property on zynqultrascaleplus
Comment 10 Guillaume Desmottes 2018-01-15 10:15:45 UTC
Created attachment 366823 [details] [review]
omxvideoenc: add max-bitrate property on zynqultrascaleplus
Comment 11 Guillaume Desmottes 2018-01-15 10:15:51 UTC
Created attachment 366824 [details] [review]
omxvideoenc: add aspect-ratio property on zynqultrascaleplus
Comment 12 Guillaume Desmottes 2018-01-15 10:15:56 UTC
Created attachment 366825 [details] [review]
omxvideoenc: add filler-data property on zynqultrascaleplus
Comment 13 Guillaume Desmottes 2018-01-15 10:16:01 UTC
Created attachment 366826 [details] [review]
omxh264enc: add entropy-mode property

Map the bEntropyCodingCABAC OMX settting.
Comment 14 Guillaume Desmottes 2018-01-15 10:16:07 UTC
Created attachment 366827 [details] [review]
omxh264enc: add constrained-intra-prediction property

Map the bconstIpred OMX settting.
Comment 15 Guillaume Desmottes 2018-01-15 10:16:13 UTC
Created attachment 366828 [details] [review]
omxh264enc: add loop-filter-mode property

Map the eLoopFilterMode OMX settting.
Comment 16 Guillaume Desmottes 2018-01-15 10:16:19 UTC
Created attachment 366829 [details] [review]
omxh265enc: add constrained-intra-prediction property

Similar to the same property on omxh264enc.
Comment 17 Guillaume Desmottes 2018-01-15 10:16:24 UTC
Created attachment 366830 [details] [review]
omxh265enc: add loop-filter-mode property

Similar to the same property on omxh264enc.
Comment 18 Guillaume Desmottes 2018-01-15 10:16:31 UTC
Created attachment 366831 [details] [review]
omxvideoenc: add num-slices, slice-size and dependent-slice properties on zynqultrascaleplus

Custom properties to configure the number of slices per encoded frame.
Comment 19 Guillaume Desmottes 2018-01-15 10:18:02 UTC
Also in this git branch: https://gitlab.collabora.com/cassidy/gst-omx/commits/new-props
Comment 20 Nicolas Dufresne (ndufresne) 2018-01-29 14:49:16 UTC
Review of attachment 366814 [details] [review]:

::: omx/gstomxvideodec.c
@@ +86,3 @@
 {
+  PROP_0,
+#ifdef USE_OMX_TARGET_ZYNQ_USCALE_PLUS

No need for ifdef here, it armless to always define in this private enum.

@@ +103,3 @@
     GST_TYPE_VIDEO_DECODER, DEBUG_INIT);
 
+#ifdef USE_OMX_TARGET_ZYNQ_USCALE_PLUS

I'f move the ifdef inside, and keep per target properties outside.

@@ +146,2 @@
   gobject_class->finalize = gst_omx_video_dec_finalize;
+#ifdef USE_OMX_TARGET_ZYNQ_USCALE_PLUS

Move the ifdef after.
Comment 21 Nicolas Dufresne (ndufresne) 2018-01-29 14:50:35 UTC
Review of attachment 366815 [details] [review]:

::: omx/gstomxvideoenc.c
@@ +126,3 @@
   PROP_QUANT_P_FRAMES,
+  PROP_QUANT_B_FRAMES,
+#ifdef USE_OMX_TARGET_ZYNQ_USCALE_PLUS

No need for ifdef, it's a private enum.
Comment 22 Nicolas Dufresne (ndufresne) 2018-01-29 14:51:12 UTC
Review of attachment 366816 [details] [review]:

Better.
Comment 23 Nicolas Dufresne (ndufresne) 2018-01-29 14:53:05 UTC
Review of attachment 366817 [details] [review]:

::: omx/gstomxvideoenc.c
@@ +51,3 @@
+#ifdef USE_OMX_TARGET_ZYNQ_USCALE_PLUS
+      {OMX_ALG_Video_ControlRateLowLatency, "Low Latency", "low-latency"},
+#else /* Not implemented on zynqultrascaleplus */

This will be messy to maintain, can you just leave them in place, it's not a big deal if it fails at run-time.
Comment 24 Nicolas Dufresne (ndufresne) 2018-01-29 14:57:04 UTC
Review of attachment 366818 [details] [review]:

Seems like a good proof that OMX is full of gaps.

::: omx/gstomxvideoenc.c
@@ +132,3 @@
 #ifdef USE_OMX_TARGET_ZYNQ_USCALE_PLUS
   PROP_QP_MODE,
+  PROP_MIN_QP,

Move out of ifdef.
Comment 25 Nicolas Dufresne (ndufresne) 2018-01-29 14:57:51 UTC
Review of attachment 366819 [details] [review]:

::: omx/gstomxvideoenc.c
@@ +182,3 @@
   PROP_MAX_QP,
+  PROP_GOP_MODE,
+  PROP_GDR_MODE,

Same.
Comment 26 Nicolas Dufresne (ndufresne) 2018-01-29 14:59:00 UTC
Same small change for all the other patch. You can squash everything Zynq specific here imho.
Comment 27 Guillaume Desmottes 2018-01-30 10:31:11 UTC
Fixed review comments and did some squashing.
Comment 28 Guillaume Desmottes 2018-01-30 10:33:32 UTC
Created attachment 367625 [details] [review]
omxvideodec: add internal-entropy-buffers property on zynqultrascaleplus

Custom property to control the number of internal buffers used in the
decoder to smooth out entropy decoding performance.
Comment 29 Guillaume Desmottes 2018-01-30 10:33:37 UTC
Created attachment 367626 [details] [review]
omxvideoenc: document unit of target-bitrate property

nTargetBitrate and nEncodeBitrate are defined in bits per second in the
OMX spec.
Comment 30 Guillaume Desmottes 2018-01-30 10:33:43 UTC
Created attachment 367627 [details] [review]
omxvideoenc: add zynqultrascaleplus specific properties
Comment 31 Guillaume Desmottes 2018-01-30 10:33:48 UTC
Created attachment 367628 [details] [review]
omxh264enc: add some encoding properties

entropy-mode, constrained-intra-prediction and loop-filter-mode.
Those map standard OMX settings.
Comment 32 Guillaume Desmottes 2018-01-30 10:33:54 UTC
Created attachment 367629 [details] [review]
omxh265enc: add some encoding properties

constrained-intra-prediction and loop-filter-mode.
Those map standard OMX settings.
Comment 33 Nicolas Dufresne (ndufresne) 2018-01-30 11:51:56 UTC
Attachment 367625 [details] pushed as 52de8ea - omxvideodec: add internal-entropy-buffers property on zynqultrascaleplus
Attachment 367626 [details] pushed as d14b9ff - omxvideoenc: document unit of target-bitrate property
Attachment 367627 [details] pushed as e339621 - omxvideoenc: add zynqultrascaleplus specific properties
Attachment 367628 [details] pushed as 74376fe - omxh264enc: add some encoding properties
Attachment 367629 [details] pushed as 8bd2b1f - omxh265enc: add some encoding properties