summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Release 1.13.11.13.1Tim-Philipp Müller2018-02-155-623/+116
|
* omxh265enc: fix typo in "periodicty-idr" property nameGuillaume Desmottes2018-02-121-1/+1
| | | | | | | | | | | | Also fix the 'nick' of the property. omxh265enc is based on the code from omxh264enc and suffers the same typo as we fixed in https://bugzilla.gnome.org/show_bug.cgi?id=784370 This element isn't part of a stable release yet so it's not an API break. https://bugzilla.gnome.org/show_bug.cgi?id=793390
* meson: make version numbers ints and fix int/string comparisonTim-Philipp Müller2018-02-081-9/+5
| | | | | | | | WARNING: Trying to compare values of different types (str, int). The result of this is undefined and will become a hard error in a future Meson release. Also remove unused libversion/soversion.
* include all OMX extension headers if presentGuillaume Desmottes2018-01-303-1/+89
| | | | | | | | The OMX specs defines 8 headers that implementations can use to define their custom extensions. We were checking and including 3 and ignoring the other ones. https://bugzilla.gnome.org/show_bug.cgi?id=792043
* meson: simplify OMX extensions detectionGuillaume Desmottes2018-01-303-38/+26
| | | | | | | We are now always checking which files are present or not, even when using our internal copy of OMX, rather than hardcoding the ones present in it. https://bugzilla.gnome.org/show_bug.cgi?id=792043
* Revert "meson: use include_directories() with external OMX headers path"Nicolas Dufresne2018-01-303-26/+39
| | | | This reverts commit 9d37a92a615e54e8ee12f8c65bcfe386ec9de2d0.
* omxh265enc: add some encoding propertiesGuillaume Desmottes2018-01-302-0/+74
| | | | | | | constrained-intra-prediction and loop-filter-mode. Those map standard OMX settings. https://bugzilla.gnome.org/show_bug.cgi?id=792528
* omxh264enc: add some encoding propertiesGuillaume Desmottes2018-01-302-0/+108
| | | | | | | entropy-mode, constrained-intra-prediction and loop-filter-mode. Those map standard OMX settings. https://bugzilla.gnome.org/show_bug.cgi?id=792528
* omxvideoenc: add zynqultrascaleplus specific propertiesGuillaume Desmottes2018-01-302-1/+607
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=792528
* omxvideoenc: document unit of target-bitrate propertyGuillaume Desmottes2018-01-301-1/+1
| | | | | | | nTargetBitrate and nEncodeBitrate are defined in bits per second in the OMX spec. https://bugzilla.gnome.org/show_bug.cgi?id=792528
* omxvideodec: add internal-entropy-buffers property on zynqultrascaleplusGuillaume Desmottes2018-01-302-1/+111
| | | | | | | Custom property to control the number of internal buffers used in the decoder to smooth out entropy decoding performance. https://bugzilla.gnome.org/show_bug.cgi?id=792528
* meson: use include_directories() with external OMX headers pathGuillaume Desmottes2018-01-303-39/+26
| | | | | | | | | | | It seems cleaner to use the proper meson tools to include this path rather than manually tweak the build flags. This also allows us to simplify the OMX extensions detection code. We are now always checking which files are present, even when using our internal copy of OMX, rather than hardcoding the ones present in it. https://bugzilla.gnome.org/show_bug.cgi?id=792043
* omxvideoenc: expose chroma format and bit depth in output capsGuillaume Desmottes2018-01-301-0/+56
| | | | | | | As we added in the parser (bgo#792039) expose the chroma and bit depth information in output caps. https://bugzilla.gnome.org/show_bug.cgi?id=792040
* omxvideoenc: factor out get_output_caps()Guillaume Desmottes2018-01-301-2/+13
| | | | | | No semantic change so far. https://bugzilla.gnome.org/show_bug.cgi?id=792040
* omxvideodec: add hack to pass color format from caps to OMX decoderGuillaume Desmottes2018-01-304-2/+93
| | | | | | | | | | | This hack tries to pass as much information as possible from caps to the decoder before it receives any buffer. These information can be used by the OMX decoder to, for example, pre-allocate its internal buffers before starting to decode and so reduce its initial latency. This mechanism is currently supported by the zynqultrascaleplus decoder. https://bugzilla.gnome.org/show_bug.cgi?id=792040
* log failing OMX calls as errorsGuillaume Desmottes2018-01-291-17/+27
| | | | | | | | | I find it confusing when debugging that OMX calls returning an error where not logged as GST_LEVEL_ERROR making them harder to spot. Fix this by introducing simple log macros checking the return value of the OMX call and logging failures as errors. https://bugzilla.gnome.org/show_bug.cgi?id=791069
* add OMX_PERFORMANCE debug categoryGuillaume Desmottes2018-01-291-0/+40
| | | | | | | | | | | | | | | Can be used to log buffers exchange between OMX and gst-omx to profile performances of the OMX component. Ideally this should be done using tracer hooks but it's currently not possible to define custom hooks outside of core. Use GST_DEBUG="OMX_PERFORMANCE:8" to enable it. See also https://github.com/gdesmott/gst-log-parser/blob/master/src/bin/omx-perf.rs as a simple program consuming those logs to generate gnuplot files and stats. https://bugzilla.gnome.org/show_bug.cgi?id=791093
* omxvideoenc: implement dmabuf import on zynqultrascaleplusGuillaume Desmottes2018-01-294-15/+98
| | | | | | | | | | 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: drop late input frames if QoS is enabledGuillaume Desmottes2018-01-221-0/+11
| | | | | | | | Make use of the new GstVideoEncoder QoS API to drop late input frames. This may help a live pipeline to catch up if it's being late and all frames end up being dropped at the sink. https://bugzilla.gnome.org/show_bug.cgi?id=792783
* TestEgl: Removed redundant/unused codeAshish Kumar2018-01-191-9/+0
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=788550
* omxvideoenc: early return in fill_buffer() if something goes wrongGuillaume Desmottes2018-01-071-4/+4
| | | | | | | | | | | | If something goes wrong while trying to manually copy the input buffer, the 'break' was moving us out of the 'for' loop but not out of the switch block. So we ended up calling gst_video_frame_unmap() a second time (raising assertions) and returning TRUE rather than FALSE. Reproduced with a WIP zynqultrascaleplus OMX branch reporting wrong buffer sizes and so triggering this bug. https://bugzilla.gnome.org/show_bug.cgi?id=792167
* meson: gl: the winsys and platform list in the .pc file is space-separatedTim-Philipp Müller2017-12-191-2/+2
|
* meson: fix subproject fallback for gstreamer-gl-1.0Tim-Philipp Müller2017-12-191-2/+2
| | | | It's now in -base.
* omxvideodec: ignore very little variations of the framerateJulien Isorce2017-12-143-1/+20
| | | | | | | | | | | | | If less than 1%. The dynamic format change should not happen when the resolution does not change and when only the framerate changes but very slightly, i.e. from 50000/1677=29.81 to 89/3=29.66 so a "percentage change" of less than 1% (i.e. 100*(29.81-29.66)/29.66 = 0.50 < 1 ). In that case just ignore it to avoid unnecessary renegotiation. https://bugzilla.gnome.org/show_bug.cgi?id=759043
* omxvideodec: use dynamic buffer mode on input if possibleGuillaume Desmottes2017-12-142-25/+154
| | | | | | | | Prevent from copying the input buffers between GStreamer and OMX. Tested on zynqultrascaleplus and rpi (without dynamic buffers). https://bugzilla.gnome.org/show_bug.cgi?id=787093
* omxvideoenc: use dynamic buffer mode on input if possibleGuillaume Desmottes2017-12-142-1/+116
| | | | | | | | | | 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/dec: factor out input buffer allocationGuillaume Desmottes2017-12-142-10/+26
| | | | | | | No semantic change so far. I'm going to add an alternate way to allocate input buffers. https://bugzilla.gnome.org/show_bug.cgi?id=787093
* omx: add API to implement dynamic buffers supportGuillaume Desmottes2017-12-142-0/+166
| | | | | | | | | | | | OMX 1.2.0 introduced a third way to manage buffers by allowing components to only allocate buffers header during their initialization and change their pBuffer pointer at runtime. This new feature can save us a copy between GStreamer and OMX for each input buffer. This patch adds API to allocate and use such buffers. https://bugzilla.gnome.org/show_bug.cgi?id=787093
* Automatic update of common submoduleMatthew Waters2017-12-141-0/+0
| | | | From e8c7a71 to 3fa2c9e
* omxvideodec: consolidate the decision to try UseBufferJulien Isorce2017-12-131-3/+8
| | | | | | | | The tee element can call gst_query_add_allocation_pool with pool as NULL. Checking nth > 0 is not enough so we need to verify if there is a pool. https://bugzilla.gnome.org/show_bug.cgi?id=730758 https://bugzilla.gnome.org/show_bug.cgi?id=784069
* gstomxvideodec: fix framerate overflowJulien Isorce2017-12-134-18/+21
| | | | | | | | | Some live streams can set the framerate to 50000/1677 (=29.81). GstVideoInfo.fps_n << 16 is wrong if the fps_n is 50000 (i.e. greater than 32767). https://bugzilla.gnome.org/show_bug.cgi?id=759043
* example: port testegl.c to desktopJulien Isorce2017-12-115-7/+97
| | | | | | | | | Will be easier to maintain. Also uniformize autotool build with meson build which is already retrieving the gl libs. https://bugzilla.gnome.org/show_bug.cgi?id=781606
* meson: move omx features check after target selectionJulien Isorce2017-12-111-46/+46
| | | | | | | | | | | | And uses gst_omx_args instead of add_global_arguments. Similar to c69232852120d064c689caef07b3c68ad8fe6288 which was only for configure.ac Useful to get omxvp8dec with meson too: meson . buildtmp -D with_omx_target=tizonia https://bugzilla.gnome.org/show_bug.cgi?id=782800
* config: add OMX.Aratelia.audio_decoder.aac to Tizonia configJulien Isorce2017-12-111-0/+8
| | | | | | | | Useful mostly for testing/debugging purpose as this is a software based decoder (libfaad) for which GStreamer provides a direct wrapper. https://bugzilla.gnome.org/show_bug.cgi?id=791482
* omxvideodec: retrieve OMX_IndexParamVideoPortFormat before setting itGuillaume Desmottes2017-11-291-0/+8
| | | | | | | | | | The usual pattern when setting OMX params is to first get the struct param, override the values we want to set and then set the updated param. We were not doing this with OMX_IndexParamVideoPortFormat and so were resetting some fields such as OMX_VIDEO_PARAM_PORTFORMATTYPE.xFramerate https://bugzilla.gnome.org/show_bug.cgi?id=790979
* omxaacenc: also set 'profile' if mpegversion is 4Julien Isorce2017-11-291-1/+1
| | | | | | | Like done by gst_codec_utils_aac_caps_set_level_and_profile which is called by avenc_aac, ffaac and voaacenc. https://bugzilla.gnome.org/show_bug.cgi?id=735208
* omx: wait for flush complete and buffers being released when flushingGuillaume Desmottes2017-11-281-1/+1
| | | | | | | | | | | | | | | As stated in the existing comment, when flusing we should wait for OMX to send the flush command complete event AND all ports being released. We were stopping as soon as one of those condition was met. Fix a race between FillThisBufferDone/EmptyBufferDone and the flush EventCmdComplete messages. The OMX implementation is supposed to release its buffers before posting the EventCmdComplete event but the ordering isn't guaranteed as the FillThisBufferDone/EmptyBufferDone and EventHandler callbacks can be called from different threads (cf 2.7 'Thread Safety' in the spec). https://bugzilla.gnome.org/show_bug.cgi?id=789475
* gst_omx_port_set_flushing: simplify waiting loopGuillaume Desmottes2017-11-281-3/+8
| | | | | | | | | | | No semantic change so far, I just made the 'while' end condition easier to understand as a first step before changing it. - move error/time out checks inside the loop to make it clearer on what we are actually waiting for. - group port->buffers checks together with parenthesis as they are part of the same conceptual check: waiting for all buffers to be released. https://bugzilla.gnome.org/show_bug.cgi?id=789475
* Automatic update of common submoduleMatthew Waters2017-11-271-0/+0
| | | | From 3f4aa96 to e8c7a71
* zynqultrascaleplus: add support for extra AVC levelsGuillaume Desmottes2017-11-232-0/+24
| | | | | | | The Zynqultrascaleplus has support for extra AVC levels not defined in the OMX spec as a customer extension. https://bugzilla.gnome.org/show_bug.cgi?id=790758
* add test supportGuillaume Desmottes2017-10-1912-6/+373
| | | | | | | Most of the boilerplate and the states test has been copied from gst-plugins-good. https://bugzilla.gnome.org/show_bug.cgi?id=789094
* meson: add tools supportGuillaume Desmottes2017-10-192-1/+9
| | | | | | | Looks like the tools directory was left out during the initial port to meson. https://bugzilla.gnome.org/show_bug.cgi?id=789090
* omx: fix build on rpiGuillaume Desmottes2017-10-191-1/+1
| | | | | | | | | The nTimeStamp field is a OMX_TICKS struct on the rpi so use the proper macro to set it. Fix build on the build which has been broken by b3173144b7c1b12c9e1b7571f78659be45d813f6 https://bugzilla.gnome.org/show_bug.cgi?id=789052
* check if Allegro headers are present when building zynqultrascaleplusGuillaume Desmottes2017-10-192-0/+11
| | | | | | | | The Zynq UltraScale+ uses a custom version of OMX implementing several 3rd party extensions. Make sure those are present when building this target. https://bugzilla.gnome.org/show_bug.cgi?id=788064
* omxvideodec: remove redundant debug messageGuillaume Desmottes2017-10-191-2/+0
| | | | | | We have already a debug message right after. https://bugzilla.gnome.org/show_bug.cgi?id=789058
* omxh265: fix enum casting when using Allegro HEVC extensionsGuillaume Desmottes2017-10-192-3/+12
| | | | | | | | Allegro's HEVC implementation defines a superset of the profiles and enums from the Android implementation. Properly cast to fix -Wenum-conversion warnings from clang. https://bugzilla.gnome.org/show_bug.cgi?id=789057
* properly cast extension enumsGuillaume Desmottes2017-10-192-2/+4
| | | | | | | | | | OMX's allow 3rds party to define extensions using their own enums (like OMX_VIDEO_CODINGEXTTYPE) and to be used as the general ones (like OMX_VIDEO_CODINGTYPE). Properly cast those to fix -Wenum-conversion warnings from some compilers such as clang. https://bugzilla.gnome.org/show_bug.cgi?id=789057
* omx: also reset nTimeStamp when re-using buffersGuillaume Desmottes2017-10-111-0/+1
| | | | | | | Some OMX implementations may check if the timestamp of the output buffers they receive is actually not set. https://bugzilla.gnome.org/show_bug.cgi?id=788711
* omx: factor out gst_omx_buffer_reset()Guillaume Desmottes2017-10-111-12/+11
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=788711
* add gst_omx_buffer_flags_to_string()Guillaume Desmottes2017-10-114-6/+98
| | | | | | | Make debug logs more readable so users don't have to manually figure out the meaning of flags. https://bugzilla.gnome.org/show_bug.cgi?id=788767