summaryrefslogtreecommitdiff
path: root/omx/gstomxvideoenc.h
Commit message (Collapse)AuthorAgeFilesLines
* omxvideoenc: Add look-ahead property to ZYNQ_USCALE_PLUS encoderVarunkumar Allagadapa2020-01-091-0/+1
| | | | | | | | | This patch adds look-ahead property to encoder The value indicates look ahead size in frames, the number of frames processed ahead of second pass encoding. Dual pass encoding is disabled if look-ahead value is less than 2.
* omxvideoenc: Add long-term-ref support to ZYNQ_USCALE_PLUS encoderVarunkumar Allagadapa2020-01-091-0/+2
| | | | | | | | | | | | | | | | | | | | | | | Custom API that upstream elements can use to notify encoders about marking longterm ref. pictures or using longterm ref. pictures in encoding process. This patch adds below properties: long-term-ref: Enable/Disable dynamically marking long-term reference pictures in encoding process long-term-freq: Periodicity of long-term reference picture marking in encoding process. If a picture is marked as long-term reference picture then it remains in the DPB list for ever unless it overrides with new long-term pitcure with same index. Encoder can use this long-term picture as refence for encoding. This feature is mostly useful to avoid visual artifacts propagation in streaming use cases when packet loss happens. Instead of requesting for IDR, client can request for use long-term reference picture for encoding.
* omxvideoenc: implement dmabuf export on input buffersGuillaume Desmottes2018-08-301-0/+3
| | | | | | | | | | Propose pool upstream so input buffers can be allocated by the port and exported as dmabuf. The actual OMX buffers are allocated when the pool is activated, so we don't end up doing useless allocations if the pool isn't used. https://bugzilla.gnome.org/show_bug.cgi?id=796918
* omxvideoenc: implement decide_allocationGuillaume Desmottes2018-06-081-0/+2
| | | | | | | | | Increase the number of output buffers by the number of buffers requested downstream. Prevent buffers starvation if downstream is going to use dynamic buffer mode on its input. https://bugzilla.gnome.org/show_bug.cgi?id=795746
* omxvideoenc: always signal drain cond when stopping streaming loopGuillaume Desmottes2018-06-081-1/+1
| | | | | | Similar change as the one I just did in omxvideodec. https://bugzilla.gnome.org/show_bug.cgi?id=796207
* omxvideoenc: restore OMX default target-bitrate if requested by userGuillaume Desmottes2018-04-231-0/+2
| | | | | | | | | | | | | | 0xffffffff is the magic number in gst-omx meaning 'the default value defined in OMX'. This works fine with OMX parameters which are only set once when starting the component but not with configs which can be changed while PLAYING. Save the actual OMX default bitrate so we can restore it later if user sets back 0xffffffff on the property. Added GST_OMX_PROP_OMX_DEFAULT so we stop hardcoding magic numbers everywhere. https://bugzilla.gnome.org/show_bug.cgi?id=794998
* videoenc: implement ROI on zynqultrascaleplusGuillaume Desmottes2018-02-211-0/+5
| | | | | | | | | Check input buffers for ROI meta and pass them to the encoder by using zynqultrascaleplus's custom OMX extension. Also add a new "default-roi-quality" in order to tell the encoder what quality level should be applied to ROI by default. https://bugzilla.gnome.org/show_bug.cgi?id=793696
* omxvideoenc: protect target_bitrate with the object lockGuillaume Desmottes2018-02-211-1/+1
| | | | | | | | The 'target-bitrate' property can be changed while PLAYING (GST_PARAM_MUTABLE_PLAYING). Make it thread-safe to prevent concurrent accesses between the application and streaming thread. https://bugzilla.gnome.org/show_bug.cgi?id=793458
* omxvideoenc: add zynqultrascaleplus specific propertiesGuillaume Desmottes2018-01-301-0/+17
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=792528
* omxvideoenc: implement dmabuf import on zynqultrascaleplusGuillaume Desmottes2018-01-291-0/+2
| | | | | | | | | | The Zynq UltraScale+ encoder implements a custom OMX extension to directly import dmabuf saving the need of mapping input buffers. This can be use with either 'v4l2src io-mode=dmabuf' or an OMX video decoder upstream. https://bugzilla.gnome.org/show_bug.cgi?id=792361
* omxvideoenc: use dynamic buffer mode on input if possibleGuillaume Desmottes2017-12-141-0/+2
| | | | | | | | | | If the OMX component supports dynamic buffer mode and the input buffers are properly aligned avoid copying each input frame between OMX and GStreamer. Tested on zynqultrascaleplus and rpi (without dynamic buffers). https://bugzilla.gnome.org/show_bug.cgi?id=787093
* omxvideoenc: factor out enable and disable codeGuillaume Desmottes2017-08-081-0/+2
| | | | | | | | | | No semantic change, just factor out the code enabling and disabling the component to their own functions. Makes the code easier to read as the set_format() method was already pretty big. Will also allow us to easily change the enabling logic. https://bugzilla.gnome.org/show_bug.cgi?id=785967
* omx: Let base classes handle EOSSebastian Dröge2014-08-141-3/+0
| | | | https://bugzilla.gnome.org//show_bug.cgi?id=734774
* omxvideoenc: drop unused data memberJosep Torra2013-03-011-3/+0
|
* omxvideoenc: Rename component variableSebastian Dröge2013-02-251-2/+2
|
* omx: Some minor refactoring and cleanupSebastian Dröge2013-02-121-1/+0
|
* omx: Fix includes to properly work with the 1.0 releasesSebastian Dröge2013-01-171-0/+1
|
* omx: Fix some compilation errors caused by circular includesSebastian Dröge2012-12-121-1/+1
|
* omx: Update to new GLib thread APISebastian Dröge2012-11-121-2/+2
|
* omx: Port to video base classes from -baseSebastian Dröge2012-10-221-6/+7
|
* Port to Gst 0.11Olivier Crête2012-04-131-12/+6
|
* omxvideoenc: Use correct timestamp, duration and filled length for the EOS ↵Sebastian Dröge2011-12-061-0/+2
| | | | buffers
* omxvideoenc: Add vfunc for handling the output framesSebastian Dröge2011-11-151-0/+1
| | | | | This can be used by subclasses to override the buffer flags or to handle some frames differently than the default behaviour.
* omxvideoenc: Don't try to drain the component after EOSSebastian Dröge2011-11-081-0/+3
| | | | | | And don't send EOS twice in any case. This most likely will cause the component to not output it again and is not necessary anyway.
* omxvideoenc: Better handling of encoder parametersSebastian Dröge2011-11-021-1/+1
| | | | | Only set them if necessary and allow to use the component defaults.
* omxvideoenc: Implement draining of the component and use itSebastian Dröge2011-11-011-0/+6
| | | | | This makes sure that all buffers are encoded and pushed downstream before flushing the ports and losing some buffers.
* omxaudioenc: Forward downstream flow returns to upstreamSebastian Dröge2011-11-011-0/+2
|
* omxvideoenc: Add support for setting bitrate/quantization related parametersSebastian Dröge2011-07-281-0/+7
|
* omxvideoenc: Add video encoder base class and MPEG4 video encoderSebastian Dröge2011-07-201-0/+85
Unfortunately requires lots of hacks again to work properly with Bellagio.