1 2022-10-04 03:57:31 +0100 Tim-Philipp Müller <tim@centricular.com>
5 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3115>
9 2022-10-04 01:14:01 +0100 Tim-Philipp Müller <tim@centricular.com>
18 2022-10-04 01:13:59 +0100 Tim-Philipp Müller <tim@centricular.com>
21 Update ChangeLogs for 1.21.1
23 2022-09-21 19:19:45 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
26 meson: Use implicit builtin dirs in pkgconfig generation
27 Starting with Meson 0.62, meson automatically populates the variables
28 list in the pkgconfig file if you reference builtin directories in the
29 pkgconfig file (whether via a custom pkgconfig variable or elsewhere).
30 We need this, because ${prefix}/libexec is a hard-coded value which is
31 incorrect on, for example, Debian.
32 Bump requirement to 0.62, and remove version compares that retained
33 support for older Meson versions.
34 Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1245
35 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3061>
37 2021-03-24 14:20:18 -0500 Zebediah Figura <z.figura12@gmail.com>
40 meson: Build with -Wl,-z,nodelete to prevent unloading of dynamic libraries and plugins
41 GLib made the unfortunate decision to prevent libgobject from ever being
42 unloaded, which means that now any library which registers a static type
43 can't ever be unloaded either (and any library that depends on those,
45 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/778>
47 2022-09-01 11:51:48 -0400 Thibault Saunier <tsaunier@igalia.com>
50 meson: Namespace the plugins_doc_dep/libraries variables
51 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
53 2022-06-29 10:55:13 +0100 Tim-Philipp Müller <tim@centricular.com>
56 coding style: allow declarations after statement
57 See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/
58 and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78
59 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2683>
61 2022-04-06 12:56:30 +0100 Tim-Philipp Müller <tim@centricular.com>
64 Bump GLib requirement to >= 2.62
65 Can't require 2.64 yet because of
66 https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/323
67 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2568>
69 2022-03-30 11:06:02 -0400 Xavier Claessens <xavier.claessens@collabora.com>
72 Use gmodule-no-export-2.0
73 We don't need `-Wl,--export-dynamic`, that's used only for executables
74 that needs to export an API to be used by plugins they load.
75 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031>
77 2022-03-25 15:00:20 -0400 Xavier Claessens <xavier.claessens@collabora.com>
81 * tests/check/meson.build:
83 Remove glib and gobject dependencies everywhere
84 They are part of gst_dep already and we have to make sure to always have
85 gst_dep. The order in dependencies matters, because it is also the order
86 in which Meson will set -I args. We want gstreamer's config.h to take
87 precedence over glib's private config.h when it's a subproject.
88 While at it, remove useless fallback args for gmodule/gio dependencies,
89 only gstreamer core needs it.
90 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031>
92 2022-03-18 13:42:27 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
95 meson: Bump all meson requirements to 0.60
96 Lots of new warnings ever since
97 https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1934
98 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1977>
100 2022-02-21 11:37:26 -0500 Xavier Claessens <xavier.claessens@collabora.com>
102 * config/meson.build:
104 devenv: Add some missing GStreamer specific env variables
105 This should make "meson devenv" closer to what "gst-env.py" sets.
106 - GST_VALIDATE_SCENARIOS_PATH
107 - GST_VALIDATE_APPS_DIR
109 - GST_ENCODING_TARGET_PATH
114 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1768>
116 2022-02-04 11:15:47 +0000 Tim-Philipp Müller <tim@centricular.com>
120 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1635>
122 === release 1.20.0 ===
124 2022-02-03 19:53:25 +0000 Tim-Philipp Müller <tim@centricular.com>
133 2022-02-03 19:53:18 +0000 Tim-Philipp Müller <tim@centricular.com>
136 Update ChangeLogs for 1.20.0
138 === release 1.19.90 ===
140 2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>
149 2022-01-28 14:28:28 +0000 Tim-Philipp Müller <tim@centricular.com>
152 Update ChangeLogs for 1.19.90
154 2022-01-05 02:07:59 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
157 meson: Add explicit check: kwarg to all run_command() calls
158 This is required since Meson 0.61.0, and causes a warning to be
160 https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c
161 https://github.com/mesonbuild/meson/issues/9300
162 This exposed a bunch of places where we had broken run_command()
163 calls, unnecessary run_command() calls, and places where check: true
165 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1507>
167 2021-11-03 18:44:03 +0000 Tim-Philipp Müller <tim@centricular.com>
172 === release 1.19.3 ===
174 2021-11-03 15:43:36 +0000 Tim-Philipp Müller <tim@centricular.com>
183 2021-11-03 15:43:32 +0000 Tim-Philipp Müller <tim@centricular.com>
186 Update ChangeLogs for 1.19.3
188 2021-10-18 15:47:00 +0100 Tim-Philipp Müller <tim@centricular.com>
190 * tests/check/meson.build:
191 meson: update for meson.build_root() and .build_source() deprecation
192 -> use meson.project_build_root() or .global_build_root() instead.
193 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
195 2021-10-18 00:40:14 +0100 Tim-Philipp Müller <tim@centricular.com>
199 * tests/check/meson.build:
200 meson: update for dep.get_pkgconfig_variable() deprecation
201 ... in favour of dep.get_variable('foo', ..) which in some
202 cases allows for further cleanups in future since we can
203 extract variables from pkg-config dependencies as well as
204 internal dependencies using this mechanism.
205 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
207 2021-10-14 18:38:26 +0100 Tim-Philipp Müller <tim@centricular.com>
210 meson: bump meson requirement to >= 0.59
211 For monorepo build and ugly/bad, for advanced feature
212 option API like get_option('xyz').required(..) which
213 we use in combination with the 'gpl' option.
214 For rest of modules for consistency (people will likely
215 use newer features based on the top-level requirement).
216 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1084>
218 2021-09-28 10:11:15 +1000 Brad Hards <bradh@frogmouth.net>
221 doc: update IRC links to OFTC
222 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/945>
224 2021-09-26 01:07:02 +0100 Tim-Philipp Müller <tim@centricular.com>
228 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/925>
230 === release 1.19.2 ===
232 2021-09-23 01:36:02 +0100 Tim-Philipp Müller <tim@centricular.com>
241 2021-07-09 15:14:15 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
243 * omx/gstomxvideodec.c:
244 omxvideodec: fix OMX flags on header buffer
245 The header (SPS/PPS) buffer should have the CODECONFIG flag
246 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-omx/-/merge_requests/49>
248 2021-07-09 14:52:59 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
250 * omx/gstomxvideodec.c:
251 omxvideodec: allow to start decoder on HEADER buffer
252 If the headers are sent in their own buffer
253 it won't have the SYNC_FRAME flag but we still
254 do want to start decoding rather than dropping it.
255 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-omx/-/merge_requests/49>
257 2018-09-06 21:56:57 +0000 Nicolas Dufresne <nicolas.dufresne@collabora.com>
260 * omx/gstomxh264dec.c:
261 * omx/gstomxh265dec.c:
262 * omx/gstomxvideodec.c:
263 omxh26xdec: videodecoder support subframe
264 Use of subframe API from videodecoder base class.
265 This subframe allows to decode subframe instead of
266 waiting for a whole frame.
267 The subframe uses the same frame over the whole
268 subframe passing process and will wait
269 for a signal to know the last subframe.
270 In this implementation it will use
271 GST_VIDEO_BUFFER_FLAG_MARKER as the
272 end of batch of subframes.
273 This implement subframe mode negotation for the Zynq based on caps
274 negotation. This mode can be combined with low-latency mode, in order to
275 reach the lowest possible latency (assuming the stream is within the
276 low-latency constraints for the HW).
277 ... ! video/x-h264,alignment=nal ! omxh264dec ! ...
278 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-omx/-/merge_requests/49>
280 2021-06-01 15:29:18 +0100 Tim-Philipp Müller <tim@centricular.com>
285 === release 1.19.1 ===
287 2021-06-01 00:16:41 +0100 Tim-Philipp Müller <tim@centricular.com>
296 2020-11-04 18:48:13 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
299 meson: Enable some MSVC warnings for parity with GCC/Clang
300 This makes it easier to do development with MSVC by making it warn
301 on common issues that GCC/Clang error out for in our CI configuration.
302 Continuation from https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/223
303 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-omx/-/merge_requests/75>
305 2020-10-16 12:45:09 +0200 Stéphane Cerveau <scerveau@collabora.com>
307 * examples/egl/testegl.c:
309 meson: update glib minimum version to 2.56
310 In order to support the symbol g_enum_to_string in various
311 project using GStreamer ( gst-validate etc.), the glib minimum
312 version should be 2.56.0.
313 Remove compat code as glib requirement
315 Version used by Ubuntu 18.04 LTS
316 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-omx/-/merge_requests/74>
318 2020-10-05 12:32:10 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
320 * omx/gstomxvideodec.c:
321 omxvideodec: support interlace-mode=interleaved input
322 interlace-mode=alternate is a special case of interlace-mode=interleaved
323 where the fields are split using two different buffers.
324 The Zynq decoder always produces alternate content and we
325 used to assume that upstream will set interlace-mode=alternate in its
327 This is no longer the case as h265parse is now setting
328 alternate-mode=interleaved on alternate content to not break compat with
329 elements not supporting alternate.
330 As a result the decoder now accept both 'interleaved' and 'alternate' on
331 its input and ensures that its ouput has interlace-mode=alternate.
332 Needed to fix https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/825
333 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-omx/-/merge_requests/72>
335 2020-09-08 17:31:06 +0100 Tim-Philipp Müller <tim@centricular.com>
338 ci: include template from gst-ci master branch again
340 2020-09-08 16:59:09 +0100 Tim-Philipp Müller <tim@centricular.com>
345 === release 1.18.0 ===
347 2020-09-08 00:10:02 +0100 Tim-Philipp Müller <tim@centricular.com>
357 2020-08-27 17:19:44 +0100 Tim-Philipp Müller <tim@centricular.com>
359 * config/tizonia/meson.build:
360 meson: fix Tizonia build
361 Was failing for release versions with
362 meson.build:414:10: ERROR: Can not set values on configuration object that has been used.
363 Caused by !69, but CI didn't notice at the time because it was set to a git version.
365 === release 1.17.90 ===
367 2020-08-20 16:16:35 +0100 Tim-Philipp Müller <tim@centricular.com>
376 2020-07-08 17:39:20 +0100 Tim-Philipp Müller <tim@centricular.com>
380 * scripts/extract-release-date-from-doap-file.py:
381 meson: set release date from .doap file for releases
382 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-omx/-/merge_requests/69>
384 2020-07-03 02:04:16 +0100 Tim-Philipp Müller <tim@centricular.com>
389 === release 1.17.2 ===
391 2020-07-03 00:37:06 +0100 Tim-Philipp Müller <tim@centricular.com>
400 2020-06-20 00:28:37 +0100 Tim-Philipp Müller <tim@centricular.com>
405 === release 1.17.1 ===
407 2020-06-19 19:27:38 +0100 Tim-Philipp Müller <tim@centricular.com>
416 2020-06-16 01:20:27 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
418 * docs/gst_plugins_cache.json:
419 docs: Update plugin cache json
420 https://gitlab.freedesktop.org/alatiera/gst-ci/-/jobs/3109574
421 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-omx/-/merge_requests/68>
423 2020-06-03 22:24:09 -0400 Thibault Saunier <tsaunier@igalia.com>
425 * docs/gst_plugins_cache.json:
426 docs: Update documentation cache
428 2019-12-23 18:23:55 -0800 Dylan Yip <dylan.yip@xilinx.com>
431 omx: Add latest OMX_ALG_Index's to omx_index_type_to_str
432 Add following indexes to omx_index_type_to_str:
433 OMX_ALG_IndexParamVideoAccessUnitDelimiter
434 OMX_ALG_IndexParamVideoBufferingPeriodSEI
435 OMX_ALG_IndexParamVideoPictureTimingSEI
436 OMX_ALG_IndexParamVideoRecoveryPointSEI
437 OMX_ALG_IndexParamVideoMasteringDisplayColourVolumeSEI
438 OMX_ALG_IndexParamVideoContentLightLevelSEI
439 OMX_ALG_IndexConfigVideoRegionOfInterestByValue
440 OMX_ALG_IndexConfigVideoColorPrimaries
442 2020-05-20 17:05:33 +0200 Stéphane Cerveau <scerveau@collabora.com>
445 zynq: change API to use public 2020.01 from vcu-omx-il
446 This new release 2020.01 fixes an API typo
447 Change to OMX_ALG_IndexConfigVideoHighDynamicRangeSEI
448 instead of OMX_ALG_IndexConfigVideoHighDynamicRangeSEIs
451 2017-12-27 17:18:54 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
453 * omx/gstomxvideoenc.c:
454 omxvideoenc: factor out gst_omx_video_enc_allocate_out_buffers()
456 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-omx/-/merge_requests/66>
458 2020-04-10 11:47:03 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
460 * omx/gstomxh265enc.c:
463 * omx/gstomxvideodec.c:
464 * omx/gstomxvideoenc.c:
465 omxvideoenc: remove unsupported formats from caps template
466 Our encoder implementation actually supports a small subset of the
467 formats supported by the decoder. Those are the formats for which we
468 have a copy path in gst_omx_video_enc_fill_buffer() and which are not
469 filtered out in filter_supported_formats().
471 2020-04-10 09:59:02 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
474 video: remove BGR from supported format
475 It's not supported by either decoder or encoder and is even not listed in
476 gst_omx_video_get_format_from_omx() so it can't work.
478 2020-04-10 10:21:16 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
480 * omx/gstomxvideoenc.c:
481 omxvideoenc: add GRAY8 support
482 It's supported by Zynq encoder and was already in the sink caps
485 2020-04-10 11:18:49 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
487 * omx/gstomxvideoenc.c:
488 omxvideoenc: factor out gst_omx_video_enc_copy_plane()
489 No semantic change, I'm going to use it to copy GRAY8 buffers which is
490 actually a single plane 8-bits format.
492 2020-04-10 10:58:34 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
494 * omx/gstomxvideoenc.c:
495 omxvideoenc: use gst_video_meta_get_plane_height() to compute slice height
496 This new API saves us from doing manual computation and actually work
497 with single planar formats, such as GRAY8.
499 2020-04-07 19:59:12 +0200 Stéphane Cerveau <scerveau@collabora.com>
501 * omx/gstomxh264enc.c:
502 * omx/gstomxh265enc.c:
504 * omx/gstomxvideoenc.c:
505 omxh26xenc: fix coverity with frame test
506 Coverity was complaining with:
507 Null pointer dereferences (REVERSE_INULL) Null-checking "frame"
508 suggests that it may be null, but it has already been
509 dereferenced on all paths leading to the check.
510 The frame == NULL has been removed as 'frame' is actively used
511 in the code above without any change of dereferencing and setting
512 its value to NULL before the test.
515 2020-03-19 16:23:41 +0100 Stéphane Cerveau <scerveau@collabora.com>
517 * omx/gstomxvideoenc.c:
518 gstomxvideoenc: fix subframe output_buffer
519 Using more than 1 subframes was failing with
520 frame->output_buffer = NULL
522 2020-02-06 10:21:49 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
524 * omx/gstomxvideodec.c:
525 omxvideodec: add support of alternate interlace mode on zynq
527 2020-02-06 10:11:13 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
529 * omx/gstomxh265enc.c:
530 * omx/gstomxvideoenc.c:
531 omxvideoenc: add support of alternate interlace mode on zynq
532 It's only supported by the Zynq HEVC encoder for now.
534 2020-02-06 10:12:50 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
537 omx: add alternate flags to buffer_flags_map
538 Zynq specific flags used to tag top/bottom fields in alternate mode.
540 2020-02-06 09:57:48 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
543 * omx/gstomxvideoenc.c:
544 omxvideo(enc): use GST_VIDEO_INFO_FIELD_RATE_N()
545 Does not change anything for now but will be needed when we'll support
546 interlace-mode=alternate as the field rate will be twice the frame rate.
547 Made the code safe from division by 0 while I was on it.
549 2020-02-06 09:36:20 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
551 * omx/gstomxvideodec.c:
552 * omx/gstomxvideoenc.c:
553 omxvideo{enc,dec}: use GST_VIDEO_INFO_FIELD_HEIGHT()
554 Does not change anything for now but will be needed when we'll support
555 interlace-mode=alternate as the fields will have half the frame height.
557 2020-02-25 10:45:47 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
560 omx: don't log error when failing to load conf file with generic target
561 The generic target is meant to only test building gst-omx. It doesn't
562 provide any configuration file and so is not supposed to register any
564 I'm not aware of any user building gst-omx with this target and
565 providing their own conf file to actually register elements. But best to
566 not break this use case anyway so let's just downgrade the log message.
567 Fix GST_ERROR in the 'check fedora' CI job.
569 2020-01-27 11:56:53 +0100 Stéphane Cerveau <scerveau@collabora.com>
572 meson: add glib project fallback
573 Add a fallback from glib project to provide glib, gio and
574 gmodule dependencies.
576 2020-01-15 11:06:12 +0000 Stéphane Cerveau <scerveau@collabora.com>
578 * omx/gstomxvideoenc.c:
579 omxvideoenc: fix warning
580 Fix warning test when OMX_BUFFERFLAG_ENDOFFRAME
583 2018-08-28 13:03:14 -0700 Varunkumar Allagadapa <varunkum@xilinx.com>
585 * omx/gstomxvideoenc.c:
586 * omx/gstomxvideoenc.h:
587 omxvideoenc: Add look-ahead property to ZYNQ_USCALE_PLUS encoder
588 This patch adds look-ahead property to encoder
589 The value indicates look ahead size in frames,
590 the number of frames processed ahead of second pass encoding.
591 Dual pass encoding is disabled if look-ahead
592 value is less than 2.
594 2018-08-06 13:02:41 -0700 Varunkumar Allagadapa <varunkum@xilinx.com>
596 * omx/gstomxvideoenc.c:
597 * omx/gstomxvideoenc.h:
598 omxvideoenc: Add long-term-ref support to ZYNQ_USCALE_PLUS encoder
599 Custom API that upstream elements can use to notify encoders about
600 marking longterm ref. pictures or using longterm ref. pictures in
602 This patch adds below properties:
603 long-term-ref: Enable/Disable dynamically marking long-term
604 reference pictures in encoding process
605 long-term-freq: Periodicity of long-term reference picture
606 marking in encoding process.
607 If a picture is marked as long-term reference picture then it remains
608 in the DPB list for ever unless it overrides with new long-term pitcure with
609 same index. Encoder can use this long-term picture as refence for
611 This feature is mostly useful to avoid visual artifacts propagation in streaming use cases
612 when packet loss happens. Instead of requesting for IDR, client can request for use long-term
613 reference picture for encoding.
615 2020-01-07 10:24:19 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
618 meson: display OMX target when configuring
619 I'm adding more gst-omx CI (
620 https://gitlab.freedesktop.org/gstreamer/gst-ci/issues/20 ) having the
621 OMX targets displayed in the logs makes things clearer.
623 2019-08-30 10:27:32 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
626 omx: remove useless double negations
627 flush and port->flushing are both gboolean.
629 2019-12-20 22:19:06 -0800 Julien Isorce <jisorce@oblong.com>
632 meson: fix tizonia build
633 meson.build was both using path to gst-omx/openmax/OMX*
634 headers and path to OMX headers provided by tizilheaders.pc
635 so this patch makes sure we only use the later.
636 Also bump tizonia minimum version to 0.19.0 which
637 is the latest release.
639 2019-05-16 10:50:18 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
641 * omx/gstomxh265enc.c:
642 * omx/gstomxh265enc.h:
643 omxh265enc: handle CODECCONFIG buffers
644 Exact same code as omxh264enc.
646 2019-05-16 10:38:49 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
648 * omx/gstomxh264enc.c:
649 omxh264enc: send codec data downstream
650 We are operating in stream-format=byte-stream so the codec data buffer
651 is meant to be part of the buffer flow.
652 The base class will push it when a key frame is requested (as we stored
653 it with gst_video_encoder_set_headers()) but we still have to push it
654 right away as part of the normal buffer flow.
655 Also set the HEADER flag on this buffer.
657 2019-05-16 10:38:49 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
659 * omx/gstomxh264enc.c:
660 omxh264enc: no need to check if codeconfig has startcode
661 We currently only support stream-format=byte-stream so there is no point
662 re-checking for it when handling CODECCONFIG buffer.
664 2018-09-04 20:12:17 +0000 Nicolas Dufresne <nicolas.dufresne@collabora.com>
666 * omx/gstomxh264enc.c:
667 * omx/gstomxh265enc.c:
668 omxh26xenc: Negotiate subframe mode
669 We now negotiate subframe mode through the caps. To enabled subframe
670 mode, the caps need to specify alignment=nal:
671 ... ! omxh264enc ! video/x-h264,alignment=nal ! ...
672 ... ! omxh265enc ! video/x-h265,alignment=nal ! ...
674 2018-08-31 12:24:34 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
676 * omx/gstomxvideoenc.c:
677 omxvideoenc: use subframe base class API
678 Use subframe base class support.
680 2018-09-04 19:34:59 +0000 Nicolas Dufresne <nicolas.dufresne@collabora.com>
684 omx: Add helper to enable/disable/read subframe mode
686 2019-12-19 13:51:17 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
689 zynq: add mapping for latest custom indexes
690 Fix warning when building using version 2019.2 of OMX headers.
692 2019-09-12 16:29:59 -0700 Varunkumar Allagadapa <varunkumar.allagadapa@xilinx.com>
694 * omx/gstomxvideoenc.c:
695 omxvideoenc: update qp-mode settings
696 Adds load-qp-absolute and load-qp-relative qp-modes
698 2019-12-10 18:34:25 +0900 Shinya Saito <ssaito@igel.co.jp>
700 * omx/gstomxvideoenc.c:
701 omxvideoenc: Add stride check for input buffer extraction
702 Stride of input buffer may be different from
703 that of omx input port even if both sizes are the same.
705 2019-05-15 14:04:47 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
707 * omx/gstomxvideoenc.c:
708 omxvideoenc: pass padding requirements to ALLOCATION query
709 By passing the expected video buffer layout, the upstream producer
710 may be able to produce buffers fitting those requierements allowing
711 gst-omx to use dynamic buffer mode rather than having to copy each input
713 This is particularly useful with v4l2src as it can request the capture
714 driver to produce buffers with the required paddings.
716 2019-07-09 13:07:32 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
718 * omx/gstomxbufferpool.c:
721 omxbufferpool: use gst_video_meta_set_alignment()
722 Tell buffer consumer about our paddings.
723 v4l2src can now uses these paddings information when trying to import
724 buffers to configure the v4l2 driver accordingly.
726 2019-05-30 11:11:34 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
728 * omx/gstomxvideoenc.c:
729 omxvideoenc: fix buffer size in debug log
730 Use the actual OMX buffer size rather than the info.size as OMX
731 may require larger buffer if the port requires some padding.
733 2019-10-14 00:48:32 +0100 Tim-Philipp Müller <tim@centricular.com>
740 * config/Makefile.am:
741 * config/bellagio/Makefile.am:
742 * config/rpi/Makefile.am:
743 * config/tizonia/Makefile.am:
744 * config/zynqultrascaleplus/Makefile.am:
746 * examples/Makefile.am:
747 * examples/egl/Makefile.am:
751 * tests/check/.gitignore:
752 * tests/check/Makefile.am:
753 * tests/check/generic/.gitignore:
755 Remove autotools build
757 2019-10-07 16:59:10 +0000 Stéphane Cerveau <scerveau@collabora.com>
759 * omx/gstomxallocator.c:
760 omxallocator: fix leak with a proper chaining finalize
762 2019-09-20 15:02:24 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
764 * omx/gstomxvideoenc.c:
765 omxvideoenc: revert draining on ALLOCATION and DRAIN query
766 My latest patch introduces some regressions which I have no time to
767 debug properly at the moment so just revert it for now.
769 2019-09-17 13:02:54 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
771 * omx/gstomxvideoenc.c:
772 omxvideoenc: let encoder base class handle ALLOCATION query
773 Fixing a regression introduced in my previous patch
774 (7c40a91c31aa4bcbb191f7c6a5d222edf9dfd9d1).
775 The ALLOCATION query needs to be handled by GstVideoEncoder (to call
776 propose_allocation()) so chain up the query handling rather than early
779 2019-08-29 12:20:56 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
781 * omx/gstomxvideoenc.c:
782 omxvideoenc: drain encoder on ALLOCATION and DRAIN queries
783 Ensure that the encoder releases all its input buffers when requested by
784 upstream. Encoder input buffers may be shared with downstreaming (when
785 using dmabuf), upstream may then request the encoder to
786 drain when reconfiguring before destroying its buffers.
787 Also drain on ALLOCATION query as we already do in kmssink as that
788 notify of a format change.
789 Fix "decoder ! encoder" pipeline when decoding a file with different
792 2019-08-28 15:52:41 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
795 omx: log the number of pending buffers when port is EOS
797 2019-08-28 15:49:00 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
800 omx: log when an output port is eos
802 2019-08-27 15:47:28 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
804 * omx/gstomxvideoenc.c:
805 omxvideoenc: log the full input format
806 Make it easier to debug dynamic format changes.
808 2019-08-21 12:25:40 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
810 * omx/gstomxvideodec.c:
811 omxvideodec: fix dmabuf import
812 When importing dmabuf, UseBuffer() has to be called with the fd as
813 pBuffer rather than the mapped address of the buffer.
815 2019-08-21 12:48:25 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
817 * omx/gstomxbufferpool.c:
818 omxbufferpool: fix dmabuf import
819 When importing dmabuf from downstream, we want the allocator to be in
820 OTHER_POOL mode despite output_mode being DMABUF.
821 So check first if other_pool is set before checking for pool's
824 2019-08-22 17:55:54 +0900 Shinya Saito <ssaito@igel.co.jp>
826 * omx/gstomxvideoenc.c:
827 omxvideoenc: Remove unnecessary gst_video_frame_unmap()
829 2019-07-25 16:30:13 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
831 * omx/gstomxvideodec.c:
832 omxvideodec: log supported caps by the decoder
833 Can be useful when debugging to check the caps supported by the decoder
836 2019-07-11 12:03:46 +0900 Shinya Saito <ssaito@igel.co.jp>
838 * omx/gstomxvideoenc.c:
839 omxvideoenc: Unref frame of codec config buffer
840 After handling codec config, codec frame should be unreffed.
842 2019-06-14 16:27:37 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
845 omxvideo: check difference between frame and requested ts
846 This has proven to be very useful when debugging to detect bugs where we
847 match the wrong gst frame with an output OMX buffer.
849 2019-06-14 10:57:29 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
853 * omx/gstomxvideodec.c:
854 * omx/gstomxvideoenc.c:
855 omxvideo: add debug infos to find_nearest_frame()
856 Those debug infos have proved to be very helpful when debugging
857 timestamp issues. They are often linked to gst-omx picking the wrong
858 frame when trying to map from OMX.
860 2019-03-05 16:57:40 +0900 Shinya Saito <ssaito@igel.co.jp>
862 * omx/gstomxvideodec.c:
863 omxvideodec: Deactivate negotiated pool when output own buffer
864 If decoder outputs internal buffer and not use OMX_UseBuffer,
865 downstream bufferpool should be stopped.
867 2019-06-03 12:21:05 +0900 Shinya Saito <ssaito@igel.co.jp>
869 * omx/gstomxh264enc.c:
870 * omx/gstomxh264enc.h:
871 omxh264enc: Add 'ref-frames' property
872 Add a property to control the number of frames for reference.
873 Min and max value is based on OpenMAX IL 1.2.0 Specification.
875 2019-06-03 07:57:02 +0200 Niels De Graef <niels.degraef@barco.com>
879 meson: Bump minimal GLib version to 2.44
880 This means we can use some newer features and get rid of some
881 boilerplate code using the G_DECLARE_* macros.
882 As discussed on IRC, 2.44 is old enough by now to start depending on it.
884 2019-04-19 12:38:54 -0400 Thibault Saunier <tsaunier@igalia.com>
886 * docs/gst_plugins_cache.json:
893 doc: Build documentation of hotdoc
895 2019-03-26 12:26:03 +0200 George Kiagiadakis <george.kiagiadakis@collabora.com>
899 gstomx: remove gst_omx_buffer_set_omx_buf/get_omx_buf
900 They are no longer used anywhere
902 2019-03-22 12:11:13 +0200 George Kiagiadakis <george.kiagiadakis@collabora.com>
905 * omx/gstomxallocator.c:
906 * omx/gstomxallocator.h:
907 * omx/gstomxbufferpool.c:
908 * omx/gstomxbufferpool.h:
909 * omx/gstomxvideoenc.c:
911 omxbufferpool: refactor to allow memory sharing
912 One big restriction of the OMX buffer pool has always been
913 that the GstMemory objects were flagged with NO_SHARE.
914 This was because the buffer pool needed to be sure that when
915 a buffer returned to the pool, it would be safe to release the
916 OMX buffer back to OpenMAX.
917 With this change, this is no longer a restriction. What this
918 commit introduces is a new allocator that allows us to track
919 the GstMemory objects independently. Now, when a buffer returns
920 to the pool, it is not necessary for the memory to be released
921 as well. We simply track the memory's ref count in the allocator
922 and we return the OMX buffer back when the memory's ref count
924 The reason for doing this is to allow implementing zero-copy
925 transfers in situations where we may need to copy or map a
926 certain region of the buffer. For instance, omxh264enc ! h264parse
927 should be possible to be zero-copy by using an OMX buffer pool
930 2019-04-23 15:13:23 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
932 * omx/gstomxbufferpool.c:
933 omxbufferpool: fix memory mapping with offset
934 gst_memory_map() is already adding the offset to the mapped pointer.
935 Doing it in the memory implementation was resulting in the offset being
937 It doesn't matter yet as we are only creating memory without offset for
938 now but it will once we'll start sharing OMX memories.
940 2019-04-19 10:43:58 +0100 Tim-Philipp Müller <tim@centricular.com>
947 === release 1.16.0 ===
949 2019-04-19 00:38:44 +0100 Tim-Philipp Müller <tim@centricular.com>
959 2019-04-16 12:23:10 -0700 Julien Isorce <jisorce@oblong.com>
962 Fixes build with omx >= 1.2.0
963 gstomx.c:1405:10: error: ‘OMX_IndexParamCustomContentPipe’ undeclared (first use in this function)
964 case OMX_IndexParamCustomContentPipe
965 Some enums have been deprecated in 1.2.0
966 https://gitlab.freedesktop.org/gstreamer/gst-omx/issues/27
968 2018-05-18 10:55:21 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
971 * examples/egl/Makefile.am:
972 * examples/egl/meson.build:
973 testegl: properly detect and use rpi specific libs
974 Use pkg-config to detect and configure rpi specific libs used in testegl
975 rather than hardcoding their flags.
977 2018-05-18 10:53:34 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
979 * examples/egl/testegl.c:
980 testelg: include eglext.h
981 Neded for the declaration of eglSaneChooseConfigBRCM().
983 2018-05-18 10:38:33 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
985 * examples/egl/testegl.c:
986 testegl: move up pi specific macros
987 We need to define __VCCOREVER__ and disable redundant-decls before
988 including the egl.h from the pi.
990 === release 1.15.90 ===
992 2019-04-11 00:40:52 +0100 Tim-Philipp Müller <tim@centricular.com>
1002 2019-04-10 00:19:55 +0100 Tim-Philipp Müller <tim@centricular.com>
1005 meson: add -Wundef as additional warning flag
1007 2019-04-10 00:16:27 +0100 Tim-Philipp Müller <tim@centricular.com>
1009 * omx/gstomxvideoenc.c:
1010 omx: fix autotools build for generic target
1011 gstomxvideoenc.c:2874:7: error: "USE_OMX_TARGET_ZYNQ_USCALE_PLUS" is not defined, evaluates to 0 [-Werror=undef]
1012 #elif USE_OMX_TARGET_ZYNQ_USCALE_PLUS
1013 Works on meson because it doesn't use -Wundef
1015 2018-11-12 12:51:28 +0200 Jordan Petridis <jordan@centricular.com>
1018 Add Gitlab CI configuration
1019 This commit adds a .gitlab-ci.yml file, which uses a feature
1020 to fetch the config from a centralized repository. The intent is
1021 to have all the gstreamer modules use the same configuration.
1022 The configuration is currently hosted at the gst-ci repository
1023 under the gitlab/ci_template.yml path.
1024 Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/29
1026 2019-03-25 16:30:11 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
1029 omx: disable OMX_API_TRACE code if gst debug is disabled
1030 No need to create debug structs which won't be used as DEBUG macros are
1033 2018-10-11 10:55:04 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1036 omx: log Get/SetParameter/Config calls
1037 Extend OMX_API_TRACE by logging component configuration calls.
1039 2019-02-06 14:57:05 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
1041 * omx/gstomxbufferpool.c:
1042 omxbufferpool: don't use CAT_PERFORMANCE if pool will copy
1043 This was the single place where this category was used in gst-omx so
1044 most users, including me, are generally not turning it and were missing this
1045 important information from logs.
1046 The copying code uses gst_video_frame_copy() which is already logging
1047 with CAT_PERFORMANCE so we can still have this information when using
1048 only this debug category.
1050 2019-02-06 14:50:44 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
1052 * omx/gstomxvideodec.c:
1053 omxvideodec: add debug if proposed pool can't provide enough buffers
1054 We were silently ignoring the pool which was pretty confusing when
1057 2019-03-26 12:17:26 +0000 Charlie Turner <cturner@igalia.com>
1059 * omx/gstomxaacdec.c:
1060 * omx/gstomxaacenc.c:
1061 * omx/gstomxamrdec.c:
1062 * omx/gstomxh263dec.c:
1063 * omx/gstomxh263enc.c:
1064 * omx/gstomxh264dec.c:
1065 * omx/gstomxh264enc.c:
1066 * omx/gstomxh265dec.c:
1067 * omx/gstomxh265enc.c:
1068 * omx/gstomxmjpegdec.c:
1069 * omx/gstomxmp3dec.c:
1070 * omx/gstomxmp3enc.c:
1071 * omx/gstomxmpeg2videodec.c:
1072 * omx/gstomxmpeg4videodec.c:
1073 * omx/gstomxmpeg4videoenc.c:
1074 * omx/gstomxtheoradec.c:
1075 * omx/gstomxvp8dec.c:
1076 * omx/gstomxwmvdec.c:
1077 omx: Add hardware classifiers to encoders/decoders
1079 2019-03-25 16:01:48 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
1082 meson: sync warnings flags with -good
1083 Add more warnings flags and disabled unused variable warnings if gst
1084 debug system is disabled.
1085 Copied from gst-plugins-good/meson.build
1087 2019-03-04 09:16:40 +0000 Tim-Philipp Müller <tim@centricular.com>
1095 === release 1.15.2 ===
1097 2019-02-26 12:02:23 +0000 Tim-Philipp Müller <tim@centricular.com>
1107 2019-02-14 23:57:09 +0000 Tim-Philipp Müller <tim@centricular.com>
1110 * meson_options.txt:
1111 meson: add options to disable examples, tests and tools and bump meson requirement
1113 2019-01-04 10:11:38 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
1115 * omx/gstomxvideo.c:
1116 * omx/gstomxvideo.h:
1117 * omx/gstomxvideodec.c:
1118 * omx/gstomxvideoenc.c:
1119 omxvideo: use GST_VIDEO_CAPS_MAKE() for template caps
1120 Simplify the code and so we advertise the formats actually supported by
1123 2018-06-04 12:20:03 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1125 * omx/gstomxvideoenc.c:
1126 omxvideoenc: validate cpb-size and initial-delay
1127 cpb-size cannot be smaller than initial-delay.
1129 2018-10-02 10:47:06 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1131 * omx/gstomxvideodec.c:
1132 omxvideodec: Remove duplicated QoS code
1133 The 'finish' function do the exact same check / drop, there is no
1134 need to duplicate this here.
1136 2018-09-20 14:44:09 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1138 * omx/gstomxvideodec.c:
1139 * omx/gstomxvideodec.h:
1140 omxvideodec: Remove dead code
1141 The omxvideodec base class have a totally unused prepare_frame() vritual
1142 function, remove it.
1144 2018-07-11 17:38:22 -0700 Varunkumar Allagadapa <varunkum@xilinx.com>
1146 * omx/gstomxvideoenc.c:
1147 omxvideoenc: add adaptive gop-mode option
1148 Added adaptive gop-mode option to ZYNQ_USCALE_PLUS encoder properties
1150 2018-02-13 18:25:51 +0000 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1152 * omx/gstomxvideoenc.c:
1153 omxvideoenc: Add dynamic framerate support
1154 Instead of going through a full reset, try and change the framerate
1155 config on the encoder when only the framerate have change.
1157 === release 1.15.1 ===
1159 2019-01-17 02:38:28 +0000 Tim-Philipp Müller <tim@centricular.com>
1169 2018-02-20 10:57:42 -0800 Varunkumar Allagadapa <varunkum@xilinx.com>
1171 * omx/gstomxvideoenc.c:
1172 omxvideoenc: Add dynamic IDR insertion support on zynq
1173 As the pi, the zynq has its own API to request keyframe.
1175 2019-01-07 13:29:37 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
1179 * omx/gstomxbufferpool.c:
1180 omxbufferpool: fix race when releasing input buffers
1181 If buffers were released from the pool while
1182 gst_omx_video_enc_handle_frame() was waiting for new buffers,
1183 gst_omx_port_acquire_buffer() was never awaken as the buffers weren't
1184 released through OMX's messaging system.
1185 GQueue isn't thread safe so also protect it with the lock mutex.
1187 2018-11-15 11:17:59 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1189 * omx/gstomxbufferpool.c:
1190 * omx/gstomxbufferpool.h:
1191 * omx/gstomxvideodec.c:
1192 * omx/gstomxvideoenc.c:
1193 omxbufferpool: fix early input buffer release
1194 We used to track the 'allocating' status on the pool. It is used while
1195 allocating so output buffers aren't passed right away to OMX and input
1196 ones are not re-added to the pending queue.
1197 This was causing a bug when exporting buffers to v4l2src. On start
1198 v4l2src acquires a buffer, read its stride and release it right away.
1199 As no buffer was received by the encoder element at this point, 'allocating'
1200 was still on TRUE and so the the buffer wasn't put back to the pending
1201 queue and, as result, no longer available to the pool.
1202 Fix this by checking the active status of the pool instead of manually
1203 tracking it down. The pool is considered as active at the very end of
1204 the activation process so we're good when buffers are released during
1207 2018-12-05 17:24:48 -0300 Thibault Saunier <tsaunier@igalia.com>
1210 Automatic update of common submodule
1211 From ed78bee to 59cb678
1213 2018-11-23 12:57:15 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
1216 omx: fix OMX_EventBufferFlag OMX_API_TRACE struct
1217 The GType was missing from the second field of the struct.
1219 2018-11-05 05:43:43 +0000 Matthew Waters <matthew@centricular.com>
1223 Update git locations to gitlab
1225 2018-09-18 16:50:11 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1228 omx: rename OMX_PERFORMANCE debug cat to OMX_API_TRACE
1229 This debug category can now be used to track more OMX calls and events
1230 so best to rename it to something more generic.
1231 https://bugzilla.gnome.org/show_bug.cgi?id=797171
1233 2018-08-21 17:35:04 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1236 omx: log OMX commands with OMX_PERFORMANCE debug category
1237 It has been useful to have a clear raw and structured view of the gst
1238 <-> OMX exchanges when debugging.
1239 https://bugzilla.gnome.org/show_bug.cgi?id=797171
1241 2018-08-21 16:50:38 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1244 omx: factor out gst_omx_component_send_command()
1245 No semantic change. I'm going to add extra debug in this function.
1246 https://bugzilla.gnome.org/show_bug.cgi?id=797171
1248 2018-08-21 15:14:09 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1251 omx: log OMX events with OMX_PERFORMANCE debug category
1252 It has been useful to have a clear raw and structured view of the gst
1253 <-> OMX exchanges when debugging.
1254 https://bugzilla.gnome.org/show_bug.cgi?id=797171
1256 2018-08-22 12:51:30 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1259 omx: rename log_omx_performance() to log_omx_performance_buffer()
1260 I'm about to log more things under this category
1261 https://bugzilla.gnome.org/show_bug.cgi?id=797171
1263 2018-09-07 22:57:30 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1265 * omx/gstomxvideoenc.c:
1266 omxvideoenc: Remove spurious locking
1267 The method we call in the context of pushing a buffer are all thread
1268 safe. Holding a lock would prevent input buffers from being queued while
1270 https://bugzilla.gnome.org/show_bug.cgi?id=715192
1272 2018-09-07 23:09:29 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1274 * omx/gstomxvideoenc.c:
1275 omxvideoenc: Remove unneeded size check
1276 We only enter this branch if nFilledLen > 0, there is not need
1278 https://bugzilla.gnome.org/show_bug.cgi?id=715192
1280 2018-09-07 22:55:41 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1282 * omx/gstomxvideodec.c:
1283 omxvideodec: Remove spurious unlock in error case
1284 This was forgotton in previous patch. We no long hold the lock when goto
1285 invalid_buffer is called.
1286 https://bugzilla.gnome.org/show_bug.cgi?id=715192
1288 2018-08-31 17:28:03 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1290 * omx/gstomxvideodec.c:
1291 omxvideodec: don't hold the stream lock when trying to push a frame
1292 The base class methods will lock this properly when needed, there seems
1293 to be no need to lock it explicitly.
1294 This allows the patch in gstvideodec for unlocking the stream lock
1295 when pushing buffers out to work.
1296 https://bugzilla.gnome.org/show_bug.cgi?id=715192
1298 2018-07-31 13:22:31 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1300 * omx/gstomxvideodec.c:
1301 omxvideodec: don't import OMX buffers from downstream
1302 We already have code configuring the encoder stride and slice height
1303 when receiving the first buffer from upstream.
1304 We don't have an equivalent when the encoder is exporting its buffers to the
1306 There is no point adding it and making the code even more
1307 complex as we wouldn't gain anything by exporting from the encoder to
1308 the decoder. The dynamic buffer mode already ensures 0-copy between OMX
1310 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1312 2018-05-15 11:59:26 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1316 * omx/gstomxbufferpool.c:
1317 * omx/gstomxvideoenc.c:
1318 * omx/gstomxvideoenc.h:
1319 omxvideoenc: implement dmabuf export on input buffers
1320 Propose pool upstream so input buffers can be allocated by the port and
1322 The actual OMX buffers are allocated when the pool is activated, so we
1323 don't end up doing useless allocations if the pool isn't used.
1324 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1326 2018-08-13 15:10:37 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1330 * omx/gstomxaudiodec.c:
1331 * omx/gstomxaudioenc.c:
1332 * omx/gstomxaudiosink.c:
1333 * omx/gstomxvideodec.c:
1334 * omx/gstomxvideoenc.c:
1335 omx: allow gst_omx_port_acquire_buffer() to not wait for buffers
1336 Will be needed to implement GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT.
1337 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1339 2018-07-31 15:04:33 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1341 * omx/gstomxvideodec.c:
1342 omxvideodec: don't import non-dmabuf when dec is in dmabuf mode
1343 Fix 'omxh264dec ! videocrop' pipeline.
1344 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1346 2018-08-02 11:29:12 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1348 * omx/gstomxvideodec.c:
1349 omxvideodec: factor out gst_omx_try_importing_buffer()
1350 No semantic change, just make the code clearer and improve debug output.
1351 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1353 2018-07-26 16:30:08 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1355 * omx/gstomxvideodec.c:
1356 omxvideodec: fix gst_video_info_from_caps() caps assertion
1357 The "use buffers" code path uses gst_video_info_from_caps() which is
1358 asserting if caps is NULL (because pool was rejected).
1359 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1361 2018-07-26 16:22:50 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1363 * omx/gstomxvideodec.c:
1364 omxvideodec: fix pool caps reference stealing
1365 gst_buffer_pool_config_get_params() doesn't ref the returning caps;
1366 so gst_caps_replace() was unreffing the reference owned by the pool.
1367 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1369 2018-07-25 09:57:20 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1371 * omx/gstomxvideodec.c:
1372 omxvideodec: prevent timeout when shutting down because of pending out buffers
1373 The OMX transition state to Loaded won't be complete until all buffers
1374 have been freed. There is no point waiting, and timeout, if we know that
1375 output buffers haven't been freed yet.
1376 The typical scenario is output buffers being still used downstream
1377 and being freed later when released back to the pool.
1378 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1380 2018-07-24 15:14:31 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1382 * omx/gstomxbufferpool.c:
1383 omxbufferpool: reference the OMX component
1384 Now that the pool is responsible of freeing the OMX buffers, we need to
1385 ensure that the OMX component stay alive while the pool is as we rely on
1386 the component to free the buffers.
1387 The GstOMXPort is owned by the component so no need to ref this one.
1388 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1390 2018-07-24 15:06:01 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1394 * omx/gstomxaudiodec.c:
1395 * omx/gstomxaudioenc.c:
1396 * omx/gstomxaudiosink.c:
1397 * omx/gstomxvideodec.c:
1398 * omx/gstomxvideoenc.c:
1399 turn GstOMXComponent to a GstMiniObject
1400 Will use it for refcounting.
1401 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1403 2018-05-28 12:20:45 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1405 * omx/gstomxbufferpool.c:
1406 * omx/gstomxvideodec.c:
1407 omxbufferpool: deallocate OMX buffers when stopping
1408 The pool is stopped when all the buffers have been released. Deallocate
1409 when stopping so we are sure that the buffers aren't still used by
1411 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1413 2018-05-24 16:28:21 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1416 omx: call gst_omx_buffer_unmap() when handling BUFFER_DONE
1417 When using a input buffer pool, the buffer may be released to the pool when
1418 gst_omx_buffer_unmap() is called. We need to have buf->used unset at
1419 this point as the pool may use it to check the status of the pool.
1420 {Empty,Fill}BufferDone is called from OMX internal threads while
1421 messages are handled from gst elements' thread. Best to do all this
1422 when handling the message so we don't mess with OMX threads and keep
1423 the original thread/logic split.
1424 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1426 2018-05-25 14:44:16 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1428 * omx/gstomxvideodec.c:
1429 * omx/gstomxvideoenc.c:
1430 omxvideo{enc,dec}: stop calling shutdown() in change_state
1431 This is no longer needed since we implemented close() vfuncs as the
1432 encoder/decoder base class already take care of calling close() (which
1433 is calling shutdown()) in its own change_state implementation.
1434 We also move the shut down of the component from PAUSED_TO_READY to READY_TO_NULL.
1435 By doing so upstream will have already deactivated the pool from the
1436 encoder and so won't be preventing the OMX state change as the buffers
1437 will all be released.
1438 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1440 2018-05-15 16:21:26 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1444 * omx/gstomxbufferpool.c:
1445 omx: factor out gst_omx_buffer_get/set_omx_buf()
1446 Move the qdata code to helper functions as I'm going to need them in
1447 omxvideoenc to implement dmabuf export.
1448 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1450 2018-05-15 11:01:13 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1452 * omx/gstomxvideoenc.c:
1453 omxvideoenc: factor out gst_omx_video_enc_set_to_idle()
1454 No semantic change. We'll have to use this when the input pool is
1455 activated so we can allocate buffers.
1456 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1458 2018-05-15 09:56:10 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1460 * omx/gstomxvideoenc.c:
1461 omxvideoenc: factor out gst_omx_video_enc_deallocate_in_buffers()
1462 Will add extra code when adding input buffer pool.
1463 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1465 2018-05-14 15:16:38 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1468 omx: add pBuffer to OMX_PERFORMANCE logs
1469 Can be useful to check the fd being passed when using dmabuf.
1470 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1472 2018-03-21 12:43:33 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1476 * omx/gstomxvideodec.c:
1477 * omx/gstomxvideoenc.c:
1478 omx: factor out gst_omx_port_set_dmabuf()
1479 No semantic change. I also made the debug message a bit clearer.
1480 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1482 2018-08-22 15:56:18 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1485 omx: wait for flush complete and buffers being released when flushing
1486 When flusing we should wait for OMX to send the flush command complete event
1487 AND all ports being released.
1488 We were stopping as soon as one of those condition was met.
1489 Fix a race between FillThisBufferDone/EmptyBufferDone and the flush
1490 EventCmdComplete messages. The OMX implementation is supposed to release
1491 its buffers before posting the EventCmdComplete event but the ordering
1492 isn't guaranteed as the FillThisBufferDone/EmptyBufferDone and
1493 EventHandler callbacks can be called from different threads (cf 2.7
1494 'Thread Safety' in the spec).
1495 Only wait for buffers currently used by OMX as some buffers may not be
1496 in the pending queue because they are held downstream.
1497 https://bugzilla.gnome.org/show_bug.cgi?id=789475
1499 2018-08-22 15:52:23 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1502 omx: factor out should_wait_until_flushed()
1503 No semantic change. Makes the code easier to understand and I'm about to
1504 change the waiting condition.
1505 https://bugzilla.gnome.org/show_bug.cgi?id=789475
1507 2018-08-28 13:10:35 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1509 * omx/gstomxvideoenc.c:
1510 omxvideoenc: pause component when flushing
1511 As stated in the spec ("6.1.3 Seek Event Sequence") we should pause
1513 We were pausing the decoder but not the encoder so I just aligned the
1515 https://bugzilla.gnome.org/show_bug.cgi?id=797038
1517 2018-07-12 12:41:18 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1519 * omx/gstomxvideoenc.c:
1520 omxvideoenc: fix vertical padding in NV16 formats
1521 My previous patch to calculate the vertical padding was always halfing
1522 the height of the chroma plane which is incorrect for NV16 formats.
1523 https://bugzilla.gnome.org/show_bug.cgi?id=796749
1525 2018-07-05 15:13:47 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1527 * omx/gstomxvideoenc.c:
1528 omxvideoenc: include vertical padding in nFilledLen when copying
1529 According to the OMX spec (3.1.3.7.1) nFilledLen is meant to include any
1530 padding. We use to include the horizontal one (stride) but not the
1531 vertical one if nSliceHeight is bigger than the actual height.
1532 The calculated nFilledLen was wrong as it didn't include the padding
1534 https://bugzilla.gnome.org/show_bug.cgi?id=796749
1536 2018-04-26 12:30:47 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1540 * omx/gstomxvideodec.c:
1541 * omx/gstomxvideoenc.c:
1542 * omx/gstomxvideoenc.h:
1543 omxvideoenc: implement decide_allocation
1544 Increase the number of output buffers by the number of buffers requested
1546 Prevent buffers starvation if downstream is going to use dynamic buffer
1548 https://bugzilla.gnome.org/show_bug.cgi?id=795746
1550 2018-04-26 12:29:16 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1552 * omx/gstomxvideodec.c:
1553 omxvideodec: implement propose_allocation
1554 Tell upstream about how many buffer we plan to use so they can adjust
1555 their own number of buffers accordingly if needed.
1556 Same logic as the existing gst_omx_video_enc_propose_allocation().
1557 https://bugzilla.gnome.org/show_bug.cgi?id=795746
1559 2018-05-17 09:54:11 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1561 * omx/gstomxvideoenc.c:
1562 * omx/gstomxvideoenc.h:
1563 omxvideoenc: always signal drain cond when stopping streaming loop
1564 Similar change as the one I just did in omxvideodec.
1565 https://bugzilla.gnome.org/show_bug.cgi?id=796207
1567 2018-05-16 17:06:29 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1569 * omx/gstomxvideodec.c:
1570 * omx/gstomxvideodec.h:
1571 omxvideodec: always signal drain cond when stopping streaming loop
1572 If for some reason something goes wrong and we stop the streaming loop
1573 we may end up with other threads still waiting on the drain cond.
1574 No more buffers will be produced by the component so they were waiting
1576 Fix this by always signalling this cond when stopping the streaming
1578 https://bugzilla.gnome.org/show_bug.cgi?id=796207
1580 2018-05-16 17:02:01 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1582 * omx/gstomxvideodec.c:
1583 omxvideoenc: factor out gst_omx_video_enc_pause_loop()
1584 No semantic change. I'm going to use it in more failure cases.
1585 https://bugzilla.gnome.org/show_bug.cgi?id=796207
1587 2018-05-17 14:24:52 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1589 * config/zynqultrascaleplus/gstomx.conf:
1590 zynqultrascaleplus: enable 'ensure-buffer-count-actual' hack
1591 https://bugzilla.gnome.org/show_bug.cgi?id=791211
1593 2018-04-27 16:26:36 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1597 * omx/gstomxvideodec.c:
1598 * omx/gstomxvideoenc.c:
1599 omxvideodec/enc: add hack updating nBufferCountActual before allocating
1600 The OMX specs states that the nBufferCountActual of a port has to default
1601 to its nBufferCountMin. If we don't change nBufferCountActual we purely rely
1602 on this default. But in some cases, OMX may change nBufferCountMin before we
1603 allocate buffers. Like for example when configuring the input ports with the
1604 actual format, it may decrease the number of minimal buffers required.
1605 This method checks this and update nBufferCountActual if needed so we'll use
1606 less buffers than the worst case in such scenarios.
1607 SetParameter() needs to be called when the port is either disabled or
1608 the component in the Loaded state.
1609 Don't do this for the decoder output as
1610 gst_omx_video_dec_allocate_output_buffers() already check
1611 nBufferCountMin when computing the number of output buffers.
1612 On some platform, like rpi, the default nBufferCountActual is much
1613 higher than nBufferCountMin so only enable this using a specific gst-omx
1615 https://bugzilla.gnome.org/show_bug.cgi?id=791211
1617 2018-05-28 15:02:13 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1619 * omx/gstomxvideodec.c:
1620 * omx/gstomxvideoenc.c:
1621 omxvidee{enc,dec}: refresh input port definition after setting format
1622 Setting the input format and the associated encoder/decoder settings
1623 may also affect the nBufferCountMin of the input port.
1624 Refresh the input port so we'll use up to date values in propose/decide
1626 https://bugzilla.gnome.org/show_bug.cgi?id=796445
1628 2018-05-07 11:59:08 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1631 omx: always consider component in 'invalid' state when an error occured
1632 gst_omx_component_get_state() used to early return if there was no
1633 pending state change. So if the component raised an error it wasn't
1634 considered in the invalid state until the next requested state change.
1635 Fix this by checking first if we received an error.
1636 https://bugzilla.gnome.org/show_bug.cgi?id=795874
1638 2018-05-25 01:35:58 +1000 Matthew Waters <matthew@centricular.com>
1641 * meson_options.txt:
1642 meson: Update option names to omit 'with_omx' prefixes
1643 Companion commit to:
1644 https://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=4fb02fc85b70be631f5331b2547e5dc61ef7a43a
1645 https://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=1e1a5d658e4a031535c44823fd398d3052ca2000
1648 2018-03-21 13:52:23 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1650 * omx/gstomxvideodec.c:
1651 omxvideodec: pass a GstOMXBufferMode to gst_omx_buffer_pool_new()
1652 The output_mode is supposed to be a GstOMXBufferMode, not a boolean.
1654 2018-05-03 09:27:15 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1656 * config/zynqultrascaleplus/gstomx.conf:
1657 zynq: remove 'no-disable-outport' hack
1658 No longer needed with newer version of the OMX stack.
1660 2018-03-13 16:15:30 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1662 * omx/gstomxh264enc.c:
1663 * omx/gstomxh265enc.c:
1664 omxh26{4,5}enc: don't pick default 10-bit profile
1665 The OMX stack of the zynqultrascaleplus (the only one supporting
1666 NV12_10LE32 and NV16_10LE32) will now pick the proper profile if none
1667 has been requested. Best to rely on its default than hardcoding a
1668 specific one in gst-omx.
1669 https://bugzilla.gnome.org/show_bug.cgi?id=794319
1671 2018-03-06 14:16:56 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1673 * omx/gstomxh264utils.c:
1674 omxh264: sync with supported profiles on zynqultrascaleplus
1675 Add extra supported AVC profiles and remove extended and 4:4:4 profiles
1676 which are actually not implemented.
1677 https://bugzilla.gnome.org/show_bug.cgi?id=794177
1679 2018-03-06 10:45:14 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1681 * omx/gstomxh264enc.c:
1682 * omx/gstomxh264utils.c:
1683 * omx/gstomxh264utils.h:
1684 omxh264: factor out gst_omx_h264_utils_get_profile_from_enum()
1685 Move the profile <-> enum mapping to one place. Make changes easier as
1686 I'm about to add extra profiles.
1688 https://bugzilla.gnome.org/show_bug.cgi?id=794177
1690 2018-03-06 11:02:44 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1692 * omx/gstomxh265utils.c:
1693 omxh265: add format range extension profiles on zynqultrascaleplus
1694 The zynqultrascaleplus OMX gained support for more format range
1695 extensions profiles (A.3.5).
1696 https://bugzilla.gnome.org/show_bug.cgi?id=794177
1698 2018-03-06 10:45:14 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1700 * omx/gstomxh265enc.c:
1701 * omx/gstomxh265utils.c:
1702 * omx/gstomxh265utils.h:
1703 omxh265: factor out gst_omx_h265_utils_get_profile_from_enum()
1704 Move the profile <-> enum mapping to one place. Make changes easier as
1705 I'm about to add some profiles.
1707 https://bugzilla.gnome.org/show_bug.cgi?id=794177
1709 2018-03-08 12:22:26 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1711 * omx/gstomxvideoenc.c:
1712 omxvideoenc: add NV16 support
1713 NV16 format wasn't supported on encoder input while it was on decoder
1715 https://bugzilla.gnome.org/show_bug.cgi?id=794175
1717 2018-03-08 12:09:38 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1719 * omx/gstomxvideo.c:
1720 omxvideo: display port number when listing supported formats
1721 More convenient when debugging.
1722 https://bugzilla.gnome.org/show_bug.cgi?id=794175
1724 2018-03-29 16:42:40 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1727 * omx/gstomxvideoenc.c:
1728 * omx/gstomxvideoenc.h:
1729 omxvideoenc: restore OMX default target-bitrate if requested by user
1730 0xffffffff is the magic number in gst-omx meaning 'the default value
1731 defined in OMX'. This works fine with OMX parameters which are only set
1732 once when starting the component but not with configs which can be
1733 changed while PLAYING.
1734 Save the actual OMX default bitrate so we can restore it later if user
1735 sets back 0xffffffff on the property.
1736 Added GST_OMX_PROP_OMX_DEFAULT so we stop hardcoding magic numbers
1738 https://bugzilla.gnome.org/show_bug.cgi?id=794998
1740 2018-03-29 11:36:00 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1742 * omx/gstomxvideoenc.c:
1743 omxvideoenc: use gst_omx_video_enc_set_bitrate() when setting bitrate in set_format
1744 We weren't using the usual pattern when re-setting the bitrate:
1745 - get parameters from OMX
1746 - update only the fields different from 0xffffffff (OMX defaults)
1748 Also added a comment explaining why we re-set this param.
1749 https://bugzilla.gnome.org/show_bug.cgi?id=794998
1751 2018-03-29 11:26:04 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1753 * omx/gstomxvideoenc.c:
1754 omxvideoenc: factor out gst_omx_video_enc_set_bitrate()
1755 No semantic change, I'm about to re-use this function in set_format().
1756 https://bugzilla.gnome.org/show_bug.cgi?id=794998
1758 2018-04-20 11:54:14 +0100 Tim-Philipp Müller <tim@centricular.com>
1761 meson: fix miscellaneous meson warnings
1762 cc.has_header*() doesn't have a 'required:' kwarg.
1764 2018-04-18 12:42:55 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1766 * omx/gstomxvideodec.c:
1767 * omx/gstomxvideoenc.c:
1768 omxvideoenc/dec: fix handling of component enabling failing
1769 - Report the error from OMX if any (OMX_EventError)
1770 - If not report the failing to the application (GST_ELEMENT_ERROR)
1771 - return GST_FLOW_ERROR rather than FALSE
1773 https://bugzilla.gnome.org/show_bug.cgi?id=795352
1775 2018-04-16 10:53:41 +0100 Tim-Philipp Müller <tim@centricular.com>
1778 Automatic update of common submodule
1779 From 3fa2c9e to ed78bee
1781 2018-03-14 14:53:50 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1784 log_omx_performance: convert pointers to strings
1785 G_TYPE_POINTER are not serialized in logs.
1786 https://bugzilla.gnome.org/show_bug.cgi?id=794331
1788 2018-04-02 15:14:51 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1790 * omx/gstomxvideoenc.c:
1791 omxvideoenc: remove duplicated debug message
1792 We already have the exact same message at the beginning of
1793 gst_omx_video_enc_handle_frame(). Having it twice is confusing when
1794 reading/grepping logs.
1795 I kept the earlier one to keep the symetry with
1796 gst_omx_video_dec_handle_frame().
1797 https://bugzilla.gnome.org/show_bug.cgi?id=794897
1799 2018-02-22 11:27:03 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1801 * omx/gstomxvideoenc.c:
1802 omxvideoenc: add 'roi' qp-mode on zynqultrascaleplus
1803 New QP mode used to handle ROI metadata.
1804 https://bugzilla.gnome.org/show_bug.cgi?id=793696
1806 2018-03-20 10:31:10 +0000 Tim-Philipp Müller <tim@centricular.com>
1814 === release 1.14.0 ===
1816 2018-03-19 20:31:02 +0000 Tim-Philipp Müller <tim@centricular.com>
1826 === release 1.13.91 ===
1828 2018-03-13 19:32:39 +0000 Tim-Philipp Müller <tim@centricular.com>
1838 2018-03-09 12:02:29 +0000 Tim-Philipp Müller <tim@centricular.com>
1841 meson: fix typo in package name define
1843 2018-02-27 15:42:53 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1845 * omx/gstomxh265enc.c:
1846 * omx/gstomxh265utils.c:
1847 omxh265: update 422 profile names
1848 h265parse is gaining support for the format range extension profile
1850 Use the profile names defined in h265parse.
1851 https://bugzilla.gnome.org/show_bug.cgi?id=793928
1853 2018-03-05 13:49:18 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1855 * omx/gstomxvideoenc.c:
1856 omxvideoenc: Don't drop the frame on empty payload
1857 This otherwise may lead to "No reference frame found" warning.
1859 2018-03-01 15:16:55 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1861 * omx/gstomxvideodec.c:
1862 omxvideodec: Don't drop the frame on empty payload
1863 This otherwise may lead to "No reference frame found" warning.
1865 2018-03-02 15:36:06 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1868 omx: Free empty buffers list in use_dynamic_buffers
1869 To indicate we are doing dynamic buffers importation, we pass
1870 a list of NULL pointers, but we forgot to free that list.
1872 2018-03-01 15:16:32 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1874 * omx/gstomxvideodec.c:
1875 omxvideodec: Fix CodecState leak
1877 === release 1.13.90 ===
1879 2018-03-03 23:00:59 +0000 Tim-Philipp Müller <tim@centricular.com>
1889 2018-03-03 20:21:06 +0000 Tim-Philipp Müller <tim@centricular.com>
1891 * config/Makefile.am:
1892 config: dist tizonia config files
1894 2018-03-02 11:06:08 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1897 Revert "omx: wait for flush complete and buffers being released when flushing"
1898 This reverts commit 4211e4c29a262f110cb92ddf9c06b403ced233ef.
1900 2018-02-21 12:50:42 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1902 * omx/gstomxvideoenc.c:
1903 videoenc: don't set stride padding to 0 when copying frames
1904 Padding can be left undefined there is no point filling it with 0.
1905 https://bugzilla.gnome.org/show_bug.cgi?id=793694
1907 2018-02-16 11:50:35 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1909 * omx/gstomxbufferpool.c:
1910 * omx/gstomxh264enc.c:
1911 * omx/gstomxh265enc.c:
1912 * omx/gstomxvideo.c:
1913 * omx/gstomxvideodec.c:
1914 * omx/gstomxvideoenc.c:
1915 add support for NV12_10LE32 and NV16_10LE32 on zynqultrascaleplus
1916 The encoder and decoder on zynqultrascaleplus support these new 10 bits
1918 https://bugzilla.gnome.org/show_bug.cgi?id=793694
1920 2018-02-16 11:46:47 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1922 * omx/gstomxvideoenc.c:
1923 omxvideoenc: factor out gst_omx_video_enc_nv12_manual_copy()
1924 No semantic change, I'm going to re-use it to copy the NV12_10LE32
1926 https://bugzilla.gnome.org/show_bug.cgi?id=793694
1928 2018-01-17 10:40:49 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1930 * omx/gstomxvideoenc.c:
1931 omxvideoenc: display the computed buffer size when configuring input
1932 https://bugzilla.gnome.org/show_bug.cgi?id=793694
1934 2018-02-06 14:25:57 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1936 * omx/gstomxvideoenc.c:
1937 * omx/gstomxvideoenc.h:
1938 videoenc: implement ROI on zynqultrascaleplus
1939 Check input buffers for ROI meta and pass them to the encoder by using
1940 zynqultrascaleplus's custom OMX extension. Also add a new
1941 "default-roi-quality" in order to tell the encoder what quality level
1942 should be applied to ROI by default.
1943 https://bugzilla.gnome.org/show_bug.cgi?id=793696
1945 2018-02-14 17:23:39 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1947 * omx/gstomxvideoenc.c:
1948 omxvideoenc: remove GST_PARAM_MUTABLE_PLAYING from 'max-bitrate' property
1949 This property isn't actually mutable in the PLAYING state.
1950 https://bugzilla.gnome.org/show_bug.cgi?id=793458
1952 2018-02-14 17:20:02 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1954 * omx/gstomxvideoenc.c:
1955 * omx/gstomxvideoenc.h:
1956 omxvideoenc: protect target_bitrate with the object lock
1957 The 'target-bitrate' property can be changed while PLAYING
1958 (GST_PARAM_MUTABLE_PLAYING). Make it thread-safe to prevent concurrent
1959 accesses between the application and streaming thread.
1960 https://bugzilla.gnome.org/show_bug.cgi?id=793458
1962 2018-02-20 11:46:49 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1964 * omx/gstomxbufferpool.c:
1965 omxbufferpool: add PERFORMANCE DEBUG message when copying output frames
1966 I spent quiet some time figuring out why performance of my pipeline were
1967 terrible. Turned out it was because of output frames being copied
1968 because of stride/offset mismatch.
1969 Add a PERFORMANCE DEBUG message to make it easier to spot and debug from logs.
1970 https://bugzilla.gnome.org/show_bug.cgi?id=793637
1972 2018-02-15 19:44:37 +0000 Tim-Philipp Müller <tim@centricular.com>
1978 === release 1.13.1 ===
1980 2018-02-15 17:50:14 +0000 Tim-Philipp Müller <tim@centricular.com>
1989 2017-06-30 15:15:06 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1991 * omx/gstomxh265enc.c:
1992 omxh265enc: fix typo in "periodicty-idr" property name
1993 Also fix the 'nick' of the property.
1994 omxh265enc is based on the code from omxh264enc and suffers the same
1995 typo as we fixed in https://bugzilla.gnome.org/show_bug.cgi?id=784370
1996 This element isn't part of a stable release yet so it's not an API
1998 https://bugzilla.gnome.org/show_bug.cgi?id=793390
2000 2018-02-08 19:18:59 +0000 Tim-Philipp Müller <tim@centricular.com>
2003 meson: make version numbers ints and fix int/string comparison
2004 WARNING: Trying to compare values of different types (str, int).
2005 The result of this is undefined and will become a hard error
2006 in a future Meson release.
2007 Also remove unused libversion/soversion.
2009 2017-12-12 16:50:00 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2014 include all OMX extension headers if present
2015 The OMX specs defines 8 headers that implementations can use to define
2016 their custom extensions. We were checking and including 3 and ignoring
2018 https://bugzilla.gnome.org/show_bug.cgi?id=792043
2020 2018-01-30 10:31:03 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2024 * tools/meson.build:
2025 meson: simplify OMX extensions detection
2026 We are now always checking which files are present or not, even when using our
2027 internal copy of OMX, rather than hardcoding the ones present in it.
2028 https://bugzilla.gnome.org/show_bug.cgi?id=792043
2030 2018-01-30 11:54:24 +0000 Nicolas Dufresne <nicolas.dufresne@collabora.com>
2034 * tools/meson.build:
2035 Revert "meson: use include_directories() with external OMX headers path"
2036 This reverts commit 9d37a92a615e54e8ee12f8c65bcfe386ec9de2d0.
2038 2017-11-27 14:52:10 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2040 * omx/gstomxh265enc.c:
2041 * omx/gstomxh265enc.h:
2042 omxh265enc: add some encoding properties
2043 constrained-intra-prediction and loop-filter-mode.
2044 Those map standard OMX settings.
2045 https://bugzilla.gnome.org/show_bug.cgi?id=792528
2047 2017-11-23 15:54:15 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2049 * omx/gstomxh264enc.c:
2050 * omx/gstomxh264enc.h:
2051 omxh264enc: add some encoding properties
2052 entropy-mode, constrained-intra-prediction and loop-filter-mode.
2053 Those map standard OMX settings.
2054 https://bugzilla.gnome.org/show_bug.cgi?id=792528
2056 2017-06-08 12:31:21 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2058 * omx/gstomxvideoenc.c:
2059 * omx/gstomxvideoenc.h:
2060 omxvideoenc: add zynqultrascaleplus specific properties
2061 https://bugzilla.gnome.org/show_bug.cgi?id=792528
2063 2017-10-31 12:24:39 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2065 * omx/gstomxvideoenc.c:
2066 omxvideoenc: document unit of target-bitrate property
2067 nTargetBitrate and nEncodeBitrate are defined in bits per second in the
2069 https://bugzilla.gnome.org/show_bug.cgi?id=792528
2071 2017-07-06 10:18:48 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2073 * omx/gstomxvideodec.c:
2074 * omx/gstomxvideodec.h:
2075 omxvideodec: add internal-entropy-buffers property on zynqultrascaleplus
2076 Custom property to control the number of internal buffers used in the
2077 decoder to smooth out entropy decoding performance.
2078 https://bugzilla.gnome.org/show_bug.cgi?id=792528
2080 2018-01-30 10:31:03 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2084 * tools/meson.build:
2085 meson: use include_directories() with external OMX headers path
2086 It seems cleaner to use the proper meson tools to include this path
2087 rather than manually tweak the build flags.
2088 This also allows us to simplify the OMX extensions detection code. We
2089 are now always checking which files are present, even when using our
2090 internal copy of OMX, rather than hardcoding the ones present in it.
2091 https://bugzilla.gnome.org/show_bug.cgi?id=792043
2093 2017-11-07 15:09:35 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2095 * omx/gstomxvideoenc.c:
2096 omxvideoenc: expose chroma format and bit depth in output caps
2097 As we added in the parser (bgo#792039) expose the chroma and bit
2098 depth information in output caps.
2099 https://bugzilla.gnome.org/show_bug.cgi?id=792040
2101 2017-11-07 14:30:45 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2103 * omx/gstomxvideoenc.c:
2104 omxvideoenc: factor out get_output_caps()
2105 No semantic change so far.
2106 https://bugzilla.gnome.org/show_bug.cgi?id=792040
2108 2017-12-29 11:59:36 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2110 * config/zynqultrascaleplus/gstomx.conf:
2113 * omx/gstomxvideodec.c:
2114 omxvideodec: add hack to pass color format from caps to OMX decoder
2115 This hack tries to pass as much information as possible from caps to the
2116 decoder before it receives any buffer. These information can be used by
2117 the OMX decoder to, for example, pre-allocate its internal buffers
2118 before starting to decode and so reduce its initial latency.
2119 This mechanism is currently supported by the zynqultrascaleplus decoder.
2120 https://bugzilla.gnome.org/show_bug.cgi?id=792040
2122 2017-12-01 12:43:19 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2125 log failing OMX calls as errors
2126 I find it confusing when debugging that OMX calls returning an error
2127 where not logged as GST_LEVEL_ERROR making them harder to spot.
2128 Fix this by introducing simple log macros checking the return value of
2129 the OMX call and logging failures as errors.
2130 https://bugzilla.gnome.org/show_bug.cgi?id=791069
2132 2017-10-30 11:59:19 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2135 add OMX_PERFORMANCE debug category
2136 Can be used to log buffers exchange between OMX and gst-omx to profile
2137 performances of the OMX component.
2138 Ideally this should be done using tracer hooks but it's currently not
2139 possible to define custom hooks outside of core.
2140 Use GST_DEBUG="OMX_PERFORMANCE:8" to enable it.
2142 https://github.com/gdesmott/gst-log-parser/blob/master/src/bin/omx-perf.rs
2143 as a simple program consuming those logs to generate gnuplot files and
2145 https://bugzilla.gnome.org/show_bug.cgi?id=791093
2147 2017-07-27 11:21:59 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2151 * omx/gstomxvideoenc.c:
2152 * omx/gstomxvideoenc.h:
2153 omxvideoenc: implement dmabuf import on zynqultrascaleplus
2154 The Zynq UltraScale+ encoder implements a custom OMX extension to
2155 directly import dmabuf saving the need of mapping input buffers.
2156 This can be use with either 'v4l2src io-mode=dmabuf' or an OMX video
2158 https://bugzilla.gnome.org/show_bug.cgi?id=792361
2160 2017-09-22 16:02:40 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2162 * omx/gstomxvideoenc.c:
2163 omxvideoenc: drop late input frames if QoS is enabled
2164 Make use of the new GstVideoEncoder QoS API to drop late input frames. This may
2165 help a live pipeline to catch up if it's being late and all frames end up
2166 being dropped at the sink.
2167 https://bugzilla.gnome.org/show_bug.cgi?id=792783
2169 2018-01-19 15:18:23 +0530 Ashish Kumar <kr.ashish@samsung.com>
2171 * examples/egl/testegl.c:
2172 TestEgl: Removed redundant/unused code
2173 https://bugzilla.gnome.org/show_bug.cgi?id=788550
2175 2018-01-03 16:07:18 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2177 * omx/gstomxvideoenc.c:
2178 omxvideoenc: early return in fill_buffer() if something goes wrong
2179 If something goes wrong while trying to manually copy the input buffer,
2180 the 'break' was moving us out of the 'for' loop but not out of the switch block.
2181 So we ended up calling gst_video_frame_unmap() a second time (raising
2182 assertions) and returning TRUE rather than FALSE.
2183 Reproduced with a WIP zynqultrascaleplus OMX branch reporting wrong
2184 buffer sizes and so triggering this bug.
2185 https://bugzilla.gnome.org/show_bug.cgi?id=792167
2187 2017-12-19 16:09:41 +0000 Tim-Philipp Müller <tim@centricular.com>
2190 meson: gl: the winsys and platform list in the .pc file is space-separated
2192 2017-12-19 16:08:58 +0000 Tim-Philipp Müller <tim@centricular.com>
2195 meson: fix subproject fallback for gstreamer-gl-1.0
2198 2017-12-12 17:30:27 +0000 Julien Isorce <jisorce@oblong.com>
2200 * omx/gstomxvideo.c:
2201 * omx/gstomxvideo.h:
2202 * omx/gstomxvideodec.c:
2203 omxvideodec: ignore very little variations of the framerate
2205 The dynamic format change should not happen when the
2206 resolution does not change and when only the framerate
2207 changes but very slightly, i.e. from 50000/1677=29.81
2208 to 89/3=29.66 so a "percentage change" of less than 1%
2209 (i.e. 100*(29.81-29.66)/29.66 = 0.50 < 1 ). In that case
2210 just ignore it to avoid unnecessary renegotiation.
2211 https://bugzilla.gnome.org/show_bug.cgi?id=759043
2213 2017-08-09 12:07:33 -0400 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2215 * omx/gstomxvideodec.c:
2216 * omx/gstomxvideodec.h:
2217 omxvideodec: use dynamic buffer mode on input if possible
2218 Prevent from copying the input buffers between GStreamer and OMX.
2219 Tested on zynqultrascaleplus and rpi (without dynamic buffers).
2220 https://bugzilla.gnome.org/show_bug.cgi?id=787093
2222 2017-07-20 16:35:31 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2224 * omx/gstomxvideoenc.c:
2225 * omx/gstomxvideoenc.h:
2226 omxvideoenc: use dynamic buffer mode on input if possible
2227 If the OMX component supports dynamic buffer mode and the input buffers
2228 are properly aligned avoid copying each input frame between OMX and
2230 Tested on zynqultrascaleplus and rpi (without dynamic buffers).
2231 https://bugzilla.gnome.org/show_bug.cgi?id=787093
2233 2017-07-20 12:56:37 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2235 * omx/gstomxvideodec.c:
2236 * omx/gstomxvideoenc.c:
2237 omxvideoenc/dec: factor out input buffer allocation
2238 No semantic change so far. I'm going to add an alternate way to allocate
2240 https://bugzilla.gnome.org/show_bug.cgi?id=787093
2242 2017-07-20 16:31:54 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2246 omx: add API to implement dynamic buffers support
2247 OMX 1.2.0 introduced a third way to manage buffers by allowing
2248 components to only allocate buffers header during their initialization
2249 and change their pBuffer pointer at runtime.
2250 This new feature can save us a copy between GStreamer and OMX for each
2252 This patch adds API to allocate and use such buffers.
2253 https://bugzilla.gnome.org/show_bug.cgi?id=787093
2255 2017-12-14 14:53:17 +1100 Matthew Waters <matthew@centricular.com>
2258 Automatic update of common submodule
2259 From e8c7a71 to 3fa2c9e
2261 2017-12-13 12:06:40 +0000 Julien Isorce <jisorce@oblong.com>
2263 * omx/gstomxvideodec.c:
2264 omxvideodec: consolidate the decision to try UseBuffer
2265 The tee element can call gst_query_add_allocation_pool with pool as NULL.
2266 Checking nth > 0 is not enough so we need to verify if there is a pool.
2267 https://bugzilla.gnome.org/show_bug.cgi?id=730758
2268 https://bugzilla.gnome.org/show_bug.cgi?id=784069
2270 2017-12-12 14:45:30 +0000 Julien Isorce <jisorce@oblong.com>
2272 * omx/gstomxvideo.c:
2273 * omx/gstomxvideo.h:
2274 * omx/gstomxvideodec.c:
2275 * omx/gstomxvideoenc.c:
2276 gstomxvideodec: fix framerate overflow
2277 Some live streams can set the framerate to 50000/1677 (=29.81).
2278 GstVideoInfo.fps_n << 16 is wrong if the fps_n is 50000
2279 (i.e. greater than 32767).
2280 https://bugzilla.gnome.org/show_bug.cgi?id=759043
2282 2017-08-22 13:48:26 +0100 Julien Isorce <jisorce@oblong.com>
2285 * examples/egl/Makefile.am:
2286 * examples/egl/meson.build:
2287 * examples/egl/testegl.c:
2289 example: port testegl.c to desktop
2290 Will be easier to maintain.
2291 Also uniformize autotool build with meson build which is
2292 already retrieving the gl libs.
2293 https://bugzilla.gnome.org/show_bug.cgi?id=781606
2295 2017-12-11 15:55:44 +0000 Julien Isorce <jisorce@oblong.com>
2298 meson: move omx features check after target selection
2299 And uses gst_omx_args instead of add_global_arguments.
2300 Similar to c69232852120d064c689caef07b3c68ad8fe6288
2301 which was only for configure.ac
2302 Useful to get omxvp8dec with meson too:
2303 meson . buildtmp -D with_omx_target=tizonia
2304 https://bugzilla.gnome.org/show_bug.cgi?id=782800
2306 2017-12-04 17:11:04 +0000 Julien Isorce <jisorce@oblong.com>
2308 * config/tizonia/gstomx.conf.in:
2309 config: add OMX.Aratelia.audio_decoder.aac to Tizonia config
2310 Useful mostly for testing/debugging purpose as this is a software
2311 based decoder (libfaad) for which GStreamer provides a direct
2313 https://bugzilla.gnome.org/show_bug.cgi?id=791482
2315 2017-11-29 14:18:41 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2317 * omx/gstomxvideodec.c:
2318 omxvideodec: retrieve OMX_IndexParamVideoPortFormat before setting it
2319 The usual pattern when setting OMX params is to first get the struct
2320 param, override the values we want to set and then set the updated
2322 We were not doing this with OMX_IndexParamVideoPortFormat and so were
2323 resetting some fields such as OMX_VIDEO_PARAM_PORTFORMATTYPE.xFramerate
2324 https://bugzilla.gnome.org/show_bug.cgi?id=790979
2326 2017-05-21 17:34:51 +0100 Julien Isorce <jisorce@oblong.com>
2328 * omx/gstomxaacenc.c:
2329 omxaacenc: also set 'profile' if mpegversion is 4
2330 Like done by gst_codec_utils_aac_caps_set_level_and_profile
2331 which is called by avenc_aac, ffaac and voaacenc.
2332 https://bugzilla.gnome.org/show_bug.cgi?id=735208
2334 2017-10-24 12:19:50 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2337 omx: wait for flush complete and buffers being released when flushing
2338 As stated in the existing comment, when flusing we should wait for OMX
2339 to send the flush command complete event AND all ports being released.
2340 We were stopping as soon as one of those condition was met.
2341 Fix a race between FillThisBufferDone/EmptyBufferDone and the flush
2342 EventCmdComplete messages. The OMX implementation is supposed to release
2343 its buffers before posting the EventCmdComplete event but the ordering
2344 isn't guaranteed as the FillThisBufferDone/EmptyBufferDone and
2345 EventHandler callbacks can be called from different threads (cf 2.7
2346 'Thread Safety' in the spec).
2347 https://bugzilla.gnome.org/show_bug.cgi?id=789475
2349 2017-10-24 11:45:20 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2352 gst_omx_port_set_flushing: simplify waiting loop
2353 No semantic change so far, I just made the 'while' end condition easier
2354 to understand as a first step before changing it.
2355 - move error/time out checks inside the loop to make it clearer on what
2356 we are actually waiting for.
2357 - group port->buffers checks together with parenthesis as they are part
2358 of the same conceptual check: waiting for all buffers to be released.
2359 https://bugzilla.gnome.org/show_bug.cgi?id=789475
2361 2017-11-27 20:17:17 +1100 Matthew Waters <matthew@centricular.com>
2364 Automatic update of common submodule
2365 From 3f4aa96 to e8c7a71
2367 2017-11-23 15:03:48 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2369 * omx/gstomxh264enc.c:
2370 * omx/gstomxh264utils.c:
2371 zynqultrascaleplus: add support for extra AVC levels
2372 The Zynqultrascaleplus has support for extra AVC levels not defined in
2373 the OMX spec as a customer extension.
2374 https://bugzilla.gnome.org/show_bug.cgi?id=790758
2376 2017-10-16 14:47:07 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2380 * config/meson.build:
2383 * tests/Makefile.am:
2384 * tests/check/.gitignore:
2385 * tests/check/Makefile.am:
2386 * tests/check/generic/.gitignore:
2387 * tests/check/generic/states.c:
2388 * tests/check/meson.build:
2389 * tests/meson.build:
2391 Most of the boilerplate and the states test has been copied from
2393 https://bugzilla.gnome.org/show_bug.cgi?id=789094
2395 2017-10-17 13:07:05 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2398 * tools/meson.build:
2399 meson: add tools support
2400 Looks like the tools directory was left out during the initial port to
2402 https://bugzilla.gnome.org/show_bug.cgi?id=789090
2404 2017-10-16 14:24:50 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2407 omx: fix build on rpi
2408 The nTimeStamp field is a OMX_TICKS struct on the rpi so use the proper
2410 Fix build on the build which has been broken by
2411 b3173144b7c1b12c9e1b7571f78659be45d813f6
2412 https://bugzilla.gnome.org/show_bug.cgi?id=789052
2414 2017-10-17 12:11:04 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2418 check if Allegro headers are present when building zynqultrascaleplus
2419 The Zynq UltraScale+ uses a custom version of OMX implementing several
2420 3rd party extensions. Make sure those are present when building this
2422 https://bugzilla.gnome.org/show_bug.cgi?id=788064
2424 2017-10-16 12:42:44 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2426 * omx/gstomxvideodec.c:
2427 omxvideodec: remove redundant debug message
2428 We have already a debug message right after.
2429 https://bugzilla.gnome.org/show_bug.cgi?id=789058
2431 2017-10-16 13:26:38 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2433 * omx/gstomxh265enc.c:
2434 * omx/gstomxh265utils.c:
2435 omxh265: fix enum casting when using Allegro HEVC extensions
2436 Allegro's HEVC implementation defines a superset of the profiles and
2437 enums from the Android implementation.
2438 Properly cast to fix -Wenum-conversion warnings from clang.
2439 https://bugzilla.gnome.org/show_bug.cgi?id=789057
2441 2017-10-16 13:08:12 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2443 * omx/gstomxh265enc.c:
2444 * omx/gstomxvp8dec.c:
2445 properly cast extension enums
2446 OMX's allow 3rds party to define extensions using their own enums
2447 (like OMX_VIDEO_CODINGEXTTYPE) and to be used as the general
2448 ones (like OMX_VIDEO_CODINGTYPE).
2449 Properly cast those to fix -Wenum-conversion warnings from some
2450 compilers such as clang.
2451 https://bugzilla.gnome.org/show_bug.cgi?id=789057
2453 2017-10-09 13:12:35 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2456 omx: also reset nTimeStamp when re-using buffers
2457 Some OMX implementations may check if the timestamp of the output buffers
2458 they receive is actually not set.
2459 https://bugzilla.gnome.org/show_bug.cgi?id=788711
2461 2017-10-04 17:11:55 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2464 omx: factor out gst_omx_buffer_reset()
2465 https://bugzilla.gnome.org/show_bug.cgi?id=788711
2467 2017-10-09 17:27:22 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2471 * omx/gstomxvideodec.c:
2472 * omx/gstomxvideoenc.c:
2473 add gst_omx_buffer_flags_to_string()
2474 Make debug logs more readable so users don't have to manually figure out
2475 the meaning of flags.
2476 https://bugzilla.gnome.org/show_bug.cgi?id=788767
2478 2017-09-27 19:47:29 +0530 Ponnam Srinivas <p.srinivas@samsung.com>
2480 * omx/gstomxh263enc.c:
2481 h263enc: fix caps leak in error code path
2482 https://bugzilla.gnome.org/show_bug.cgi?id=788245
2484 2017-09-21 15:21:36 +0530 Ponnam Srinivas <p.srinivas@samsung.com>
2486 * omx/gstomxh264enc.c:
2487 omxh264enc: fix caps leak
2488 https://bugzilla.gnome.org/show_bug.cgi?id=787711
2490 2017-09-21 11:36:46 +0530 Ponnam Srinivas <p.srinivas@samsung.com>
2492 * omx/gstomxh265enc.c:
2493 omxh265enc: fix caps leak
2494 https://bugzilla.gnome.org/show_bug.cgi?id=787714
2496 2017-09-13 15:32:51 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2498 * omx/gstomxvideodec.c:
2499 omxvideodec: log info about frame before releasing it
2500 gst_video_decoder_release_frame() takes ownership of the frame and will
2501 destroy it. So we should no longer use it after calling it.
2502 https://bugzilla.gnome.org/show_bug.cgi?id=787628
2504 2017-08-20 20:19:33 +0530 Gurkirpal Singh <gurkirpal204@gmail.com>
2507 configure: Show tizonia target in help
2508 https://bugzilla.gnome.org/show_bug.cgi?id=786544
2510 2017-07-12 14:35:10 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2512 * config/zynqultrascaleplus/gstomx.conf:
2515 * omx/gstomxh265dec.c:
2516 * omx/gstomxh265dec.h:
2518 omxh265dec: add H265 decoder
2519 Add HEVC decoder for the zynqultrascaleplus platform.
2520 I used the H264 decoder code as a template.
2521 https://bugzilla.gnome.org/show_bug.cgi?id=785434
2523 2017-07-12 11:01:15 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2525 * config/zynqultrascaleplus/gstomx.conf:
2530 * omx/gstomxh265enc.c:
2531 * omx/gstomxh265enc.h:
2532 * omx/gstomxh265utils.c:
2533 * omx/gstomxh265utils.h:
2535 omxh265enc: add H265 encoder
2536 The OMX spec doesn't support HEVC but the OMX stack of the
2537 zynqultrascaleplus adds it as a custom extension.
2538 It uses the same API as the one of Android's OMX stack.
2539 I used the H264 encoder code as a template.
2540 https://bugzilla.gnome.org/show_bug.cgi?id=785434
2542 2017-08-28 13:56:22 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2544 * omx/gstomxvideoenc.c:
2545 omxvideoenc: use caps from query in propose_allocation
2546 Prevent crash by not deferencing a NULL pointer if self->input_state
2547 isn't defined when propose_allocation() is called.
2548 https://bugzilla.gnome.org/show_bug.cgi?id=786442
2550 2017-09-04 09:34:03 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2553 omx: display states as string if changing failed
2554 Improve the error message by displaying the states in their string
2555 representation rather than their numerical value.
2556 https://bugzilla.gnome.org/show_bug.cgi?id=787235
2558 2017-08-22 10:22:45 +0100 Julien Isorce <jisorce@oblong.com>
2560 * omx/gstomxvideodec.c:
2561 omxvideodec: EGLDisplay is not indirectly defined by gstgl headers inclusion
2562 Just use gpointer as done in GstGL to not include
2563 EGL/egl.h just for EGLDisplay.
2564 https://bugzilla.gnome.org/show_bug.cgi?id=784779
2566 2017-07-14 16:34:04 +0530 Gurkirpal Singh <gurkirpal204@gmail.com>
2568 * config/tizonia/gstomx.conf.in:
2569 config: expose OMX.mesa h264 decoder and encoder in Tizonia config
2570 https://bugzilla.gnome.org/show_bug.cgi?id=783976
2572 2017-08-11 07:48:37 -0700 Julien Isorce <jisorce@oblong.com>
2574 * omx/gstomxvideodec.c:
2575 omxvideodec: remove wrong SettingsChanged ack
2576 Partially revert 1b7d0b8:
2577 omxvideodec: handle IL 1.2 behavior for OMX_SetParameter
2578 It turned out it was a problem in the decoder which was
2579 not updating some local variables upon SetParameter.
2580 https://bugzilla.gnome.org/show_bug.cgi?id=783976
2582 2017-07-20 09:43:19 +0100 Julien Isorce <jisorce@oblong.com>
2584 * omx/gstomxaudiodec.c:
2585 * omx/gstomxaudioenc.c:
2586 * omx/gstomxvideodec.c:
2587 * omx/gstomxvideoenc.c:
2588 omx{audio,video}{dec,enc}: sequentially disable ports because buffers are not shared
2589 For the history, the parallel disable port has been introduced by:
2590 "00be69f omxvideodec: Disable output port when setting a new format"
2591 and then replicated to videoenc, audiodec and audioenc.
2592 This is only required to do 'parallel' if buffers are shared between ports.
2593 But for decoders and encoders the input and output buffer are of different
2594 nature by definition (bitstream vs images). So they cannot be shared.
2595 Also starting from IL 1.2.0 it is written in the spec that the parallel
2596 disable is not allowed and will return an error. Except when buffers are
2598 Again here we know in advance that they are not shared so let's always
2599 do a sequential disable.
2600 Tested on Desktop, rpi and zynqultrascaleplus.
2601 https://bugzilla.gnome.org/show_bug.cgi?id=786348
2603 2017-08-17 12:26:05 +0100 Tim-Philipp Müller <tim@centricular.com>
2606 Automatic update of common submodule
2607 From 48a5d85 to 3f4aa96
2609 2017-08-10 12:16:53 -0400 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2611 * omx/gstomxvideodec.c:
2612 omxvideodec: use the decoder API to set latency
2613 https://bugzilla.gnome.org/show_bug.cgi?id=785125
2615 2017-07-06 14:19:19 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2617 * omx/gstomxvideodec.c:
2618 * omx/gstomxvideoenc.c:
2619 omxvideoenc/dec: declare latency on zynqultrascaleplus
2620 The OMX specification doesn't provide any API to expose the latency
2621 introduced by encoders and decoders. We implemented this as a custom
2622 extension as declaring the latency is needed for live pipelines like
2624 https://bugzilla.gnome.org/show_bug.cgi?id=785125
2626 2017-08-07 13:16:01 -0400 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2628 * omx/gstomxvideoenc.c:
2629 omxvideoenc: adjust stride and slice height from input
2630 Use the stride and slice height information from the first buffer meta
2631 data to adjust the settings of the input port.
2632 This will ensure that the OMX input buffers match the GStreamer ones
2633 and so will save us from having to copy line-by-line each one.
2634 This is also the first step to allow the OMX encoder to receive dmabuf.
2635 Tested on rpi and zynqultrascaleplus.
2636 https://bugzilla.gnome.org/show_bug.cgi?id=785967
2638 2017-08-07 11:45:29 -0400 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2640 * omx/gstomxvideoenc.c:
2641 omxvideoenc: delay buffer configuration until component is enabled
2642 No significant change for now. Just delay the input port configuration
2643 of the buffer size related fields (stride, slice height, buffer size)
2644 until the component is activated.
2645 This will allow us to use the actual stride/height of the first input
2646 and so avoid the buffer copying code path in most cases.
2647 Tested on rpi and zynqultrascaleplus.
2648 https://bugzilla.gnome.org/show_bug.cgi?id=785967
2650 2017-07-24 13:52:35 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2652 * omx/gstomxvideodec.c:
2653 * omx/gstomxvideoenc.c:
2654 omxvideodec/enc: delay allocation after the allocation query
2655 Allocating OMX components buffers in set_format() is too early.
2656 Doing it when receiving the first buffers will allow the element to use
2657 the information from the allocation query and/or the first incoming
2658 buffer to pick to best allocation mode.
2659 Tested on raspberry pi with dynamic resolution changes on decoder and
2661 https://bugzilla.gnome.org/show_bug.cgi?id=785967
2663 2017-07-25 14:27:45 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2665 * omx/gstomxvideoenc.c:
2666 omxvideoenc: start src thread in handle_frame()
2667 Makes the code simpler as we no longer need to restart the thread in
2668 gst_omx_video_enc_flush() and It's more symetric which the omxvideodec
2670 I'm also going to move the enabling of the OMX component in
2671 handle_frame() and the src pad thread needs to be started after it.
2672 https://bugzilla.gnome.org/show_bug.cgi?id=785967
2674 2017-07-25 14:07:30 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2676 * omx/gstomxvideodec.c:
2677 omxvideodec: earlier return if downstream_flow_ret is not OK
2678 There is no point to (re)start the src thread if, for example, we are
2680 https://bugzilla.gnome.org/show_bug.cgi?id=785967
2682 2017-07-24 12:31:37 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2684 * omx/gstomxvideodec.c:
2685 * omx/gstomxvideodec.h:
2686 omxvideodec: factor out enable and disable code
2687 No semantic change, just factor out the code enabling and disabling the
2688 component to their own functions.
2689 Makes the code easier to read as the set_format() method was already
2690 pretty big. Will also allow us to easily change the enabling logic.
2691 https://bugzilla.gnome.org/show_bug.cgi?id=785967
2693 2017-07-24 12:31:37 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2695 * omx/gstomxvideoenc.c:
2696 * omx/gstomxvideoenc.h:
2697 omxvideoenc: factor out enable and disable code
2698 No semantic change, just factor out the code enabling and disabling the
2699 component to their own functions.
2700 Makes the code easier to read as the set_format() method was already
2701 pretty big. Will also allow us to easily change the enabling logic.
2702 https://bugzilla.gnome.org/show_bug.cgi?id=785967
2704 2017-07-27 12:12:01 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2707 omx: also reset nFilledLen before calling OMX_FillThisBuffer()
2708 The spec states that the buffer passed to OMX_FillThisBuffer() needs to be
2709 empty. Some implementation may check it actually is by checking its
2710 nFilledLen field, so best to reset it as well.
2711 https://bugzilla.gnome.org/show_bug.cgi?id=785623
2713 2017-07-17 21:06:47 +0100 Julien Isorce <jisorce@oblong.com>
2715 * omx/gstomxvideodec.c:
2716 * omx/gstomxvideodec.h:
2717 omxvideodec: make generic the OMX_UseEGLImage code path
2718 Will be easier to maintain and to make enhancements.
2719 Tested with Tizonia on Desktop.
2720 Also tested with Bellagio to make sure it does not crash when
2721 calling OMX_UseEGLImage and indeed it returns NotImplemented.
2722 Then gst-omx fallback to OMX_UseBuffer if it can and so on.
2723 Also tested on rpi to make sure there is no regression.
2724 https://bugzilla.gnome.org/show_bug.cgi?id=784365
2726 2017-07-21 11:52:00 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
2728 * omx/gstomxvideodec.c:
2729 omxvideodec: Fix segment seek
2730 On segment seek, unlike EOS, we drain, but we cannot expect a flush
2731 later to reset the decoder state. As a side effect, the decoder would
2732 remain in EOS state and ignore any new incoming buffers.
2733 To fix this, we call _flush() inside the _drain() function, and
2734 _finish() becomes what _drain() was before. This way, for _finish() (the
2735 eos case) we only drain, for _drain() triggered by segment seek or new
2736 caps, we also reset the decoder state so it's ready to accept buffers.
2737 https://bugzilla.gnome.org/show_bug.cgi?id=785237
2739 2017-07-10 15:00:58 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2741 * omx/gstomxvideoenc.c:
2742 omxvideoenc: ensure enough buffers are allocated in the pool
2743 Handle allocation query and ensure enough buffers are allocated in
2744 the negotiated pool. This help preventing buffer starvation in the pipeline.
2745 https://bugzilla.gnome.org/show_bug.cgi?id=785122
2747 2017-07-04 12:16:39 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2752 * omx/gstomxbufferpool.c:
2753 * omx/gstomxbufferpool.h:
2754 * omx/gstomxvideodec.c:
2755 * omx/gstomxvideodec.h:
2757 omxvideodec: add dmabuf support for output
2758 The zynqultrascaleplus OMX implementation has a custom extension
2759 allowing decoders to output dmabuf and so avoid buffers copy between OMX
2761 Make use of this extension when built on the zynqultrascaleplus. The
2762 buffer pool code should be re-usable for other platforms as well.
2763 https://bugzilla.gnome.org/show_bug.cgi?id=784847
2765 2017-06-20 00:13:33 +0100 Julien Isorce <jisorce@oblong.com>
2767 * config/tizonia/gstomx.conf.in:
2768 config: add OMX.Aratelia.video_decoder.vp8 to Tizonia config
2769 Useful mostly for testing/debugging purpose as this is a software
2770 based encoder (libvpxdec) for which GStreamer provides a direct
2772 https://bugzilla.gnome.org/show_bug.cgi?id=783976
2774 2017-06-19 23:56:02 +0100 Julien Isorce <jisorce@oblong.com>
2776 * omx/gstomxvideodec.c:
2777 omxvideodec: handle IL 1.2 behavior for OMX_SetParameter
2778 It triggers SettingsChanged on the other port and it is up to
2779 the client to decide if it should lead to a port reconfiguration.
2780 Settings are propagated to the other port for fields they have
2781 in common. But this event is only triggered on the other port
2782 if it actually change a setting.
2783 https://bugzilla.gnome.org/show_bug.cgi?id=783976
2785 2017-07-18 23:41:17 +0100 Julien Isorce <jisorce@oblong.com>
2787 * config/tizonia/gstomx.conf.in:
2788 config: set rank to 0 for Tizonia's mp3 decoder
2789 Should have been 0 from the initial commit
2790 eed49b4231a063639f90279c8044404c2149902a
2792 2017-07-17 21:03:55 +0100 Julien Isorce <jisorce@oblong.com>
2794 * omx/gstomxvideodec.c:
2795 omxvideodec: fix file permissions
2796 Introduced by ebc9b4903cbdac2793c24b05a1bb7acc3b67fae5
2798 2017-06-29 23:17:26 +0100 Julien Isorce <jisorce@oblong.com>
2800 * omx/gstomxvideodec.c:
2801 omxvideodec: fix buffer leak when eglimage setup fails
2802 Can happen if gst_buffer_pool_acquire_buffer succeeds but
2803 gst_buffer_n_memory (buffer) is not exactly 1.
2804 In theory this should not happen because the decoder requests
2805 EGLImage(RGBA) but better to fix any leak on corner cases.
2806 https://bugzilla.gnome.org/show_bug.cgi?id=784365
2808 2017-07-17 18:36:36 +0530 Satya Prakash Gupta <sp.gupta@samsung.com>
2811 omx: Possible Memory leak in gst_caps_from_string
2812 https://bugzilla.gnome.org/show_bug.cgi?id=784978
2814 2017-07-17 15:48:44 +0530 Satya Prakash Gupta <sp.gupta@samsung.com>
2816 * omx/gstomxvideoenc.c:
2817 omxvideoenc: Fix deadlock in error case when draining
2818 https://bugzilla.gnome.org/show_bug.cgi?id=784972
2820 2017-07-17 13:44:54 +0530 Satya Prakash Gupta <sp.gupta@samsung.com>
2822 * omx/gstomxaudioenc.c:
2823 omxaudioenc: Fix deadlock in error case when draining
2824 https://bugzilla.gnome.org/show_bug.cgi?id=784967
2826 2017-06-02 12:36:30 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2831 build: include OMX_IndexExt and OMX_ComponentExt if present
2832 These files may be used by OMX implementation to define custom extensions.
2833 Include them if present as we are already doing with OMX_VideoExt.h
2834 https://bugzilla.gnome.org/show_bug.cgi?id=784847
2836 2017-07-13 16:40:26 +1000 Jan Schmidt <jan@centricular.com>
2838 * omx/gstomxh264enc.c:
2839 omxh264enc: Re-add periodicty-idr property for backward compat
2840 Retain backwards compatibility by adding a duplicate
2841 property for periodicty-idr
2842 https://bugzilla.gnome.org/show_bug.cgi?id=784370
2844 2017-06-30 15:15:06 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2846 * omx/gstomxh264enc.c:
2847 omxh264enc: fix typo in "periodicty-idr" property name
2848 Also fix the 'nick' of the property.
2849 https://bugzilla.gnome.org/show_bug.cgi?id=784370
2851 2017-06-29 22:48:47 +0100 Julien Isorce <jisorce@oblong.com>
2853 * omx/gstomxvideodec.c:
2854 * omx/gstomxvideodec.h:
2855 omxvideodec: use OMX_UseBuffer
2856 For example this allows the omx decoder to directly fill the
2857 pixmaps coming from the video sink.
2858 It only avoids a buffer copy when the decoder uses a pool provided
2859 by a downstream element. So let's restrict this usage to situations
2860 where the decoder decides to use a downstream buffer pool.
2861 Tested with Tizonia/OMX.Aratelia.video_decoder.vp8
2862 and with Bellagio/OMX.mesa.video_decoder.avc.
2863 If it fails to setup buffers with OMX_UseBuffer the decoders
2864 fallbacks to usual OMX_AllocateBuffer.
2865 Also it allows to test on desktop the GstOMXBufferPool->other_pool
2866 management which was previously only used in the OMX_UseEGLImage
2868 https://bugzilla.gnome.org/show_bug.cgi?id=784069
2870 2017-07-12 10:29:16 +0100 Julien Isorce <jisorce@oblong.com>
2873 omx: do not always print an error if OMX_{UseBuffer,EGLImage} fails
2874 Let the caller decide to print an error. Because it can be part of
2875 a normal trial path.
2876 https://bugzilla.gnome.org/show_bug.cgi?id=784069
2878 2017-07-12 16:00:53 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2881 meson: add gstomxmp3enc
2882 Commit 02d493e85921596f7cac7ef4af02fde500e9a5d8 didn't add
2883 gstomxmp3enc.c to meson.
2884 https://bugzilla.gnome.org/show_bug.cgi?id=784848
2886 2017-05-23 10:32:58 +0100 Julien Isorce <jisorce@oblong.com>
2888 * config/tizonia/gstomx.conf.in:
2889 config: add OMX.Aratelia.audio_encoder.mp3 to Tizonia config
2890 Useful mostly for testing/debugging purpose as this is a software
2891 based encoder (libmp3lame) for which GStreamer provides a direct
2893 https://bugzilla.gnome.org/show_bug.cgi?id=782988
2895 2017-05-23 10:32:06 +0100 Julien Isorce <jisorce@oblong.com>
2899 * omx/gstomxmp3enc.c:
2900 * omx/gstomxmp3enc.h:
2901 omx: add gstomxmp3enc
2902 Initial support and only tested with the software based
2903 encoder OMX.Aratelia.audio_encoder.mp3 from Tizonia which
2904 internally uses libmp3lame.
2905 https://bugzilla.gnome.org/show_bug.cgi?id=782988
2907 2017-03-28 16:27:10 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2909 * config/zynqultrascaleplus/gstomx.conf:
2912 * omx/gstomxh264dec.c:
2913 h264dec: add hack to pass profile and level to OMX
2914 This information can be useful to zynqultrascaleplus decoders. They may
2915 use this information to reduce startup latency by configuring itself
2916 before receiving the first frames.
2917 We also have a custom OMX extension allowing the decoder to report the
2918 latency. The profile/level information helps it reporting a more
2919 accurate latency earlier.
2920 https://bugzilla.gnome.org/show_bug.cgi?id=783114
2922 2017-07-03 13:17:11 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2925 * omx/gstomxh264enc.c:
2926 * omx/gstomxh264utils.c:
2927 * omx/gstomxh264utils.h:
2929 omxh264enc: move profile and level parsing functions to their own files
2930 Will allow to re-use them in the decoder element.
2931 https://bugzilla.gnome.org/show_bug.cgi?id=783114
2933 2017-07-04 03:15:00 +0530 Gurkirpal Singh <gurkirpal204@gmail.com>
2935 * config/meson.build:
2936 * config/tizonia/meson.build:
2938 * meson_options.txt:
2939 meson: Add tizonia option
2940 https://bugzilla.gnome.org/show_bug.cgi?id=782800
2942 2017-04-29 02:56:59 +0530 Gurkirpal Singh <gurkirpal204@gmail.com>
2945 * config/tizonia/Makefile.am:
2946 * config/tizonia/gstomx.conf.in:
2947 * config/tizonia/meson.build:
2949 config: add omxmp3dec config for tizonia
2950 GST_OMX_CONFIG_DIR=$HOME/gst/master/gst-omx/config/tizonia/ \
2951 gst-launch-1.0 filesrc location=mpthreetest.mp3 ! id3demux ! \
2952 mpegaudioparse ! omxmp3dec ! audioconvert ! pulsesink
2953 v2: [Nicolas] Use template to create gstomx.conf using pkg-config
2954 v3: [Nicolas] Ignore only config/tizonia/gstomx.conf
2955 v4: [Nicolas] Add "/" for single occurence
2956 https://bugzilla.gnome.org/show_bug.cgi?id=782800
2958 2017-05-07 20:09:54 +0530 Gurkirpal Singh <gurkirpal204@gmail.com>
2961 omx: always ignore OMX_ErrorPortUnpopulated
2962 It is safe to ignore it always. Tizonia notifies this error to pass
2963 some khronos conformance tests. Problem is that gst-omx saves this
2964 error in comp->last_error and then gst_omx_port_set_enabled early
2965 error out which fails the pipeline.
2966 https://bugzilla.gnome.org/show_bug.cgi?id=782800
2968 2017-04-29 02:53:26 +0530 Gurkirpal Singh <gurkirpal204@gmail.com>
2972 omx: guard some omx enums with IL version
2973 Some enums that existed in 1.1.2 just do not exit in 1.2.0
2974 See https://www.khronos.org/registry/OpenMAX-IL/specs/OpenMAX_IL_1_2_0_Specification_redline.pdf
2975 https://bugzilla.gnome.org/show_bug.cgi?id=782800
2977 2017-04-29 01:56:01 +0530 Gurkirpal Singh <gurkirpal204@gmail.com>
2980 configure.ac: add tizonia target for --with-omx-target flag.
2981 This will check for tizilheaders.pc which adds path to omx-il
2982 headers its cflags. Can be installed all together with the 1.2 headers
2983 with package tizilheaders if not building from sources:
2984 https://github.com/tizonia/tizonia-openmax-il
2985 It is also adviced to remove libomxil-bellagio-dev package because
2986 it installs headers /usr/include directly, ex: /usr/include/OMX_Video.h.
2987 https://bugzilla.gnome.org/show_bug.cgi?id=782800
2989 2017-07-05 10:47:41 +0100 Julien Isorce <jisorce@oblong.com>
2991 * omx/gstomxaudioenc.c:
2992 omxaudioenc: update local port_def after reopening the component
2993 gst_omx_audio_enc_open will only update GstOMXAudioEnc->port->port_def.
2994 Note that the component is reopen only if the flag
2995 GST_OMX_HACK_NO_COMPONENT_RECONFIGURE is set.
2996 https://bugzilla.gnome.org/show_bug.cgi?id=782418
2998 2017-07-05 10:48:52 +0100 Julien Isorce <jisorce@oblong.com>
3000 * omx/gstomxvideoenc.c:
3001 omxvideoenc: update local port_def after reopening the component
3002 gst_omx_video_enc_open will only update GstOMXVideoEnc->port->port_def.
3003 Note that the component is reopen only if the flag
3004 GST_OMX_HACK_NO_COMPONENT_RECONFIGURE is set.
3005 https://bugzilla.gnome.org/show_bug.cgi?id=782418
3007 2017-05-10 12:38:39 +0900 Sejun Park <sejun79.park@samsung.com>
3009 * omx/gstomxvideodec.c:
3010 omxvideodec: update local port_def after reopening the component
3011 gst_omx_video_dec_open will only update GstOMXVideoDec->port->port_def.
3012 Note that the component is reopen only if the flag
3013 GST_OMX_HACK_NO_COMPONENT_RECONFIGURE is set.
3014 https://bugzilla.gnome.org/show_bug.cgi?id=782418
3016 2017-07-03 16:33:06 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
3018 * omx/gstomxvideodec.c:
3019 omxvideodec: increase the minimum number of allocated buffers
3020 Ensure that enough buffers are allocated by adding up component's own
3021 minimal plus the number of buffers requested by downstream.
3022 This should prevent buffers starvation problem if downstream elements
3023 are holding some of the buffers they required.
3024 Also simplify the check on the maximum on buffers. What we actually care
3025 about is to make sure the pool can hold the minimum of required buffers.
3026 https://bugzilla.gnome.org/show_bug.cgi?id=784479
3028 2017-07-03 10:54:50 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
3030 * omx/gstomxh264enc.c:
3031 omxh264enc: raise a warning if AVCIntraPeriod is not supported
3032 Some platforms may not implement OMX_IndexConfigVideoAVCIntraPeriod and
3033 use OMX_IndexParamVideoAvc instead to configure the GOP pattern.
3034 So raise a warning instead of an error if this API is not implemented.
3035 https://bugzilla.gnome.org/show_bug.cgi?id=784379
3037 2017-06-29 14:16:19 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
3039 * omx/gstomxh264enc.c:
3040 * omx/gstomxh264enc.h:
3041 omxh264enc: add 'b-frames' property
3042 Add a property to control the number of B-frames produced by the
3043 encoder using the OMX_VIDEO_PARAM_AVCTYPE OMX API.
3044 https://bugzilla.gnome.org/show_bug.cgi?id=784379
3046 2017-06-30 14:18:35 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
3048 * omx/gstomxh264enc.c:
3049 omxh264enc: fix typo in 'set_avc_intra_period'
3050 https://bugzilla.gnome.org/show_bug.cgi?id=784379
3052 2017-05-22 11:23:33 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
3054 * config/Makefile.am:
3055 * config/meson.build:
3056 * config/zynqultrascaleplus/Makefile.am:
3057 * config/zynqultrascaleplus/gstomx.conf:
3058 * config/zynqultrascaleplus/meson.build:
3061 * meson_options.txt:
3062 add 'zynqultrascaleplus' as OMX target
3063 Adding support for the 'Zynq UltraScale+' as a new OMX target.
3064 See https://www.xilinx.com/products/silicon-devices/soc/zynq-ultrascale-mpsoc.html
3065 for details about the platform.
3066 https://bugzilla.gnome.org/show_bug.cgi?id=783097
3068 2017-05-21 15:23:09 +0100 Julien Isorce <jisorce@oblong.com>
3070 * config/bellagio/gstomx.conf:
3071 config: add OMX.mesa.video_decoder.{avc,mpeg2} for Bellagio config
3072 Install libomxil-bellagio0 and make sure mesa has been built with
3073 --enable-omx. Check there is /usr/lib/libomxil-bellagio0/libomx_mesa.so
3074 then run omxregister-bellagio to regenerate $XDG_DATA_HOME/.omxregister
3075 Then omxh264dec and omxmpeg2dec should load.
3076 https://bugzilla.gnome.org/show_bug.cgi?id=782926
3078 2017-05-18 13:50:56 +0100 Julien Isorce <jisorce@oblong.com>
3081 configure.ac: move omx features check after target selection
3082 Does not change anything, except this will be useful for future commits.
3083 Indeed some targets provide a .pc file where to look for the omx headers.
3084 https://bugzilla.gnome.org/show_bug.cgi?id=782800
3086 2017-06-29 16:48:07 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
3088 * omx/gstomxh264dec.c:
3089 omxh264dec: remove 'parsed=true' from sink pad
3090 The decoder only requires to receive one frame per buffer which is
3091 already enforced with 'alignment=au'. There is no need to require to
3092 have a parser upstream.
3093 Allow to run "encode ! decode" pipeline without having a parser.
3094 https://bugzilla.gnome.org/show_bug.cgi?id=784344
3096 2017-06-16 13:28:33 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
3098 * omx/gstomxh264enc.c:
3099 omxh264enc: set profile/level using OMX_VIDEO_PARAM_AVCTYPE as well
3100 The OMX specification defines two API to set the AVC profile and level:
3101 using OMX_VIDEO_PARAM_PROFILELEVELTYPE and OMX_VIDEO_PARAM_AVCTYPE.
3102 We were already supporting the former but not the latter. We are now
3103 setting both so implementation don't have to rely on a specific one.
3104 https://bugzilla.gnome.org/show_bug.cgi?id=783862
3106 2017-06-16 13:19:33 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
3108 * omx/gstomxh264enc.c:
3109 omxh264enc: factor out update_param_profile_level()
3110 https://bugzilla.gnome.org/show_bug.cgi?id=783862
3112 2017-06-16 12:53:15 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
3114 * omx/gstomxh264enc.c:
3115 omxh264enc: factor out string to profile/level enum conversion
3116 https://bugzilla.gnome.org/show_bug.cgi?id=783862
3118 2017-06-28 15:06:10 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
3120 * omx/gstomxh264enc.c:
3121 omxh264enc: use OMX_IndexConfigBrcmVideoIntraPeriod on pi
3122 The OMX_VIDEO_CONFIG_AVCINTRAPERIOD.nPFrames setting isn't of any use on
3123 the raspbery pi. Instead it uses a custom extension to define the I
3125 https://bugzilla.gnome.org/show_bug.cgi?id=783829
3127 2017-06-28 15:03:52 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
3129 * omx/gstomxh264enc.c:
3130 omxh264enc: factor out set_avc_intra_perdiod()
3131 https://bugzilla.gnome.org/show_bug.cgi?id=783829
3133 2017-06-02 12:48:57 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
3136 meson: define HAVE_VIDEO_EXT if OMX_VideoExt.h is present
3137 Meson build wasn't defining the HAVE_VIDEO_EXT like configure.ac does.
3138 https://bugzilla.gnome.org/show_bug.cgi?id=783346
3140 2017-06-11 12:32:01 +0000 Graham Leggett <minfrin@sharp.fm>
3142 * omx/gstomxvideoenc.c:
3143 omxvideoenc: Improve debug output when setting codec state due to new codec_data fails
3144 https://bugzilla.gnome.org/show_bug.cgi?id=783657
3146 2017-05-20 14:49:20 +0100 Julien Isorce <jisorce@oblong.com>
3149 omx: allow 0 feature
3150 Previously the omx plugin was blacklisted if GST_OMX_CONFIG_DIR
3151 points to an invalid path or if the gstomx.conf contains 0 valid
3153 Problem is that once the plugin is blacklisted, a rescan is not
3154 triggered upon changes of the env var or the gstomx.conf file
3155 despite being setup with gst_plugin_add_dependency.
3156 This also makes it more consistent with other plugins that auto
3157 generate features. For example gst-{ffmeg,libav}, gstreamer-vaapi,
3159 To clarify the diff, the plugin_init func will return TRUE even if
3160 g_key_file_get_groups returns 0 element and even if
3161 g_key_file_load_from_dirs fails.
3162 https://bugzilla.gnome.org/show_bug.cgi?id=782867
3164 2017-04-26 22:52:17 +0530 Gurkirpal Singh <gurkirpal204@gmail.com>
3166 * config/bellagio/gstomx.conf:
3167 config: add OMX.st.audio_decoder.mp3.mad for Bellagio config
3168 MP3 Software decoder (libmad based) but useful for testing
3169 and to compare with other targets.
3170 GST_OMX_CONFIG_DIR=$HOME/gst/master/gst-omx/config/bellagio/ \
3171 gst-launch-1.0 filesrc location=mpthreetest.mp3 ! id3demux ! \
3172 mpegaudioparse ! omxmp3dec ! audioconvert ! pulsesink
3173 Didn't add 'local' in core-name path compared to other components
3174 in that same gstomx.conf file because OMX.st.audio_decoder.mp3.mad
3175 comes with the Ubuntu package 'libomxil-bellagio0-components-mad'.
3176 All other components listed in this gstomx.conf for Bellagio, are
3177 not provided by any Ubuntu packages. It could explain the 'local',
3178 i.e. requiring to build them from source.
3179 dpkg -L libomxil-bellagio0
3180 /usr/lib/libomxil-bellagio.so.0
3181 https://bugzilla.gnome.org/show_bug.cgi?id=781786
3182 Signed-off-by: Gurkirpal Singh <gurkirpal204@gmail.com>
3183 Signed-off-by: Julien Isorce <jisorce@oblong.com>
3185 2017-05-16 14:39:04 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
3188 Remove plugin specific static build option
3189 Static and dynamic plugins now have the same interface. The standard
3190 --enable-static/--enable-shared toggle are sufficient.
3192 2017-05-10 12:10:10 +0900 Sejun Park <sejun79.park@samsung.com>
3194 * omx/gstomxvideodec.c:
3195 omxvideodec: Removed unreachable code
3196 https://bugzilla.gnome.org/show_bug.cgi?id=782416
3198 2017-05-09 16:26:44 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
3201 meson: add dep on GModule
3202 libgstomx uses the GModule API and so needs it in its dependencies list.
3203 https://bugzilla.gnome.org/show_bug.cgi?id=782387
3205 2017-05-09 13:27:28 +0000 Tim-Philipp Müller <tim@centricular.com>
3208 meson: fix config.h generation
3209 "No such input file config.h.meson", but it's not needed anyway.
3210 https://bugzilla.gnome.org/show_bug.cgi?id=782382
3212 2017-05-04 18:59:33 +0300 Sebastian Dröge <sebastian@centricular.com>
3218 === release 1.12.0 ===
3220 2017-05-04 15:48:56 +0300 Sebastian Dröge <sebastian@centricular.com>
3230 === release 1.11.91 ===
3232 2017-04-27 17:53:50 +0300 Sebastian Dröge <sebastian@centricular.com>
3242 2017-04-17 17:02:48 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
3244 * omx/gstomxvideoenc.c:
3245 videoenc: use GST_ROUND_UP_N() macro
3246 Makes the code much easier to read and understand.
3247 https://bugzilla.gnome.org/show_bug.cgi?id=781409
3249 2017-04-24 20:30:21 +0100 Tim-Philipp Müller <tim@centricular.com>
3252 Automatic update of common submodule
3253 From 60aeef6 to 48a5d85
3255 2017-04-10 23:51:00 +0100 Tim-Philipp Müller <tim@centricular.com>
3259 Automatic update of common submodule
3260 From 39ac2f5 to 60aeef6
3262 === release 1.11.90 ===
3264 2017-04-07 16:36:45 +0300 Sebastian Dröge <sebastian@centricular.com>
3274 2017-04-07 14:27:23 +0300 Sebastian Dröge <sebastian@centricular.com>
3276 * omx/gstomxvideoenc.c:
3277 omxvideoenc: Fix compiler warning
3278 gstomxvideoenc.c: In function ‘gst_omx_video_enc_fill_buffer’:
3279 CC libgstomx_la-gstomxaacdec.lo
3280 gstomxvideoenc.c:1316:27: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 8 has type ‘OMX_U32 {aka long unsigned int}’ [-Wformat=]
3281 GST_LOG_OBJECT (self, "Matched strides - direct copy %u bytes",
3283 outbuf->omx_buf->nFilledLen);
3286 2017-03-22 17:18:09 +0530 Gurkirpal Singh <gurkirpal204@gmail.com>
3289 meson: fix logic to set HAVE_THEORA
3290 https://bugzilla.gnome.org/show_bug.cgi?id=780392
3292 2017-03-14 03:02:06 +1100 Jan Schmidt <thaytan@noraisin.net>
3294 * omx/gstomxvideoenc.c:
3295 omxvideoenc: Add an unimplemented mapping for RGBA formats
3296 Add some pixel formats mappings for 2 RGBA formats. Not yet
3297 implemented in the buffer input code though, so no effect for now.
3299 2017-03-14 03:00:49 +1100 Jan Schmidt <thaytan@noraisin.net>
3303 * omx/gstomxvideoenc.c:
3304 omxvideoenc: Add GST_OMX_HACK_HEIGHT_MULTIPLE_16 for Rpi
3305 The Raspberry Pi encoder produces corrupt output unless
3306 the input height is a multiple of 16. Add a hack that adds
3307 zero padding when needed.
3309 2017-03-14 02:42:15 +1100 Jan Schmidt <thaytan@noraisin.net>
3311 * omx/gstomxvideoenc.c:
3312 omxvideoenc: Add a mapping for OMX_COLOR_FormatYUV420PackedSemiPlanar
3315 2017-03-14 02:40:24 +1100 Jan Schmidt <thaytan@noraisin.net>
3317 * omx/gstomxvideoenc.c:
3318 omxvideoenc: Filter out unimplemented formats
3319 Don't announce pixel formats in the caps if they've not been
3322 2017-03-14 02:34:36 +1100 Jan Schmidt <thaytan@noraisin.net>
3324 * omx/gstomxvideodec.c:
3325 omxvideodec: demote ERROR message
3326 There's no need to warn about failing to negotiate EGL output
3327 - that can be perfectly normal.
3329 2017-02-24 16:00:29 +0200 Sebastian Dröge <sebastian@centricular.com>
3332 meson: Update version
3334 2017-02-24 15:38:17 +0200 Sebastian Dröge <sebastian@centricular.com>
3339 === release 1.11.2 ===
3341 2017-02-24 15:10:17 +0200 Sebastian Dröge <sebastian@centricular.com>
3350 2017-02-15 18:22:53 +0000 Tim-Philipp Müller <tim@centricular.com>
3353 meson: dist meson build files
3354 Ship meson build files in tarballs, so people who use tarballs
3355 in their builds can start playing with meson already.
3357 2017-01-13 16:23:12 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
3359 * omx/gstomxaacenc.c:
3360 omxaacenc: let encoder know about incoming rate/channels
3361 https://bugzilla.gnome.org/show_bug.cgi?id=777223
3363 2017-01-18 02:43:44 +1100 Matthew Waters <matthew@centricular.com>
3365 * config/bellagio/meson.build:
3366 * config/meson.build:
3367 * config/rpi/meson.build:
3368 * examples/egl/meson.build:
3369 * examples/meson.build:
3370 * hooks/pre-commit.hook:
3372 * meson_options.txt:
3374 build: add meson build definition
3375 Currently only been tested on the RPi within gst-build.
3377 2017-01-18 15:21:35 +1100 Matthew Waters <matthew@centricular.com>
3379 * examples/egl/testegl.c:
3380 examples/testegl: update for libgstgl changes
3382 2017-01-12 16:33:09 +0200 Sebastian Dröge <sebastian@centricular.com>
3387 === release 1.11.1 ===
3389 2017-01-12 16:26:55 +0200 Sebastian Dröge <sebastian@centricular.com>
3398 2017-01-10 15:29:08 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
3400 * omx/gstomxaudioenc.c:
3401 omxaudioenc: set base class format instead of just source pad caps
3403 2016-12-18 19:46:55 +0000 Graham Leggett <minfrin@sharp.fm>
3405 * omx/gstomxaudiodec.c:
3406 * omx/gstomxvideodec.c:
3407 omx*dec: Flush before we stop the srcpad loop
3408 Flushing could otherwise hang if output port queue of pending buffers was empty
3409 https://bugzilla.gnome.org/show_bug.cgi?id=774654
3411 2016-12-14 13:29:08 -0800 Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
3414 Fix broken build due to syntax error
3415 Problem was introduced by 8716c23e2b0553db2982eb84c437f493c974385e
3417 2016-12-12 11:12:48 +0000 Graham Leggett <minfrin@sharp.fm>
3420 Prevent early EOS by resetting eos flag once GST_OMX_ACQUIRE_BUFFER_EOS is triggered
3421 https://bugzilla.gnome.org/show_bug.cgi?id=774600
3423 2016-12-12 11:09:15 +0000 Graham Leggett <minfrin@sharp.fm>
3426 Add clear debug logging on all the paths out of gst_omx_port_acquire_buffer()
3427 https://bugzilla.gnome.org/show_bug.cgi?id=774600
3429 2016-12-01 18:23:50 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com>
3431 * config/rpi/gstomx.conf:
3434 Add a signals-premature-eos hack for egl_render
3435 egl_render seems to have a bug and signals EOS before it has finished
3436 pushing out all data; this hack simply makes acquire_buffer() wait
3437 a bit more before signalling EOS, in case egl_render decides to spit
3439 https://bugzilla.gnome.org/show_bug.cgi?id=741856
3441 2016-12-11 19:52:37 +0000 Graham Leggett <minfrin@sharp.fm>
3443 * omx/gstomxvideo.c:
3444 Add support for OMX_COLOR_FormatYUV420PackedSemiPlanar and OMX_COLOR_Format24bitBGR888
3445 https://bugzilla.gnome.org/show_bug.cgi?id=775959
3447 2016-12-03 08:20:46 +0100 Edward Hervey <bilboed@bilboed.com>
3450 Automatic update of common submodule
3451 From ac2f647 to 39ac2f5
3453 2016-11-26 11:27:58 +0000 Tim-Philipp Müller <tim@centricular.com>
3456 common: use https protocol for common submodule
3457 https://bugzilla.gnome.org/show_bug.cgi?id=775110
3459 2016-11-25 23:56:06 +0200 Sebastian Dröge <sebastian@centricular.com>
3462 omx: Fix compiler warning with latest clang
3463 gstomx.c:1376:42: error: implicit conversion from enumeration type 'GstOMXAcquireBufferReturn' to different enumeration type 'OMX_ERRORTYPE'
3464 (aka 'enum OMX_ERRORTYPE') [-Werror,-Wenum-conversion]
3465 g_return_val_if_fail (!port->tunneled, GST_OMX_ACQUIRE_BUFFER_ERROR);
3466 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3467 https://bugzilla.gnome.org/show_bug.cgi?id=775112
3469 2016-11-17 19:56:35 +1100 Matthew Waters <matthew@centricular.com>
3471 * omx/gstomxvideodec.c:
3472 videodecoder: remove use of EGLImage orientation
3473 New code should use GstVideoTransformationMeta
3474 (The defaults do the right thing here though).
3476 === release 1.11.0 ===
3478 2016-11-01 18:53:25 +0200 Sebastian Dröge <sebastian@centricular.com>
3483 === release 1.10.0 ===
3485 2016-11-01 18:20:48 +0200 Sebastian Dröge <sebastian@centricular.com>
3494 === release 1.9.90 ===
3496 2016-09-30 13:04:51 +0300 Sebastian Dröge <sebastian@centricular.com>
3506 2016-09-14 11:33:13 +0200 Sebastian Dröge <sebastian@centricular.com>
3509 configure: Depend on gstreamer 1.9.2.1
3511 2016-09-12 14:09:46 +0200 Sebastian Dröge <sebastian@centricular.com>
3515 omx: Also search for gstomx.conf in the autoconf --sysconfdir
3516 https://bugzilla.gnome.org/show_bug.cgi?id=770743
3518 2016-09-10 20:52:10 +1000 Jan Schmidt <jan@centricular.com>
3522 Automatic update of common submodule
3523 From b18d820 to f980fd9
3525 2016-09-10 09:58:16 +1000 Jan Schmidt <jan@centricular.com>
3529 Automatic update of common submodule
3530 From ac2f647 to b18d820
3532 2016-09-01 12:36:09 +0300 Sebastian Dröge <sebastian@centricular.com>
3537 === release 1.9.2 ===
3539 2016-09-01 12:35:58 +0300 Sebastian Dröge <sebastian@centricular.com>
3549 2016-07-11 21:15:48 +0200 Stefan Sauer <ensonic@users.sf.net>
3552 Automatic update of common submodule
3553 From ac2f647 to f49c55e
3555 2016-07-06 13:51:24 +0300 Sebastian Dröge <sebastian@centricular.com>
3560 === release 1.9.1 ===
3562 2016-07-06 13:48:45 +0300 Sebastian Dröge <sebastian@centricular.com>
3572 2016-06-29 16:37:43 +0900 Kazunori Kobayashi <kkobayas@igel.co.jp>
3574 * omx/gstomxvideodec.c:
3575 omxvideodec: Use GST_VIDEO_FRAME_PLANE_STRIDE() to get output buffer's stride
3576 GST_VIDEO_FRAME_PLANE_STRIDE() should be used to get the actual buffer stride,
3577 as reported in the buffers's GstVideoMeta, when copying data to that buffer.
3578 https://bugzilla.gnome.org/show_bug.cgi?id=768173
3580 2016-06-21 11:48:40 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
3583 Automatic update of common submodule
3584 From ac2f647 to f363b32
3586 2016-06-21 11:43:13 +0200 Aurélien Zanelli <aurelien.zanelli@parrot.com>
3588 * omx/gstomxaudioenc.c:
3589 omxaudioenc: implement GstPreset interface
3590 To allow user to use GstPreset to quickly save and load a set of
3592 https://bugzilla.gnome.org/show_bug.cgi?id=767907
3594 2016-06-21 11:41:15 +0200 Aurélien Zanelli <aurelien.zanelli@parrot.com>
3596 * omx/gstomxvideoenc.c:
3597 omxvideoenc: implement GstPreset interface
3598 To allow user to use GstPreset to quickly save and load a set of
3600 https://bugzilla.gnome.org/show_bug.cgi?id=767907
3602 2016-06-17 12:06:48 +0300 Sebastian Dröge <sebastian@centricular.com>
3606 * omx/gstomxaudiodec.c:
3607 * omx/gstomxaudioenc.c:
3608 * omx/gstomxvideo.c:
3609 * omx/gstomxvideodec.c:
3610 * omx/gstomxvideoenc.c:
3611 omx: #define OMX_SKIP64BIT on the RPi as required by their API
3612 Also add generic support for OMX_SKIP64BIT to gst-omx, in case other
3613 implementations also #define that for whatever reason.
3614 https://bugzilla.gnome.org/show_bug.cgi?id=766475
3616 2016-06-17 10:59:45 +0300 Sebastian Dröge <sebastian@centricular.com>
3618 * omx/gstomxvideodec.c:
3619 omxvideodec: Implement ::drain() virtual method
3620 https://bugzilla.gnome.org/show_bug.cgi?id=767641
3622 2016-06-04 19:31:45 +0100 Tim-Philipp Müller <tim@centricular.com>
3625 configure: remove AG_GST_PARSE_SUBSYSTEM_DISABLES
3626 This would check which subsystems are disabled in core by grepping
3627 gstconfig.h. Only problem is: gstconfig.h has moved into libdir now
3628 so we've been checking a non-existent file for a while now. The
3629 macro would just sets GST_DISABLE_* for use in configure.ac and
3630 Makefile.am, but we don't use that anywhere so just get rid of it
3631 (the one place where we use GST_DISABLE_GST_DEBUG is in a .c file
3632 which gets the define from the gstconfig.h include).
3633 https://bugzilla.gnome.org/show_bug.cgi?id=750056
3635 2016-01-20 03:10:38 +0900 Gwang Yoon Hwang <yoon@igalia.com>
3637 * examples/egl/testegl.c:
3638 * omx/gstomxvideodec.c:
3639 omxvideodec : Use gstglmemoryegl for the RPi
3640 Modified to use gstglmemoryegl to avoid texture creation/copy operations
3642 [Matthew Waters]: gst-indent the sources and port testegl to GstGLMemoryEGL
3643 https://bugzilla.gnome.org/show_bug.cgi?id=760918
3645 2016-04-14 10:04:32 +0100 Julien Isorce <j.isorce@samsung.com>
3648 Automatic update of common submodule
3649 From 6f2d209 to ac2f647
3651 2016-02-26 12:42:41 +0200 Sebastian Dröge <sebastian@centricular.com>
3654 Automatic update of common submodule
3655 From b64f03f to 6f2d209
3657 2016-02-17 20:51:03 +1100 Matthew Waters <matthew@centricular.com>
3659 * examples/egl/testegl.c:
3660 examples: update egl example for gstgl API changes
3661 https://bugzilla.gnome.org/show_bug.cgi?id=762053
3662 https://bugzilla.gnome.org/show_bug.cgi?id=753917
3664 2016-02-05 18:11:06 -0300 Thiago Santos <thiagoss@osg.samsung.com>
3668 Automatic update of common submodule
3669 From 86e4663 to b64f03f
3671 2015-12-21 00:43:49 +0100 Koop Mast <kwm@rainbow-runner.nl>
3674 configure: Make -Bsymbolic check work with clang.
3675 Update the -Bsymbolic check with the version glib has. This version
3677 https://bugzilla.gnome.org/show_bug.cgi?id=759713
3679 2015-12-07 09:11:32 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
3683 Automatic update of common submodule
3684 From b319909 to 86e4663
3686 2015-11-18 13:00:28 +0000 Enrique Ocaña González <eocanha@igalia.com>
3689 Remember the last_error after a failed set state call to avoid blocking the next get state call
3690 gst_omx_video_dec_flush() blocks forever in
3691 http://cgit.freedesktop.org/gstreamer/gst-omx/tree/omx/gstomxvideodec.c?id=9adf0ff82903cad5331e40975ae91ed5d11bc102#n2110
3692 when the previous call to gst_omx_component_set_state() fails in
3693 http://cgit.freedesktop.org/gstreamer/gst-omx/tree/omx/gstomx.c?id=9adf0ff82903cad5331e40975ae91ed5d11bc102#n827.
3694 To mitigate that, I set "last_error" to true, so the code in
3695 http://cgit.freedesktop.org/gstreamer/gst-omx/tree/omx/gstomx.c?id=9adf0ff82903cad5331e40975ae91ed5d11bc102#n862
3696 exits early and doesn't block.
3697 https://bugzilla.gnome.org/show_bug.cgi?id=758274
3699 2015-11-18 12:59:59 +0000 Enrique Ocaña González <eocanha@igalia.com>
3701 * omx/gstomxaudiodec.c:
3702 * omx/gstomxaudioenc.c:
3703 * omx/gstomxvideodec.c:
3704 * omx/gstomxvideoenc.c:
3705 Properly handle drain requests while flushing
3706 Without this commit the decoder streaming thread stops without ever attending
3707 the drain request, leaving the decoder input thread waiting forever.
3708 https://bugzilla.gnome.org/show_bug.cgi?id=758274
3710 2015-11-10 10:42:35 +0100 Nicolas Huet <nicolas.huet@parrot.com>
3713 omx: fix hacks leak on class init
3715 2015-10-21 14:37:13 +0100 Tim-Philipp Müller <tim@centricular.com>
3718 Automatic update of common submodule
3719 From b99800a to b319909
3721 2015-10-21 14:28:41 +0300 Sebastian Dröge <sebastian@centricular.com>
3724 Automatic update of common submodule
3725 From 9aed1d7 to b99800a
3727 2015-09-01 16:08:11 -0300 Thiago Santos <thiagoss@osg.samsung.com>
3729 * omx/gstomxaacdec.c:
3730 omxaacdec: Do not accept unknown layouts
3731 It was defaulting to RAW when an unknown layout was received but
3732 the caps template would actually forbid that on the caps query
3733 or accept-caps anyway.
3735 2015-09-01 08:59:54 -0300 Thiago Santos <thiagoss@osg.samsung.com>
3737 * omx/gstomxaudiodec.c:
3738 omxaudiodec: use default pad accept-caps handling
3739 Instead of the audiodecoder one. The OMX audioo decoders have their
3740 valid input in the template pad, so just check against that to
3741 avoid doing a query downstream.
3743 2015-08-28 12:57:33 -0300 Thiago Santos <thiagoss@osg.samsung.com>
3745 * omx/gstomxvideodec.c:
3746 omxvideodec: use default pad accept-caps handling
3747 Instead of the videodecoder one. The OMX video decoders have their
3748 valid input in the template pad, so just check against that to
3749 avoid doing a query downstream.
3751 2015-08-22 15:54:55 +0000 Graham Leggett <minfrin@sharp.fm>
3753 * omx/gstomxvideoenc.c:
3754 omxvideoenc: Add keyframe support for the Rpi, using OMX_IndexConfigBrcmVideoRequestIFrame
3755 https://bugzilla.gnome.org/show_bug.cgi?id=753085
3757 2015-08-20 17:20:50 +0900 Vineeth TM <vineeth.tm@samsung.com>
3759 * examples/egl/testegl.c:
3760 gst-omx: Fix memory leaks when context parse fails
3761 When g_option_context_parse fails, context and error variables are not getting free'd
3762 which results in memory leaks. Free'ing the same.
3763 And replacing g_error_free with g_clear_error, which checks if the error being passed
3764 is not NULL and sets the variable to NULL on free'ing.
3765 https://bugzilla.gnome.org/show_bug.cgi?id=753865
3767 2015-08-16 14:53:42 +0200 Philippe Normand <philn@igalia.com>
3769 * omx/gstomxh264dec.c:
3770 omxh264dec: implement is_format_change
3771 The omxvideodecoder class only checks some of the caps parameters but if
3772 other fields change such as h264 profile and/or level it wouldn't trigger a
3774 https://bugzilla.gnome.org/show_bug.cgi?id=752376
3776 2015-07-03 00:26:48 +0200 Aurélien Zanelli <aurelien.zanelli@darkosphere.fr>
3778 * omx/gstomxvideodec.c:
3779 omxvideodec: unref allocator after getting it from allocation query
3780 Otherwise a reference will be leaked for each allocator. It only happens
3781 when target platform is Raspberry Pi and when we have GL support.
3782 https://bugzilla.gnome.org/show_bug.cgi?id=751867
3784 2015-07-03 21:59:54 +0200 Stefan Sauer <ensonic@users.sf.net>
3787 Automatic update of common submodule
3788 From f74b2df to 9aed1d7
3790 2015-06-16 17:50:14 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
3793 Automatic update of common submodule
3794 From 6015d26 to f74b2df
3796 2015-06-09 11:30:49 +0200 Edward Hervey <bilboed@bilboed.com>
3799 Automatic update of common submodule
3800 From d9a3353 to 6015d26
3802 2015-06-08 23:08:28 +0200 Stefan Sauer <ensonic@users.sf.net>
3805 Automatic update of common submodule
3806 From d37af32 to d9a3353
3808 2015-06-07 23:07:22 +0200 Stefan Sauer <ensonic@users.sf.net>
3811 Automatic update of common submodule
3812 From 21ba2e5 to d37af32
3814 2015-06-07 17:32:25 +0200 Stefan Sauer <ensonic@users.sf.net>
3817 Automatic update of common submodule
3818 From c408583 to 21ba2e5
3820 2015-06-07 17:16:43 +0200 Stefan Sauer <ensonic@users.sf.net>
3824 Automatic update of common submodule
3825 From c8fb372 to c408583
3827 2015-05-19 18:21:40 +0300 Sebastian Dröge <sebastian@centricular.com>
3829 * omx/gstomxaudiodec.c:
3830 * omx/gstomxaudiodec.h:
3831 omxaudiodec: Add an output adapter for chunking the output into codec frames
3832 Otherwise the base class will be confused.
3833 See https://bugzilla.gnome.org/show_bug.cgi?id=685730
3835 2015-04-26 18:24:13 +0100 Tim-Philipp Müller <tim@centricular.com>
3839 Remove obsolete Android build cruft
3840 This is not needed any longer.
3842 2015-04-22 10:40:22 +0200 Sebastian Dröge <sebastian@centricular.com>
3846 autotools automatically generate this, and when using different versions
3847 for autogen.sh there will always be changes to a file tracked by git.
3849 2015-04-08 15:57:59 +0100 Tim-Philipp Müller <tim@centricular.com>
3855 Add m4 directory so aclocal doesn't complain in autogen.sh
3856 Might come in handy, and these warnings seem to be
3857 fatal in some environments.
3858 You may need to git clean -x -d -f your tree before
3859 git pulling/merging.
3861 2015-04-07 22:25:57 +0100 Tim-Philipp Müller <tim@centricular.com>
3865 Update autogen.sh to latest version
3867 2015-04-03 18:58:17 +0100 Tim-Philipp Müller <tim@centricular.com>
3870 Automatic update of common submodule
3871 From bc76a8b to c8fb372
3873 2015-03-06 12:12:49 +0000 Luis de Bethencourt <luis.bg@samsung.com>
3875 * omx/gstomxaacdec.c:
3876 omxaudiodec: add comment explaining duplicate code path
3878 2015-03-06 12:09:06 +0000 Luis de Bethencourt <luis.bg@samsung.com>
3880 * omx/gstomxaacdec.c:
3881 Revert "omxaudiodec: remove duplicate code path"
3882 This reverts commit a8d26ff27a8b43f589424a59294f9057641b2a46.
3884 2015-03-06 12:03:56 +0000 Luis de Bethencourt <luis.bg@samsung.com>
3887 omx: handle both errors in the two steps of update_port_definition
3888 Also consider potential errors in the _get_parameter() in the return of the
3889 update_port_definition function.
3892 2015-03-06 10:57:53 +0000 Luis de Bethencourt <luis.bg@samsung.com>
3894 * omx/gstomxaudioenc.c:
3895 omxaudioenc: impossible if statement
3896 ret is set to GST_STATE_CHANGE_SUCCESS and never touched, so it is impossible
3897 for it to be anything else at the if check. Remove the if check.
3900 2015-03-06 10:54:43 +0000 Luis de Bethencourt <luis.bg@samsung.com>
3902 * omx/gstomxaudiodec.c:
3903 omxaudiodec: impossible if statement
3904 ret is set to GST_STATE_CHANGE_SUCCESS and never touched, so it is impossible
3905 for it to be anything else at the if check. Remove it.
3908 2015-03-06 10:50:30 +0000 Luis de Bethencourt <luis.bg@samsung.com>
3910 * omx/gstomxaacdec.c:
3911 omxaudiodec: remove duplicate code path
3913 2014-12-19 11:19:55 +0200 George Kiagiadakis <george.kiagiadakis@collabora.com>
3916 omx: call handle_messages() only once in acquire_buffer() to avoid potential deadlock
3917 There is one rare case where calling handle_messages() more than once can cause a deadlock
3918 in the video decoder element:
3919 - sink pad thread starts the src pad task (gst_omx_video_dec_loop())
3920 - _video_dec_loop() calls gst_omx_port_acquire_buffer() on dec_out_port
3921 - blocks in gst_omx_component_wait_message() releasing comp->lock and comp->messages_lock
3922 (initially, there are no buffers configured on that port, so it waits for OMX_EventPortSettingsChanged)
3923 - the sink pad thread pushes a buffer to the decoder with gst_omx_port_release_buffer()
3924 - _release_buffer() grabs comp->lock and sends the buffer to OMX, which consumes it immediately
3925 - EmptyBufferDone gets called at this point, which signals _wait_message() to unblock
3926 - the message from EmptyBufferDone is processed in gst_omx_component_handle_messages()
3927 called from gst_omx_port_release_buffer()
3928 - gst_omx_port_release_buffer releases comp->lock
3929 - the src pad thread now gets to run, grabbing comp->lock while it exits from _wait_message()
3930 - _acquire_buffer() calls the _handle_messages() on the next line after _wait_message(),
3931 which does nothing (no pending messages)
3932 - then it goes to "retry:" and calls _handle_messages() again, which also does nothing
3933 (still no pending messages)
3934 - scheduler switches to a videocore thread that calls EventHandler, informing us about the
3935 OMX_EventPortSettingsChanged event that just arrived
3936 - EventHandler graps comp->messages_lock, but not comp->lock, so it can run in parallel at
3937 this point just fine.
3938 - scheduler switches back to the src pad thread (which is in the middle of _acquire_buffer())
3939 - the next _handle_messages() which is right before if (g_queue_is_empty (&port->pending_buffers))
3940 processes the OMX_EventPortSettingsChanged
3941 - the buffer queue is still empty, so that thread blocks again in _wait_message()
3942 - the sink pad thread tries to acquire the next input port buffer
3943 - _acquire_buffer() also blocks this thread in:
3944 if (comp->pending_reconfigure_outports) { ... _wait_message() ... }
3945 - DEADLOCK. gstreamer is waiting for omx to do something, omx waits for gstreamer to do something.
3946 By removing those extra _handle_messages() calls, we can ensure that all the checks of
3947 _acquire_buffer() will re-run. In the above case, after the scheduler switches back to
3948 the middle of _acquire_buffer(), the code will enter _wait_message(), which will see that
3949 there are pending messages and will return immediately, going back to "retry:" and
3950 re-doing all the checks properly.
3951 https://bugzilla.gnome.org/show_bug.cgi?id=741854
3953 2015-02-26 09:27:44 +0900 Wonchul Lee <chul0812@gmail.com>
3956 omx: cleanup code a bit to remove else statement
3957 https://bugzilla.gnome.org/show_bug.cgi?id=745191
3959 2015-01-12 16:13:35 +0100 Stefan Sauer <ensonic@users.sf.net>
3962 Automatic update of common submodule
3963 From f2c6b95 to bc76a8b
3965 2014-12-18 10:56:15 +0100 Sebastian Dröge <sebastian@centricular.com>
3968 Automatic update of common submodule
3969 From ef1ffdc to f2c6b95
3971 2014-11-27 17:12:42 +0100 Edward Hervey <bilboed@bilboed.com>
3974 Automatic update of common submodule
3975 From 7bb2bce to ef1ffdc
3977 2014-11-13 09:55:02 +0900 Jun Ji <jun.ji@lge.com>
3981 * omx/gstomxamrdec.c:
3982 * omx/gstomxamrdec.h:
3984 https://bugzilla.gnome.org/show_bug.cgi?id=739333
3986 2014-10-27 18:00:50 +0100 Sebastian Dröge <sebastian@centricular.com>
3989 Automatic update of common submodule
3990 From 84d06cd to 7bb2bce
3992 2014-10-21 13:03:44 +0100 Tim-Philipp Müller <tim@centricular.com>
3995 Automatic update of common submodule
3996 From a8c8939 to 84d06cd
3998 2014-10-21 13:00:10 +0200 Stefan Sauer <ensonic@users.sf.net>
4001 Automatic update of common submodule
4002 From 1f5d3c3 to a8c8939
4004 2014-09-30 10:47:20 +0300 Sebastian Dröge <sebastian@centricular.com>
4006 * omx/gstomxaudiodec.c:
4007 omxaudiodec: Clean up code a bit to get rid of useless NULL checks
4009 2014-09-30 10:50:07 +0900 junji <jun.ji@lge.com>
4011 * omx/gstomxaudiodec.c:
4012 omxaudiodec: Unmap input buffers after usage
4013 https://bugzilla.gnome.org/show_bug.cgi?id=736314
4015 2014-08-31 20:30:13 +0000 Michal Lazo <michal.lazo@mdragon.org>
4017 * omx/gstomxvideoenc.c:
4018 omxvideoenc: Setup aspect ratio on RPi
4019 Needs firmware from yesterday or newer to work with all possible
4020 aspect ratios. Before that it only supported a fixed list.
4021 https://bugzilla.gnome.org/show_bug.cgi?id=732533
4023 2014-08-28 10:44:31 +0300 Sebastian Dröge <sebastian@centricular.com>
4025 * omx/gstomxaudioenc.c:
4026 omxaudioenc: Implement the hack flag GST_OMX_HACK_NO_COMPONENT_RECONFIGURE
4028 2014-08-28 10:43:22 +0300 Sebastian Dröge <sebastian@centricular.com>
4030 * omx/gstomxaudioenc.c:
4031 omxaudioenc: Use the base class' open/close vfuncs instead of calling them ourselves
4033 2014-08-26 22:13:53 -0500 Peng Liu <pengliu.mail@gmail.com>
4035 * config/rpi/gstomx.conf:
4036 * omx/gstomxvideoenc.c:
4037 omxvideoenc: Implement the hack flag GST_OMX_HACK_NO_COMPONENT_RECONFIGURE
4038 Fix a video encoder stall problem on RPi when changing the aspect ratio.
4039 https://bugzilla.gnome.org/show_bug.cgi?id=732533
4041 2014-08-14 17:36:11 +0300 Sebastian Dröge <sebastian@centricular.com>
4043 * omx/gstomxaudiodec.c:
4044 * omx/gstomxaudiodec.h:
4045 * omx/gstomxaudioenc.c:
4046 * omx/gstomxaudioenc.h:
4047 * omx/gstomxvideodec.c:
4048 * omx/gstomxvideodec.h:
4049 * omx/gstomxvideoenc.c:
4050 * omx/gstomxvideoenc.h:
4051 omx: Let base classes handle EOS
4052 https://bugzilla.gnome.org//show_bug.cgi?id=734774
4054 2014-08-14 17:33:07 +0300 Sebastian Dröge <sebastian@centricular.com>
4056 * omx/gstomxaudiodec.c:
4057 omxaudiodec: Fix flushing logic and make it more similar to the video decoder
4059 === release 1.2.0 ===
4061 2014-07-23 11:28:12 +0200 Sebastian Dröge <sebastian@centricular.com>
4071 2014-07-22 09:23:00 +0200 Sebastian Dröge <sebastian@centricular.com>
4073 * config/bellagio/gstomx.conf:
4074 * config/rpi/gstomx.conf:
4075 config: Update ranks to PRIMARY+1 to have higher preference than avdec_*
4076 See https://bugzilla.gnome.org/show_bug.cgi?id=732161
4078 2014-07-20 17:46:30 +0200 Sebastian Dröge <sebastian@centricular.com>
4080 * omx/gstomxaudiosink.c:
4081 omxaudiosink: Set port to not flushing in prepare() and keep it at flushing in unprepare()
4082 https://bugzilla.gnome.org/show_bug.cgi?id=733168
4084 2014-07-13 22:15:18 +0200 Sebastian Dröge <sebastian@centricular.com>
4086 * omx/gstomxaacdec.c:
4087 * omx/gstomxaudiodec.c:
4088 * omx/gstomxaudiodec.h:
4089 * omx/gstomxmp3dec.c:
4090 omxaudiodec: Implement setting of fallback channel positions
4092 2014-07-13 18:22:39 +0200 Sebastian Dröge <sebastian@centricular.com>
4096 * omx/gstomxaacdec.c:
4097 * omx/gstomxaacdec.h:
4098 * omx/gstomxmp3dec.c:
4099 omx: Add AAC audio decoder
4101 2014-07-02 09:22:28 +0200 Sebastian Dröge <sebastian@centricular.com>
4103 * omx/gstomxaudiodec.c:
4104 omxaudiodec: Get PCM parameters from the out port, not the in port
4106 2014-05-15 13:24:39 +0200 Sebastian Dröge <sebastian@centricular.com>
4108 * omx/gstomxaudiodec.c:
4109 omxaudiodec: Implement hack for not disabling the output port after set_format until the output format is known
4110 Needed on some OMX implementations, e.g. the one from Atmel. It does
4111 not send the settings-changed event on the output port if it is
4114 2014-05-10 23:12:54 +0200 Sebastian Dröge <sebastian@centricular.com>
4118 * omx/gstomxaudiodec.c:
4119 * omx/gstomxaudiodec.h:
4120 * omx/gstomxmp3dec.c:
4121 * omx/gstomxmp3dec.h:
4122 omx: Add audio decoder base class and a subclass for MP3
4124 2014-07-01 09:38:01 +0200 Sebastian Dröge <sebastian@centricular.com>
4128 omx: Link to gmodule-2.0-no-export for being able to use the g_module_*() API
4129 https://bugzilla.gnome.org/show_bug.cgi?id=732518
4131 2014-06-30 15:00:54 +0200 Sebastian Dröge <sebastian@centricular.com>
4133 * examples/egl/testegl.c:
4134 examples: #define GST_USE_UNSTABLE_API for libgstgl
4136 2014-06-29 19:10:19 +0200 Sebastian Dröge <sebastian@centricular.com>
4138 * omx/gstomxh264enc.c:
4139 * omx/gstomxh264enc.h:
4140 omxh264enc: Properly accumulate headers and push before the next frame
4141 Fixes output of encoding on RPi, where each header buffer (SPS and PPS)
4142 is in a separate OMX buffer.
4143 https://bugzilla.gnome.org/show_bug.cgi?id=726669
4145 2014-06-29 19:04:54 +0200 Sebastian Dröge <sebastian@centricular.com>
4147 * omx/gstomxvideoenc.c:
4148 omxvideoenc: Implement flush() instead of the deprecated reset()
4150 2014-06-25 17:14:18 +0200 Sebastian Dröge <sebastian@centricular.com>
4152 * config/rpi/gstomx.conf:
4153 rpi: It's 44100Hz, not 41400Hz
4155 2014-06-25 11:12:51 +0100 Julien Isorce <julien.isorce@collabora.co.uk>
4158 configure.ac: require gstgl >= 1.3.3
4160 2014-04-25 13:25:05 +0100 Julien Isorce <julien.isorce@collabora.co.uk>
4164 example: enable testegl
4165 See https://bugzilla.gnome.org/show_bug.cgi?id=728940
4167 2014-06-25 10:19:54 +0100 Julien Isorce <julien.isorce@collabora.co.uk>
4169 * examples/egl/testegl.c:
4170 testegl: do matrix mutlplication in the shader
4171 See https://bugzilla.gnome.org/show_bug.cgi?id=728940
4173 2014-06-25 09:36:38 +0100 Julien Isorce <julien.isorce@collabora.co.uk>
4175 * examples/egl/testegl.c:
4176 testegl: add a comment for the parse command
4177 See https://bugzilla.gnome.org/show_bug.cgi?id=728940
4179 2014-04-25 17:32:16 +0100 Julien Isorce <julien.isorce@collabora.co.uk>
4181 * examples/egl/Makefile.am:
4182 * examples/egl/cube_texture_and_coords.h:
4183 * examples/egl/testegl.c:
4184 testegl: convert code from GLESv1 to GLESv2
4185 See https://bugzilla.gnome.org/show_bug.cgi?id=728940
4187 2014-04-25 13:21:59 +0100 Julien Isorce <julien.isorce@collabora.co.uk>
4189 * examples/egl/Makefile.am:
4190 * examples/egl/testegl.c:
4191 testegl: port to gstgl API
4192 - append a glfilter just before fakesink
4193 So that we get gltexture or eglimages
4194 - propagate our EGLDisplay to the pipeline
4195 see GST_QUERY_CONTEXT
4196 - share our EGLContext with the iternal gl context
4197 of the pipeline, see GST_QUERY_ALLOCATION
4198 - use GstVideoGLTextureUploadMeta to upload
4199 the incoming gltexture or eglimage to our gl texture
4200 TODO: convert from GLESv1 to GLESv2
4201 See https://bugzilla.gnome.org/show_bug.cgi?id=728940
4203 2014-06-24 14:52:58 +0200 Sebastian Dröge <sebastian@centricular.com>
4205 * omx/gstomxbufferpool.c:
4206 * omx/gstomxbufferpool.h:
4207 * omx/gstomxvideodec.c:
4208 omxbufferpool: Copy buffers if the stride does not match and we can't use video meta
4209 https://bugzilla.gnome.org/show_bug.cgi?id=731672
4211 2014-06-24 14:52:43 +0200 Sebastian Dröge <sebastian@centricular.com>
4215 * omx/gstomxvp8dec.h:
4216 omx: Only include OMX_VideoExt.h conditionally
4217 It does not exist on the RPi for example.
4219 2014-06-24 13:59:44 +0200 Sebastian Dröge <sebastian@centricular.com>
4222 configure.ac: Require GStreamer core/base >= 1.2.2
4223 Needed at least for gst_video_decoder_release_frame().
4225 2014-06-24 13:02:13 +0200 Sebastian Dröge <sebastian@centricular.com>
4227 * omx/gstomxbufferpool.c:
4228 omxbufferpool: Fix format string compiler warning
4230 2014-06-22 21:11:45 +0000 Michal Lazo <xlazom00@gmail.com>
4232 * omx/gstomxbufferpool.c:
4233 omxbufferpool: Initialize debug category
4235 2014-06-24 12:42:22 +0200 Sebastian Dröge <sebastian@centricular.com>
4237 * omx/gstomxbufferpool.c:
4238 omxbufferpool: Properly convert OMX alignment to GStreamer alignment
4239 GStreamer uses a bitmask for the alignment while OMX uses the
4240 alignment itself. Let's convert.
4241 https://bugzilla.gnome.org/show_bug.cgi?id=710564
4243 2014-06-24 11:11:28 +0200 Sebastian Dröge <sebastian@centricular.com>
4245 * omx/gstomxh264enc.c:
4246 omxh264enc: Don't let baseclass finish frames for SPS/PPS buffers
4247 Otherwise we a) send them twice, and b) finish a frame for something
4248 that does not even include a frame.
4249 https://bugzilla.gnome.org/show_bug.cgi?id=726669
4251 2014-06-24 10:22:37 +0200 Sebastian Dröge <sebastian@centricular.com>
4253 * omx/gstomxvideo.h:
4254 omxvideo: Include the separate headers too for compatibility with 1.0.x
4256 2014-03-24 16:09:40 +0800 Zhao, Halley <halley.zhao@intel.com>
4259 * omx/gstomxvp8dec.h:
4260 omxvp8dec: use VP8 definition from OMX_VideoExt.h
4261 https://bugzilla.gnome.org/show_bug.cgi?id=726957
4263 2014-03-24 15:33:26 +0800 Zhao, Halley <halley.zhao@intel.com>
4266 configure: add --with-omx-header-path option for external omx headers
4267 https://bugzilla.gnome.org/show_bug.cgi?id=726957
4269 2014-06-18 23:04:33 +0200 Aurélien Zanelli <aurelien.zanelli@darkosphere.fr>
4271 * omx/gstomxvideodec.c:
4272 omxvideodec: fix a query leak
4273 Also add a debug message if query fails.
4274 https://bugzilla.gnome.org/show_bug.cgi?id=731898
4276 2014-05-30 15:29:15 +0200 Aurélien Zanelli <aurelien.zanelli@parrot.com>
4278 * omx/gstomxvideodec.c:
4279 omxvideodec: release frames with old PTS to avoid memory issue
4280 Interlaced stream could make the decoder use two input frames to produce
4281 one output frame causing the gstvideodecoder frame list to grow.
4282 Assuming the video decoder output frame in display order rather than in
4283 decoding order, this commit add a way to release frames with PTS less
4284 than current output frame.
4285 https://bugzilla.gnome.org/show_bug.cgi?id=730995
4287 2013-06-27 21:59:29 +0900 Kazunori Kobayashi <kkobayas@igel.co.jp>
4290 omx: Fix a missing g_free() in error path
4291 This fixes a memory leak with g_strdup() when an error occurs.
4292 https://bugzilla.gnome.org/show_bug.cgi?id=731141
4294 2014-06-02 15:34:09 +0200 Aurélien Zanelli <aurelien.zanelli@parrot.com>
4296 * omx/gstomxvideodec.c:
4297 omxvideodec: add missing stream unlock in error path
4299 2014-05-31 15:12:05 +0200 Sebastian Dröge <sebastian@centricular.com>
4302 omx: Don't handle disabling/enabling ports exactly like flushing
4303 Otherwise we might abort a flush operation in another thread when
4304 enabling/disabling ports, leading to deadlocks sometimes.
4305 https://bugzilla.gnome.org/show_bug.cgi?id=730989
4307 2014-05-26 11:02:10 +0200 Sebastian Dröge <sebastian@centricular.com>
4309 * omx/gstomxvideodec.c:
4310 omxvideodec: Don't leak buffer pool config in error cases
4313 2014-05-21 10:53:43 +0200 Sebastian Dröge <sebastian@centricular.com>
4316 Automatic update of common submodule
4317 From 211fa5f to 1f5d3c3
4319 2014-05-19 09:10:07 +0200 Sebastian Dröge <sebastian@centricular.com>
4321 * omx/gstomxvideoenc.c:
4322 omxvideoenc: Don't forget to unref codec state
4325 2014-05-19 09:08:33 +0200 Sebastian Dröge <sebastian@centricular.com>
4327 * omx/gstomxvideodec.c:
4328 omxvideodec: Make output buffer pointer always initialized
4331 2014-05-19 09:06:42 +0200 Sebastian Dröge <sebastian@centricular.com>
4333 * omx/gstomxvideodec.c:
4334 omxvideodec: Check return value of gst_buffer_map()
4337 2014-05-19 09:04:09 +0200 Sebastian Dröge <sebastian@centricular.com>
4339 * omx/gstomxvideodec.c:
4340 omxvideodec: Check return value of gst_omx_port_set_enabled() for errors
4343 2014-05-19 09:01:46 +0200 Sebastian Dröge <sebastian@centricular.com>
4345 * omx/gstomxvideodec.c:
4346 omxvideodec: Check return values of buffer pool config parsing functions
4349 2014-05-19 08:48:50 +0200 Sebastian Dröge <sebastian@centricular.com>
4352 omx: Remove dead code, buf can never be NULL here as we just check for that the line above
4355 2014-05-19 08:47:36 +0200 Sebastian Dröge <sebastian@centricular.com>
4358 omx: Fix comparisons in gst_omx_state_to_string() case to actually make sense
4361 2014-05-19 08:45:10 +0200 Sebastian Dröge <sebastian@centricular.com>
4364 omx: Make sure to compare the error codes as unsigned integers so that comparisons >2**31 actually work
4367 2014-05-19 08:40:23 +0200 Sebastian Dröge <sebastian@centricular.com>
4370 omx: Fix comparisons in gst_omx_command_to_string() default cause to actually work
4373 2014-05-15 13:22:56 +0200 Sebastian Dröge <sebastian@centricular.com>
4375 * omx/gstomxaudioenc.c:
4376 omxaudioenc: Implement hack for not disabling the output port after set_format until the output format is known
4377 Needed on some OMX implementations, e.g. the one from Atmel. It does
4378 not send the settings-changed event on the output port if it is
4381 2014-05-15 13:21:07 +0200 Sebastian Dröge <sebastian@centricular.com>
4383 * omx/gstomxvideoenc.c:
4384 omxvideoenc: Implement hack for not disabling the output port after set_format until the output format is known
4385 Needed on some OMX implementations, e.g. the one from Atmel. It does
4386 not send the settings-changed event on the output port if it is
4389 2014-05-15 10:58:34 +0200 Sebastian Dröge <sebastian@centricular.com>
4393 * omx/gstomxvideodec.c:
4394 omx: Add a hack for not disabling the output port after set_format until the output format is known
4395 Needed on some OMX implementations, e.g. the one from Atmel. It does
4396 not send the settings-changed event on the output port if it is
4399 2014-05-12 12:33:32 +0200 Josep Torra <n770galaxy@gmail.com>
4401 * omx/gstomxaudiosink.c:
4402 omxaudiosink: implement _delay only in the RaspberryPI
4403 Make code implementation conditionally built for RaspberryPI because
4404 OMX_IndexConfigAudioRenderingLatency seems to be a Broadcom extension.
4405 On other targets the query position might not be accurate without
4406 implementing _delay appropriatelly.
4408 2014-05-12 08:56:15 +0200 Sebastian Dröge <sebastian@centricular.com>
4410 * omx/gstomxaudioenc.c:
4411 omxaudioenc: Correctly scale nTickCount by OMX_TICKS_PER_SECOND
4413 2014-05-10 22:48:23 +0200 Sebastian Dröge <sebastian@centricular.com>
4415 * omx/gstomxaudioenc.c:
4416 omxaudioenc: Drain encoder on NULL buffer and don't drain on flushing
4418 2014-05-10 22:47:56 +0200 Sebastian Dröge <sebastian@centricular.com>
4420 * omx/gstomxvideodec.c:
4421 omxvideodec: Set nTickCount based on the buffer's duration instead of something wrong
4423 2014-05-10 22:47:21 +0200 Sebastian Dröge <sebastian@centricular.com>
4425 * omx/gstomxvideoenc.c:
4426 omxvideoenc: Set nTickCount to the whole duration of the buffer instead of a wrong calculation
4428 2014-05-10 22:46:51 +0200 Sebastian Dröge <sebastian@centricular.com>
4430 * omx/gstomxaudiosink.c:
4431 omxaudiosink: Fix format string compiler warnings
4433 2014-04-04 14:11:58 +0200 Josep Torra <n770galaxy@gmail.com>
4435 * config/rpi/gstomx.conf:
4438 * omx/gstomxanalogaudiosink.c:
4439 * omx/gstomxanalogaudiosink.h:
4440 * omx/gstomxaudiosink.c:
4441 * omx/gstomxaudiosink.h:
4442 * omx/gstomxhdmiaudiosink.c:
4443 * omx/gstomxhdmiaudiosink.h:
4444 omxaudiosink: Implements OpenMAX based audio sinks
4445 Provides omxanalogaudiosink and omxhdmiaudiosink elements on
4447 - omxanalogaudiosink is capable to render raw mono or stereo audio
4448 through the jack output.
4449 - omxhdmiaudiosink is capable to render raw audio up to 8 channels
4450 and transmit ac3/dts(IEC 61937) through the HDMI output.
4451 - sinks provide a clock derived from rendered samples
4452 - sinks support the GstStreamVolume interface by implementing
4453 the volume and mute properties.
4454 https://bugzilla.gnome.org/show_bug.cgi?id=728962
4456 2014-05-03 10:17:35 +0200 Sebastian Dröge <sebastian@centricular.com>
4459 Automatic update of common submodule
4460 From bcb1518 to 211fa5f
4462 2014-04-29 15:16:16 +0100 Julien Isorce <julien.isorce@collabora.co.uk>
4464 * omx/gstomxvideodec.c:
4465 omxvideodec: can negotiate caps with memory:EGLImage feature when using EGLImage allocator
4466 Previously when using gst EGLImage allocator the caps was
4467 video/x-raw, format=RGBA instead of
4468 video/x-raw(memory:EGLImage), format=RGBA
4469 Kepp previous behavior in case negotiation fails with caps feature.
4470 It means it will still have a chance to use EGLImage even if the
4471 feature is not in the caps.
4472 https://bugzilla.gnome.org/show_bug.cgi?id=729196
4474 2014-04-23 09:57:48 +0200 Aurélien Zanelli <aurelien.zanelli@parrot.com>
4476 * omx/gstomxvp8dec.h:
4477 omxvp8dec: fix typo in GST_TYPE_OMX_VP8_DEC define
4478 https://bugzilla.gnome.org/show_bug.cgi?id=728774
4480 2014-04-16 11:00:55 +0200 Aurélien Zanelli <aurelien.zanelli@parrot.com>
4482 * omx/gstomxvideodec.c:
4483 omxvideodec: don't unref caps before logging field from it
4484 https://bugzilla.gnome.org/show_bug.cgi?id=728322
4486 2014-04-15 17:30:13 +0100 Julien Isorce <julien.isorce@collabora.co.uk>
4490 example: disable testegl since libgstegl has been removed
4491 As decided in bug #703343
4492 Not compatible with the new libgstgl API.
4493 A portage has been started, attachment 272800.
4494 https://bugzilla.gnome.org/show_bug.cgi?id=703343
4496 2014-04-15 17:11:08 +0100 Julien Isorce <julien.isorce@collabora.co.uk>
4498 * omx/gstomxvideodec.c:
4499 omxvideodec: use new libgstgl API since libgstegl has been removed
4500 There is no point to retrieve a ref/unref type
4501 instead of an EGLDisplay directly. It's like for EGLImage.
4502 https://bugzilla.gnome.org/show_bug.cgi?id=703343
4504 2014-04-15 17:06:38 +0100 Julien Isorce <julien.isorce@collabora.co.uk>
4507 * examples/Makefile.am:
4509 * omx/gstomxvideodec.c:
4510 configure.ac: check for libgstgl since libgstegl has been removed
4511 https://bugzilla.gnome.org/show_bug.cgi?id=703343
4513 2014-04-09 18:52:16 +0200 Aurélien Zanelli <aurelien.zanelli@parrot.com>
4515 * omx/gstomxbufferpool.c:
4516 * omx/gstomxvideodec.c:
4517 omxvideodec: add support of more color format
4518 Add support for ABGR, ARGB, RGB16, BGR16, YUY2, UYVY, YVYU, GRAY8 and
4521 2014-04-09 18:51:57 +0200 Aurélien Zanelli <aurelien.zanelli@parrot.com>
4523 * omx/gstomxvideodec.c:
4524 omxvideodec: simplify color format conversion in fill_buffer function
4526 2014-04-09 18:51:41 +0200 Aurélien Zanelli <aurelien.zanelli@parrot.com>
4528 * omx/gstomxbufferpool.c:
4529 omxbufferpool: make video stride and offset calculation easier
4530 It will be easier to support more color format.
4532 2014-04-09 18:51:12 +0200 Aurélien Zanelli <aurelien.zanelli@parrot.com>
4534 * omx/gstomxvideo.c:
4535 * omx/gstomxvideo.h:
4536 * omx/gstomxvideodec.c:
4537 omx: add an helper to convert OMX color format to GStreamer color format
4539 2014-03-10 17:43:50 +0100 Josep Torra <n770galaxy@gmail.com>
4541 * examples/egl/testegl.c:
4542 * omx/gstomxvideodec.c:
4543 omxvideodec: Implement pipeline draining to support adaptive scenarios
4544 When draining due a format change also drain
4545 the pipeline to reclaim back all buffers.
4546 https://bugzilla.gnome.org/show_bug.cgi?id=726107
4548 2014-03-27 13:57:32 +0100 Josep Torra <n770galaxy@gmail.com>
4550 * examples/egl/testegl.c:
4551 examples: fix several memory leaks in the testegl example
4552 Ensure to call to image_data_free in order to release GPU resources.
4553 Also ensure to destroy EGLImage and GLTexture from proper
4555 https://bugzilla.gnome.org/show_bug.cgi?id=726107
4557 2014-03-25 17:16:31 +0000 Julien Isorce <julien.isorce@collabora.co.uk>
4559 * examples/egl/testegl.c:
4560 examples: keep a ref on the buffer instead of the memory
4562 https://bugzilla.gnome.org/show_bug.cgi?id=726107
4564 2014-03-07 20:08:05 +0100 Josep Torra <n770galaxy@gmail.com>
4566 * omx/gstomxvideodec.c:
4567 omxvideodec: fixes race condition during seeks
4568 Acording 6.1.3 Seek Event Sequence in the OpenMAX IL 1.1.2 spec
4569 document in order to flush the component it needs to be in
4571 https://bugzilla.gnome.org/show_bug.cgi?id=726038
4573 2014-01-29 18:31:26 +0000 Julien Isorce <julien.isorce@collabora.co.uk>
4575 * omx/gstomxvideodec.c:
4576 omxvideodec: use flush because reset is deprecated
4577 https://bugzilla.gnome.org/show_bug.cgi?id=726038
4579 2014-01-27 17:03:50 +0000 Julien Isorce <julien.isorce@collabora.co.uk>
4581 * omx/gstomxvideodec.c:
4582 omxvideodec: populate the most downstream output port on reset
4583 Make seeking work when using egl_render component
4584 https://bugzilla.gnome.org/show_bug.cgi?id=726038
4586 2014-03-24 17:49:59 +0100 Josep Torra <n770galaxy@gmail.com>
4588 * omx/gstomxbufferpool.c:
4589 omxbufferpool: return buffers to the pool instead of freeing them
4590 We have to return the buffers back to the pool in when stopping to
4591 not mess with the GstBufferPool accounting.
4592 The OMX buffers will be freed when those won't be in charge of the
4593 pool in the chained up call to 'stop'.
4594 Fixes segfaults on finalize and pool not being properly deactivated.
4595 https://bugzilla.gnome.org/show_bug.cgi?id=726337
4597 2014-03-19 12:12:49 +0100 Christian König <christian.koenig@amd.com>
4599 * omx/gstomxvideodec.c:
4600 omxvideodec: add missing unlock in the error path
4601 Signed-off-by: Christian König <christian.koenig@amd.com>
4602 https://bugzilla.gnome.org/show_bug.cgi?id=726958
4604 2014-03-18 23:36:59 +0100 Michal Lazo <xlazom00@gmail.com>
4606 * omx/gstomxh264enc.c:
4607 * omx/gstomxh264enc.h:
4610 2014-03-17 09:57:11 +0000 Julien Isorce <julien.isorce@collabora.co.uk>
4612 * omx/gstomxbufferpool.c:
4613 omxbufferpool: fix memory leak if used on output port
4614 When using GstOMXBufferPool on an output port, it internally uses
4615 a GPtrArray to manage the GstBuffers instead of the default queue
4616 from the GstBufferPool base class.
4617 In this case GstBufferPool::default_free_buffer is not called when
4618 the pool is stopped. Because the queue is empty. So explicitely
4619 call gst_omx_buffer_pool_free_buffer on each buffer contained in
4621 https://bugzilla.gnome.org/show_bug.cgi?id=726337
4623 2014-03-16 17:32:05 +0100 Sebastian Dröge <sebastian@centricular.com>
4625 * omx/gstomxh264enc.c:
4626 omxh264enc: Fix compiler warnings
4628 2014-03-16 17:19:08 +0100 Michal Lazo <xlazom00@gmail.com>
4630 * omx/gstomxh264enc.c:
4631 * omx/gstomxh264enc.h:
4632 omxh264enc: IDR interval, SPS and PPS headers for rpi
4633 https://bugzilla.gnome.org/show_bug.cgi?id=720031
4635 2014-03-13 14:26:58 +0100 Christian König <christian.koenig@amd.com>
4639 * omx/gstomxvideo.c:
4640 omxvideo: fix debug category initialisation
4641 https://bugzilla.gnome.org/show_bug.cgi?id=726024
4643 2014-03-13 19:04:47 +0100 Christian König <christian.koenig@amd.com>
4645 * omx/gstomxbufferpool.h:
4646 omxbufferpool: add proper type definitions
4647 https://bugzilla.gnome.org/show_bug.cgi?id=726325
4649 2014-03-02 10:30:04 +0100 Christian König <christian.koenig@amd.com>
4652 omx: consolidate message waiting code
4653 Add a wait_message helper function and remove all those duplicated code.
4654 https://bugzilla.gnome.org/show_bug.cgi?id=725493
4656 2014-03-12 12:48:12 +0100 Sebastian Dröge <sebastian@centricular.com>
4658 * omx/gstomxvideo.c:
4659 omx: Copy old copyright notice into the new file
4661 2014-03-12 12:47:34 +0100 Sebastian Dröge <sebastian@centricular.com>
4663 * omx/gstomxvideo.c:
4664 * omx/gstomxvideo.h:
4665 * omx/gstomxvideodec.c:
4666 * omx/gstomxvideoenc.c:
4667 omx: Rename function from _4_ to _for_ for clarity
4669 2014-03-03 16:15:24 +0100 Christian König <christian.koenig@amd.com>
4672 * omx/gstomxvideo.c:
4673 * omx/gstomxvideo.h:
4674 * omx/gstomxvideodec.c:
4675 * omx/gstomxvideoenc.c:
4676 omxvideo: start sharing more code between video decoder and encoder
4677 Identical functionality spread of two different components.
4678 We can't use a common base class because of different inheritance,
4679 but let's try to share the code anyway.
4680 https://bugzilla.gnome.org/show_bug.cgi?id=726024
4682 2014-03-12 12:43:49 +0100 Sebastian Dröge <sebastian@centricular.com>
4684 * examples/egl/Makefile.am:
4685 examples: Only build RPi EGL example if RPi was chosen as target
4687 2014-03-12 12:42:23 +0100 Sebastian Dröge <sebastian@centricular.com>
4689 * omx/gstomxbufferpool.h:
4690 omxbufferpool: Fix header include guard
4692 2014-03-05 11:41:02 +0100 Christian König <christian.koenig@amd.com>
4695 * omx/gstomxbufferpool.c:
4696 * omx/gstomxbufferpool.h:
4697 * omx/gstomxvideodec.c:
4698 omxvideodec: separate the buffer pool from the decoder
4699 https://bugzilla.gnome.org/show_bug.cgi?id=726025
4701 2014-03-04 17:41:20 +0100 Christian König <christian.koenig@amd.com>
4705 * omx/gstomxvideodec.c:
4706 omx: simplify tunnel functions
4707 Specifying the component is error prone and unnecessary.
4708 https://bugzilla.gnome.org/show_bug.cgi?id=726021
4710 2014-03-07 17:12:24 +0100 Christian König <christian.koenig@amd.com>
4712 * omx/gstomxvideodec.c:
4713 omxvideodec: fix memory leak in gst_omx_video_dec_allocate_output_buffers
4714 https://bugzilla.gnome.org/show_bug.cgi?id=725907
4716 2014-03-07 13:18:49 +0100 Christian König <christian.koenig@amd.com>
4718 * omx/gstomxvideodec.c:
4719 omxvideodec: fix memory leak gst_omx_video_dec_negotiate
4720 https://bugzilla.gnome.org/show_bug.cgi?id=725907
4722 2014-03-05 18:54:05 +0100 Christian König <christian.koenig@amd.com>
4724 * omx/gstomxvideoenc.c:
4725 omxvideoenc: fix a memory leak in gst_omx_video_enc_getcaps
4726 https://bugzilla.gnome.org/show_bug.cgi?id=725826
4728 2014-03-05 17:43:33 +0100 Josep Torra <n770galaxy@gmail.com>
4731 Makefile.am: build examples
4732 There's no reason to not build the examples now that are ported to 1.x.
4734 2014-03-05 17:25:09 +0100 Josep Torra <n770galaxy@gmail.com>
4736 * examples/egl/testegl.c:
4737 examples: avoid a clashing name with the recently added GstEGLImagePool
4738 Fixes build with current master.
4740 2013-09-05 03:41:10 -0600 Christian König <christian.koenig@amd.com>
4742 * omx/gstomxvideoenc.c:
4743 omxvideoenc: simplify _find_nearest_frame
4744 Just the same as we did with the decoder. Also give the
4745 function a gst_omx_video_enc prefix to distinct it from
4746 the decoder function.
4747 https://bugzilla.gnome.org/show_bug.cgi?id=724236
4749 2013-09-05 02:23:39 -0600 Christian König <christian.koenig@amd.com>
4751 * omx/gstomxvideodec.c:
4752 omxvideodec: simplify _find_nearest_frame
4753 No need to make it more complicated and error prone than
4754 necessary. Also give the function a gst_omx_video_dec prefix
4755 to distinct it from the encoder function.
4756 https://bugzilla.gnome.org/show_bug.cgi?id=724236
4758 2013-09-05 02:05:52 -0600 Christian König <christian.koenig@amd.com>
4760 * omx/gstomxvideodec.c:
4761 omxvideodec: remove dead code
4762 This code doesn't seems to be used for quite a while,
4763 remove it before it starts to rot.
4764 https://bugzilla.gnome.org/show_bug.cgi?id=724236
4766 2014-03-01 22:28:24 +0100 Christian König <christian.koenig@amd.com>
4769 omx: fix two serious message handling bugs
4770 Waiting for the next message if we already got one
4771 is nonsense and can lead to lockups.
4772 https://bugzilla.gnome.org/show_bug.cgi?id=725468
4774 2014-03-01 18:49:41 +0100 Christian König <christian.koenig@amd.com>
4776 * omx/gstomxvideoenc.c:
4777 omxvideoenc: fix startup race condition
4778 The reset function shouldn't start the src pad
4779 loop if it wasn't started before.
4780 Signed-off-by: Christian König <christian.koenig@amd.com>
4782 2014-03-01 18:48:17 +0100 Christian König <christian.koenig@amd.com>
4784 * omx/gstomxvideodec.c:
4785 omxvideodec: fix startup race condition
4786 The reset function shouldn't start the src pad
4787 loop if it wasn't started before.
4788 Signed-off-by: Christian König <christian.koenig@amd.com>
4790 2014-02-28 09:36:13 +0100 Sebastian Dröge <sebastian@centricular.com>
4793 Automatic update of common submodule
4794 From fe1672e to bcb1518
4796 2014-02-26 22:15:00 +0100 Stefan Sauer <ensonic@users.sf.net>
4799 Automatic update of common submodule
4800 From 1a07da9 to fe1672e
4802 2014-01-30 10:45:18 +0100 Edward Hervey <bilboed@bilboed.com>
4805 Automatic update of common submodule
4806 From d48bed3 to 1a07da9
4808 2014-01-25 17:44:14 +0100 Sebastian Dröge <sebastian@centricular.com>
4810 * omx/gstomxaudioenc.c:
4811 * omx/gstomxvideodec.c:
4812 * omx/gstomxvideoenc.c:
4813 omx: Don't handle FLUSHING and NOT_LINKED as errors
4814 Also don't stop the task on NOT_LINKED. We're not a demuxer.
4816 2013-12-22 22:35:31 +0000 Tim-Philipp Müller <tim@centricular.com>
4819 Automatic update of common submodule
4820 From dbedaa0 to d48bed3
4822 2013-11-05 11:22:02 +0000 Tim-Philipp Müller <tim@centricular.com>
4825 Automatic update of common submodule
4826 From 865aa20 to dbedaa0
4828 2013-09-28 13:32:37 +0200 Josep Torra <n770galaxy@gmail.com>
4830 * examples/egl/testegl.c:
4831 examples: simplify the thread synchronization code
4832 Make everithing more simple and fix the races conditions remaining in
4833 the previous approaches.
4835 2013-09-25 19:17:17 +0200 Sebastian Dröge <slomo@circular-chaos.org>
4837 * config/rpi/gstomx.conf:
4838 rpi: The WMV/VC1 decoder can only do WMV9 and VC1, no older versions
4840 2013-09-24 18:34:42 +0100 Tim-Philipp Müller <tim@centricular.net>
4843 Automatic update of common submodule
4844 From 6b03ba7 to 865aa20
4846 2013-09-24 18:48:24 +0200 Josep Torra <n770galaxy@gmail.com>
4848 * examples/egl/testegl.c:
4849 examples: fix another race condition
4850 Fix a race condition that caused randome deadlocks on EOS.
4852 2013-09-20 17:19:53 +0200 Josep Torra <n770galaxy@gmail.com>
4854 * config/rpi/gstomx.conf:
4855 rpi: fix a copy paste error in the config file
4857 2013-09-20 17:09:52 +0200 Josep Torra <n770galaxy@gmail.com>
4859 * examples/egl/testegl.c:
4860 examples: fix a race condition when seeking
4861 Fixes a race condition that caused pipeline deadlock during seeks.
4863 2013-09-20 10:38:12 +0200 Josep Torra <n770galaxy@gmail.com>
4865 * examples/egl/testegl.c:
4866 examples: display QoS statistics
4868 2013-09-20 09:34:37 +0200 Josep Torra <n770galaxy@gmail.com>
4870 * examples/egl/testegl.c:
4871 examples: use dedicated thread for rendering the scene
4872 Produces smother animation and prevents dropping frames due busy
4875 2013-09-20 08:25:21 +0200 Josep Torra <n770galaxy@gmail.com>
4877 * examples/egl/testegl.c:
4878 examples: don't force an specific audio sink
4879 Let playbin2 choose the audiosink available in the system.
4881 2013-09-20 08:19:48 +0200 Josep Torra <n770galaxy@gmail.com>
4883 * examples/egl/Makefile.am:
4884 examples: drop remnants of initial appsink attempt
4886 2013-09-20 16:18:18 +0200 Edward Hervey <edward@collabora.com>
4889 Automatic update of common submodule
4890 From b613661 to 6b03ba7
4892 2013-09-19 18:45:36 +0100 Tim-Philipp Müller <tim@centricular.net>
4895 Automatic update of common submodule
4896 From 74a6857 to b613661
4898 2013-09-19 17:38:30 +0100 Tim-Philipp Müller <tim@centricular.net>
4901 Automatic update of common submodule
4902 From 01a7a46 to 74a6857
4904 2013-08-20 16:00:07 +0100 Tim-Philipp Müller <tim@centricular.net>
4907 * omx/gstomxvideodec.c:
4908 omx: don't use the 'z' modifier to print size_t
4909 gcc will warn in some cases even if the size of the type
4910 is exactly that of size_t on the platform.
4911 https://bugzilla.gnome.org/show_bug.cgi?id=699008
4913 2013-07-01 15:48:47 +0200 Roman Arutyunyan <arutyunyan.roman@gmail.com>
4915 * omx/gstomxvideoenc.c:
4916 gstomxvideoenc: Set bitrate in setcaps
4917 Otherwise it gets lost whenever we configure new caps
4918 https://bugzilla.gnome.org/show_bug.cgi?id=698049
4920 2013-06-30 18:17:05 +0700 Ilya Smelykh <ilya@videoexpertsgroup.com>
4922 * examples/egl/testegl.c:
4923 examples: enable audio in testegl example
4925 2013-06-12 09:38:22 +0200 Sebastian Dröge <slomo@circular-chaos.org>
4928 configure: Allow build without gstreamer-egl
4930 2013-06-07 12:39:18 +0700 Ilya Smelykh <ilya@videoexpertsgroup.com>
4932 * examples/egl/Makefile.am:
4933 * examples/egl/testegl.c:
4934 examples: testegl example port to 1.x
4935 https://bugzilla.gnome.org/show_bug.cgi?id=701706
4937 2013-06-05 15:17:16 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
4940 Automatic update of common submodule
4941 From 098c0d7 to 01a7a46
4943 2013-05-20 12:06:34 +0200 Josep Torra <n770galaxy@gmail.com>
4945 * omx/gstomxaudioenc.c:
4946 * omx/gstomxvideodec.c:
4947 * omx/gstomxvideoenc.c:
4948 omx: Take lock on EOS to update the flow return value
4949 Fixes "GThread-ERROR **: file gthread-posix.c: line 171
4950 (g_mutex_free_posix_impl): error 'Device or resource busy' during
4951 'pthread_mutex_destroy ((pthread_mutex_t *) mutex)'" in _finalize.
4953 2013-05-15 10:54:12 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
4956 Automatic update of common submodule
4957 From 5edcd85 to 098c0d7
4959 2013-04-11 17:35:19 +0200 Josep Torra <n770galaxy@gmail.com>
4963 * examples/Makefile.am:
4964 * examples/egl/Makefile.am:
4965 * examples/egl/cube_texture_and_coords.h:
4966 * examples/egl/testegl.c:
4967 examples: add an example aplication based OpenGL ES + EGL
4968 Application that shows how to integrate playbin with an OpenGL ES
4969 scene through EGL. Renders a video on the surfaces of an animated cube.
4970 The code is not ported to 1.x so it's not built by default.
4972 2013-05-10 12:25:07 +0200 Josep Torra <n770galaxy@gmail.com>
4974 * omx/gstomxvideodec.c:
4975 omxvideodec: Redesign video size change reconfiguration code
4976 Ensure stop the decoder before clossing the tunnel.
4978 2013-05-06 16:25:27 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
4981 Makefile.am: Add -I common/m4
4982 This allows autoreconf to work correctly and automatic regeneration
4983 of autotools files if something changed.
4985 2013-05-06 19:03:59 +0530 jitendra <jvarshney20@gmail.com>
4989 * omx/gstomxaudioenc.c:
4990 * omx/gstomxvideodec.c:
4991 * omx/gstomxvideoenc.c:
4992 omx: Add pads based on element type
4993 This allows to later add sources and sink that only have a srcpad
4995 https://bugzilla.gnome.org/show_bug.cgi?id=699754
4997 2013-04-27 02:50:25 +0200 Carlos Rafael Giani <dv@pseudoterminal.org>
5000 omx: fixed type error in printf call
5002 https://bugzilla.gnome.org/show_bug.cgi?id=699008
5004 2013-04-08 17:26:16 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
5008 * omx/gstomxvideodec.c:
5009 Check for gstreamer-egl
5010 And don't use if not available.
5011 https://bugzilla.gnome.org/show_bug.cgi?id=697574
5013 2013-04-23 09:53:18 +0100 Tim-Philipp Müller <tim@centricular.net>
5016 configure: error out if no OMX target has been set explicitly with --with-omx-target=x
5017 Avoids people building for e.g. the Raspberry Pi and then wondering
5018 why things don't work as expected (since structs are packed differently
5021 2013-04-22 23:55:03 +0100 Tim-Philipp Müller <tim@centricular.net>
5024 Automatic update of common submodule
5025 From 3cb3d3c to 5edcd85
5027 2013-04-18 22:07:28 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
5030 * omx/gstomxaudioenc.c:
5031 * omx/gstomxh263enc.c:
5032 * omx/gstomxh264enc.c:
5033 * omx/gstomxmpeg4videoenc.c:
5034 * omx/gstomxvideodec.c:
5035 * omx/gstomxvideoenc.c:
5036 omx: more printf format fixes
5037 Fix printf formats again, so that gst-omx compiles warning-
5038 free on the Raspberry Pi as well. Unfortunately OMX_UINT32
5039 maybe be typedefed to uint32_t or unsigned long, which
5040 doesn't work well with our debugging printf format strings,
5041 so just use %u for those and cast to guint.
5043 2013-04-18 16:40:06 +0200 Josep Torra <n770galaxy@gmail.com>
5046 omx: fixes unused variable 'comp' when GStreamer is built without debug
5048 2013-04-18 16:03:56 +0200 Josep Torra <n770galaxy@gmail.com>
5050 * omx/gstomxvideodec.c:
5051 omxvideodec: don't use 'self->dec_out_port' anymore and use just 'port'
5052 Fixes some criticals.
5054 2013-04-18 15:21:32 +0200 Josep Torra <n770galaxy@gmail.com>
5056 * omx/gstomxvideodec.c:
5057 omxvideodec: fixes 'port' may be used uninitialized in this function
5059 2013-04-18 12:03:31 +0200 Josep Torra <n770galaxy@gmail.com>
5061 * omx/gstomxvideodec.c:
5062 omxvideodec: silence warnings building for RPI related to 'vcos_*'
5064 2013-04-18 11:19:52 +0200 Josep Torra <n770galaxy@gmail.com>
5066 * omx/gstomxvideodec.c:
5067 omxvideodec: Use new type from libgstvideo
5069 2013-04-16 14:50:49 +0530 jitendra <jvarshney20@gmail.com>
5071 * omx/gstomxaudioenc.c:
5072 * omx/gstomxvideodec.c:
5073 * omx/gstomxvideoenc.c:
5074 omx: Disable output port before transition to idle state
5075 https://bugzilla.gnome.org/show_bug.cgi?id=698109
5077 2012-10-24 12:19:41 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5080 gst: Add better support for static plugins
5082 2013-04-14 17:57:34 +0100 Tim-Philipp Müller <tim@centricular.net>
5085 Automatic update of common submodule
5086 From aed87ae to 3cb3d3c
5088 2013-04-12 17:58:30 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
5091 configure: add --disable-fatal-warnings for disabling -Werror
5093 2013-04-09 21:02:09 +0200 Stefan Sauer <ensonic@users.sf.net>
5096 Automatic update of common submodule
5097 From 04c7a1e to aed87ae
5099 2013-04-08 17:02:32 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
5102 * omx/gstomxaudioenc.c:
5103 * omx/gstomxh263enc.c:
5104 * omx/gstomxh264enc.c:
5105 * omx/gstomxmpeg4videoenc.c:
5106 * omx/gstomxvideodec.c:
5107 * omx/gstomxvideoenc.c:
5108 omx: fix printf formats in debug messages
5109 OMX_U32 is typedefed to an unsigned long,
5110 OMX_TICKS to a 64-bit integer.
5112 2013-04-08 16:52:19 +0200 Josep Torra <n770galaxy@gmail.com>
5114 * omx/gstomxvideodec.c:
5115 omxvideodec: use the correct printf format in a debug message
5117 2013-04-08 16:31:33 +0200 Josep Torra <n770galaxy@gmail.com>
5119 * omx/gstomxvideodec.c:
5120 omxvideodec: use the correct OMX_IndexParam value
5121 Fixes playback is not smooth in the EGL path.
5123 2013-04-05 13:45:24 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5125 * omx/gstomxvideodec.c:
5126 omxvideodec: Don't use API that is not in master yet
5127 It's not really needed here yet, will be needed in future versions
5129 2013-02-25 11:55:04 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5135 * omx/gstomxvideodec.c:
5136 * omx/gstomxvideodec.h:
5137 omxvideodec: Add support for egl_render on RPi
5139 2013-03-22 19:26:54 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
5144 2013-03-22 19:23:14 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
5146 * omx/gstomxh263enc.c:
5147 * omx/gstomxh264enc.c:
5148 * omx/gstomxmpeg4videoenc.c:
5149 omx: fix compiler warnings when compiling with -DG_DISABLE_ASSERT
5150 As we do for releases. Fixes 'variable may be used uninitialized'
5153 === release 1.0.0 ===
5155 2013-03-22 17:16:33 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5166 2013-03-19 16:40:09 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
5168 * omx/gstomxtheoradec.h:
5169 * omx/gstomxvp8dec.h:
5170 omx: fix typo in copyright headers
5172 2013-03-19 13:46:33 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5174 * config/rpi/gstomx.conf:
5175 rpi: Fix commit that added the VC1 decoder
5177 2013-03-19 13:27:35 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5179 * config/rpi/gstomx.conf:
5180 * omx/gstomxh263dec.c:
5181 * omx/gstomxh264dec.c:
5182 * omx/gstomxmjpegdec.c:
5183 * omx/gstomxmpeg2videodec.c:
5184 * omx/gstomxmpeg4videodec.c:
5185 * omx/gstomxtheoradec.c:
5186 * omx/gstomxvideodec.c:
5187 * omx/gstomxvp8dec.c:
5188 * omx/gstomxwmvdec.c:
5189 omx: Add more constraints to the default sink template caps
5191 2013-03-19 13:10:39 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5193 * config/rpi/gstomx.conf:
5194 rpi: Add VC1/WMV3 decoder
5195 WMV2 and WMV1 (aka WMV 1-8) are not supported by RPi.
5197 2013-03-19 12:59:20 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5199 * config/rpi/gstomx.conf:
5200 rpi: Add MJPEG decoder
5202 2013-03-19 12:56:50 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5204 * config/rpi/gstomx.conf:
5205 rpi: Add VP8 decoder
5207 2013-03-19 12:55:09 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5209 * omx/gstomxvideodec.c:
5210 omxvideodec: Set ENDOFFRAME flag for the end of frames
5212 2013-03-19 12:28:50 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5214 * config/rpi/gstomx.conf:
5215 rpi: Add Theora decoder to the config
5217 2013-03-19 09:36:18 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5222 * omx/gstomxtheoradec.c:
5223 * omx/gstomxtheoradec.h:
5224 omx: Add Theora decoder
5226 2013-03-18 16:43:24 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5229 omx: Remove additional comma
5231 2013-03-18 16:34:21 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5233 * config/rpi/gstomx.conf:
5236 * omx/gstomxmpeg2dec.h:
5237 * omx/gstomxmpeg2videodec.c:
5238 * omx/gstomxmpeg2videodec.h:
5239 omx: Rename MPEG2 decoder for consistency everywhere
5241 2013-03-18 16:30:40 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5245 * omx/gstomxmjpegdec.c:
5246 * omx/gstomxmjpegdec.h:
5247 omx: Add MJPEG decoder support
5249 2013-03-18 16:06:54 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5254 * omx/gstomxvp8dec.c:
5255 * omx/gstomxvp8dec.h:
5256 omx: Add VP8 decoder support
5258 2013-03-18 15:44:23 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5260 * config/rpi/gstomx.conf:
5261 rpi: Add h263 decoder and rename MPEG2 decoder for consistency
5263 2013-03-16 13:20:27 +0000 Tim-Philipp Müller <tim@centricular.net>
5265 * omx/gstomxmpeg2dec.c:
5266 omxmpeg2dec: mpeg-2 decoder should be able to handle mpeg-1 too
5267 https://bugzilla.gnome.org/show_bug.cgi?id=695879
5269 2013-03-16 10:13:06 +0100 Josep Torra <n770galaxy@gmail.com>
5272 omx: minor stylistic change for consistency with other similar code
5274 2013-03-16 10:00:24 +0100 Josep Torra <n770galaxy@gmail.com>
5276 * omx/gstomxaudioenc.c:
5277 * omx/gstomxvideodec.c:
5278 * omx/gstomxvideoenc.c:
5279 omx: Clarify that loop task is also paused in EOS
5281 2013-03-16 09:59:01 +0100 Josep Torra <n770galaxy@gmail.com>
5283 * omx/gstomxvideoenc.c:
5284 omxvideoenec: Don't forget propagate flow return value upstream
5286 2013-03-15 13:16:39 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
5289 omx: improve debug logging some more
5291 2013-03-15 14:09:45 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5293 * omx/gstomxvideodec.c:
5294 omxvideodec: Make sure that the first frame we pass to OpenMAX is a sync frame
5296 2013-03-15 11:46:34 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5298 * omx/gstomxaudioenc.c:
5299 * omx/gstomxvideodec.c:
5300 * omx/gstomxvideoenc.c:
5301 omx: Stop output port task after draining
5303 2013-03-15 10:58:58 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5306 omx: Reset EOS flag in more places
5308 2013-03-15 10:38:43 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5310 * omx/gstomxvideodec.c:
5311 omxvideodec: Deallocate output buffers with the right function
5313 2013-03-15 01:06:05 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
5317 omx: log commands as strings
5318 Makes logs easier to read.
5320 2013-03-15 00:47:47 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
5324 omx: log states as strings
5326 2013-03-15 00:28:02 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
5330 omx: log component name in debug messages
5331 Useful when we have more different components
5332 active at the same time.
5334 2013-03-15 09:51:42 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5336 * omx/gstomxvideodec.c:
5337 omxvideodec: Don't interpolate timestamps
5338 We will get exactly one frame per input buffer and assigning
5339 timestamps between frames if more than one OMX buffer is required
5340 per frame easily confuses timestamp tracking in OMX.
5342 2013-03-15 09:32:42 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5344 * omx/gstomxvideodec.c:
5345 omxvideodec: Give the codec_data the timestamp of the first frame and no duration
5347 2013-03-14 17:31:17 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5349 * config/rpi/gstomx.conf:
5350 omx: The MPEG4 encoder is not available on RPi and probably never will
5352 2013-03-14 17:26:30 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5355 omx: Reset some more buffer fields as required
5357 2013-03-14 17:01:08 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5359 * config/rpi/gstomx.conf:
5361 omx: The hack to disable usage of EOS buffers is not necessary anymore on RPi
5363 2013-03-14 17:00:12 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5366 omx: Reset the flags for output ports when releasing a buffer, not for input ports
5368 2013-03-14 15:03:02 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5370 * omx/gstomxh263enc.c:
5371 * omx/gstomxh264enc.c:
5372 * omx/gstomxmpeg4videoenc.c:
5373 omx: Only unref caps after usage of its fields
5375 2013-03-14 14:51:32 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5377 * omx/gstomxvideodec.c:
5378 omxvideodec: Simplify bufferpool implementation
5380 2013-03-13 13:23:35 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5382 * omx/gstomxvideodec.c:
5383 omxvideodec: Improve min/max buffer counts handling
5385 2013-03-14 12:49:42 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5389 * omx/gstomxaudioenc.c:
5390 * omx/gstomxvideodec.c:
5391 * omx/gstomxvideoenc.c:
5392 omx: Handle the OMX_EventBufferFlag to detect EOS too
5394 2013-03-13 10:29:23 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5398 omx: Mark OpenMAX buffers as EGLImage if they contain one
5399 Needs special handling in some places, e.g. because nFilledLen
5402 2013-03-13 10:21:49 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5404 * omx/gstomxvideoenc.c:
5405 omxvideoenc: Properly check the nVersion field
5407 2013-03-13 09:34:43 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5409 * omx/gstomxvideoenc.c:
5410 omxvideoenc: RPi returns garbage for OMX_IndexParamVideoBitrate, work around that
5412 2013-03-12 20:02:53 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5414 * omx/gstomxvideodec.c:
5415 omxvideodec: Make sure to always get the right buffer
5417 2013-03-12 19:35:39 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5419 * omx/gstomxvideodec.c:
5420 omxvideodec: Make sure the buffer is released to the pool if it's not the one we wanted
5422 2013-03-12 19:17:08 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5424 * omx/gstomxvideodec.c:
5425 omxvideodec: Drop too late frames instead of finishing them
5427 2013-03-12 19:16:46 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5429 * omx/gstomxvideodec.c:
5430 omx: Release buffers to the correct port
5432 2013-03-13 09:37:02 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5435 omx: Always load the OpenMAX IL cores with G_MODULE_BIND_LOCAL
5437 2013-03-12 18:20:22 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5440 omx: Lazy-load symbols of libbcm_host.so
5441 It exports eglIntOpenMAXILDoneMarker(), which is also
5442 exported by libopenmaxil.so... but we need the version
5443 from libopenmaxil.so as the other one is just a stub.
5445 2013-03-11 13:59:15 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5447 * omx/gstomxaacenc.c:
5448 * omx/gstomxh263enc.c:
5449 * omx/gstomxmpeg4videoenc.c:
5450 omx: Don't set profile/level in other encoders if downstream caps don't specify any
5452 2013-03-11 13:49:38 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5454 * omx/gstomxh264enc.c:
5455 omxh264enc: If caps specify no profile/level use the component's defaults
5457 2013-03-11 13:45:04 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5459 * omx/gstomxvideoenc.c:
5460 omxvideoenc: Always allocate output buffers from the loop function
5462 2013-03-11 13:12:57 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5464 * omx/gstomxh264enc.c:
5465 omxh264enc: The h264 encoders are supposed to output byte-stream/au
5467 2013-03-11 11:47:42 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5469 * omx/gstomxvideoenc.c:
5470 omxvideoenc: Wait until the Executing state is reached before passing buffers to the component
5472 2013-03-11 10:39:25 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5474 * omx/gstomxvideodec.c:
5475 omxvideodec: Don't provide buffers to downstream
5476 This only works reliable if we have a way to tell downstream to
5477 release all our buffers for reconfiguration.
5479 2013-03-11 10:29:44 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5481 * omx/gstomxaudioenc.c:
5482 omxaudioenc: Disable output port when setting a new format
5484 2013-03-11 10:29:30 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5486 * omx/gstomxvideoenc.c:
5487 omxvideoenc: Disable output port when setting a new format
5489 2013-03-11 10:22:07 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5491 * omx/gstomxvideodec.c:
5492 omxvideodec: Disable output port when setting a new format
5493 Based on a patch by Josep Torra <n770galaxy@gmail.com>
5495 2013-03-11 10:04:10 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5497 * omx/gstomxaudioenc.c:
5498 * omx/gstomxvideodec.c:
5499 * omx/gstomxvideoenc.c:
5500 omx: Catch errors when releasing buffers to a port and handle them
5502 2013-03-10 12:09:23 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5504 * omx/gstomxvideoenc.c:
5505 omxvideoenc: Use the correct video codec state when filling an input buffer
5507 2013-03-10 12:05:50 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5509 * omx/gstomxvideoenc.c:
5510 omxvideoenc: Store correct input state
5512 2013-03-10 11:27:34 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5514 * omx/gstomxvideoenc.c:
5515 omxvideoenc: Allocate output buffers as early as possible
5517 2013-03-10 11:01:57 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5520 omx: Log unknown events
5522 2013-03-09 14:14:40 +0100 Josep Torra <n770galaxy@gmail.com>
5524 * omx/gstomxaudioenc.c:
5525 * omx/gstomxvideodec.c:
5526 * omx/gstomxvideoenc.c:
5527 omx: Fix deadlock in encoders and add explainatory comments.
5529 2013-03-09 13:27:08 +0100 Josep Torra <n770galaxy@gmail.com>
5531 * omx/gstomxvideodec.c:
5532 omxvideodec: fix printf format identifier
5534 2013-03-09 13:07:59 +0100 Josep Torra <n770galaxy@gmail.com>
5536 * omx/gstomxvideodec.c:
5537 omx: Minor changes on debuging info
5539 2013-03-09 13:00:33 +0100 Josep Torra <n770galaxy@gmail.com>
5541 * omx/gstomxvideodec.c:
5542 omxvideodec: avoid a deadlock
5544 2013-03-08 15:56:40 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5546 * omx/gstomxvideodec.c:
5547 omxvideodec: Don't forget to populate output port
5549 2013-03-08 15:11:27 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5551 * omx/gstomxaudioenc.c:
5552 * omx/gstomxvideodec.c:
5553 * omx/gstomxvideoenc.c:
5554 omx: Flush and stop srcpad when configuring new caps
5556 2013-03-07 17:40:21 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5558 * config/rpi/gstomx.conf:
5560 Revert "omx: use no-component-reconfigure hack on the Raspberry PI"
5561 This reverts commit e123b2089f69a413241f30a2428ea6edd8f231e7.
5562 It's not required anymore after the fix from the last commit.
5564 2013-03-07 17:38:40 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5566 * omx/gstomxvideodec.c:
5567 omxvideodec: Only negotiate a color format with downstream on the initial caps
5569 2013-03-07 17:29:43 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5571 * omx/gstomxvideodec.c:
5572 omxvideodec: Make sure the output port is disabled while we allocate buffers
5574 2013-03-07 17:27:05 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5577 omx: Also wait for disabled output ports to be reconfigured
5579 2013-03-07 14:10:12 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5581 * omx/gstomxvideodec.c:
5582 * omx/gstomxvideodec.h:
5583 omxvideodec: Add buffer pool for sharing OpenMAX memory with downstream
5585 2013-03-07 11:11:58 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5589 * omx/gstomxaudioenc.c:
5590 * omx/gstomxvideodec.c:
5591 * omx/gstomxvideoenc.c:
5592 omx: Add timeout to the flush operation and move buffer populating to a separate function
5594 2013-03-06 17:33:23 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5596 * config/rpi/gstomx.conf:
5599 omx: Remove min buffer count hack for RPi again
5600 It's not necessary anymore
5602 2013-03-06 17:05:51 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5606 * omx/gstomxaudioenc.c:
5607 * omx/gstomxvideodec.c:
5608 * omx/gstomxvideoenc.c:
5609 omx: Do number of buffers configuration explicitely
5611 2013-03-07 11:24:54 +0100 Josep Torra <n770galaxy@gmail.com>
5613 * omx/gstomxvideodec.c:
5614 omxvideodec: fixes reconfiguration
5615 Avoid having fixed fields from previous caps on reconfiguration.
5617 2013-03-07 11:02:39 +0100 Josep Torra <n770galaxy@gmail.com>
5619 * config/rpi/gstomx.conf:
5621 omx: use no-component-reconfigure hack on the Raspberry PI
5623 2013-03-07 00:03:28 +0000 Tim-Philipp Müller <tim@centricular.net>
5626 Automatic update of common submodule
5627 From 2de221c to 04c7a1e
5629 2013-03-01 15:32:47 +0100 Josep Torra <n770galaxy@gmail.com>
5631 * omx/gstomxvideoenc.h:
5632 omxvideoenc: drop unused data member
5634 2013-03-01 12:23:54 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5636 * omx/gstomxh263enc.c:
5637 * omx/gstomxh264enc.c:
5638 * omx/gstomxmpeg4videoenc.c:
5639 omxvideoenc: And set it actually on the right port
5641 2013-03-01 12:18:08 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5643 * omx/gstomxh263enc.c:
5644 * omx/gstomxh264enc.c:
5645 * omx/gstomxmpeg4videoenc.c:
5646 omxvideoenc: Set the coding type in the subclasses to the specific codec
5648 2013-03-01 11:49:53 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5650 * omx/gstomxvideoenc.c:
5651 omxvideoenc: gst_omx_port_update_port_definition() returns a OMX_ERRORTYPE, not a gboolean
5653 2013-03-01 11:44:17 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5655 * omx/gstomxvideodec.c:
5656 * omx/gstomxvideoenc.c:
5657 omxvideo{dec,enc}: Don't use the input state if it wasn't set yet
5659 2013-03-01 11:25:04 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5661 * omx/gstomxaudioenc.c:
5662 omxaudioenc: Only enable the output port after we know the output format
5664 2013-03-01 11:24:56 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5666 * omx/gstomxvideoenc.c:
5667 omxvideoenc: Only enable the output port after we know the output format
5669 2013-02-28 17:02:31 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5671 * omx/gstomxvideodec.c:
5672 omxvideodec: Only enable the output port after we know the output format
5674 2013-03-01 11:18:18 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5678 omx: Handle errors more gracefully
5680 2013-02-28 15:48:53 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5684 * omx/gstomxaudioenc.c:
5685 * omx/gstomxh263dec.c:
5686 * omx/gstomxh264dec.c:
5687 * omx/gstomxmpeg2dec.c:
5688 * omx/gstomxmpeg4videodec.c:
5689 * omx/gstomxvideodec.c:
5690 * omx/gstomxwmvdec.c:
5691 omx: Return the OMX_ERRORTYPE from gst_omx_port_update_port_definition
5693 2013-02-28 15:37:53 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5696 omx: Return port definition update errors
5698 2013-02-28 13:57:43 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5700 * config/rpi/gstomx.conf:
5703 omx: Add hack for RPi for the minimum number of buffers required for a port
5704 The value in the port definition is invalid and the initial actual
5705 buffer count should be used.
5707 2013-02-28 13:26:56 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5710 omx: Always tell the component about the right number of buffers that we're going to allocate
5712 2013-02-28 13:07:58 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5715 omx: Invert assertion to let it express what was intended
5717 2013-02-28 11:19:07 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5721 * omx/gstomxaudioenc.c:
5722 * omx/gstomxvideodec.c:
5723 * omx/gstomxvideoenc.c:
5724 omx: Add API for allocating a specific number of buffers and using EGLImages or buffers allocated elsewhere
5726 2013-02-27 16:55:16 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5728 * omx/gstomxaudioenc.c:
5729 * omx/gstomxvideodec.c:
5730 * omx/gstomxvideoenc.c:
5731 omx: Refactor code flow a bit if output port settings have changed
5733 2013-02-27 15:49:56 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5737 * omx/gstomxaudioenc.c:
5738 * omx/gstomxvideodec.c:
5739 * omx/gstomxvideoenc.c:
5740 omx: Clean up port settings change handling
5742 2013-02-27 11:30:14 +0100 Josep Torra <n770galaxy@gmail.com>
5744 * omx/gstomxvideodec.c:
5745 omxvideodec: initialize param structure before using it
5747 2013-02-27 10:21:39 +0100 Josep Torra <n770galaxy@gmail.com>
5749 * omx/gstomxvideoenc.c:
5750 omxvideoenc: prevent a NULL pointer access
5752 2013-02-26 17:25:49 +0100 Josep Torra <n770galaxy@gmail.com>
5754 * omx/gstomxvideodec.c:
5755 omxvideodec: prevent a NULL pointer access
5757 2013-02-25 13:11:16 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5760 omx: Fix deadlock during reconfiguration
5762 2013-02-25 12:38:27 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5765 * omx/gstomxaudioenc.c:
5766 * omx/gstomxvideodec.c:
5767 * omx/gstomxvideoenc.c:
5768 omx: Auto-detect the port indizes if possible
5770 2013-02-25 11:42:38 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5772 * omx/gstomxvideodec.c:
5773 * omx/gstomxvideoenc.c:
5774 omx: Refactor querying of component supported caps into its own function
5776 2013-02-25 10:41:12 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5780 * omx/gstomxaudioenc.c:
5781 * omx/gstomxvideodec.c:
5782 * omx/gstomxvideoenc.c:
5783 omx: Refactor waiting for buffers to be released by the component to a separate function
5785 2013-01-11 17:44:13 +0000 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5789 omx: Add methods to set up and close a tunnel between components
5791 2013-02-25 09:15:53 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5793 * omx/gstomxaacenc.c:
5794 * omx/gstomxaudioenc.c:
5795 * omx/gstomxaudioenc.h:
5796 omxaudioenc: Rename component variable
5798 2013-02-25 09:15:46 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5800 * omx/gstomxh263enc.c:
5801 * omx/gstomxh264enc.c:
5802 * omx/gstomxmpeg4videoenc.c:
5803 * omx/gstomxvideoenc.c:
5804 * omx/gstomxvideoenc.h:
5805 omxvideoenc: Rename component variable
5807 2013-02-25 09:12:22 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5809 * omx/gstomxvideodec.c:
5810 * omx/gstomxvideodec.h:
5811 omxvideodec: Rename component variable
5813 2013-02-22 16:27:33 +0100 Josep Torra <n770galaxy@gmail.com>
5815 * omx/gstomxvideoenc.c:
5816 omxvideoenc: remove duplicated line
5818 2013-02-22 10:42:08 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5821 Retry loading libbcm_host.so without an absolute path if that failed
5823 2013-02-21 20:32:42 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5825 * config/bellagio/Makefile.am:
5826 Add missing file from last commit
5828 2013-02-21 11:01:28 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5830 * config/Makefile.am:
5831 * config/bellagio/gstomx.conf:
5834 Add OpenMAX IL target for Bellagio
5835 Not tested since a very long time though.
5837 2013-02-21 10:59:29 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5841 Allow using external OpenMAX IL headers
5843 2013-02-21 10:14:12 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5848 2013-02-21 10:13:16 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5850 * config/Makefile.am:
5851 * config/rpi/Makefile.am:
5852 * config/rpi/gstomx.conf:
5854 Install the RPI config when the RPI target is selected
5856 2013-02-21 10:08:07 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5859 Set default hacks for the RPI target and always initialize bcm_host
5861 2013-02-21 10:05:37 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5864 Add configure parameter for setting the OpenMAX IL target
5866 2013-02-12 11:55:39 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5869 omx: Add FIXME for the future
5871 2013-02-12 11:49:21 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5875 * omx/gstomxaudioenc.c:
5876 * omx/gstomxaudioenc.h:
5877 * omx/gstomxvideodec.c:
5878 * omx/gstomxvideodec.h:
5879 * omx/gstomxvideoenc.c:
5880 * omx/gstomxvideoenc.h:
5881 omx: Some minor refactoring and cleanup
5883 2013-02-12 11:45:40 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5886 omx: Don't access the port's buffers array if it wasn't allocated yet
5888 2013-02-12 11:44:40 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5891 omx: Mark an array as const
5893 2013-02-12 11:41:43 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5897 * omx/gstomxaudioenc.c:
5898 * omx/gstomxvideodec.c:
5899 * omx/gstomxvideoenc.c:
5900 omx: Split enabling/disabling of port into sending the command and waiting for it
5901 This allows to do anything necessary after sending the command to actually let it finish
5903 2013-02-12 11:37:38 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5906 omx: Flushing is also allowed in Paused state
5908 2013-02-12 11:28:36 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5910 * omx/gstomxvideoenc.c:
5911 omxvideoenc: Set stride, slice height and buffer size
5913 2013-02-12 11:09:30 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5915 * config/raspberry-pi.conf:
5916 config: Add h264 and mpeg2 encoders to the raspberry pi config
5917 Not completely working yet though.
5919 2013-02-12 11:03:32 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5921 * omx/gstomxvideoenc.c:
5922 omxvideoenc: Properly negotiate OMX color format with the component
5924 2013-02-12 10:53:24 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5926 * omx/gstomxvideoenc.c:
5927 omxvideoenc: Implement getcaps() vfunc
5929 2013-01-29 21:32:53 +0000 Tim-Philipp Müller <tim@centricular.net>
5932 configure: use 1.0 gstconfig.h to detect disabled subsystems
5933 Update unused configure check for GStreamer core subsystem
5934 features from 0.10 to 1.0.
5936 2013-01-28 20:44:41 +0100 Stefan Sauer <ensonic@users.sf.net>
5939 Automatic update of common submodule
5940 From a942293 to 2de221c
5942 2013-01-24 14:02:36 +0100 Julian Scheel <julian@jusst.de>
5944 * config/raspberry-pi.conf:
5947 * omx/gstomxmpeg2dec.c:
5948 * omx/gstomxmpeg2dec.h:
5949 omx: add mpeg2 video decoder
5950 This adds a decoder class for mpeg2, as well as an extended
5951 configuration for raspberry pi.
5952 https://bugzilla.gnome.org/show_bug.cgi?id=692446
5953 Signed-off-by: Julian Scheel <julian@jusst.de>
5955 2013-01-18 16:47:04 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5958 omx: Minimize the time when the messages lock is held
5959 Fixes a deadlock if any OMX functions are called when the
5960 messages are handled.
5961 Thanks to Nicolas Dufresne for noticing.
5963 2013-01-18 15:28:20 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
5966 omx: improve debug message when we can't find the config file
5967 Mention where we looked for the config file.
5969 2013-01-18 12:34:38 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
5972 build: fix autogen.sh with automake 1.13
5973 AM_CONFIG_HEADER -> AC_CONFIG_HEADERS
5975 2013-01-17 18:07:41 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5978 * omx/gstomxaudioenc.h:
5979 * omx/gstomxvideodec.h:
5980 * omx/gstomxvideoenc.h:
5981 omx: Fix includes to properly work with the 1.0 releases
5983 2013-01-15 15:08:28 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
5986 Automatic update of common submodule
5987 From a72faea to a942293
5989 2013-01-15 14:34:45 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5992 omx: Update port definition when changing some port setting
5994 2013-01-14 11:41:57 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5998 omx: Rename from libgstopenmax.so to ligstomx.so for consistency
6000 2013-01-11 15:32:22 +0000 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6003 omx: Add a method to send message
6005 2013-01-11 15:44:38 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6009 omx: Atomic ops are not required anymore for the reconfiguration
6011 2013-01-11 12:52:10 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6013 * omx/gstomxaudioenc.c:
6014 * omx/gstomxvideodec.c:
6015 * omx/gstomxvideoenc.c:
6016 omx: Fix some memory leaks and suboptimal locking
6018 2013-01-11 12:34:04 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6020 * omx/gstomxvideoenc.c:
6021 omxvideoenc: Don't forget to unmap frame in error cases
6023 2013-01-11 12:29:20 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6025 * omx/gstomxvideoenc.c:
6026 omxvideoenc: Fix copying of the video frames to the OMX buffers
6028 2013-01-11 12:24:13 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6030 * omx/gstomxvideodec.c:
6031 omxvideodec: Fix copying of the video frames from the OMX buffers
6033 2013-01-10 14:44:33 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6038 * omx/gstomxaudioenc.c:
6039 * omx/gstomxrecmutex.c:
6040 * omx/gstomxrecmutex.h:
6041 omx: Implement new approach for locking that should solve all deadlocks on RPi
6042 No mutex is locked while calling any OpenMAX functions anymore
6043 and everything from the OpenMAX callbacks is inserted into a message
6044 queue and handled from outside the callbacks.
6045 Also there's only a single mutex and condition variable per component
6046 now for handling anything from OpenMAX callbacks and a single mutex
6047 for keeping our component/port state sane.
6049 2012-12-20 19:30:38 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6051 * omx/gstomxvideodec.c:
6052 omxvideodec: Set the OMX buffer nFilledLength field properly
6054 2012-12-20 18:48:21 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6056 * omx/gstomxrecmutex.c:
6057 * omx/gstomxrecmutex.h:
6058 omxrecmutex: Fix another race condition when two threads are trying to lock for recursion at the same time
6060 2012-12-20 18:16:43 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6062 * omx/gstomxrecmutex.c:
6063 * omx/gstomxrecmutex.h:
6064 omxrecmutex: Fix yet another race condition that resulted in deadlocks
6066 2012-12-20 17:46:36 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6069 * omx/gstomxrecmutex.c:
6070 * omx/gstomxrecmutex.h:
6071 omx: Fix another race condition in the recursive mutex
6072 Between lock() and begin_recursion() it was possible for another thread to
6073 try to do a recursive_lock(). This would block because the mutex was already
6074 locked(), but not ready for recursive locking yet. unlock() would never
6075 happen in the original thread because it was waiting for the other thread
6077 Happened on the Raspberry Pi.
6079 2012-12-20 14:45:18 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6081 * omx/gstomxrecmutex.c:
6082 * omx/gstomxrecmutex.h:
6083 omxrecmutex: Fix a small race condition when unlocking a non-recursive lock
6085 2012-12-20 12:30:05 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6087 * omx/gstomxaudioenc.c:
6088 * omx/gstomxvideodec.c:
6089 * omx/gstomxvideoenc.c:
6090 omx: Fix ununsed variable compiler warning
6092 2012-12-20 12:27:47 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6094 * omx/gstomxaudioenc.c:
6095 * omx/gstomxvideodec.c:
6096 * omx/gstomxvideoenc.c:
6097 omx: No need to start the srcpad task in ::start() already
6098 It will be started properly after the caps are set.
6100 2012-12-20 12:23:49 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6102 * omx/gstomxvideodec.c:
6103 omxvideodec: OMX_ErrorNoMore is no error and just means we ended iteration
6105 2012-12-20 12:20:31 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6107 * omx/gstomxaudioenc.c:
6108 * omx/gstomxvideodec.c:
6109 * omx/gstomxvideoenc.c:
6110 omx: Improve debug output
6112 2012-12-20 12:02:30 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6114 * omx/gstomxvideodec.c:
6115 omxvideodec: Don't forget to free a GList
6117 2012-12-20 11:56:29 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6119 * omx/gstomxvideodec.c:
6120 omxvideodec: Map OMX_COLOR_FormatYUV420PackedPlanar to I420 too
6121 This is used on the Raspberry Pi.
6123 2012-12-20 11:55:36 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6125 * omx/gstomxvideodec.c:
6126 omxvideodec: During negotiation of the output format make sure we use the correct OpenMAX format
6128 2012-12-20 11:42:17 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6130 * omx/gstomxvideodec.c:
6131 omxvideodec: If negotiation fails this could also mean that the component can't do it at this point yet
6133 2012-12-20 11:40:13 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6135 * omx/gstomxvideodec.c:
6136 omxvideodec: Improve format negotiation a bit
6137 Don't leak caps and make sure to fixate caps.
6139 2012-12-19 13:05:28 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6142 omx: Also initialize nStep field of the OMX structures
6144 2012-12-19 13:03:37 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6147 omx: Initialize struct version with the OMX version we compiled with
6149 2012-12-19 12:44:31 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6151 * omx/gstomxvideodec.c:
6152 omxvideodec: Extract data from the input buffer, not the codec data
6154 2012-12-19 12:19:12 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6157 * tools/listcomponents.c:
6158 omx: Use has_suffix() instead of has_prefix() for the Broadcom hack
6160 2012-12-19 12:08:35 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6164 * tools/Makefile.am:
6165 * tools/listcomponents.c:
6166 tools: Add tool to list all components and their roles
6168 2012-12-19 11:31:51 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6171 omx: Add hack to load and initialize libbcm_host.so
6172 Needed on the Raspberry Pi. Patch based on a patch by
6173 George Kiagiadakis <george.kiagiadakis@collabora.com>
6175 2012-12-19 11:22:16 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6179 configure: Add configure option to pack OpenMAX structures
6180 This is required to set to 4 for the Raspberry Pi for example.
6182 2012-12-19 11:07:44 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6185 configure: Require GStreamer 1.0.0
6187 2012-04-20 17:13:52 +0300 George Kiagiadakis <george.kiagiadakis@collabora.com>
6190 omx: Initialize structures to version 1.1.2
6192 2012-12-19 09:51:22 +0000 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6195 * config/Makefile.am:
6196 * config/raspberry-pi.conf:
6198 config: Add raspberry-pi configuration in a different directory
6200 2012-05-20 20:11:59 +0300 George Kiagiadakis <george.kiagiadakis@collabora.com>
6202 * omx/gstomx-raspberry.conf:
6203 raspberry: Add a gstomx.conf for the Raspberry Pi
6205 2012-12-12 17:45:39 +0000 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6208 * omx/gstomxvideoenc.h:
6209 omx: Fix some compilation errors caused by circular includes
6211 2012-11-19 11:29:44 +0000 Tim-Philipp Müller <tim@centricular.net>
6214 Automatic update of common submodule
6215 From 6bb6951 to a72faea
6217 2012-11-12 15:14:09 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6219 * omx/gstomxvideodec.c:
6220 * omx/gstomxvideoenc.c:
6221 omx: Fix refcount problem with frames being dropped because of decoder bugs
6223 2012-11-12 11:29:48 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6227 * omx/gstomxaudioenc.c:
6228 * omx/gstomxaudioenc.h:
6229 * omx/gstomxrecmutex.c:
6230 * omx/gstomxrecmutex.h:
6231 * omx/gstomxvideodec.c:
6232 * omx/gstomxvideodec.h:
6233 * omx/gstomxvideoenc.c:
6234 * omx/gstomxvideoenc.h:
6235 omx: Update to new GLib thread API
6237 2012-10-22 14:34:53 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6239 * omx/gstomxvideodec.c:
6240 * omx/gstomxvideoenc.c:
6241 omx: Use open/close vfuncs
6243 2012-10-22 14:28:04 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6245 * omx/gstomxvideodec.c:
6246 * omx/gstomxvideoenc.c:
6247 omx: Handle video meta correctly
6249 2012-06-20 13:11:58 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6252 * omx/gstbasevideocodec.c:
6253 * omx/gstbasevideocodec.h:
6254 * omx/gstbasevideodecoder.c:
6255 * omx/gstbasevideodecoder.h:
6256 * omx/gstbasevideoencoder.c:
6257 * omx/gstbasevideoencoder.h:
6258 * omx/gstbasevideoutils.c:
6259 * omx/gstbasevideoutils.h:
6260 * omx/gstomxh263dec.c:
6261 * omx/gstomxh263enc.c:
6262 * omx/gstomxh264dec.c:
6263 * omx/gstomxh264enc.c:
6264 * omx/gstomxmpeg4videodec.c:
6265 * omx/gstomxmpeg4videoenc.c:
6266 * omx/gstomxvideodec.c:
6267 * omx/gstomxvideodec.h:
6268 * omx/gstomxvideoenc.c:
6269 * omx/gstomxvideoenc.h:
6270 * omx/gstomxwmvdec.c:
6271 omx: Port to video base classes from -base
6273 2012-10-17 17:57:43 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
6275 * omx/gstomxaacenc.c:
6276 * omx/gstomxh263dec.c:
6277 * omx/gstomxh263enc.c:
6278 * omx/gstomxh264dec.c:
6279 * omx/gstomxh264enc.c:
6280 * omx/gstomxmpeg4videodec.c:
6281 * omx/gstomxmpeg4videoenc.c:
6282 * omx/gstomxwmvdec.c:
6283 omx: gst_element_class_set_details_simple() -> set_static_metadata()
6285 2012-10-06 15:01:11 +0100 Tim-Philipp Müller <tim@centricular.net>
6288 Automatic update of common submodule
6289 From 6c0b52c to 6bb6951
6291 2012-09-22 16:10:38 +0100 Tim-Philipp Müller <tim@centricular.net>
6294 Automatic update of common submodule
6295 From 4f962f7 to 6c0b52c
6297 2012-06-21 20:22:13 +0300 George Kiagiadakis <george.kiagiadakis@collabora.com>
6300 omx: fix debug statement
6302 2012-06-21 20:21:03 +0300 George Kiagiadakis <george.kiagiadakis@collabora.com>
6305 omx: use recursive_lock inside set_last_error(), since this function may be called from an event handler
6307 2012-08-22 13:31:59 +0200 Stefan Sauer <ensonic@users.sf.net>
6310 Automatic update of common submodule
6311 From 668acee to 4f962f7
6313 2012-08-05 16:42:43 +0100 Tim-Philipp Müller <tim@centricular.net>
6316 Automatic update of common submodule
6317 From 94ccf4c to 668acee
6319 2012-08-03 19:32:13 +0100 Tim-Philipp Müller <tim@centricular.net>
6322 omx: fix plugin name for new GST_PLUGIN_DEFINE API
6324 2012-07-23 08:47:32 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6327 Automatic update of common submodule
6328 From 98e386f to 94ccf4c
6330 2012-07-10 09:57:09 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6332 * omx/gstbasevideodecoder.c:
6333 omx: Update for allocation query API changes
6335 2012-06-20 11:09:13 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6337 * omx/gstomxaudioenc.c:
6338 * omx/gstomxvideodec.c:
6339 * omx/gstomxvideoenc.c:
6340 omx: Fix compilation after gst_pad_start_task() API changes
6342 2012-06-08 15:06:35 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
6345 Automatic update of common submodule
6346 From 03a0e57 to 98e386f
6348 2012-06-06 18:20:18 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
6351 Automatic update of common submodule
6352 From 1fab359 to 03a0e57
6354 2012-06-01 10:30:27 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
6357 Automatic update of common submodule
6358 From f1b5a96 to 1fab359
6360 2012-05-31 13:10:33 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6363 Automatic update of common submodule
6364 From 92b7266 to f1b5a96
6366 2012-05-30 12:47:59 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6369 Automatic update of common submodule
6370 From ec1c4a8 to 92b7266
6372 2012-05-30 11:26:30 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6375 Automatic update of common submodule
6376 From 3429ba6 to ec1c4a8
6378 2012-05-13 15:58:10 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6381 Automatic update of common submodule
6382 From dc70203 to 3429ba6
6384 2012-05-08 16:13:32 +0300 George Kiagiadakis <george.kiagiadakis@collabora.com>
6387 omx: Fix spelling mistake found by lintian: s/Seperate/Separate/
6389 2012-04-30 23:58:43 +0300 George Kiagiadakis <george.kiagiadakis@collabora.com>
6394 * omx/gstomxaudioenc.c:
6395 * omx/gstomxrecmutex.c:
6396 * omx/gstomxrecmutex.h:
6397 * omx/gstomxvideodec.c:
6398 * omx/gstomxvideoenc.c:
6399 Implement a new custom recursive mutex type and fix locking in callbacks so that in-context calls are allowed.
6400 According to the OMX specification, implementations are allowed to call
6401 callbacks in the context of their function calls. However, our callbacks
6402 take locks and this causes deadlocks if the unerlying OMX implementation
6403 uses this kind of in-context calls.
6404 A solution to the problem would be a recursive mutex. However, a normal
6405 recursive mutex does not fix the problem because it is not guaranteed
6406 that the callbacks are called from the same thread. What we see in Broadcom's
6407 implementation for example is:
6409 - OMX_Foo waits on a condition
6410 - A callback is executed in a different thread
6411 - When the callback returns, its calling function
6412 signals the condition that OMX_Foo waits on
6413 - OMX_Foo wakes up and returns
6414 The solution I came up with here is to take a second lock inside the callback,
6415 but only if recursion is expected to happen. Therefore, all calls to OMX
6416 functions are guarded by calls to gst_omx_rec_mutex_begin_recursion() / _end_recursion(),
6417 which effectively tells the mutex that at this point we want to allow calls
6418 to _recursive_lock() to succeed, although we are still holding the master lock.
6420 2012-04-20 14:51:34 +0000 George Kiagiadakis <george.kiagiadakis@collabora.com>
6424 omx: Add hack to disable setting roles to components.
6428 2012-04-30 23:20:24 +0000 George Kiagiadakis <george.kiagiadakis@collabora.com>
6431 * omx/gstomxvideodec.c:
6432 omxvideodec: Implement no-empty-eos-buffer hack, as in omxvideoenc.
6434 omx/gstomxvideodec.c
6436 2012-04-30 23:19:55 +0000 George Kiagiadakis <george.kiagiadakis@collabora.com>
6438 * omx/gstomxvideodec.c:
6439 omxvideodec: Fix coding style in the drain-may-not-return hack code
6441 2012-04-25 19:03:48 +0530 Arun Raghavan <arun.raghavan@collabora.co.uk>
6444 omx: Fix trivial debug print bug
6446 2012-04-25 19:01:32 +0530 Arun Raghavan <arun.raghavan@collabora.co.uk>
6450 * omx/gstomxvideodec.c:
6451 omxvideodec: Add hack for Ducati components not returning from drain
6452 This happens on the Galaxy Nexus, and causes the pipeline to hang waiting
6453 endlessly for a drain. The hack replaces the wait with a wait + 500ms timeout.
6455 2012-04-25 16:35:40 +0530 Arun Raghavan <arun.raghavan@collabora.co.uk>
6458 omx: Fix deadlock between ending a flush and the event handler
6459 gst_omx_port_set_flushing() calls OMX_FillThisBuffer at the end of a flush
6460 without releasing the port lock, and this can cause a deadlock with the
6461 EventHandler. This patches fixes this by dropping the lock for the duration of
6462 the fill buffer call.
6464 2012-04-24 15:41:38 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6466 * omx/gstbasevideodecoder.c:
6467 * omx/gstbasevideoencoder.c:
6468 omx: Update video encoder/decoder base classes from gst-plugins-bad
6470 2012-04-16 09:16:10 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6473 configure: Modernize autotools setup a bit
6474 Also we now only create tar.bz2 and tar.xz tarballs.
6476 2012-04-16 09:12:37 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6479 Automatic update of common submodule
6481 2012-04-16 08:34:56 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6483 * omx/gstomxaudioenc.c:
6484 omxaudioenc: Use gst_buffer_extract() to copy the input buffer data to the OpenMAX buffer
6486 2012-04-13 17:16:42 -0400 Alessandro Decina <alessandro.decina@collabora.com>
6489 Fix relative/absolute path glitch
6490 Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
6492 2012-04-12 15:57:32 -0400 Olivier Crête <olivier.crete@collabora.com>
6497 * omx/gstbasevideocodec.c:
6498 * omx/gstbasevideocodec.h:
6499 * omx/gstbasevideodecoder.c:
6500 * omx/gstbasevideodecoder.h:
6501 * omx/gstbasevideoencoder.c:
6502 * omx/gstbasevideoencoder.h:
6505 * omx/gstomxaacenc.c:
6506 * omx/gstomxaudioenc.c:
6507 * omx/gstomxaudioenc.h:
6508 * omx/gstomxh263dec.c:
6509 * omx/gstomxh263enc.c:
6510 * omx/gstomxh264dec.c:
6511 * omx/gstomxh264enc.c:
6512 * omx/gstomxmpeg4videodec.c:
6513 * omx/gstomxmpeg4videoenc.c:
6514 * omx/gstomxvideodec.c:
6515 * omx/gstomxvideodec.h:
6516 * omx/gstomxvideoenc.c:
6517 * omx/gstomxvideoenc.h:
6518 * omx/gstomxwmvdec.c:
6521 2012-01-18 16:53:16 -0300 Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
6525 Enable building with Android's buildsystem
6526 This change adds prelimary buildsystem hooks to
6527 build gst-omx with the Android buildsystem. Like
6528 the rest of GStreamer's Android hooks, the process
6529 relies on the availability of androgenizer. A tool
6530 developed by Collabora to automatically generate
6531 Android.mk files from within the auto* setup.
6532 Androgenizer is currently available at:
6533 http://cgit.collabora.com/git/user/derek/androgenizer.git/
6535 2011-12-13 10:17:41 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6537 * omx/gstbasevideocodec.c:
6538 basevideocodec: Don't use G_TYPE_REGISTER_BOXED() yet
6539 This would require GLib 2.26.
6541 2011-12-14 10:09:34 +0100 Jonas Larsson <Jonas.Larsson@palm.com>
6543 * omx/gstomxaudioenc.c:
6544 omxaudioenc: Add hack for encoder components that don't allow empty EOS buffers
6546 2011-12-14 10:07:29 +0100 Jonas Larsson <Jonas.Larsson@palm.com>
6548 * omx/gstomxvideoenc.c:
6549 omxvideoenc: Fix deadlock when using the EOS hack
6551 2011-12-12 14:26:48 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6553 * omx/gstomxvideoenc.c:
6554 omxvideoenc: Remove workaround for basevideocodec bug
6556 2011-12-12 14:26:34 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6558 * omx/gstomxvideodec.c:
6559 omxvideodec: Remove workaround for basevideocodec bug
6561 2011-12-05 17:57:01 +0000 Matej Knopp <matej.knopp@gmail.com>
6563 * omx/gstbasevideocodec.c:
6564 * omx/gstbasevideocodec.h:
6565 * omx/gstbasevideodecoder.c:
6566 * omx/gstbasevideoencoder.c:
6567 basevideo: Make GstVideoFrame a reference counted boxed object
6568 ...and also clear all existing frames when resetting the decoder or encoder.
6570 2011-12-09 12:17:29 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6574 * omx/gstomxvideoenc.c:
6575 omx: Add hack for encoder components that don't allow empty EOS buffers
6577 2011-12-09 10:21:47 +0100 Dake Gu <Dake.Gu@palm.com>
6579 * omx/gstomxaacenc.c:
6580 omxaacenc: Generate and set codec_data on the caps for raw AAC
6582 2011-10-31 11:36:06 +0100 Alessandro Decina <alessandro.decina@collabora.co.uk>
6584 * omx/gstbasevideoencoder.c:
6585 basevideoencoder: handle failures in start() and stop()
6587 2011-08-26 10:50:38 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
6589 * omx/gstbasevideoencoder.c:
6590 basevideoenc: do not try to calculate latency from an unknown framerate
6591 It'll divide by zero, and latency is unknown for an unknown framerate.
6592 Fixes an assert in the schroenc test.
6593 https://bugzilla.gnome.org/show_bug.cgi?id=657419
6595 2011-12-08 11:50:49 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6597 * omx/gstbasevideoencoder.c:
6598 basevideoencoder: Only make the header buffer metadata writable, not the buffer
6600 2011-12-08 10:18:36 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6602 * omx/gstbasevideoencoder.c:
6603 basevideoencoder: Fix handling of force-keyunit events
6605 2011-12-06 13:28:41 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6607 * omx/gstomxaudioenc.c:
6608 omxaudioenc: Don't forward EOS events immediately but let all other events be handled by the base class
6609 Previously this logic was inversed, which did not make any sense at all.
6611 2011-12-06 12:47:25 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6613 * omx/gstomxaudioenc.c:
6614 * omx/gstomxaudioenc.h:
6615 omxaudioenc: Use correct timestamp, duration and filled length for the EOS buffers
6617 2011-12-06 12:47:12 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6619 * omx/gstomxvideodec.c:
6620 * omx/gstomxvideodec.h:
6621 omxvideodec: Use correct timestamp, duration and filled length for the EOS buffers
6623 2011-12-06 12:46:51 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6625 * omx/gstomxvideoenc.c:
6626 * omx/gstomxvideoenc.h:
6627 omxvideoenc: Use correct timestamp, duration and filled length for the EOS buffers
6629 2011-12-05 13:18:09 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6632 omx: Improve debugging of buffer handling
6634 2011-12-05 08:12:48 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6636 * omx/gstomxvideoenc.c:
6637 omxvideoenc: Drop EOS events in ::finish()
6638 The event will be forwarded downstream from the srcpad
6639 loop function after the last buffer was generated by the
6640 component. Forwarding it after ::finish() will use the
6641 sinkpad streaming thread and does not guarantee that
6642 the encoder is completely drained.
6644 2011-12-01 16:20:36 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6646 * omx/gstomxvideodec.c:
6647 omxvideodec: Properly drop frames due to QoS
6648 Instead of finishing them they should be passed to drop(), which
6649 will then send QoS messages.
6651 2011-11-29 12:21:32 +0100 Jonas Larsson <jonas@hallerud.se>
6653 * omx/gstomxh264enc.c:
6654 omxh264enc: Add support for resending headers after a forced-keyframe
6656 2011-11-29 12:12:33 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6658 * omx/gstbasevideocodec.h:
6659 * omx/gstbasevideoencoder.c:
6660 basevideoencoder: Pass the all-headers field of the force-key-unit event to the subclass
6662 2011-11-29 12:12:04 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6664 * omx/gstbasevideoencoder.c:
6665 * omx/gstbasevideoencoder.h:
6666 basevideoencoder: Implement full support for the new force-key-unit event
6667 Including support for the running-time and count fields.
6669 2011-11-29 09:31:11 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6671 * omx/gstbasevideoencoder.c:
6672 basevideoencoder: Use new force-keyunit event API from gst-plugins-base
6674 2011-11-29 09:18:19 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6676 * omx/gstbasevideoencoder.c:
6677 * omx/gstbasevideoencoder.h:
6678 basevideoencoder: Adjusting padding is not required for -bad libraries
6680 2011-11-28 19:48:01 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6682 * omx/gstbasevideoencoder.h:
6683 basevideoencoder: Move some fields to the private part of the instance struct
6685 2011-11-28 19:36:56 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6687 * omx/gstbasevideoencoder.c:
6688 basevideoencoder: Make headers metadata writable before pushing downstream
6689 The timestamp, duration, etc of the headers has to be changed.
6691 2011-11-28 19:35:40 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6693 * omx/gstbasevideoencoder.c:
6694 * omx/gstbasevideoencoder.h:
6695 basevideoencoder: Push the downstream force-keyframe event after the next keyframe
6696 Even if the corresponding GstVideoFrame doesn't have the is_sync_point
6699 2011-11-28 19:29:13 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6701 * omx/gstbasevideoencoder.c:
6702 * omx/gstbasevideoencoder.h:
6703 basevideoencoder: Don't push an upstream force-keyunit event downstream
6705 2011-11-25 11:48:08 +0100 Jonas Larsson <jonas@hallerud.se>
6707 * omx/gstbasevideoencoder.c:
6708 * omx/gstbasevideoencoder.h:
6709 basevideoencoder: Add initial support for the all-headers field of the force-keyframe event
6712 2011-11-25 11:37:39 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
6714 * omx/gstbasevideodecoder.c:
6715 basevideodecoder: some more debug logging
6717 2011-11-23 20:03:32 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
6719 * omx/gstbasevideodecoder.c:
6720 * omx/gstbasevideodecoder.h:
6721 basevideodecoder: add API to drop a frame and post a QoS message on the bus
6722 https://bugzilla.gnome.org/show_bug.cgi?id=640017
6723 API: gst_base_video_decoder_drop_frame()
6725 2011-11-22 23:04:49 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
6727 * omx/gstbasevideodecoder.c:
6728 docs: fix comment in gst_base_video_decoder_get_max_decode_time() docs
6730 2011-11-22 19:57:07 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
6732 * omx/gstbasevideodecoder.c:
6733 basevideodecoder: fix weird event list handling
6734 Get rid of weird code that copies a list manually, taking
6735 ownership of the elements and then frees the old list. Instead,
6736 just take over the old list entirely. (If the intent was to
6737 reverse the list, one could use g_list_reverse() instead).
6738 Then, push events in the list out from last to first (since they
6739 were prepended as they came in) instead of just pushing out the
6740 last in the list and leaking the others.
6742 2011-11-25 11:31:58 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6746 * omx/gstbaseaudiodecoder.c:
6747 * omx/gstbaseaudiodecoder.h:
6748 * omx/gstbaseaudioencoder.c:
6749 * omx/gstbaseaudioencoder.h:
6750 * omx/gstbaseaudioutils.c:
6751 * omx/gstbaseaudioutils.h:
6752 * omx/gstomxaacenc.c:
6753 * omx/gstomxaudioenc.c:
6754 * omx/gstomxaudioenc.h:
6755 omxaudioenc: Use audio base classes from gst-plugins-base instead of having our own copies
6757 2011-11-18 10:00:31 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6759 * omx/gstomxaudioenc.c:
6760 omxaudioenc: First set ports to flushing before waiting for the srcpad streaming thread to finish
6762 2011-11-18 09:59:43 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6764 * omx/gstomxvideoenc.c:
6765 omxvideoenc: First set ports to flushing before waiting for the srcpad streaming thread to finish
6767 2011-11-18 09:58:58 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6769 * omx/gstomxvideodec.c:
6770 omxvideodec: First set ports to flushing before waiting for the srcpad streaming thread to finish
6772 2011-11-17 14:38:54 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6775 omx: Only disabling of a port is like flushing, enabling is like unflushing
6777 2011-11-17 13:33:35 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6780 omx: Enabling/disabling a port is also like flushing
6781 The component returns all buffers to us and shouldn't get any
6782 new buffers passed anymore.
6784 2011-11-17 11:26:33 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6786 * omx/gstomxaudioenc.c:
6787 omxaudioenc: Signal the drain GCond even if downstream returned an error
6789 2011-11-17 11:26:20 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6791 * omx/gstomxvideoenc.c:
6792 omxvideoenc: Signal the drain GCond even if downstream returned an error
6794 2011-11-17 11:25:52 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6796 * omx/gstomxvideodec.c:
6797 omxvideodec: Signal the drain GCond even if downstream returned an error
6799 2011-11-17 10:34:19 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6801 * omx/gstbasevideoencoder.c:
6802 basevideoencoder: Only call ::reset once in READY->PAUSED
6804 2011-11-17 10:19:35 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6806 * omx/gstomxaudioenc.c:
6807 omxaudioenc: Shutdown component in PAUSED->READY and deallocate buffers
6809 2011-11-17 10:19:30 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6811 * omx/gstomxvideoenc.c:
6812 omxvideoenc: Shutdown component in PAUSED->READY and deallocate buffers
6814 2011-11-17 10:19:10 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6816 * omx/gstomxvideodec.c:
6817 omxvideodec: Shutdown component in PAUSED->READY and deallocate buffers
6819 2011-11-16 12:02:08 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6821 * omx/gstomxvideoenc.c:
6822 omxvideoenc: Set force_keyframe to FALSE after handling it
6823 There's no reason why the base class should forward the event
6824 further downstream if we already handled it and will insert a
6827 2011-11-16 11:21:25 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6829 * omx/gstomxvideodec.c:
6830 omxvideodec: Always push buffers downstream, even if we didn't find a corresponding GstVideoFrame
6832 2011-11-15 09:47:55 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6835 omx: Fix debug level for flushing in wrong state from ERROR to DEBUG
6836 It's not really an error and doesn't matter at all if flush is called
6837 when the component is not running.
6839 2011-11-15 08:40:07 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6841 * omx/gstomxh264enc.c:
6842 omxh264enc: Detect bytestream stream format and don't put SPS/PPS into the caps for this format
6844 2011-11-15 08:28:32 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6846 * omx/gstomxvideoenc.c:
6847 * omx/gstomxvideoenc.h:
6848 omxvideoenc: Add vfunc for handling the output frames
6849 This can be used by subclasses to override the buffer flags
6850 or to handle some frames differently than the default behaviour.
6852 2011-11-14 12:50:26 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6854 * omx/gstomxvideodec.c:
6855 omxvideodec: Don't release buffers twice if dropping because of QoS
6857 2011-11-14 09:13:06 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6860 omx: Add XXX to the nOffset reset hack comment for QCOM
6862 2011-11-10 15:18:08 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6864 * omx/gstomxaudioenc.c:
6865 omxaudioenc: Make srcpad caps setting threadsafe
6867 2011-11-10 15:17:56 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6869 * omx/gstomxvideoenc.c:
6870 omxvideoenc: Make srcpad caps setting threadsafe
6872 2011-11-10 15:17:41 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6874 * omx/gstomxvideodec.c:
6875 omxvideodec: Make srcpad caps setting threadsafe
6877 2011-11-10 15:10:14 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6879 * omx/gstomxaudioenc.c:
6880 omxaudioenc: Make the srcpad task and the sinkpad streaming thread handling threadsafe
6882 2011-11-10 15:03:05 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6884 * omx/gstomxaudioenc.c:
6885 omxaudioenc: Always flush the ports and make sure no processing is happening in ::flush
6886 This fixes a race condition that happened when seeking
6887 very often in a short period of time.
6889 2011-11-10 15:02:22 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6891 * omx/gstomxvideoenc.c:
6892 omxvideoenc: Always flush the ports and make sure no processing is happening in ::reset
6893 This fixes a race condition that happened when seeking
6894 very often in a short period of time.
6896 2011-11-10 15:01:36 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6898 * omx/gstomxvideoenc.c:
6899 omxvideoenc: Fix minor race condition when draining after upstream signalled EOS
6901 2011-11-10 14:56:19 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6903 * omx/gstomxaudioenc.c:
6904 omxaudioenc: Improve EOS handling
6905 If downstream return UNEXPECTED we should still signal the
6906 drain cond because nothing will trigger this again later.
6908 2011-11-10 14:56:11 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6910 * omx/gstomxvideoenc.c:
6911 omxvideoenc: Improve EOS handling
6912 If downstream return UNEXPECTED we should still signal the
6913 drain cond because nothing will trigger this again later.
6915 2011-11-10 14:54:33 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6917 * omx/gstomxaudioenc.c:
6918 omxaudioenc: Improve debugging of EOS and draining
6920 2011-11-10 14:54:17 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6922 * omx/gstomxvideoenc.c:
6923 omxvideoenc: Improve debugging of EOS and draining
6925 2011-11-10 14:51:06 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6927 * omx/gstomxvideodec.c:
6928 omxvideodec: Log if acquiring buffer for EOS failed
6930 2011-11-10 14:42:13 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6932 * omx/gstomxvideodec.c:
6933 omxvideodec: The component is not started in READY
6935 2011-11-10 14:39:40 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6937 * omx/gstomxaudioenc.c:
6938 omxaudioenc: No need to signal the drain cond when going from READY to PAUSED
6939 Also the component is not started in READY
6941 2011-11-10 14:40:56 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6943 * omx/gstomxvideoenc.c:
6944 omxvideoenc: No need to signal the drain cond when going from READY to PAUSED
6945 Also the component is not started in READY.
6947 2011-11-09 15:46:02 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6949 * omx/gstomxvideodec.c:
6950 omxvideodec: Always flush the ports and make sure no processing is happening in ::reset
6951 This fixes a race condition that happened when seeking
6952 very often in a short period of time.
6954 2011-11-09 15:45:20 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6956 * omx/gstomxvideodec.c:
6957 omxvideodec: Fix minor race condition when draining after upstream signalled EOS
6959 2011-11-09 15:44:11 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6961 * omx/gstomxvideodec.c:
6962 omxvideodec: Improve EOS handling
6963 If downstream return UNEXPECTED we should still signal the
6964 drain cond because nothing will trigger this again later.
6966 2011-11-09 15:43:32 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6968 * omx/gstomxvideodec.c:
6969 omxvideodec: Improve debugging of EOS and draining
6971 2011-11-09 15:42:46 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6973 * omx/gstomxvideodec.c:
6974 omxvideodec: The component is not started already when going from READY to PAUSED
6976 2011-11-09 15:42:13 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6978 * omx/gstomxvideodec.c:
6979 omxvideodec: No need to signal the drain cond when going from READY to PAUSED
6981 2011-11-09 15:41:02 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6984 omx: Always reset buffer flags for output ports, even in flushing/error state
6986 2011-11-09 09:00:57 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6988 * omx/gstomxvideodec.c:
6989 omxvideodec: Improve debugging in case of QoS-related frame drops
6991 2011-11-08 12:46:31 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6993 * omx/gstomxvideoenc.c:
6994 omxvideoenc: Release the video codec stream lock before acquiring an input buffer
6995 Otherwise the srcpad task might block on this lock and
6996 no buffers ever become available again.
6998 2011-11-08 12:45:16 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7000 * omx/gstomxaudioenc.c:
7001 omxaudioenc: Release the audio encoder stream lock before acquiring an input buffer
7002 Otherwise the srcpad task might block on this lock and
7003 no buffers ever become available again.
7005 2011-11-08 12:42:58 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7007 * omx/gstomxvideodec.c:
7008 omxvideodec: Release the video codec stream lock before acquiring an input buffer
7009 Otherwise the srcpad task might block on this lock and
7010 no buffers ever become available again.
7012 2011-11-08 11:07:01 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7014 * omx/gstomxaudioenc.c:
7015 * omx/gstomxaudioenc.h:
7016 omxaudioenc: Don't try to drain the component after EOS
7017 And don't send EOS twice in any case. This most likely
7018 will cause the component to not output it again and
7019 is not necessary anyway.
7021 2011-11-08 11:03:29 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7023 * omx/gstomxvideoenc.c:
7024 * omx/gstomxvideoenc.h:
7025 omxvideoenc: Don't try to drain the component after EOS
7026 And don't send EOS twice in any case. This most likely
7027 will cause the component to not output it again and
7028 is not necessary anyway.
7030 2011-11-08 10:46:36 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7032 * omx/gstomxvideodec.c:
7033 * omx/gstomxvideodec.h:
7034 omxvideodec: Don't try to drain the component after EOS
7035 And don't send EOS twice in any case. This most likely
7036 will cause the component to not output it again and
7037 is not necessary anyway.
7039 2011-11-08 09:09:28 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7041 * omx/gstomxvideodec.c:
7042 omxvideodec: Implement dropping of too late frames via QoS
7044 2011-11-08 08:31:58 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7046 * omx/gstomxaudioenc.c:
7047 omxaudioenc: Minor code refactoring
7049 2011-11-08 08:31:43 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7051 * omx/gstomxvideoenc.c:
7052 omxvideoenc: Minor code refactoring
7054 2011-11-08 08:31:32 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7056 * omx/gstomxvideodec.c:
7057 omxvideodec: Make sure to always release buffers back to OMX
7059 2011-11-08 08:24:19 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7062 omx: Also properly release buffers when in error state
7064 2011-11-08 08:22:08 +0100 Jonas Larsson <Jonas.Larsson@palm.com>
7067 omx: Properly release buffers during flushing
7068 We can't pass them back to OMX_FillThisBuffer() or OMX_EmptyThisBuffer()
7069 but instead of doing nothing we have to put them back into our queue.
7070 Otherwise the buffer is leaked and we will have too few buffers in
7073 2011-11-07 14:00:47 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7075 * omx/gstomxvideodec.c:
7076 omxvideodec: Free pending frames after draining component
7078 2011-11-07 14:00:35 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7080 * omx/gstomxvideoenc.c:
7081 omxvideoenc: Free pending frames after draining the component
7083 2011-11-07 11:07:01 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7085 * omx/gstomxvideoenc.c:
7086 omxvideoenc: Make handling and usage of the base video codec frames threadsafe
7088 2011-11-07 11:05:29 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7090 * omx/gstomxvideoenc.c:
7091 omxvideoenc: Fix deadlock between srcpad stream lock and ::reset()
7093 2011-11-07 11:04:27 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7095 * omx/gstomxvideodec.c:
7096 omxvideoenc: Make handling and usage of the base video codec frames threadsafe
7098 2011-11-07 10:58:44 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7100 * omx/gstomxvideoenc.c:
7101 omxvideoenc: Free all pending frames after draining the component
7103 2011-11-07 10:58:24 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7105 * omx/gstomxvideodec.c:
7106 omxvideodec: Always free all pending frames when caps changes require reconfiguration
7108 2011-11-04 09:43:48 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7110 * omx/gstomxaudioenc.c:
7111 omxaudioenc: Only drain the component a single time and only after processing started
7113 2011-11-04 09:43:32 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7115 * omx/gstomxvideodec.c:
7116 omxvideodec: Only drain the component a single time and only after processing started
7118 2011-11-04 09:43:12 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7120 * omx/gstomxvideoenc.c:
7121 omxvideoenc: Only drain the component a single time and only after processing started
7123 2011-11-04 09:04:16 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7126 omx: Reset buffer flags to 0 after it was consumed by the component or the element
7127 Some implementations don't reset the flags and the standard is not
7128 really clear on the expected behaviour. Let's just always reset the
7129 flags as they're not valid at this point anymore.
7131 2011-11-02 13:50:14 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7133 * omx/gstomxvideoenc.c:
7134 * omx/gstomxvideoenc.h:
7135 omxvideoenc: Better handling of encoder parameters
7136 Only set them if necessary and allow to use the component
7139 2011-11-02 13:22:50 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7141 * omx/gstomxvideoenc.c:
7142 omxvideoenc: Make unsupported bitrate/quantizer settings less fatal
7144 2011-11-02 10:39:50 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7146 * omx/gstomxvideodec.c:
7147 omxvideodec: If no stride was set for the OMX output port assume GStreamer stride
7148 This is not really correct but there's nothing else we could do.
7150 2011-11-02 10:39:10 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7152 * omx/gstomxvideoenc.c:
7153 omxvideoenc: If no stride was set for the OMX input port assume GStreamer stride
7154 This is not really correct but there's nothing else we could do.
7156 2011-11-01 16:46:09 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7158 * omx/gstomxaudioenc.c:
7159 * omx/gstomxaudioenc.h:
7160 omxaudioenc: Implement draining of the component and use it
7161 This makes sure that all buffers are encoded and pushed downstream
7162 before flushing the ports and losing some buffers.
7164 2011-11-01 16:41:46 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7166 * omx/gstomxvideoenc.c:
7167 * omx/gstomxvideoenc.h:
7168 omxvideoenc: Implement draining of the component and use it
7169 This makes sure that all buffers are encoded and pushed downstream
7170 before flushing the ports and losing some buffers.
7172 2011-11-01 16:08:59 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7174 * omx/gstomxvideodec.c:
7175 * omx/gstomxvideodec.h:
7176 omxvideodec: Implement draining of the component and use it
7177 This makes sure that all buffers are decoded and pushed downstream
7178 before flushing the ports and losing some buffers.
7180 2011-10-20 14:32:40 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7182 * omx/gstomxvideodec.c:
7183 omxvideodec: Fix deadlock if ::reset is called before finding the corresponding frame of a decoded buffer
7185 2011-11-01 15:10:12 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7187 * omx/gstomxaudioenc.c:
7188 * omx/gstomxaudioenc.h:
7189 * omx/gstomxvideoenc.h:
7190 omxaudioenc: Forward downstream flow returns to upstream
7192 2011-11-01 15:10:01 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7194 * omx/gstomxvideoenc.c:
7195 omxvideoenc: Forward downstream flow returns to upstream
7197 2011-11-01 13:58:38 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7199 * omx/gstomxvideodec.c:
7200 * omx/gstomxvideodec.h:
7201 omxvideodec: Forward downstream flow returns to upstream
7203 2011-10-25 14:23:38 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7206 omx: Add minimal README file
7208 2011-10-20 15:21:07 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7210 * omx/gstomxvideodec.c:
7211 omxvideodec: Fix deadlock caused by calling reset while the loop function does something with the base video codec stream lock
7213 2011-10-20 15:20:47 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7215 * omx/gstomxvideoenc.c:
7216 omxvideoenc: Fix deadlock caused by calling reset while the loop function does something with the base video codec stream lock
7218 2011-10-20 14:30:38 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7220 * omx/gstomxvideodec.c:
7221 omxvideodec: Move locking at the correct place
7223 2011-10-14 10:27:47 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7227 omx: Remove QCOM hack to reset nOffset in EmptyBufferDone
7228 This is now done in a generic way that does not require any
7229 hacks because it will work without any side effects on any
7232 2011-10-14 10:26:00 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7235 omx: Reset nOffset to 0 in EmptyBufferDone if nFilledLen is 0
7236 Some OMX implementations don't reset nOffset when the complete
7237 buffer is emptied but instead only reset nFilledLen. We reset
7238 nOffset to 0 if nFilledLen == 0, which is safe to do because
7239 the offset *must* be 0 if the buffer is not filled at all.
7240 Seen in QCOM's OMX implementation.
7242 2011-10-04 10:56:33 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7244 * omx/gstomxvideoenc.c:
7245 omxvideoenc: If one parameter/configuration is not supported don't skip the next
7247 2011-10-03 09:12:44 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7249 * omx/gstomxh264dec.c:
7250 omxh264dec: Require stream-format=byte-stream
7251 Other stream-formats are unlikely to be supported by OMX components.
7253 2011-09-29 10:37:32 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7255 * omx/gstomxvideodec.c:
7256 * omx/gstomxvideodec.h:
7257 omxvideodec: Add API for subclasses to prepare/convert frames
7259 2011-09-27 15:08:54 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7261 * omx/gstomxaudioenc.c:
7262 omxaudioenc: Switch to Idle first and wait before switching to Loaded and deallocating buffers
7263 Allocating buffers before the Idle state is reached can lead to crashes.
7265 2011-09-27 15:08:44 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7267 * omx/gstomxvideoenc.c:
7268 omxvideoenc: Switch to Idle first and wait before switching to Loaded and deallocating buffers
7269 Allocating buffers before the Idle state is reached can lead to crashes.
7271 2011-09-27 15:05:19 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7273 * omx/gstomxvideodec.c:
7274 omxvideodec: Switch to Idle first and wait before switching to Loaded and deallocating buffers
7275 Allocating buffers before the Idle state is reached can lead to crashes.
7277 2011-09-27 14:15:06 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7281 * omx/gstomxvideodec.c:
7282 omxvideodec: New hack for QCOM to recreate the component instead of reconfiguring it on caps changes
7284 2011-09-27 12:13:56 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7287 omx: Change a g_assert() into a GST_WARNING_OBJECT()
7289 2011-09-26 13:04:18 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7293 omx: Add hack for Qualcomm's OMX implementation to manually reset nOffset in EmptyBufferDone
7295 2011-09-23 17:02:49 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7297 * omx/gstomxaudioenc.c:
7298 omxaudioenc: Add a check to prevent a zero-sized OMX buffer
7300 2011-09-23 17:02:19 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7302 * omx/gstomxvideoenc.c:
7303 omxvideoenc: Add some more checks for correct OMX buffer sizes
7305 2011-09-23 15:53:49 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7307 * omx/gstomxvideodec.c:
7308 omxvideodec: Add some more checks for OMX buffer sizes
7310 2011-09-14 10:15:38 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7314 * omx/gstomxaudioenc.c:
7315 * omx/gstomxvideodec.c:
7316 * omx/gstomxvideoenc.c:
7317 omx: Wait until the Executing state is reached before calling OMX_FillThisBuffer()
7318 This correctly works around the QCOM race condition that happens when calling
7319 FTB after setting the new state and before reaching it.
7321 2011-09-02 14:43:43 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7323 * omx/gstomxvideodec.c:
7324 omxvideodec: Negotiate video format with downstream and what the component claims to support
7326 2011-08-25 19:56:58 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
7328 * omx/gstbasevideoencoder.c:
7329 basevideoencoder: fix element leak
7330 and this concludes an hour of yelling at the bloody test failing,
7331 only to track down the problem not being in the test.
7332 https://bugzilla.gnome.org/show_bug.cgi?id=657368
7334 2011-08-19 09:20:39 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7336 * omx/gstomxvideoenc.c:
7337 omxvideoenc: Release basevideocodec stream lock while waiting for a buffer
7338 This prevents deadlocks if no empty input buffers are available and
7339 releasing input buffers requires the loop function to handle some
7340 output buffers first.
7342 2011-08-19 09:19:22 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7344 * omx/gstomxvideodec.c:
7345 omxvideodec: Release basevideocodec stream lock while waiting for a buffer
7346 This prevents deadlocks if no empty input buffers are available and
7347 releasing input buffers requires the loop function to handle some
7348 output buffers first.
7350 2011-08-18 10:24:26 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7352 * omx/gstbasevideodecoder.c:
7353 basevideodecoder: Fix deadlock
7355 2011-08-18 10:03:20 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7357 * omx/gstbaseaudiodecoder.c:
7358 baseaudiodecoder: Don't take the stream lock in the seek handler
7359 This will lead to deadlocks
7361 2011-08-18 10:02:50 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7363 * omx/gstbasevideocodec.c:
7364 * omx/gstbasevideocodec.h:
7365 * omx/gstbasevideodecoder.c:
7366 * omx/gstbasevideoencoder.c:
7367 basevideo: Fix locking, especially if both pads have different streaming threads
7369 2011-08-18 09:42:02 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7371 * omx/gstbasevideodecoder.c:
7372 * omx/gstbasevideoencoder.c:
7373 basevideo: Don't call g_type_class_peek_parent() in class_init
7374 This is already done by the GObject boilerplate macro
7376 2011-08-18 09:40:46 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7378 * omx/gstbaseaudiodecoder.c:
7379 baseaudiodecoder: Don't call g_type_class_peek_parent() in class_init
7380 This is already done by the boilerplate macro
7382 2011-08-18 09:34:38 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7384 * omx/gstbaseaudiodecoder.c:
7385 * omx/gstbaseaudiodecoder.h:
7386 baseaudiodecoder: Fix thread safety issues if both pads have different streaming threads
7388 2011-08-18 09:17:04 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7390 * omx/gstbaseaudiodecoder.c:
7391 baseaudiodecoder: Delay sending of serialized events to finish_frame()
7393 2011-08-17 14:33:31 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7395 * omx/gstomxaudioenc.c:
7396 omxaudioenc: Always require at least OMX_MIN_PCMPAYLOAD_MSEC per input buffer
7398 2011-08-17 14:28:44 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7400 * omx/gstbaseaudioencoder.c:
7401 * omx/gstbaseaudioencoder.h:
7402 baseaudioencoder: Add support for requesting a minimum and maximum number of samples per frame
7403 This extends the special case of a fixed number of samples per frame
7404 that was supported before already.
7406 2011-08-17 14:17:18 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7408 * omx/gstomxaudioenc.c:
7409 omxaudioenc: Handle inbuf==NULL properly in ::handle_frame()
7411 2011-08-17 13:04:19 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7413 * omx/gstomxaacenc.c:
7414 omxaacenc: Implement ::get_num_samples() vfunc
7416 2011-08-17 13:03:50 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7418 * omx/gstomxaudioenc.c:
7419 * omx/gstomxaudioenc.h:
7420 omxaudioenc: Add vfunc to get the number of samples inside a buffer
7422 2011-08-17 11:34:31 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7424 * omx/gstomxaudioenc.c:
7425 omxaudioenc: Release baseaudioencoder stream lock while waiting for a buffer in ::handle_frame()
7426 This prevents deadlocks if no empty input buffers are available and
7427 releasing input buffers requires the loop function to handle some
7428 output buffers first.
7430 2011-08-17 11:34:04 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7432 * omx/gstbaseaudioencoder.c:
7433 * omx/gstbaseaudioencoder.h:
7434 baseaudioencoder: Fix thread safety issues if both pads have different streaming threads
7436 2011-08-17 09:58:01 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7438 * omx/gstbaseaudioencoder.c:
7439 baseaudioencoder: Taking the OBJECT lock in reset() is not needed
7441 2011-08-16 11:03:24 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7443 * omx/gstomxaudioenc.c:
7444 omxaudioenc: Remove hack that only applies to the video encoder class
7446 2011-08-16 10:49:21 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7451 * omx/gstomxaacenc.c:
7452 * omx/gstomxaacenc.h:
7453 omxaacenc: Add initial version of OpenMAX AAC encoder element
7455 2011-08-15 15:10:04 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7458 * omx/gstomxaudioenc.c:
7459 * omx/gstomxaudioenc.h:
7460 omxaudioenc: Add initial version of audio encoder base class
7462 2011-08-15 14:14:11 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7464 * omx/gstbaseaudioencoder.c:
7465 baseaudioencoder: Delay sending of serialized events to finish_frame()
7467 2011-08-15 13:06:51 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7470 * omx/gstbaseaudiodecoder.c:
7471 * omx/gstbaseaudiodecoder.h:
7472 * omx/gstbaseaudioencoder.c:
7473 * omx/gstbaseaudioencoder.h:
7474 audio: Integrate audio base classes into the build system and fixup
7476 2011-08-15 12:56:00 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7478 * omx/gstbaseaudiodecoder.c:
7479 * omx/gstbaseaudiodecoder.h:
7480 * omx/gstbaseaudioencoder.c:
7481 * omx/gstbaseaudioencoder.h:
7482 * omx/gstbaseaudioutils.c:
7483 * omx/gstbaseaudioutils.h:
7484 audio: Add audio decoder/encoder base classes
7485 Taken from http://cgit.collabora.com/git/user/manauw/gst-plugins-bad.git/log/?h=baseaudio
7487 2011-08-12 12:25:03 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7489 * omx/gstbasevideoencoder.c:
7490 basevideoencoder: Proxy the width/height/framerate/PAR constraints of downstream caps to upstream
7491 This allows to specify constraints on the compressed downstream caps
7492 by muxers or capsfilters, which will then be forwarded to upstream
7493 and allows video converters to fulfill the constraints.
7494 Code based on Mark Nauwelaerts audio encoder base class.
7496 2011-08-12 12:13:45 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7498 * omx/gstbasevideoencoder.h:
7499 basevideoencoder: Remove old ::getcaps() comment
7501 2011-08-12 12:06:23 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7503 * omx/gstbasevideoencoder.c:
7504 * omx/gstbasevideoencoder.h:
7505 basevideoencoder: Remove ::get_caps() vfunc
7506 Subclasses can set the caps more efficiently and this only
7507 caused additional indirections.
7509 2011-08-10 10:24:21 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7511 * omx/gstomxh263enc.c:
7512 * omx/gstomxh264enc.c:
7513 * omx/gstomxmpeg4videoenc.c:
7514 * omx/gstomxvideoenc.c:
7515 omxvideoenc: Use "video/x-raw-yuv" as sink template caps instead of strict I420 caps
7517 2011-08-10 10:23:39 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7519 * omx/gstomxmpeg4videodec.c:
7520 omxmpeg4videodec: Don't require width/height on sink pad caps
7522 2011-08-10 10:11:37 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7524 * omx/gstomxh263dec.c:
7525 * omx/gstomxh264dec.c:
7526 * omx/gstomxmpeg4videodec.c:
7527 * omx/gstomxvideodec.c:
7528 * omx/gstomxwmvdec.c:
7529 omxvideodec: Use "video/x-raw-yuv" as src template caps instead of strict I420 caps
7531 2011-08-10 09:56:30 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7533 * omx/gstomxvideoenc.c:
7534 omxvideoenc: Set the state back to StateLoaded even if an error happened
7536 2011-08-10 09:49:57 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7539 omx: Don't hold any locks while calling OMX_SendCommand()
7540 It might call into one of the callbacks and lead to deadlocks, e.g.
7541 with the Qualcomm OMX implementation.
7543 2011-08-10 09:32:01 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7548 2011-08-10 09:23:10 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7551 omx: Reset pending reconfigure output ports when changing the state from Executing to any lower state
7553 2011-08-10 09:08:00 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7556 omx: Fix crash when setting last error after the ports were freed
7558 2011-08-10 09:03:52 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7561 omx: Free component structure
7563 2011-08-10 09:02:52 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7566 omx: Make component destruction safer
7568 2011-08-10 08:53:05 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7571 omx: Set pAppPrivate of buffers to NULL when deallocating buffers
7572 This prevents usage of freed memory later if the OMX component
7573 has weird behaviour.
7575 2011-08-10 08:52:25 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7577 * omx/gstomxvideodec.c:
7578 omxvideodec: Set the state back to StateLoaded even if an error happened
7580 2011-08-10 08:51:54 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7583 omx: Add some assertions to check if the buffer pAppPrivate is still correct
7585 2011-08-08 13:04:30 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7588 omx: Add parenthesis at correct places in the struct init macro
7590 2011-08-08 12:12:58 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7593 omx: Only prevent setting a higher state if the component is in an error state
7595 2011-08-03 16:02:01 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7597 * omx/gstbasevideodecoder.c:
7598 basevideodecoder: Use the cached video frame size instead of recalculating it
7600 2011-08-03 15:35:01 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7603 omx: Improve debugging in param/config getter/setter wrappers
7605 2011-08-03 13:10:33 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7607 * omx/gstomxvideodec.c:
7608 omxvideodec: Don't abort if the color format is not supported but give a useful error message
7610 2011-08-02 15:14:37 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7612 * omx/gstomxh263enc.c:
7613 * omx/gstomxh264enc.c:
7614 * omx/gstomxmpeg4videoenc.c:
7615 * omx/gstomxvideoenc.c:
7616 omxvideoenc: Don't fail if setting the bitrate or profile is not supported by the component
7617 Also always set/get the profile, even if there are no peer caps.
7619 2011-08-02 15:14:24 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7621 * omx/gstbasevideoencoder.c:
7622 basevideoencoder: Make access to the list of frames threadsafe
7624 2011-08-01 13:22:05 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7628 omx: Add a hacks flag for the Qualcomm 7x30 OMX_FillThisBuffer() race and make it optional
7630 2011-07-29 13:56:59 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7633 omx: Add workaround for QCOM 7x30 race condition
7635 2011-07-29 12:06:21 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7639 * omx/gstomxh263enc.c:
7640 * omx/gstomxh263enc.h:
7641 omxh263enc: Add H.263 encoder element
7643 2011-07-29 11:26:39 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7645 * omx/gstomxmpeg4videoenc.c:
7646 omxmpeg4videoenc: Add support for setting profile/level via caps
7648 2011-07-28 14:14:45 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7650 * omx/gstomxh264enc.c:
7651 omxh264enc: Add support for setting profile/level via caps
7653 2011-07-28 12:58:25 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7655 * omx/gstomxvideoenc.c:
7656 omxvideoenc: Add support for forcing the next frame to be a keyframe
7658 2011-07-28 11:54:16 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7660 * omx/gstomxvideoenc.c:
7661 * omx/gstomxvideoenc.h:
7662 omxvideoenc: Add support for setting bitrate/quantization related parameters
7664 2011-07-28 10:23:08 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7668 omx: Add wrapper functions for OMX_[GS]et{Config,Parameter}
7670 2011-07-28 09:54:53 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7674 omx: Add macro to initialize OpenMAX structures
7676 2011-07-28 09:08:38 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7678 * omx/gstomxvideoenc.c:
7679 omxvideoenc: Don't output 0-byte buffers
7681 2011-07-25 15:05:08 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7684 omx: Ensure that the pAppPrivate pointer in OMX buffers is set correctly
7686 2011-07-25 13:19:06 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7688 * omx/gstomxvideodec.c:
7689 * omx/gstomxvideoenc.c:
7690 omxvideo{enc,dec}: Only set/unset flushing state on ports if they were created already
7692 2011-07-25 12:01:05 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7696 * omx/gstomxwmvdec.c:
7697 * omx/gstomxwmvdec.h:
7698 omxwmvdec: Add WMV video decoder element
7700 2011-07-25 11:44:56 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7704 * omx/gstomxh263dec.c:
7705 * omx/gstomxh263dec.h:
7706 omxh263dec: Add H.263 decoder element
7708 2011-07-25 11:32:51 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7712 * omx/gstomxh264enc.c:
7713 * omx/gstomxh264enc.h:
7714 omxh264enc: Add H.264 encoder element
7716 2011-07-25 10:48:58 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7718 * omx/gstomxvideodec.c:
7719 omxvideodec: Try harder to deallocate the buffers after errors happened
7721 2011-07-25 10:47:28 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7723 * omx/gstomxvideoenc.c:
7724 omxvideoenc: Try harder to deallocate the buffers after errors happened
7726 2011-07-25 10:46:49 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7729 omx: Deallocate port buffers before freeing the component
7730 They should be deallocated by the caller before reaching the
7731 Loaded state but to be on the safe side we will make sure
7732 they're really deallocated here.
7734 2011-07-21 11:15:14 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7736 * omx/gstomxvideoenc.c:
7737 omxvideoenc: Add initial support for stride conversion
7739 2011-07-21 10:38:26 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7741 * omx/gstomxh264dec.c:
7742 * omx/gstomxmpeg4videodec.c:
7743 * omx/gstomxmpeg4videoenc.c:
7744 omx: Set default roles for the components if none were set from the config file
7746 2011-07-21 10:36:19 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7749 omx: Failure to set the component role is fatal
7751 2011-07-21 07:53:25 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7753 * omx/gstomxvideoenc.c:
7754 omxvideoenc: Add support for setting codec_data on the srcpad caps
7756 2011-07-21 07:44:34 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7758 * omx/gstomxvideoenc.c:
7759 omxvideoenc: Free/drop GstVideoFrames that resulted in an empty buffer
7761 2011-07-21 07:44:10 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7763 * omx/gstbasevideoencoder.c:
7764 basevideoencoder: Allow finishing of frames with no src_buffer to drop/free the GstVideoFrame
7766 2011-07-21 07:31:05 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7768 * omx/gstomxvideoenc.c:
7769 omxvideoenc: Remove obsolete TODO comment
7771 2011-07-20 11:09:54 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7775 omx: Use libgstopenmax.so for the plugin filename and openmax for the plugin name
7776 Resolves conflicts with gst-openmax.
7778 2011-07-20 08:34:33 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7784 * omx/gstomxmpeg4videoenc.c:
7785 * omx/gstomxmpeg4videoenc.h:
7786 * omx/gstomxvideoenc.c:
7787 * omx/gstomxvideoenc.h:
7788 omxvideoenc: Add video encoder base class and MPEG4 video encoder
7789 Unfortunately requires lots of hacks again to work properly with
7792 2011-07-20 10:39:51 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7794 * omx/gstbasevideoencoder.c:
7795 basevideoencoder: Only get caps from the subclass if they were not set yet by the subclass
7797 2011-07-20 09:25:28 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7799 * omx/gstbasevideoencoder.c:
7800 * omx/gstbasevideoencoder.h:
7801 basevideoencoder: Delay sending of serialized sink events until finish_frame()
7803 2011-07-20 09:09:25 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7805 * omx/gstbasevideoencoder.c:
7806 * omx/gstbasevideoencoder.h:
7807 basevideoencoder: Add ::reset vfunc and handle ::reset/::finish the same way as in the decoder
7809 2011-07-19 12:50:43 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7811 * omx/gstbasevideoencoder.c:
7812 basevideoencoder: Use a temporary GstVideoState until the subclass accepted the caps
7813 Also store the caps in the GstVideoState and assume a PAR of 1/1 instead
7814 of 0/1 if no PAR is specified in the caps.
7816 2011-07-19 12:29:51 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7819 * omx/gstomxvideodec.c:
7820 omx: Improve debug output a bit
7822 2011-07-19 10:33:54 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7826 * omx/gstomxvideodec.c:
7827 omx: Rework port reconfiguration again and only use the Bellagio specific hacks with Bellagio
7828 We only reconfigure ports that need to be reconfigured now instead of
7831 2011-07-19 10:33:15 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7836 * omx/gstomxvideodec.c:
7837 * omx/gstomxvideodec.h:
7838 omx: Add infrastructure to enable special hacks for broken OpenMAX implementations
7840 2011-07-18 13:10:49 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7843 omx: When acquiring a buffer from an input port always wait until all output ports are reconfigured
7845 2011-07-18 08:41:20 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7847 * omx/gstomxvideodec.c:
7848 omxvideodec: Add support for converting between omx and gst rowstrides
7850 2011-07-14 10:34:09 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7853 omx: Provide all buffers to output ports after enabling them
7855 2011-07-14 08:29:03 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7857 * omx/gstomxvideodec.c:
7858 omxvideodec: Add support for NV12 / OMX_COLOR_FormatYUV420SemiPlanar
7860 2011-07-14 07:58:41 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7862 * omx/gstomxvideodec.c:
7863 * omx/gstomxvideodec.h:
7864 omxvideodec: Only flush the component ports after we passed input to them
7866 2011-07-13 21:19:34 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7868 * omx/gstomxvideodec.c:
7869 omxvideodec: Only change states downwards if an upper state was reached
7871 2011-07-13 20:37:02 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7875 * omx/gstomxvideodec.c:
7876 * omx/gstomxvideodec.h:
7877 omx: Add support for setting the component-role
7879 2011-07-13 20:22:51 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7883 * omx/gstomxvideodec.c:
7884 omx: Improve error reporting by formatting the error codes better and also providing their string representation
7886 2011-07-13 14:36:14 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7889 build: Dist autogen.sh
7891 2011-07-13 14:35:51 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7895 build: Only require GStreamer >= 0.10.29 and GLib >= 2.16
7897 2011-07-13 14:04:47 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7900 build: Dist gstomx.conf
7902 2011-07-13 14:04:20 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7905 build: Clean _stdint.h on "make distclean"
7907 2011-07-13 14:02:50 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7909 * omx/gstomxvideodec.c:
7910 omxvideodec: Fix typo
7912 2011-07-13 13:59:50 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7917 2011-07-13 12:46:50 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7919 * omx/gstomxvideodec.c:
7920 omxvideodec: Set SYNCFRAME flag on the OMX buffers for non-delta units
7922 2011-07-13 12:37:44 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7924 * omx/gstomxvideodec.c:
7925 omxvideodec: Free all pending frames when resetting the decoder
7926 Workaround for https://bugzilla.gnome.org/show_bug.cgi?id=654529
7928 2011-07-13 09:59:49 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7930 * omx/gstomxvideodec.c:
7931 omxvideodec: Handle output buffers without a corresponding GstVideoFrame more gracefully
7932 This can happen on EOS in some cases and when the input is not
7935 2011-07-13 09:31:22 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7937 * omx/gstomxvideodec.c:
7938 omxvideodec: Fix deadlock when finishing old frames that are left over by the decoder
7940 2011-07-12 11:37:28 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7942 * omx/gstomxh264dec.c:
7943 omxh264dec: It's called H.264, not H264
7945 2011-07-12 11:36:42 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7947 * omx/gstomxh264dec.c:
7948 * omx/gstomxmpeg4videodec.c:
7949 * omx/gstomxvideodec.c:
7950 * omx/gstomxvideodec.h:
7951 omxvideodec: Make sink/src pad template caps configurable
7953 2011-07-12 11:13:50 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7956 omx: Allow to set a preferred configuration directory with the GST_OMX_CONFIG_DIR environment variable
7958 2011-07-12 10:55:57 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7960 * omx/gstomxh264dec.c:
7961 * omx/gstomxmpeg4videodec.c:
7962 * omx/gstomxvideodec.c:
7963 omxvideodec: Make core/component-name and in/outport index configurable
7965 2011-07-12 10:05:31 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7970 omx: Add initial version of configuration system
7971 This now only registers elements that are specified in the
7973 The configuration file is a keyfile in the first XDG configuration
7974 directory with the name gstomx.conf.
7976 2011-07-12 08:53:15 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7980 * omx/gstomxh264dec.c:
7981 * omx/gstomxh264dec.h:
7982 * omx/gstomxh264videodec.h:
7983 omxh264dec: Rename from omxh264videodec to omxh264dec
7985 2011-07-12 08:40:48 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7987 * omx/gstomxh264videodec.c:
7988 omxh264videodec: Require alignment=au and stream-format={avc,bytestream}
7990 2011-07-11 12:59:07 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7992 * omx/gstbasevideodecoder.c:
7993 basevideodecoder: First inform subclass about resetting before resetting/freeing all internal state
7994 The subclass might want to access the old state.
7996 2011-07-11 12:36:42 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7998 * omx/gstbasevideodecoder.c:
7999 basevideodecoder: Track present position on discont before resetting it
8001 2011-07-11 11:52:33 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8003 * omx/gstbasevideodecoder.c:
8004 basevideodecoder: Also protect the list of pending frames from concurrent access when pushing all pendings events
8006 2011-07-11 11:28:40 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8008 * omx/gstbasevideocodec.c:
8009 * omx/gstbasevideocodec.h:
8010 * omx/gstbasevideodecoder.c:
8011 basevideocodec: Protect access to the list of pending frames with the object lock
8012 This is required if ::finish_frame() and all buffer output happens
8013 on a different thread than the sinkpad streaming thread.
8015 2011-07-11 09:35:25 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8017 * omx/gstbasevideodecoder.c:
8018 basevideodecoder: Set the correct lists to NULL after freeing
8020 2011-07-11 08:54:53 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8022 * omx/gstbasevideodecoder.c:
8023 basevideodecoder: Work with a copy of the GstVideoState in setcaps until the caps are accepted
8024 Also fix a refcount problem with the codec_data.
8026 2011-07-12 08:34:44 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8030 * omx/gstomxh264videodec.c:
8031 * omx/gstomxh264videodec.h:
8032 omxh264videodec: Add h.264 video decoder
8034 2011-07-12 08:29:15 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8036 * omx/gstomxmpeg4videodec.c:
8037 omxmpeg4videodec: Fix debug category name
8039 2011-07-09 11:41:42 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8042 * omx/gstbasevideocodec.h:
8043 * omx/gstbasevideodecoder.c:
8044 * omx/gstbasevideoencoder.c:
8045 * omx/gstbasevideoutils.c:
8046 * omx/gstbasevideoutils.h:
8047 basevideo: Move the utils from the codec header to its own header
8049 2011-07-09 11:32:06 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8051 * omx/gstbasevideocodec.c:
8052 * omx/gstbasevideodecoder.c:
8053 basevideo: Use GSlice for allocating GstVideoFrame and don't duplicate code in the decoder base class
8055 2011-07-09 11:05:37 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8057 * omx/gstomxvideodec.c:
8058 omxvideodec: Use the destroy notify to free the coder_hook
8060 2011-07-09 10:57:52 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8062 * omx/gstbasevideocodec.c:
8063 * omx/gstbasevideocodec.h:
8064 * omx/gstbasevideodecoder.c:
8065 basevideo: Add destroy notify for the coder_hook to prevent memory leaks
8068 2011-07-09 10:44:16 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8071 basevideo: Fix GType names to not conflict with the public video base classes
8072 It's still not possible to include headers of both in the same file
8073 or compile/link both into the same plugin but that shouldn't be
8076 2011-07-08 15:42:56 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8078 * omx/gstomxvideodec.c:
8079 omxvideodec: Fix some minor memory leaks
8081 2011-07-08 15:25:07 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8085 * omx/gstomxvideodec.c:
8086 omx: Rework port reconfiguration
8087 We always reconfigure all ports now if the settings of one
8088 port changes to prevent lots of race conditions, dropped
8089 frames and similar issues.
8091 2011-07-08 13:16:45 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8093 * omx/gstomxvideodec.c:
8094 * omx/gstomxvideodec.h:
8095 omxvideodec: Use the frames storage of the base class instead of implementing our own
8096 They could get out of sync and we could store already destroyed frames.
8098 2011-07-07 12:51:03 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8101 omx: Clarify GQueue/GPtrArray element types
8103 2011-07-07 12:23:24 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8107 * omx/gstomxvideodec.c:
8108 omx: Add more checks to acquire_buffer() and return the current state additional to the buffer
8109 Also refactor the code flow in the video decoder for this. This makes
8110 the usage of acquire_buffer() easier and more atomic.
8112 2011-07-07 12:22:57 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8114 * omx/gstomxvideodec.c:
8115 omxvideodec: Also flush/unflush the input port when changing the state PAUSED<->READY
8117 2011-07-07 12:21:31 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8120 omx: Don't broadcast port->port_cond after allocating buffers successfully
8121 Allocating buffers must happen while no thread is waiting for the
8122 cond and especially must happen from the thread that would acquire
8123 buffers from the port.
8125 2011-07-07 11:27:15 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8127 * omx/gstomxvideodec.c:
8128 omxvideodec: Don't leak the codec_data after sending it
8130 2011-07-07 10:27:31 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8133 omx: Always check if the component is in an error state before waiting for a condition variable to be signalled
8134 Otherwise we might wait forever because nothing is going to signal
8135 the condition variable anymore.
8137 2011-07-07 10:22:12 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8140 omx: Always hold port->port_lock before signalling port->port_cond when notifying about errors
8141 Otherwise a port might be in the critical section, has checked the error state
8142 already but waits after port->port_cond is signalled, which will lead
8145 2011-07-07 10:07:43 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8147 * omx/gstomxvideodec.c:
8148 omxvideodec: Remove reconfiguration test hack
8150 2011-07-06 13:27:12 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8153 omx: Improve debug output a bit
8155 2011-07-06 13:26:51 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8158 omx: Always try to deallocate buffers, even if there's a component error
8160 2011-07-06 13:26:01 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8163 omx: Use G_USEC_PER_SEC for clarity instead of 1000000
8165 2011-07-06 13:19:15 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8167 * omx/gstomxvideodec.c:
8168 omxvideodec: Error out if the GStreamer allocated buffer is smaller than the OpenMAX output buffer
8169 Usually this must never happen but currently it happens during reconfigurations
8170 because of a race condition. Still it's better than crashing.
8172 2011-07-06 10:40:13 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8176 omx: Don't use port_def.bEnabled to check if the Enable/Disable command is finished
8177 bEnabled should be set immediately after sending the command, it's only
8178 Bellagio that waits until the command is finished before setting it.
8180 2011-07-06 10:30:11 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8182 * omx/gstomxvideodec.c:
8183 omxvideodec: Remove obsolete FIXME comment
8185 2011-07-06 10:29:54 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8189 omx: Improve error handling and reporting
8191 2011-07-06 08:48:37 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8193 * omx/gstomxmpeg4videodec.c:
8194 * omx/gstomxvideodec.c:
8195 * omx/gstomxvideodec.h:
8196 omxvideodec: Make the inport and outport index configurable by the subclass
8198 2011-06-28 08:51:23 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8203 * omx/gstomxmpeg4videodec.c:
8204 * omx/gstomxmpeg4videodec.h:
8205 * omx/gstomxvideodec.c:
8206 * omx/gstomxvideodec.h:
8207 omx: Add initial version of OpenMAX framework, video decoder base class and MPEG4 video decoder
8208 This currently hardcodes a lot of stuff but works at least.
8209 Also adds a generic framework for handling OpenMAX cores, components
8212 2011-06-28 11:47:25 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8214 * omx/gstbasevideocodec.c:
8215 * omx/gstbasevideocodec.h:
8216 * omx/gstbasevideodecoder.c:
8217 * omx/gstbasevideodecoder.h:
8218 basevideodecoder: Don't reorder serialized src events
8219 And allow to drop EOS by the subclass if ::finish returns
8223 2011-06-27 09:41:40 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8225 * omx/gstbasevideocodec.c:
8226 * omx/gstbasevideocodec.h:
8227 * omx/gstbasevideodecoder.c:
8228 basevideo: Add the caps to the GstVideoState and clean up caps/codec_data properly
8230 2011-06-27 09:37:03 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8232 * omx/gstbasevideocodec.c:
8233 * omx/gstbasevideocodec.h:
8234 * omx/gstbasevideodecoder.c:
8235 * omx/gstbasevideodecoder.h:
8236 * omx/gstbasevideoencoder.c:
8237 * omx/gstbasevideoencoder.h:
8238 * omx/gstbasevideoutils.c:
8239 basevideo: Add video encoder/decoder base classes from gst-plugins-bad
8241 2011-06-21 11:17:35 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8243 * omx/openmax/OMX_Audio.h:
8244 * omx/openmax/OMX_Component.h:
8245 * omx/openmax/OMX_ComponentExt.h:
8246 * omx/openmax/OMX_ContentPipe.h:
8247 * omx/openmax/OMX_Core.h:
8248 * omx/openmax/OMX_CoreExt.h:
8249 * omx/openmax/OMX_IVCommon.h:
8250 * omx/openmax/OMX_Image.h:
8251 * omx/openmax/OMX_Index.h:
8252 * omx/openmax/OMX_IndexExt.h:
8253 * omx/openmax/OMX_Other.h:
8254 * omx/openmax/OMX_Types.h:
8255 * omx/openmax/OMX_Video.h:
8256 * omx/openmax/OMX_VideoExt.h:
8257 openmax: Add OpenMAX IL 1.1.2 headers