1 2021-10-18 15:47:00 +0100 Tim-Philipp Müller <tim@centricular.com>
3 * tests/check/meson.build:
4 meson: update for meson.build_root() and .build_source() deprecation
5 -> use meson.project_build_root() or .global_build_root() instead.
6 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
8 2021-10-18 00:40:14 +0100 Tim-Philipp Müller <tim@centricular.com>
12 * tests/check/meson.build:
13 meson: update for dep.get_pkgconfig_variable() deprecation
14 ... in favour of dep.get_variable('foo', ..) which in some
15 cases allows for further cleanups in future since we can
16 extract variables from pkg-config dependencies as well as
17 internal dependencies using this mechanism.
18 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
20 2021-10-14 18:38:26 +0100 Tim-Philipp Müller <tim@centricular.com>
23 meson: bump meson requirement to >= 0.59
24 For monorepo build and ugly/bad, for advanced feature
25 option API like get_option('xyz').required(..) which
26 we use in combination with the 'gpl' option.
27 For rest of modules for consistency (people will likely
28 use newer features based on the top-level requirement).
29 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1084>
31 2021-09-28 10:11:15 +1000 Brad Hards <bradh@frogmouth.net>
34 doc: update IRC links to OFTC
35 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/945>
37 2021-09-26 01:07:02 +0100 Tim-Philipp Müller <tim@centricular.com>
41 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/925>
43 === release 1.19.2 ===
45 2021-09-23 01:36:02 +0100 Tim-Philipp Müller <tim@centricular.com>
54 2021-07-09 15:14:15 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
56 * omx/gstomxvideodec.c:
57 omxvideodec: fix OMX flags on header buffer
58 The header (SPS/PPS) buffer should have the CODECONFIG flag
59 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-omx/-/merge_requests/49>
61 2021-07-09 14:52:59 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
63 * omx/gstomxvideodec.c:
64 omxvideodec: allow to start decoder on HEADER buffer
65 If the headers are sent in their own buffer
66 it won't have the SYNC_FRAME flag but we still
67 do want to start decoding rather than dropping it.
68 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-omx/-/merge_requests/49>
70 2018-09-06 21:56:57 +0000 Nicolas Dufresne <nicolas.dufresne@collabora.com>
73 * omx/gstomxh264dec.c:
74 * omx/gstomxh265dec.c:
75 * omx/gstomxvideodec.c:
76 omxh26xdec: videodecoder support subframe
77 Use of subframe API from videodecoder base class.
78 This subframe allows to decode subframe instead of
79 waiting for a whole frame.
80 The subframe uses the same frame over the whole
81 subframe passing process and will wait
82 for a signal to know the last subframe.
83 In this implementation it will use
84 GST_VIDEO_BUFFER_FLAG_MARKER as the
85 end of batch of subframes.
86 This implement subframe mode negotation for the Zynq based on caps
87 negotation. This mode can be combined with low-latency mode, in order to
88 reach the lowest possible latency (assuming the stream is within the
89 low-latency constraints for the HW).
90 ... ! video/x-h264,alignment=nal ! omxh264dec ! ...
91 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-omx/-/merge_requests/49>
93 2021-06-01 15:29:18 +0100 Tim-Philipp Müller <tim@centricular.com>
98 === release 1.19.1 ===
100 2021-06-01 00:16:41 +0100 Tim-Philipp Müller <tim@centricular.com>
109 2020-11-04 18:48:13 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
112 meson: Enable some MSVC warnings for parity with GCC/Clang
113 This makes it easier to do development with MSVC by making it warn
114 on common issues that GCC/Clang error out for in our CI configuration.
115 Continuation from https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/223
116 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-omx/-/merge_requests/75>
118 2020-10-16 12:45:09 +0200 Stéphane Cerveau <scerveau@collabora.com>
120 * examples/egl/testegl.c:
122 meson: update glib minimum version to 2.56
123 In order to support the symbol g_enum_to_string in various
124 project using GStreamer ( gst-validate etc.), the glib minimum
125 version should be 2.56.0.
126 Remove compat code as glib requirement
128 Version used by Ubuntu 18.04 LTS
129 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-omx/-/merge_requests/74>
131 2020-10-05 12:32:10 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
133 * omx/gstomxvideodec.c:
134 omxvideodec: support interlace-mode=interleaved input
135 interlace-mode=alternate is a special case of interlace-mode=interleaved
136 where the fields are split using two different buffers.
137 The Zynq decoder always produces alternate content and we
138 used to assume that upstream will set interlace-mode=alternate in its
140 This is no longer the case as h265parse is now setting
141 alternate-mode=interleaved on alternate content to not break compat with
142 elements not supporting alternate.
143 As a result the decoder now accept both 'interleaved' and 'alternate' on
144 its input and ensures that its ouput has interlace-mode=alternate.
145 Needed to fix https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/825
146 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-omx/-/merge_requests/72>
148 2020-09-08 17:31:06 +0100 Tim-Philipp Müller <tim@centricular.com>
151 ci: include template from gst-ci master branch again
153 2020-09-08 16:59:09 +0100 Tim-Philipp Müller <tim@centricular.com>
158 === release 1.18.0 ===
160 2020-09-08 00:10:02 +0100 Tim-Philipp Müller <tim@centricular.com>
170 2020-08-27 17:19:44 +0100 Tim-Philipp Müller <tim@centricular.com>
172 * config/tizonia/meson.build:
173 meson: fix Tizonia build
174 Was failing for release versions with
175 meson.build:414:10: ERROR: Can not set values on configuration object that has been used.
176 Caused by !69, but CI didn't notice at the time because it was set to a git version.
178 === release 1.17.90 ===
180 2020-08-20 16:16:35 +0100 Tim-Philipp Müller <tim@centricular.com>
189 2020-07-08 17:39:20 +0100 Tim-Philipp Müller <tim@centricular.com>
193 * scripts/extract-release-date-from-doap-file.py:
194 meson: set release date from .doap file for releases
195 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-omx/-/merge_requests/69>
197 2020-07-03 02:04:16 +0100 Tim-Philipp Müller <tim@centricular.com>
202 === release 1.17.2 ===
204 2020-07-03 00:37:06 +0100 Tim-Philipp Müller <tim@centricular.com>
213 2020-06-20 00:28:37 +0100 Tim-Philipp Müller <tim@centricular.com>
218 === release 1.17.1 ===
220 2020-06-19 19:27:38 +0100 Tim-Philipp Müller <tim@centricular.com>
229 2020-06-16 01:20:27 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
231 * docs/gst_plugins_cache.json:
232 docs: Update plugin cache json
233 https://gitlab.freedesktop.org/alatiera/gst-ci/-/jobs/3109574
234 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-omx/-/merge_requests/68>
236 2020-06-03 22:24:09 -0400 Thibault Saunier <tsaunier@igalia.com>
238 * docs/gst_plugins_cache.json:
239 docs: Update documentation cache
241 2019-12-23 18:23:55 -0800 Dylan Yip <dylan.yip@xilinx.com>
244 omx: Add latest OMX_ALG_Index's to omx_index_type_to_str
245 Add following indexes to omx_index_type_to_str:
246 OMX_ALG_IndexParamVideoAccessUnitDelimiter
247 OMX_ALG_IndexParamVideoBufferingPeriodSEI
248 OMX_ALG_IndexParamVideoPictureTimingSEI
249 OMX_ALG_IndexParamVideoRecoveryPointSEI
250 OMX_ALG_IndexParamVideoMasteringDisplayColourVolumeSEI
251 OMX_ALG_IndexParamVideoContentLightLevelSEI
252 OMX_ALG_IndexConfigVideoRegionOfInterestByValue
253 OMX_ALG_IndexConfigVideoColorPrimaries
255 2020-05-20 17:05:33 +0200 Stéphane Cerveau <scerveau@collabora.com>
258 zynq: change API to use public 2020.01 from vcu-omx-il
259 This new release 2020.01 fixes an API typo
260 Change to OMX_ALG_IndexConfigVideoHighDynamicRangeSEI
261 instead of OMX_ALG_IndexConfigVideoHighDynamicRangeSEIs
264 2017-12-27 17:18:54 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
266 * omx/gstomxvideoenc.c:
267 omxvideoenc: factor out gst_omx_video_enc_allocate_out_buffers()
269 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-omx/-/merge_requests/66>
271 2020-04-10 11:47:03 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
273 * omx/gstomxh265enc.c:
276 * omx/gstomxvideodec.c:
277 * omx/gstomxvideoenc.c:
278 omxvideoenc: remove unsupported formats from caps template
279 Our encoder implementation actually supports a small subset of the
280 formats supported by the decoder. Those are the formats for which we
281 have a copy path in gst_omx_video_enc_fill_buffer() and which are not
282 filtered out in filter_supported_formats().
284 2020-04-10 09:59:02 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
287 video: remove BGR from supported format
288 It's not supported by either decoder or encoder and is even not listed in
289 gst_omx_video_get_format_from_omx() so it can't work.
291 2020-04-10 10:21:16 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
293 * omx/gstomxvideoenc.c:
294 omxvideoenc: add GRAY8 support
295 It's supported by Zynq encoder and was already in the sink caps
298 2020-04-10 11:18:49 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
300 * omx/gstomxvideoenc.c:
301 omxvideoenc: factor out gst_omx_video_enc_copy_plane()
302 No semantic change, I'm going to use it to copy GRAY8 buffers which is
303 actually a single plane 8-bits format.
305 2020-04-10 10:58:34 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
307 * omx/gstomxvideoenc.c:
308 omxvideoenc: use gst_video_meta_get_plane_height() to compute slice height
309 This new API saves us from doing manual computation and actually work
310 with single planar formats, such as GRAY8.
312 2020-04-07 19:59:12 +0200 Stéphane Cerveau <scerveau@collabora.com>
314 * omx/gstomxh264enc.c:
315 * omx/gstomxh265enc.c:
317 * omx/gstomxvideoenc.c:
318 omxh26xenc: fix coverity with frame test
319 Coverity was complaining with:
320 Null pointer dereferences (REVERSE_INULL) Null-checking "frame"
321 suggests that it may be null, but it has already been
322 dereferenced on all paths leading to the check.
323 The frame == NULL has been removed as 'frame' is actively used
324 in the code above without any change of dereferencing and setting
325 its value to NULL before the test.
328 2020-03-19 16:23:41 +0100 Stéphane Cerveau <scerveau@collabora.com>
330 * omx/gstomxvideoenc.c:
331 gstomxvideoenc: fix subframe output_buffer
332 Using more than 1 subframes was failing with
333 frame->output_buffer = NULL
335 2020-02-06 10:21:49 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
337 * omx/gstomxvideodec.c:
338 omxvideodec: add support of alternate interlace mode on zynq
340 2020-02-06 10:11:13 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
342 * omx/gstomxh265enc.c:
343 * omx/gstomxvideoenc.c:
344 omxvideoenc: add support of alternate interlace mode on zynq
345 It's only supported by the Zynq HEVC encoder for now.
347 2020-02-06 10:12:50 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
350 omx: add alternate flags to buffer_flags_map
351 Zynq specific flags used to tag top/bottom fields in alternate mode.
353 2020-02-06 09:57:48 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
356 * omx/gstomxvideoenc.c:
357 omxvideo(enc): use GST_VIDEO_INFO_FIELD_RATE_N()
358 Does not change anything for now but will be needed when we'll support
359 interlace-mode=alternate as the field rate will be twice the frame rate.
360 Made the code safe from division by 0 while I was on it.
362 2020-02-06 09:36:20 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
364 * omx/gstomxvideodec.c:
365 * omx/gstomxvideoenc.c:
366 omxvideo{enc,dec}: use GST_VIDEO_INFO_FIELD_HEIGHT()
367 Does not change anything for now but will be needed when we'll support
368 interlace-mode=alternate as the fields will have half the frame height.
370 2020-02-25 10:45:47 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
373 omx: don't log error when failing to load conf file with generic target
374 The generic target is meant to only test building gst-omx. It doesn't
375 provide any configuration file and so is not supposed to register any
377 I'm not aware of any user building gst-omx with this target and
378 providing their own conf file to actually register elements. But best to
379 not break this use case anyway so let's just downgrade the log message.
380 Fix GST_ERROR in the 'check fedora' CI job.
382 2020-01-27 11:56:53 +0100 Stéphane Cerveau <scerveau@collabora.com>
385 meson: add glib project fallback
386 Add a fallback from glib project to provide glib, gio and
387 gmodule dependencies.
389 2020-01-15 11:06:12 +0000 Stéphane Cerveau <scerveau@collabora.com>
391 * omx/gstomxvideoenc.c:
392 omxvideoenc: fix warning
393 Fix warning test when OMX_BUFFERFLAG_ENDOFFRAME
396 2018-08-28 13:03:14 -0700 Varunkumar Allagadapa <varunkum@xilinx.com>
398 * omx/gstomxvideoenc.c:
399 * omx/gstomxvideoenc.h:
400 omxvideoenc: Add look-ahead property to ZYNQ_USCALE_PLUS encoder
401 This patch adds look-ahead property to encoder
402 The value indicates look ahead size in frames,
403 the number of frames processed ahead of second pass encoding.
404 Dual pass encoding is disabled if look-ahead
405 value is less than 2.
407 2018-08-06 13:02:41 -0700 Varunkumar Allagadapa <varunkum@xilinx.com>
409 * omx/gstomxvideoenc.c:
410 * omx/gstomxvideoenc.h:
411 omxvideoenc: Add long-term-ref support to ZYNQ_USCALE_PLUS encoder
412 Custom API that upstream elements can use to notify encoders about
413 marking longterm ref. pictures or using longterm ref. pictures in
415 This patch adds below properties:
416 long-term-ref: Enable/Disable dynamically marking long-term
417 reference pictures in encoding process
418 long-term-freq: Periodicity of long-term reference picture
419 marking in encoding process.
420 If a picture is marked as long-term reference picture then it remains
421 in the DPB list for ever unless it overrides with new long-term pitcure with
422 same index. Encoder can use this long-term picture as refence for
424 This feature is mostly useful to avoid visual artifacts propagation in streaming use cases
425 when packet loss happens. Instead of requesting for IDR, client can request for use long-term
426 reference picture for encoding.
428 2020-01-07 10:24:19 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
431 meson: display OMX target when configuring
432 I'm adding more gst-omx CI (
433 https://gitlab.freedesktop.org/gstreamer/gst-ci/issues/20 ) having the
434 OMX targets displayed in the logs makes things clearer.
436 2019-08-30 10:27:32 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
439 omx: remove useless double negations
440 flush and port->flushing are both gboolean.
442 2019-12-20 22:19:06 -0800 Julien Isorce <jisorce@oblong.com>
445 meson: fix tizonia build
446 meson.build was both using path to gst-omx/openmax/OMX*
447 headers and path to OMX headers provided by tizilheaders.pc
448 so this patch makes sure we only use the later.
449 Also bump tizonia minimum version to 0.19.0 which
450 is the latest release.
452 2019-05-16 10:50:18 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
454 * omx/gstomxh265enc.c:
455 * omx/gstomxh265enc.h:
456 omxh265enc: handle CODECCONFIG buffers
457 Exact same code as omxh264enc.
459 2019-05-16 10:38:49 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
461 * omx/gstomxh264enc.c:
462 omxh264enc: send codec data downstream
463 We are operating in stream-format=byte-stream so the codec data buffer
464 is meant to be part of the buffer flow.
465 The base class will push it when a key frame is requested (as we stored
466 it with gst_video_encoder_set_headers()) but we still have to push it
467 right away as part of the normal buffer flow.
468 Also set the HEADER flag on this buffer.
470 2019-05-16 10:38:49 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
472 * omx/gstomxh264enc.c:
473 omxh264enc: no need to check if codeconfig has startcode
474 We currently only support stream-format=byte-stream so there is no point
475 re-checking for it when handling CODECCONFIG buffer.
477 2018-09-04 20:12:17 +0000 Nicolas Dufresne <nicolas.dufresne@collabora.com>
479 * omx/gstomxh264enc.c:
480 * omx/gstomxh265enc.c:
481 omxh26xenc: Negotiate subframe mode
482 We now negotiate subframe mode through the caps. To enabled subframe
483 mode, the caps need to specify alignment=nal:
484 ... ! omxh264enc ! video/x-h264,alignment=nal ! ...
485 ... ! omxh265enc ! video/x-h265,alignment=nal ! ...
487 2018-08-31 12:24:34 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
489 * omx/gstomxvideoenc.c:
490 omxvideoenc: use subframe base class API
491 Use subframe base class support.
493 2018-09-04 19:34:59 +0000 Nicolas Dufresne <nicolas.dufresne@collabora.com>
497 omx: Add helper to enable/disable/read subframe mode
499 2019-12-19 13:51:17 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
502 zynq: add mapping for latest custom indexes
503 Fix warning when building using version 2019.2 of OMX headers.
505 2019-09-12 16:29:59 -0700 Varunkumar Allagadapa <varunkumar.allagadapa@xilinx.com>
507 * omx/gstomxvideoenc.c:
508 omxvideoenc: update qp-mode settings
509 Adds load-qp-absolute and load-qp-relative qp-modes
511 2019-12-10 18:34:25 +0900 Shinya Saito <ssaito@igel.co.jp>
513 * omx/gstomxvideoenc.c:
514 omxvideoenc: Add stride check for input buffer extraction
515 Stride of input buffer may be different from
516 that of omx input port even if both sizes are the same.
518 2019-05-15 14:04:47 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
520 * omx/gstomxvideoenc.c:
521 omxvideoenc: pass padding requirements to ALLOCATION query
522 By passing the expected video buffer layout, the upstream producer
523 may be able to produce buffers fitting those requierements allowing
524 gst-omx to use dynamic buffer mode rather than having to copy each input
526 This is particularly useful with v4l2src as it can request the capture
527 driver to produce buffers with the required paddings.
529 2019-07-09 13:07:32 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
531 * omx/gstomxbufferpool.c:
534 omxbufferpool: use gst_video_meta_set_alignment()
535 Tell buffer consumer about our paddings.
536 v4l2src can now uses these paddings information when trying to import
537 buffers to configure the v4l2 driver accordingly.
539 2019-05-30 11:11:34 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
541 * omx/gstomxvideoenc.c:
542 omxvideoenc: fix buffer size in debug log
543 Use the actual OMX buffer size rather than the info.size as OMX
544 may require larger buffer if the port requires some padding.
546 2019-10-14 00:48:32 +0100 Tim-Philipp Müller <tim@centricular.com>
553 * config/Makefile.am:
554 * config/bellagio/Makefile.am:
555 * config/rpi/Makefile.am:
556 * config/tizonia/Makefile.am:
557 * config/zynqultrascaleplus/Makefile.am:
559 * examples/Makefile.am:
560 * examples/egl/Makefile.am:
564 * tests/check/.gitignore:
565 * tests/check/Makefile.am:
566 * tests/check/generic/.gitignore:
568 Remove autotools build
570 2019-10-07 16:59:10 +0000 Stéphane Cerveau <scerveau@collabora.com>
572 * omx/gstomxallocator.c:
573 omxallocator: fix leak with a proper chaining finalize
575 2019-09-20 15:02:24 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
577 * omx/gstomxvideoenc.c:
578 omxvideoenc: revert draining on ALLOCATION and DRAIN query
579 My latest patch introduces some regressions which I have no time to
580 debug properly at the moment so just revert it for now.
582 2019-09-17 13:02:54 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
584 * omx/gstomxvideoenc.c:
585 omxvideoenc: let encoder base class handle ALLOCATION query
586 Fixing a regression introduced in my previous patch
587 (7c40a91c31aa4bcbb191f7c6a5d222edf9dfd9d1).
588 The ALLOCATION query needs to be handled by GstVideoEncoder (to call
589 propose_allocation()) so chain up the query handling rather than early
592 2019-08-29 12:20:56 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
594 * omx/gstomxvideoenc.c:
595 omxvideoenc: drain encoder on ALLOCATION and DRAIN queries
596 Ensure that the encoder releases all its input buffers when requested by
597 upstream. Encoder input buffers may be shared with downstreaming (when
598 using dmabuf), upstream may then request the encoder to
599 drain when reconfiguring before destroying its buffers.
600 Also drain on ALLOCATION query as we already do in kmssink as that
601 notify of a format change.
602 Fix "decoder ! encoder" pipeline when decoding a file with different
605 2019-08-28 15:52:41 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
608 omx: log the number of pending buffers when port is EOS
610 2019-08-28 15:49:00 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
613 omx: log when an output port is eos
615 2019-08-27 15:47:28 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
617 * omx/gstomxvideoenc.c:
618 omxvideoenc: log the full input format
619 Make it easier to debug dynamic format changes.
621 2019-08-21 12:25:40 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
623 * omx/gstomxvideodec.c:
624 omxvideodec: fix dmabuf import
625 When importing dmabuf, UseBuffer() has to be called with the fd as
626 pBuffer rather than the mapped address of the buffer.
628 2019-08-21 12:48:25 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
630 * omx/gstomxbufferpool.c:
631 omxbufferpool: fix dmabuf import
632 When importing dmabuf from downstream, we want the allocator to be in
633 OTHER_POOL mode despite output_mode being DMABUF.
634 So check first if other_pool is set before checking for pool's
637 2019-08-22 17:55:54 +0900 Shinya Saito <ssaito@igel.co.jp>
639 * omx/gstomxvideoenc.c:
640 omxvideoenc: Remove unnecessary gst_video_frame_unmap()
642 2019-07-25 16:30:13 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
644 * omx/gstomxvideodec.c:
645 omxvideodec: log supported caps by the decoder
646 Can be useful when debugging to check the caps supported by the decoder
649 2019-07-11 12:03:46 +0900 Shinya Saito <ssaito@igel.co.jp>
651 * omx/gstomxvideoenc.c:
652 omxvideoenc: Unref frame of codec config buffer
653 After handling codec config, codec frame should be unreffed.
655 2019-06-14 16:27:37 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
658 omxvideo: check difference between frame and requested ts
659 This has proven to be very useful when debugging to detect bugs where we
660 match the wrong gst frame with an output OMX buffer.
662 2019-06-14 10:57:29 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
666 * omx/gstomxvideodec.c:
667 * omx/gstomxvideoenc.c:
668 omxvideo: add debug infos to find_nearest_frame()
669 Those debug infos have proved to be very helpful when debugging
670 timestamp issues. They are often linked to gst-omx picking the wrong
671 frame when trying to map from OMX.
673 2019-03-05 16:57:40 +0900 Shinya Saito <ssaito@igel.co.jp>
675 * omx/gstomxvideodec.c:
676 omxvideodec: Deactivate negotiated pool when output own buffer
677 If decoder outputs internal buffer and not use OMX_UseBuffer,
678 downstream bufferpool should be stopped.
680 2019-06-03 12:21:05 +0900 Shinya Saito <ssaito@igel.co.jp>
682 * omx/gstomxh264enc.c:
683 * omx/gstomxh264enc.h:
684 omxh264enc: Add 'ref-frames' property
685 Add a property to control the number of frames for reference.
686 Min and max value is based on OpenMAX IL 1.2.0 Specification.
688 2019-06-03 07:57:02 +0200 Niels De Graef <niels.degraef@barco.com>
692 meson: Bump minimal GLib version to 2.44
693 This means we can use some newer features and get rid of some
694 boilerplate code using the G_DECLARE_* macros.
695 As discussed on IRC, 2.44 is old enough by now to start depending on it.
697 2019-04-19 12:38:54 -0400 Thibault Saunier <tsaunier@igalia.com>
699 * docs/gst_plugins_cache.json:
706 doc: Build documentation of hotdoc
708 2019-03-26 12:26:03 +0200 George Kiagiadakis <george.kiagiadakis@collabora.com>
712 gstomx: remove gst_omx_buffer_set_omx_buf/get_omx_buf
713 They are no longer used anywhere
715 2019-03-22 12:11:13 +0200 George Kiagiadakis <george.kiagiadakis@collabora.com>
718 * omx/gstomxallocator.c:
719 * omx/gstomxallocator.h:
720 * omx/gstomxbufferpool.c:
721 * omx/gstomxbufferpool.h:
722 * omx/gstomxvideoenc.c:
724 omxbufferpool: refactor to allow memory sharing
725 One big restriction of the OMX buffer pool has always been
726 that the GstMemory objects were flagged with NO_SHARE.
727 This was because the buffer pool needed to be sure that when
728 a buffer returned to the pool, it would be safe to release the
729 OMX buffer back to OpenMAX.
730 With this change, this is no longer a restriction. What this
731 commit introduces is a new allocator that allows us to track
732 the GstMemory objects independently. Now, when a buffer returns
733 to the pool, it is not necessary for the memory to be released
734 as well. We simply track the memory's ref count in the allocator
735 and we return the OMX buffer back when the memory's ref count
737 The reason for doing this is to allow implementing zero-copy
738 transfers in situations where we may need to copy or map a
739 certain region of the buffer. For instance, omxh264enc ! h264parse
740 should be possible to be zero-copy by using an OMX buffer pool
743 2019-04-23 15:13:23 +0530 Guillaume Desmottes <guillaume.desmottes@collabora.com>
745 * omx/gstomxbufferpool.c:
746 omxbufferpool: fix memory mapping with offset
747 gst_memory_map() is already adding the offset to the mapped pointer.
748 Doing it in the memory implementation was resulting in the offset being
750 It doesn't matter yet as we are only creating memory without offset for
751 now but it will once we'll start sharing OMX memories.
753 2019-04-19 10:43:58 +0100 Tim-Philipp Müller <tim@centricular.com>
760 === release 1.16.0 ===
762 2019-04-19 00:38:44 +0100 Tim-Philipp Müller <tim@centricular.com>
772 2019-04-16 12:23:10 -0700 Julien Isorce <jisorce@oblong.com>
775 Fixes build with omx >= 1.2.0
776 gstomx.c:1405:10: error: ‘OMX_IndexParamCustomContentPipe’ undeclared (first use in this function)
777 case OMX_IndexParamCustomContentPipe
778 Some enums have been deprecated in 1.2.0
779 https://gitlab.freedesktop.org/gstreamer/gst-omx/issues/27
781 2018-05-18 10:55:21 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
784 * examples/egl/Makefile.am:
785 * examples/egl/meson.build:
786 testegl: properly detect and use rpi specific libs
787 Use pkg-config to detect and configure rpi specific libs used in testegl
788 rather than hardcoding their flags.
790 2018-05-18 10:53:34 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
792 * examples/egl/testegl.c:
793 testelg: include eglext.h
794 Neded for the declaration of eglSaneChooseConfigBRCM().
796 2018-05-18 10:38:33 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
798 * examples/egl/testegl.c:
799 testegl: move up pi specific macros
800 We need to define __VCCOREVER__ and disable redundant-decls before
801 including the egl.h from the pi.
803 === release 1.15.90 ===
805 2019-04-11 00:40:52 +0100 Tim-Philipp Müller <tim@centricular.com>
815 2019-04-10 00:19:55 +0100 Tim-Philipp Müller <tim@centricular.com>
818 meson: add -Wundef as additional warning flag
820 2019-04-10 00:16:27 +0100 Tim-Philipp Müller <tim@centricular.com>
822 * omx/gstomxvideoenc.c:
823 omx: fix autotools build for generic target
824 gstomxvideoenc.c:2874:7: error: "USE_OMX_TARGET_ZYNQ_USCALE_PLUS" is not defined, evaluates to 0 [-Werror=undef]
825 #elif USE_OMX_TARGET_ZYNQ_USCALE_PLUS
826 Works on meson because it doesn't use -Wundef
828 2018-11-12 12:51:28 +0200 Jordan Petridis <jordan@centricular.com>
831 Add Gitlab CI configuration
832 This commit adds a .gitlab-ci.yml file, which uses a feature
833 to fetch the config from a centralized repository. The intent is
834 to have all the gstreamer modules use the same configuration.
835 The configuration is currently hosted at the gst-ci repository
836 under the gitlab/ci_template.yml path.
837 Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/29
839 2019-03-25 16:30:11 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
842 omx: disable OMX_API_TRACE code if gst debug is disabled
843 No need to create debug structs which won't be used as DEBUG macros are
846 2018-10-11 10:55:04 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
849 omx: log Get/SetParameter/Config calls
850 Extend OMX_API_TRACE by logging component configuration calls.
852 2019-02-06 14:57:05 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
854 * omx/gstomxbufferpool.c:
855 omxbufferpool: don't use CAT_PERFORMANCE if pool will copy
856 This was the single place where this category was used in gst-omx so
857 most users, including me, are generally not turning it and were missing this
858 important information from logs.
859 The copying code uses gst_video_frame_copy() which is already logging
860 with CAT_PERFORMANCE so we can still have this information when using
861 only this debug category.
863 2019-02-06 14:50:44 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
865 * omx/gstomxvideodec.c:
866 omxvideodec: add debug if proposed pool can't provide enough buffers
867 We were silently ignoring the pool which was pretty confusing when
870 2019-03-26 12:17:26 +0000 Charlie Turner <cturner@igalia.com>
872 * omx/gstomxaacdec.c:
873 * omx/gstomxaacenc.c:
874 * omx/gstomxamrdec.c:
875 * omx/gstomxh263dec.c:
876 * omx/gstomxh263enc.c:
877 * omx/gstomxh264dec.c:
878 * omx/gstomxh264enc.c:
879 * omx/gstomxh265dec.c:
880 * omx/gstomxh265enc.c:
881 * omx/gstomxmjpegdec.c:
882 * omx/gstomxmp3dec.c:
883 * omx/gstomxmp3enc.c:
884 * omx/gstomxmpeg2videodec.c:
885 * omx/gstomxmpeg4videodec.c:
886 * omx/gstomxmpeg4videoenc.c:
887 * omx/gstomxtheoradec.c:
888 * omx/gstomxvp8dec.c:
889 * omx/gstomxwmvdec.c:
890 omx: Add hardware classifiers to encoders/decoders
892 2019-03-25 16:01:48 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
895 meson: sync warnings flags with -good
896 Add more warnings flags and disabled unused variable warnings if gst
897 debug system is disabled.
898 Copied from gst-plugins-good/meson.build
900 2019-03-04 09:16:40 +0000 Tim-Philipp Müller <tim@centricular.com>
908 === release 1.15.2 ===
910 2019-02-26 12:02:23 +0000 Tim-Philipp Müller <tim@centricular.com>
920 2019-02-14 23:57:09 +0000 Tim-Philipp Müller <tim@centricular.com>
924 meson: add options to disable examples, tests and tools and bump meson requirement
926 2019-01-04 10:11:38 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
930 * omx/gstomxvideodec.c:
931 * omx/gstomxvideoenc.c:
932 omxvideo: use GST_VIDEO_CAPS_MAKE() for template caps
933 Simplify the code and so we advertise the formats actually supported by
936 2018-06-04 12:20:03 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
938 * omx/gstomxvideoenc.c:
939 omxvideoenc: validate cpb-size and initial-delay
940 cpb-size cannot be smaller than initial-delay.
942 2018-10-02 10:47:06 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
944 * omx/gstomxvideodec.c:
945 omxvideodec: Remove duplicated QoS code
946 The 'finish' function do the exact same check / drop, there is no
947 need to duplicate this here.
949 2018-09-20 14:44:09 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
951 * omx/gstomxvideodec.c:
952 * omx/gstomxvideodec.h:
953 omxvideodec: Remove dead code
954 The omxvideodec base class have a totally unused prepare_frame() vritual
957 2018-07-11 17:38:22 -0700 Varunkumar Allagadapa <varunkum@xilinx.com>
959 * omx/gstomxvideoenc.c:
960 omxvideoenc: add adaptive gop-mode option
961 Added adaptive gop-mode option to ZYNQ_USCALE_PLUS encoder properties
963 2018-02-13 18:25:51 +0000 Nicolas Dufresne <nicolas.dufresne@collabora.com>
965 * omx/gstomxvideoenc.c:
966 omxvideoenc: Add dynamic framerate support
967 Instead of going through a full reset, try and change the framerate
968 config on the encoder when only the framerate have change.
970 === release 1.15.1 ===
972 2019-01-17 02:38:28 +0000 Tim-Philipp Müller <tim@centricular.com>
982 2018-02-20 10:57:42 -0800 Varunkumar Allagadapa <varunkum@xilinx.com>
984 * omx/gstomxvideoenc.c:
985 omxvideoenc: Add dynamic IDR insertion support on zynq
986 As the pi, the zynq has its own API to request keyframe.
988 2019-01-07 13:29:37 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
992 * omx/gstomxbufferpool.c:
993 omxbufferpool: fix race when releasing input buffers
994 If buffers were released from the pool while
995 gst_omx_video_enc_handle_frame() was waiting for new buffers,
996 gst_omx_port_acquire_buffer() was never awaken as the buffers weren't
997 released through OMX's messaging system.
998 GQueue isn't thread safe so also protect it with the lock mutex.
1000 2018-11-15 11:17:59 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1002 * omx/gstomxbufferpool.c:
1003 * omx/gstomxbufferpool.h:
1004 * omx/gstomxvideodec.c:
1005 * omx/gstomxvideoenc.c:
1006 omxbufferpool: fix early input buffer release
1007 We used to track the 'allocating' status on the pool. It is used while
1008 allocating so output buffers aren't passed right away to OMX and input
1009 ones are not re-added to the pending queue.
1010 This was causing a bug when exporting buffers to v4l2src. On start
1011 v4l2src acquires a buffer, read its stride and release it right away.
1012 As no buffer was received by the encoder element at this point, 'allocating'
1013 was still on TRUE and so the the buffer wasn't put back to the pending
1014 queue and, as result, no longer available to the pool.
1015 Fix this by checking the active status of the pool instead of manually
1016 tracking it down. The pool is considered as active at the very end of
1017 the activation process so we're good when buffers are released during
1020 2018-12-05 17:24:48 -0300 Thibault Saunier <tsaunier@igalia.com>
1023 Automatic update of common submodule
1024 From ed78bee to 59cb678
1026 2018-11-23 12:57:15 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
1029 omx: fix OMX_EventBufferFlag OMX_API_TRACE struct
1030 The GType was missing from the second field of the struct.
1032 2018-11-05 05:43:43 +0000 Matthew Waters <matthew@centricular.com>
1036 Update git locations to gitlab
1038 2018-09-18 16:50:11 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1041 omx: rename OMX_PERFORMANCE debug cat to OMX_API_TRACE
1042 This debug category can now be used to track more OMX calls and events
1043 so best to rename it to something more generic.
1044 https://bugzilla.gnome.org/show_bug.cgi?id=797171
1046 2018-08-21 17:35:04 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1049 omx: log OMX commands with OMX_PERFORMANCE debug category
1050 It has been useful to have a clear raw and structured view of the gst
1051 <-> OMX exchanges when debugging.
1052 https://bugzilla.gnome.org/show_bug.cgi?id=797171
1054 2018-08-21 16:50:38 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1057 omx: factor out gst_omx_component_send_command()
1058 No semantic change. I'm going to add extra debug in this function.
1059 https://bugzilla.gnome.org/show_bug.cgi?id=797171
1061 2018-08-21 15:14:09 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1064 omx: log OMX events with OMX_PERFORMANCE debug category
1065 It has been useful to have a clear raw and structured view of the gst
1066 <-> OMX exchanges when debugging.
1067 https://bugzilla.gnome.org/show_bug.cgi?id=797171
1069 2018-08-22 12:51:30 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1072 omx: rename log_omx_performance() to log_omx_performance_buffer()
1073 I'm about to log more things under this category
1074 https://bugzilla.gnome.org/show_bug.cgi?id=797171
1076 2018-09-07 22:57:30 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1078 * omx/gstomxvideoenc.c:
1079 omxvideoenc: Remove spurious locking
1080 The method we call in the context of pushing a buffer are all thread
1081 safe. Holding a lock would prevent input buffers from being queued while
1083 https://bugzilla.gnome.org/show_bug.cgi?id=715192
1085 2018-09-07 23:09:29 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1087 * omx/gstomxvideoenc.c:
1088 omxvideoenc: Remove unneeded size check
1089 We only enter this branch if nFilledLen > 0, there is not need
1091 https://bugzilla.gnome.org/show_bug.cgi?id=715192
1093 2018-09-07 22:55:41 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1095 * omx/gstomxvideodec.c:
1096 omxvideodec: Remove spurious unlock in error case
1097 This was forgotton in previous patch. We no long hold the lock when goto
1098 invalid_buffer is called.
1099 https://bugzilla.gnome.org/show_bug.cgi?id=715192
1101 2018-08-31 17:28:03 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1103 * omx/gstomxvideodec.c:
1104 omxvideodec: don't hold the stream lock when trying to push a frame
1105 The base class methods will lock this properly when needed, there seems
1106 to be no need to lock it explicitly.
1107 This allows the patch in gstvideodec for unlocking the stream lock
1108 when pushing buffers out to work.
1109 https://bugzilla.gnome.org/show_bug.cgi?id=715192
1111 2018-07-31 13:22:31 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1113 * omx/gstomxvideodec.c:
1114 omxvideodec: don't import OMX buffers from downstream
1115 We already have code configuring the encoder stride and slice height
1116 when receiving the first buffer from upstream.
1117 We don't have an equivalent when the encoder is exporting its buffers to the
1119 There is no point adding it and making the code even more
1120 complex as we wouldn't gain anything by exporting from the encoder to
1121 the decoder. The dynamic buffer mode already ensures 0-copy between OMX
1123 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1125 2018-05-15 11:59:26 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1129 * omx/gstomxbufferpool.c:
1130 * omx/gstomxvideoenc.c:
1131 * omx/gstomxvideoenc.h:
1132 omxvideoenc: implement dmabuf export on input buffers
1133 Propose pool upstream so input buffers can be allocated by the port and
1135 The actual OMX buffers are allocated when the pool is activated, so we
1136 don't end up doing useless allocations if the pool isn't used.
1137 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1139 2018-08-13 15:10:37 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1143 * omx/gstomxaudiodec.c:
1144 * omx/gstomxaudioenc.c:
1145 * omx/gstomxaudiosink.c:
1146 * omx/gstomxvideodec.c:
1147 * omx/gstomxvideoenc.c:
1148 omx: allow gst_omx_port_acquire_buffer() to not wait for buffers
1149 Will be needed to implement GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT.
1150 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1152 2018-07-31 15:04:33 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1154 * omx/gstomxvideodec.c:
1155 omxvideodec: don't import non-dmabuf when dec is in dmabuf mode
1156 Fix 'omxh264dec ! videocrop' pipeline.
1157 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1159 2018-08-02 11:29:12 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1161 * omx/gstomxvideodec.c:
1162 omxvideodec: factor out gst_omx_try_importing_buffer()
1163 No semantic change, just make the code clearer and improve debug output.
1164 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1166 2018-07-26 16:30:08 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1168 * omx/gstomxvideodec.c:
1169 omxvideodec: fix gst_video_info_from_caps() caps assertion
1170 The "use buffers" code path uses gst_video_info_from_caps() which is
1171 asserting if caps is NULL (because pool was rejected).
1172 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1174 2018-07-26 16:22:50 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1176 * omx/gstomxvideodec.c:
1177 omxvideodec: fix pool caps reference stealing
1178 gst_buffer_pool_config_get_params() doesn't ref the returning caps;
1179 so gst_caps_replace() was unreffing the reference owned by the pool.
1180 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1182 2018-07-25 09:57:20 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1184 * omx/gstomxvideodec.c:
1185 omxvideodec: prevent timeout when shutting down because of pending out buffers
1186 The OMX transition state to Loaded won't be complete until all buffers
1187 have been freed. There is no point waiting, and timeout, if we know that
1188 output buffers haven't been freed yet.
1189 The typical scenario is output buffers being still used downstream
1190 and being freed later when released back to the pool.
1191 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1193 2018-07-24 15:14:31 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1195 * omx/gstomxbufferpool.c:
1196 omxbufferpool: reference the OMX component
1197 Now that the pool is responsible of freeing the OMX buffers, we need to
1198 ensure that the OMX component stay alive while the pool is as we rely on
1199 the component to free the buffers.
1200 The GstOMXPort is owned by the component so no need to ref this one.
1201 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1203 2018-07-24 15:06:01 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1207 * omx/gstomxaudiodec.c:
1208 * omx/gstomxaudioenc.c:
1209 * omx/gstomxaudiosink.c:
1210 * omx/gstomxvideodec.c:
1211 * omx/gstomxvideoenc.c:
1212 turn GstOMXComponent to a GstMiniObject
1213 Will use it for refcounting.
1214 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1216 2018-05-28 12:20:45 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1218 * omx/gstomxbufferpool.c:
1219 * omx/gstomxvideodec.c:
1220 omxbufferpool: deallocate OMX buffers when stopping
1221 The pool is stopped when all the buffers have been released. Deallocate
1222 when stopping so we are sure that the buffers aren't still used by
1224 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1226 2018-05-24 16:28:21 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1229 omx: call gst_omx_buffer_unmap() when handling BUFFER_DONE
1230 When using a input buffer pool, the buffer may be released to the pool when
1231 gst_omx_buffer_unmap() is called. We need to have buf->used unset at
1232 this point as the pool may use it to check the status of the pool.
1233 {Empty,Fill}BufferDone is called from OMX internal threads while
1234 messages are handled from gst elements' thread. Best to do all this
1235 when handling the message so we don't mess with OMX threads and keep
1236 the original thread/logic split.
1237 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1239 2018-05-25 14:44:16 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1241 * omx/gstomxvideodec.c:
1242 * omx/gstomxvideoenc.c:
1243 omxvideo{enc,dec}: stop calling shutdown() in change_state
1244 This is no longer needed since we implemented close() vfuncs as the
1245 encoder/decoder base class already take care of calling close() (which
1246 is calling shutdown()) in its own change_state implementation.
1247 We also move the shut down of the component from PAUSED_TO_READY to READY_TO_NULL.
1248 By doing so upstream will have already deactivated the pool from the
1249 encoder and so won't be preventing the OMX state change as the buffers
1250 will all be released.
1251 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1253 2018-05-15 16:21:26 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1257 * omx/gstomxbufferpool.c:
1258 omx: factor out gst_omx_buffer_get/set_omx_buf()
1259 Move the qdata code to helper functions as I'm going to need them in
1260 omxvideoenc to implement dmabuf export.
1261 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1263 2018-05-15 11:01:13 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1265 * omx/gstomxvideoenc.c:
1266 omxvideoenc: factor out gst_omx_video_enc_set_to_idle()
1267 No semantic change. We'll have to use this when the input pool is
1268 activated so we can allocate buffers.
1269 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1271 2018-05-15 09:56:10 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1273 * omx/gstomxvideoenc.c:
1274 omxvideoenc: factor out gst_omx_video_enc_deallocate_in_buffers()
1275 Will add extra code when adding input buffer pool.
1276 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1278 2018-05-14 15:16:38 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1281 omx: add pBuffer to OMX_PERFORMANCE logs
1282 Can be useful to check the fd being passed when using dmabuf.
1283 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1285 2018-03-21 12:43:33 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1289 * omx/gstomxvideodec.c:
1290 * omx/gstomxvideoenc.c:
1291 omx: factor out gst_omx_port_set_dmabuf()
1292 No semantic change. I also made the debug message a bit clearer.
1293 https://bugzilla.gnome.org/show_bug.cgi?id=796918
1295 2018-08-22 15:56:18 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1298 omx: wait for flush complete and buffers being released when flushing
1299 When flusing we should wait for OMX to send the flush command complete event
1300 AND all ports being released.
1301 We were stopping as soon as one of those condition was met.
1302 Fix a race between FillThisBufferDone/EmptyBufferDone and the flush
1303 EventCmdComplete messages. The OMX implementation is supposed to release
1304 its buffers before posting the EventCmdComplete event but the ordering
1305 isn't guaranteed as the FillThisBufferDone/EmptyBufferDone and
1306 EventHandler callbacks can be called from different threads (cf 2.7
1307 'Thread Safety' in the spec).
1308 Only wait for buffers currently used by OMX as some buffers may not be
1309 in the pending queue because they are held downstream.
1310 https://bugzilla.gnome.org/show_bug.cgi?id=789475
1312 2018-08-22 15:52:23 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1315 omx: factor out should_wait_until_flushed()
1316 No semantic change. Makes the code easier to understand and I'm about to
1317 change the waiting condition.
1318 https://bugzilla.gnome.org/show_bug.cgi?id=789475
1320 2018-08-28 13:10:35 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1322 * omx/gstomxvideoenc.c:
1323 omxvideoenc: pause component when flushing
1324 As stated in the spec ("6.1.3 Seek Event Sequence") we should pause
1326 We were pausing the decoder but not the encoder so I just aligned the
1328 https://bugzilla.gnome.org/show_bug.cgi?id=797038
1330 2018-07-12 12:41:18 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1332 * omx/gstomxvideoenc.c:
1333 omxvideoenc: fix vertical padding in NV16 formats
1334 My previous patch to calculate the vertical padding was always halfing
1335 the height of the chroma plane which is incorrect for NV16 formats.
1336 https://bugzilla.gnome.org/show_bug.cgi?id=796749
1338 2018-07-05 15:13:47 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1340 * omx/gstomxvideoenc.c:
1341 omxvideoenc: include vertical padding in nFilledLen when copying
1342 According to the OMX spec (3.1.3.7.1) nFilledLen is meant to include any
1343 padding. We use to include the horizontal one (stride) but not the
1344 vertical one if nSliceHeight is bigger than the actual height.
1345 The calculated nFilledLen was wrong as it didn't include the padding
1347 https://bugzilla.gnome.org/show_bug.cgi?id=796749
1349 2018-04-26 12:30:47 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1353 * omx/gstomxvideodec.c:
1354 * omx/gstomxvideoenc.c:
1355 * omx/gstomxvideoenc.h:
1356 omxvideoenc: implement decide_allocation
1357 Increase the number of output buffers by the number of buffers requested
1359 Prevent buffers starvation if downstream is going to use dynamic buffer
1361 https://bugzilla.gnome.org/show_bug.cgi?id=795746
1363 2018-04-26 12:29:16 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1365 * omx/gstomxvideodec.c:
1366 omxvideodec: implement propose_allocation
1367 Tell upstream about how many buffer we plan to use so they can adjust
1368 their own number of buffers accordingly if needed.
1369 Same logic as the existing gst_omx_video_enc_propose_allocation().
1370 https://bugzilla.gnome.org/show_bug.cgi?id=795746
1372 2018-05-17 09:54:11 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1374 * omx/gstomxvideoenc.c:
1375 * omx/gstomxvideoenc.h:
1376 omxvideoenc: always signal drain cond when stopping streaming loop
1377 Similar change as the one I just did in omxvideodec.
1378 https://bugzilla.gnome.org/show_bug.cgi?id=796207
1380 2018-05-16 17:06:29 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1382 * omx/gstomxvideodec.c:
1383 * omx/gstomxvideodec.h:
1384 omxvideodec: always signal drain cond when stopping streaming loop
1385 If for some reason something goes wrong and we stop the streaming loop
1386 we may end up with other threads still waiting on the drain cond.
1387 No more buffers will be produced by the component so they were waiting
1389 Fix this by always signalling this cond when stopping the streaming
1391 https://bugzilla.gnome.org/show_bug.cgi?id=796207
1393 2018-05-16 17:02:01 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1395 * omx/gstomxvideodec.c:
1396 omxvideoenc: factor out gst_omx_video_enc_pause_loop()
1397 No semantic change. I'm going to use it in more failure cases.
1398 https://bugzilla.gnome.org/show_bug.cgi?id=796207
1400 2018-05-17 14:24:52 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1402 * config/zynqultrascaleplus/gstomx.conf:
1403 zynqultrascaleplus: enable 'ensure-buffer-count-actual' hack
1404 https://bugzilla.gnome.org/show_bug.cgi?id=791211
1406 2018-04-27 16:26:36 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1410 * omx/gstomxvideodec.c:
1411 * omx/gstomxvideoenc.c:
1412 omxvideodec/enc: add hack updating nBufferCountActual before allocating
1413 The OMX specs states that the nBufferCountActual of a port has to default
1414 to its nBufferCountMin. If we don't change nBufferCountActual we purely rely
1415 on this default. But in some cases, OMX may change nBufferCountMin before we
1416 allocate buffers. Like for example when configuring the input ports with the
1417 actual format, it may decrease the number of minimal buffers required.
1418 This method checks this and update nBufferCountActual if needed so we'll use
1419 less buffers than the worst case in such scenarios.
1420 SetParameter() needs to be called when the port is either disabled or
1421 the component in the Loaded state.
1422 Don't do this for the decoder output as
1423 gst_omx_video_dec_allocate_output_buffers() already check
1424 nBufferCountMin when computing the number of output buffers.
1425 On some platform, like rpi, the default nBufferCountActual is much
1426 higher than nBufferCountMin so only enable this using a specific gst-omx
1428 https://bugzilla.gnome.org/show_bug.cgi?id=791211
1430 2018-05-28 15:02:13 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1432 * omx/gstomxvideodec.c:
1433 * omx/gstomxvideoenc.c:
1434 omxvidee{enc,dec}: refresh input port definition after setting format
1435 Setting the input format and the associated encoder/decoder settings
1436 may also affect the nBufferCountMin of the input port.
1437 Refresh the input port so we'll use up to date values in propose/decide
1439 https://bugzilla.gnome.org/show_bug.cgi?id=796445
1441 2018-05-07 11:59:08 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1444 omx: always consider component in 'invalid' state when an error occured
1445 gst_omx_component_get_state() used to early return if there was no
1446 pending state change. So if the component raised an error it wasn't
1447 considered in the invalid state until the next requested state change.
1448 Fix this by checking first if we received an error.
1449 https://bugzilla.gnome.org/show_bug.cgi?id=795874
1451 2018-05-25 01:35:58 +1000 Matthew Waters <matthew@centricular.com>
1454 * meson_options.txt:
1455 meson: Update option names to omit 'with_omx' prefixes
1456 Companion commit to:
1457 https://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=4fb02fc85b70be631f5331b2547e5dc61ef7a43a
1458 https://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=1e1a5d658e4a031535c44823fd398d3052ca2000
1461 2018-03-21 13:52:23 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1463 * omx/gstomxvideodec.c:
1464 omxvideodec: pass a GstOMXBufferMode to gst_omx_buffer_pool_new()
1465 The output_mode is supposed to be a GstOMXBufferMode, not a boolean.
1467 2018-05-03 09:27:15 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1469 * config/zynqultrascaleplus/gstomx.conf:
1470 zynq: remove 'no-disable-outport' hack
1471 No longer needed with newer version of the OMX stack.
1473 2018-03-13 16:15:30 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1475 * omx/gstomxh264enc.c:
1476 * omx/gstomxh265enc.c:
1477 omxh26{4,5}enc: don't pick default 10-bit profile
1478 The OMX stack of the zynqultrascaleplus (the only one supporting
1479 NV12_10LE32 and NV16_10LE32) will now pick the proper profile if none
1480 has been requested. Best to rely on its default than hardcoding a
1481 specific one in gst-omx.
1482 https://bugzilla.gnome.org/show_bug.cgi?id=794319
1484 2018-03-06 14:16:56 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1486 * omx/gstomxh264utils.c:
1487 omxh264: sync with supported profiles on zynqultrascaleplus
1488 Add extra supported AVC profiles and remove extended and 4:4:4 profiles
1489 which are actually not implemented.
1490 https://bugzilla.gnome.org/show_bug.cgi?id=794177
1492 2018-03-06 10:45:14 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1494 * omx/gstomxh264enc.c:
1495 * omx/gstomxh264utils.c:
1496 * omx/gstomxh264utils.h:
1497 omxh264: factor out gst_omx_h264_utils_get_profile_from_enum()
1498 Move the profile <-> enum mapping to one place. Make changes easier as
1499 I'm about to add extra profiles.
1501 https://bugzilla.gnome.org/show_bug.cgi?id=794177
1503 2018-03-06 11:02:44 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1505 * omx/gstomxh265utils.c:
1506 omxh265: add format range extension profiles on zynqultrascaleplus
1507 The zynqultrascaleplus OMX gained support for more format range
1508 extensions profiles (A.3.5).
1509 https://bugzilla.gnome.org/show_bug.cgi?id=794177
1511 2018-03-06 10:45:14 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1513 * omx/gstomxh265enc.c:
1514 * omx/gstomxh265utils.c:
1515 * omx/gstomxh265utils.h:
1516 omxh265: factor out gst_omx_h265_utils_get_profile_from_enum()
1517 Move the profile <-> enum mapping to one place. Make changes easier as
1518 I'm about to add some profiles.
1520 https://bugzilla.gnome.org/show_bug.cgi?id=794177
1522 2018-03-08 12:22:26 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1524 * omx/gstomxvideoenc.c:
1525 omxvideoenc: add NV16 support
1526 NV16 format wasn't supported on encoder input while it was on decoder
1528 https://bugzilla.gnome.org/show_bug.cgi?id=794175
1530 2018-03-08 12:09:38 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1532 * omx/gstomxvideo.c:
1533 omxvideo: display port number when listing supported formats
1534 More convenient when debugging.
1535 https://bugzilla.gnome.org/show_bug.cgi?id=794175
1537 2018-03-29 16:42:40 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1540 * omx/gstomxvideoenc.c:
1541 * omx/gstomxvideoenc.h:
1542 omxvideoenc: restore OMX default target-bitrate if requested by user
1543 0xffffffff is the magic number in gst-omx meaning 'the default value
1544 defined in OMX'. This works fine with OMX parameters which are only set
1545 once when starting the component but not with configs which can be
1546 changed while PLAYING.
1547 Save the actual OMX default bitrate so we can restore it later if user
1548 sets back 0xffffffff on the property.
1549 Added GST_OMX_PROP_OMX_DEFAULT so we stop hardcoding magic numbers
1551 https://bugzilla.gnome.org/show_bug.cgi?id=794998
1553 2018-03-29 11:36:00 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1555 * omx/gstomxvideoenc.c:
1556 omxvideoenc: use gst_omx_video_enc_set_bitrate() when setting bitrate in set_format
1557 We weren't using the usual pattern when re-setting the bitrate:
1558 - get parameters from OMX
1559 - update only the fields different from 0xffffffff (OMX defaults)
1561 Also added a comment explaining why we re-set this param.
1562 https://bugzilla.gnome.org/show_bug.cgi?id=794998
1564 2018-03-29 11:26:04 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1566 * omx/gstomxvideoenc.c:
1567 omxvideoenc: factor out gst_omx_video_enc_set_bitrate()
1568 No semantic change, I'm about to re-use this function in set_format().
1569 https://bugzilla.gnome.org/show_bug.cgi?id=794998
1571 2018-04-20 11:54:14 +0100 Tim-Philipp Müller <tim@centricular.com>
1574 meson: fix miscellaneous meson warnings
1575 cc.has_header*() doesn't have a 'required:' kwarg.
1577 2018-04-18 12:42:55 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1579 * omx/gstomxvideodec.c:
1580 * omx/gstomxvideoenc.c:
1581 omxvideoenc/dec: fix handling of component enabling failing
1582 - Report the error from OMX if any (OMX_EventError)
1583 - If not report the failing to the application (GST_ELEMENT_ERROR)
1584 - return GST_FLOW_ERROR rather than FALSE
1586 https://bugzilla.gnome.org/show_bug.cgi?id=795352
1588 2018-04-16 10:53:41 +0100 Tim-Philipp Müller <tim@centricular.com>
1591 Automatic update of common submodule
1592 From 3fa2c9e to ed78bee
1594 2018-03-14 14:53:50 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1597 log_omx_performance: convert pointers to strings
1598 G_TYPE_POINTER are not serialized in logs.
1599 https://bugzilla.gnome.org/show_bug.cgi?id=794331
1601 2018-04-02 15:14:51 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1603 * omx/gstomxvideoenc.c:
1604 omxvideoenc: remove duplicated debug message
1605 We already have the exact same message at the beginning of
1606 gst_omx_video_enc_handle_frame(). Having it twice is confusing when
1607 reading/grepping logs.
1608 I kept the earlier one to keep the symetry with
1609 gst_omx_video_dec_handle_frame().
1610 https://bugzilla.gnome.org/show_bug.cgi?id=794897
1612 2018-02-22 11:27:03 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1614 * omx/gstomxvideoenc.c:
1615 omxvideoenc: add 'roi' qp-mode on zynqultrascaleplus
1616 New QP mode used to handle ROI metadata.
1617 https://bugzilla.gnome.org/show_bug.cgi?id=793696
1619 2018-03-20 10:31:10 +0000 Tim-Philipp Müller <tim@centricular.com>
1627 === release 1.14.0 ===
1629 2018-03-19 20:31:02 +0000 Tim-Philipp Müller <tim@centricular.com>
1639 === release 1.13.91 ===
1641 2018-03-13 19:32:39 +0000 Tim-Philipp Müller <tim@centricular.com>
1651 2018-03-09 12:02:29 +0000 Tim-Philipp Müller <tim@centricular.com>
1654 meson: fix typo in package name define
1656 2018-02-27 15:42:53 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1658 * omx/gstomxh265enc.c:
1659 * omx/gstomxh265utils.c:
1660 omxh265: update 422 profile names
1661 h265parse is gaining support for the format range extension profile
1663 Use the profile names defined in h265parse.
1664 https://bugzilla.gnome.org/show_bug.cgi?id=793928
1666 2018-03-05 13:49:18 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1668 * omx/gstomxvideoenc.c:
1669 omxvideoenc: Don't drop the frame on empty payload
1670 This otherwise may lead to "No reference frame found" warning.
1672 2018-03-01 15:16:55 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1674 * omx/gstomxvideodec.c:
1675 omxvideodec: Don't drop the frame on empty payload
1676 This otherwise may lead to "No reference frame found" warning.
1678 2018-03-02 15:36:06 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1681 omx: Free empty buffers list in use_dynamic_buffers
1682 To indicate we are doing dynamic buffers importation, we pass
1683 a list of NULL pointers, but we forgot to free that list.
1685 2018-03-01 15:16:32 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1687 * omx/gstomxvideodec.c:
1688 omxvideodec: Fix CodecState leak
1690 === release 1.13.90 ===
1692 2018-03-03 23:00:59 +0000 Tim-Philipp Müller <tim@centricular.com>
1702 2018-03-03 20:21:06 +0000 Tim-Philipp Müller <tim@centricular.com>
1704 * config/Makefile.am:
1705 config: dist tizonia config files
1707 2018-03-02 11:06:08 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1710 Revert "omx: wait for flush complete and buffers being released when flushing"
1711 This reverts commit 4211e4c29a262f110cb92ddf9c06b403ced233ef.
1713 2018-02-21 12:50:42 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1715 * omx/gstomxvideoenc.c:
1716 videoenc: don't set stride padding to 0 when copying frames
1717 Padding can be left undefined there is no point filling it with 0.
1718 https://bugzilla.gnome.org/show_bug.cgi?id=793694
1720 2018-02-16 11:50:35 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1722 * omx/gstomxbufferpool.c:
1723 * omx/gstomxh264enc.c:
1724 * omx/gstomxh265enc.c:
1725 * omx/gstomxvideo.c:
1726 * omx/gstomxvideodec.c:
1727 * omx/gstomxvideoenc.c:
1728 add support for NV12_10LE32 and NV16_10LE32 on zynqultrascaleplus
1729 The encoder and decoder on zynqultrascaleplus support these new 10 bits
1731 https://bugzilla.gnome.org/show_bug.cgi?id=793694
1733 2018-02-16 11:46:47 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1735 * omx/gstomxvideoenc.c:
1736 omxvideoenc: factor out gst_omx_video_enc_nv12_manual_copy()
1737 No semantic change, I'm going to re-use it to copy the NV12_10LE32
1739 https://bugzilla.gnome.org/show_bug.cgi?id=793694
1741 2018-01-17 10:40:49 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1743 * omx/gstomxvideoenc.c:
1744 omxvideoenc: display the computed buffer size when configuring input
1745 https://bugzilla.gnome.org/show_bug.cgi?id=793694
1747 2018-02-06 14:25:57 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1749 * omx/gstomxvideoenc.c:
1750 * omx/gstomxvideoenc.h:
1751 videoenc: implement ROI on zynqultrascaleplus
1752 Check input buffers for ROI meta and pass them to the encoder by using
1753 zynqultrascaleplus's custom OMX extension. Also add a new
1754 "default-roi-quality" in order to tell the encoder what quality level
1755 should be applied to ROI by default.
1756 https://bugzilla.gnome.org/show_bug.cgi?id=793696
1758 2018-02-14 17:23:39 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1760 * omx/gstomxvideoenc.c:
1761 omxvideoenc: remove GST_PARAM_MUTABLE_PLAYING from 'max-bitrate' property
1762 This property isn't actually mutable in the PLAYING state.
1763 https://bugzilla.gnome.org/show_bug.cgi?id=793458
1765 2018-02-14 17:20:02 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1767 * omx/gstomxvideoenc.c:
1768 * omx/gstomxvideoenc.h:
1769 omxvideoenc: protect target_bitrate with the object lock
1770 The 'target-bitrate' property can be changed while PLAYING
1771 (GST_PARAM_MUTABLE_PLAYING). Make it thread-safe to prevent concurrent
1772 accesses between the application and streaming thread.
1773 https://bugzilla.gnome.org/show_bug.cgi?id=793458
1775 2018-02-20 11:46:49 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1777 * omx/gstomxbufferpool.c:
1778 omxbufferpool: add PERFORMANCE DEBUG message when copying output frames
1779 I spent quiet some time figuring out why performance of my pipeline were
1780 terrible. Turned out it was because of output frames being copied
1781 because of stride/offset mismatch.
1782 Add a PERFORMANCE DEBUG message to make it easier to spot and debug from logs.
1783 https://bugzilla.gnome.org/show_bug.cgi?id=793637
1785 2018-02-15 19:44:37 +0000 Tim-Philipp Müller <tim@centricular.com>
1791 === release 1.13.1 ===
1793 2018-02-15 17:50:14 +0000 Tim-Philipp Müller <tim@centricular.com>
1802 2017-06-30 15:15:06 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1804 * omx/gstomxh265enc.c:
1805 omxh265enc: fix typo in "periodicty-idr" property name
1806 Also fix the 'nick' of the property.
1807 omxh265enc is based on the code from omxh264enc and suffers the same
1808 typo as we fixed in https://bugzilla.gnome.org/show_bug.cgi?id=784370
1809 This element isn't part of a stable release yet so it's not an API
1811 https://bugzilla.gnome.org/show_bug.cgi?id=793390
1813 2018-02-08 19:18:59 +0000 Tim-Philipp Müller <tim@centricular.com>
1816 meson: make version numbers ints and fix int/string comparison
1817 WARNING: Trying to compare values of different types (str, int).
1818 The result of this is undefined and will become a hard error
1819 in a future Meson release.
1820 Also remove unused libversion/soversion.
1822 2017-12-12 16:50:00 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1827 include all OMX extension headers if present
1828 The OMX specs defines 8 headers that implementations can use to define
1829 their custom extensions. We were checking and including 3 and ignoring
1831 https://bugzilla.gnome.org/show_bug.cgi?id=792043
1833 2018-01-30 10:31:03 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1837 * tools/meson.build:
1838 meson: simplify OMX extensions detection
1839 We are now always checking which files are present or not, even when using our
1840 internal copy of OMX, rather than hardcoding the ones present in it.
1841 https://bugzilla.gnome.org/show_bug.cgi?id=792043
1843 2018-01-30 11:54:24 +0000 Nicolas Dufresne <nicolas.dufresne@collabora.com>
1847 * tools/meson.build:
1848 Revert "meson: use include_directories() with external OMX headers path"
1849 This reverts commit 9d37a92a615e54e8ee12f8c65bcfe386ec9de2d0.
1851 2017-11-27 14:52:10 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1853 * omx/gstomxh265enc.c:
1854 * omx/gstomxh265enc.h:
1855 omxh265enc: add some encoding properties
1856 constrained-intra-prediction and loop-filter-mode.
1857 Those map standard OMX settings.
1858 https://bugzilla.gnome.org/show_bug.cgi?id=792528
1860 2017-11-23 15:54:15 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1862 * omx/gstomxh264enc.c:
1863 * omx/gstomxh264enc.h:
1864 omxh264enc: add some encoding properties
1865 entropy-mode, constrained-intra-prediction and loop-filter-mode.
1866 Those map standard OMX settings.
1867 https://bugzilla.gnome.org/show_bug.cgi?id=792528
1869 2017-06-08 12:31:21 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1871 * omx/gstomxvideoenc.c:
1872 * omx/gstomxvideoenc.h:
1873 omxvideoenc: add zynqultrascaleplus specific properties
1874 https://bugzilla.gnome.org/show_bug.cgi?id=792528
1876 2017-10-31 12:24:39 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1878 * omx/gstomxvideoenc.c:
1879 omxvideoenc: document unit of target-bitrate property
1880 nTargetBitrate and nEncodeBitrate are defined in bits per second in the
1882 https://bugzilla.gnome.org/show_bug.cgi?id=792528
1884 2017-07-06 10:18:48 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1886 * omx/gstomxvideodec.c:
1887 * omx/gstomxvideodec.h:
1888 omxvideodec: add internal-entropy-buffers property on zynqultrascaleplus
1889 Custom property to control the number of internal buffers used in the
1890 decoder to smooth out entropy decoding performance.
1891 https://bugzilla.gnome.org/show_bug.cgi?id=792528
1893 2018-01-30 10:31:03 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1897 * tools/meson.build:
1898 meson: use include_directories() with external OMX headers path
1899 It seems cleaner to use the proper meson tools to include this path
1900 rather than manually tweak the build flags.
1901 This also allows us to simplify the OMX extensions detection code. We
1902 are now always checking which files are present, even when using our
1903 internal copy of OMX, rather than hardcoding the ones present in it.
1904 https://bugzilla.gnome.org/show_bug.cgi?id=792043
1906 2017-11-07 15:09:35 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1908 * omx/gstomxvideoenc.c:
1909 omxvideoenc: expose chroma format and bit depth in output caps
1910 As we added in the parser (bgo#792039) expose the chroma and bit
1911 depth information in output caps.
1912 https://bugzilla.gnome.org/show_bug.cgi?id=792040
1914 2017-11-07 14:30:45 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1916 * omx/gstomxvideoenc.c:
1917 omxvideoenc: factor out get_output_caps()
1918 No semantic change so far.
1919 https://bugzilla.gnome.org/show_bug.cgi?id=792040
1921 2017-12-29 11:59:36 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1923 * config/zynqultrascaleplus/gstomx.conf:
1926 * omx/gstomxvideodec.c:
1927 omxvideodec: add hack to pass color format from caps to OMX decoder
1928 This hack tries to pass as much information as possible from caps to the
1929 decoder before it receives any buffer. These information can be used by
1930 the OMX decoder to, for example, pre-allocate its internal buffers
1931 before starting to decode and so reduce its initial latency.
1932 This mechanism is currently supported by the zynqultrascaleplus decoder.
1933 https://bugzilla.gnome.org/show_bug.cgi?id=792040
1935 2017-12-01 12:43:19 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1938 log failing OMX calls as errors
1939 I find it confusing when debugging that OMX calls returning an error
1940 where not logged as GST_LEVEL_ERROR making them harder to spot.
1941 Fix this by introducing simple log macros checking the return value of
1942 the OMX call and logging failures as errors.
1943 https://bugzilla.gnome.org/show_bug.cgi?id=791069
1945 2017-10-30 11:59:19 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1948 add OMX_PERFORMANCE debug category
1949 Can be used to log buffers exchange between OMX and gst-omx to profile
1950 performances of the OMX component.
1951 Ideally this should be done using tracer hooks but it's currently not
1952 possible to define custom hooks outside of core.
1953 Use GST_DEBUG="OMX_PERFORMANCE:8" to enable it.
1955 https://github.com/gdesmott/gst-log-parser/blob/master/src/bin/omx-perf.rs
1956 as a simple program consuming those logs to generate gnuplot files and
1958 https://bugzilla.gnome.org/show_bug.cgi?id=791093
1960 2017-07-27 11:21:59 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1964 * omx/gstomxvideoenc.c:
1965 * omx/gstomxvideoenc.h:
1966 omxvideoenc: implement dmabuf import on zynqultrascaleplus
1967 The Zynq UltraScale+ encoder implements a custom OMX extension to
1968 directly import dmabuf saving the need of mapping input buffers.
1969 This can be use with either 'v4l2src io-mode=dmabuf' or an OMX video
1971 https://bugzilla.gnome.org/show_bug.cgi?id=792361
1973 2017-09-22 16:02:40 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1975 * omx/gstomxvideoenc.c:
1976 omxvideoenc: drop late input frames if QoS is enabled
1977 Make use of the new GstVideoEncoder QoS API to drop late input frames. This may
1978 help a live pipeline to catch up if it's being late and all frames end up
1979 being dropped at the sink.
1980 https://bugzilla.gnome.org/show_bug.cgi?id=792783
1982 2018-01-19 15:18:23 +0530 Ashish Kumar <kr.ashish@samsung.com>
1984 * examples/egl/testegl.c:
1985 TestEgl: Removed redundant/unused code
1986 https://bugzilla.gnome.org/show_bug.cgi?id=788550
1988 2018-01-03 16:07:18 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
1990 * omx/gstomxvideoenc.c:
1991 omxvideoenc: early return in fill_buffer() if something goes wrong
1992 If something goes wrong while trying to manually copy the input buffer,
1993 the 'break' was moving us out of the 'for' loop but not out of the switch block.
1994 So we ended up calling gst_video_frame_unmap() a second time (raising
1995 assertions) and returning TRUE rather than FALSE.
1996 Reproduced with a WIP zynqultrascaleplus OMX branch reporting wrong
1997 buffer sizes and so triggering this bug.
1998 https://bugzilla.gnome.org/show_bug.cgi?id=792167
2000 2017-12-19 16:09:41 +0000 Tim-Philipp Müller <tim@centricular.com>
2003 meson: gl: the winsys and platform list in the .pc file is space-separated
2005 2017-12-19 16:08:58 +0000 Tim-Philipp Müller <tim@centricular.com>
2008 meson: fix subproject fallback for gstreamer-gl-1.0
2011 2017-12-12 17:30:27 +0000 Julien Isorce <jisorce@oblong.com>
2013 * omx/gstomxvideo.c:
2014 * omx/gstomxvideo.h:
2015 * omx/gstomxvideodec.c:
2016 omxvideodec: ignore very little variations of the framerate
2018 The dynamic format change should not happen when the
2019 resolution does not change and when only the framerate
2020 changes but very slightly, i.e. from 50000/1677=29.81
2021 to 89/3=29.66 so a "percentage change" of less than 1%
2022 (i.e. 100*(29.81-29.66)/29.66 = 0.50 < 1 ). In that case
2023 just ignore it to avoid unnecessary renegotiation.
2024 https://bugzilla.gnome.org/show_bug.cgi?id=759043
2026 2017-08-09 12:07:33 -0400 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2028 * omx/gstomxvideodec.c:
2029 * omx/gstomxvideodec.h:
2030 omxvideodec: use dynamic buffer mode on input if possible
2031 Prevent from copying the input buffers between GStreamer and OMX.
2032 Tested on zynqultrascaleplus and rpi (without dynamic buffers).
2033 https://bugzilla.gnome.org/show_bug.cgi?id=787093
2035 2017-07-20 16:35:31 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2037 * omx/gstomxvideoenc.c:
2038 * omx/gstomxvideoenc.h:
2039 omxvideoenc: use dynamic buffer mode on input if possible
2040 If the OMX component supports dynamic buffer mode and the input buffers
2041 are properly aligned avoid copying each input frame between OMX and
2043 Tested on zynqultrascaleplus and rpi (without dynamic buffers).
2044 https://bugzilla.gnome.org/show_bug.cgi?id=787093
2046 2017-07-20 12:56:37 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2048 * omx/gstomxvideodec.c:
2049 * omx/gstomxvideoenc.c:
2050 omxvideoenc/dec: factor out input buffer allocation
2051 No semantic change so far. I'm going to add an alternate way to allocate
2053 https://bugzilla.gnome.org/show_bug.cgi?id=787093
2055 2017-07-20 16:31:54 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2059 omx: add API to implement dynamic buffers support
2060 OMX 1.2.0 introduced a third way to manage buffers by allowing
2061 components to only allocate buffers header during their initialization
2062 and change their pBuffer pointer at runtime.
2063 This new feature can save us a copy between GStreamer and OMX for each
2065 This patch adds API to allocate and use such buffers.
2066 https://bugzilla.gnome.org/show_bug.cgi?id=787093
2068 2017-12-14 14:53:17 +1100 Matthew Waters <matthew@centricular.com>
2071 Automatic update of common submodule
2072 From e8c7a71 to 3fa2c9e
2074 2017-12-13 12:06:40 +0000 Julien Isorce <jisorce@oblong.com>
2076 * omx/gstomxvideodec.c:
2077 omxvideodec: consolidate the decision to try UseBuffer
2078 The tee element can call gst_query_add_allocation_pool with pool as NULL.
2079 Checking nth > 0 is not enough so we need to verify if there is a pool.
2080 https://bugzilla.gnome.org/show_bug.cgi?id=730758
2081 https://bugzilla.gnome.org/show_bug.cgi?id=784069
2083 2017-12-12 14:45:30 +0000 Julien Isorce <jisorce@oblong.com>
2085 * omx/gstomxvideo.c:
2086 * omx/gstomxvideo.h:
2087 * omx/gstomxvideodec.c:
2088 * omx/gstomxvideoenc.c:
2089 gstomxvideodec: fix framerate overflow
2090 Some live streams can set the framerate to 50000/1677 (=29.81).
2091 GstVideoInfo.fps_n << 16 is wrong if the fps_n is 50000
2092 (i.e. greater than 32767).
2093 https://bugzilla.gnome.org/show_bug.cgi?id=759043
2095 2017-08-22 13:48:26 +0100 Julien Isorce <jisorce@oblong.com>
2098 * examples/egl/Makefile.am:
2099 * examples/egl/meson.build:
2100 * examples/egl/testegl.c:
2102 example: port testegl.c to desktop
2103 Will be easier to maintain.
2104 Also uniformize autotool build with meson build which is
2105 already retrieving the gl libs.
2106 https://bugzilla.gnome.org/show_bug.cgi?id=781606
2108 2017-12-11 15:55:44 +0000 Julien Isorce <jisorce@oblong.com>
2111 meson: move omx features check after target selection
2112 And uses gst_omx_args instead of add_global_arguments.
2113 Similar to c69232852120d064c689caef07b3c68ad8fe6288
2114 which was only for configure.ac
2115 Useful to get omxvp8dec with meson too:
2116 meson . buildtmp -D with_omx_target=tizonia
2117 https://bugzilla.gnome.org/show_bug.cgi?id=782800
2119 2017-12-04 17:11:04 +0000 Julien Isorce <jisorce@oblong.com>
2121 * config/tizonia/gstomx.conf.in:
2122 config: add OMX.Aratelia.audio_decoder.aac to Tizonia config
2123 Useful mostly for testing/debugging purpose as this is a software
2124 based decoder (libfaad) for which GStreamer provides a direct
2126 https://bugzilla.gnome.org/show_bug.cgi?id=791482
2128 2017-11-29 14:18:41 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2130 * omx/gstomxvideodec.c:
2131 omxvideodec: retrieve OMX_IndexParamVideoPortFormat before setting it
2132 The usual pattern when setting OMX params is to first get the struct
2133 param, override the values we want to set and then set the updated
2135 We were not doing this with OMX_IndexParamVideoPortFormat and so were
2136 resetting some fields such as OMX_VIDEO_PARAM_PORTFORMATTYPE.xFramerate
2137 https://bugzilla.gnome.org/show_bug.cgi?id=790979
2139 2017-05-21 17:34:51 +0100 Julien Isorce <jisorce@oblong.com>
2141 * omx/gstomxaacenc.c:
2142 omxaacenc: also set 'profile' if mpegversion is 4
2143 Like done by gst_codec_utils_aac_caps_set_level_and_profile
2144 which is called by avenc_aac, ffaac and voaacenc.
2145 https://bugzilla.gnome.org/show_bug.cgi?id=735208
2147 2017-10-24 12:19:50 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2150 omx: wait for flush complete and buffers being released when flushing
2151 As stated in the existing comment, when flusing we should wait for OMX
2152 to send the flush command complete event AND all ports being released.
2153 We were stopping as soon as one of those condition was met.
2154 Fix a race between FillThisBufferDone/EmptyBufferDone and the flush
2155 EventCmdComplete messages. The OMX implementation is supposed to release
2156 its buffers before posting the EventCmdComplete event but the ordering
2157 isn't guaranteed as the FillThisBufferDone/EmptyBufferDone and
2158 EventHandler callbacks can be called from different threads (cf 2.7
2159 'Thread Safety' in the spec).
2160 https://bugzilla.gnome.org/show_bug.cgi?id=789475
2162 2017-10-24 11:45:20 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2165 gst_omx_port_set_flushing: simplify waiting loop
2166 No semantic change so far, I just made the 'while' end condition easier
2167 to understand as a first step before changing it.
2168 - move error/time out checks inside the loop to make it clearer on what
2169 we are actually waiting for.
2170 - group port->buffers checks together with parenthesis as they are part
2171 of the same conceptual check: waiting for all buffers to be released.
2172 https://bugzilla.gnome.org/show_bug.cgi?id=789475
2174 2017-11-27 20:17:17 +1100 Matthew Waters <matthew@centricular.com>
2177 Automatic update of common submodule
2178 From 3f4aa96 to e8c7a71
2180 2017-11-23 15:03:48 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2182 * omx/gstomxh264enc.c:
2183 * omx/gstomxh264utils.c:
2184 zynqultrascaleplus: add support for extra AVC levels
2185 The Zynqultrascaleplus has support for extra AVC levels not defined in
2186 the OMX spec as a customer extension.
2187 https://bugzilla.gnome.org/show_bug.cgi?id=790758
2189 2017-10-16 14:47:07 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2193 * config/meson.build:
2196 * tests/Makefile.am:
2197 * tests/check/.gitignore:
2198 * tests/check/Makefile.am:
2199 * tests/check/generic/.gitignore:
2200 * tests/check/generic/states.c:
2201 * tests/check/meson.build:
2202 * tests/meson.build:
2204 Most of the boilerplate and the states test has been copied from
2206 https://bugzilla.gnome.org/show_bug.cgi?id=789094
2208 2017-10-17 13:07:05 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2211 * tools/meson.build:
2212 meson: add tools support
2213 Looks like the tools directory was left out during the initial port to
2215 https://bugzilla.gnome.org/show_bug.cgi?id=789090
2217 2017-10-16 14:24:50 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2220 omx: fix build on rpi
2221 The nTimeStamp field is a OMX_TICKS struct on the rpi so use the proper
2223 Fix build on the build which has been broken by
2224 b3173144b7c1b12c9e1b7571f78659be45d813f6
2225 https://bugzilla.gnome.org/show_bug.cgi?id=789052
2227 2017-10-17 12:11:04 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2231 check if Allegro headers are present when building zynqultrascaleplus
2232 The Zynq UltraScale+ uses a custom version of OMX implementing several
2233 3rd party extensions. Make sure those are present when building this
2235 https://bugzilla.gnome.org/show_bug.cgi?id=788064
2237 2017-10-16 12:42:44 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2239 * omx/gstomxvideodec.c:
2240 omxvideodec: remove redundant debug message
2241 We have already a debug message right after.
2242 https://bugzilla.gnome.org/show_bug.cgi?id=789058
2244 2017-10-16 13:26:38 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2246 * omx/gstomxh265enc.c:
2247 * omx/gstomxh265utils.c:
2248 omxh265: fix enum casting when using Allegro HEVC extensions
2249 Allegro's HEVC implementation defines a superset of the profiles and
2250 enums from the Android implementation.
2251 Properly cast to fix -Wenum-conversion warnings from clang.
2252 https://bugzilla.gnome.org/show_bug.cgi?id=789057
2254 2017-10-16 13:08:12 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2256 * omx/gstomxh265enc.c:
2257 * omx/gstomxvp8dec.c:
2258 properly cast extension enums
2259 OMX's allow 3rds party to define extensions using their own enums
2260 (like OMX_VIDEO_CODINGEXTTYPE) and to be used as the general
2261 ones (like OMX_VIDEO_CODINGTYPE).
2262 Properly cast those to fix -Wenum-conversion warnings from some
2263 compilers such as clang.
2264 https://bugzilla.gnome.org/show_bug.cgi?id=789057
2266 2017-10-09 13:12:35 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2269 omx: also reset nTimeStamp when re-using buffers
2270 Some OMX implementations may check if the timestamp of the output buffers
2271 they receive is actually not set.
2272 https://bugzilla.gnome.org/show_bug.cgi?id=788711
2274 2017-10-04 17:11:55 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2277 omx: factor out gst_omx_buffer_reset()
2278 https://bugzilla.gnome.org/show_bug.cgi?id=788711
2280 2017-10-09 17:27:22 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2284 * omx/gstomxvideodec.c:
2285 * omx/gstomxvideoenc.c:
2286 add gst_omx_buffer_flags_to_string()
2287 Make debug logs more readable so users don't have to manually figure out
2288 the meaning of flags.
2289 https://bugzilla.gnome.org/show_bug.cgi?id=788767
2291 2017-09-27 19:47:29 +0530 Ponnam Srinivas <p.srinivas@samsung.com>
2293 * omx/gstomxh263enc.c:
2294 h263enc: fix caps leak in error code path
2295 https://bugzilla.gnome.org/show_bug.cgi?id=788245
2297 2017-09-21 15:21:36 +0530 Ponnam Srinivas <p.srinivas@samsung.com>
2299 * omx/gstomxh264enc.c:
2300 omxh264enc: fix caps leak
2301 https://bugzilla.gnome.org/show_bug.cgi?id=787711
2303 2017-09-21 11:36:46 +0530 Ponnam Srinivas <p.srinivas@samsung.com>
2305 * omx/gstomxh265enc.c:
2306 omxh265enc: fix caps leak
2307 https://bugzilla.gnome.org/show_bug.cgi?id=787714
2309 2017-09-13 15:32:51 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2311 * omx/gstomxvideodec.c:
2312 omxvideodec: log info about frame before releasing it
2313 gst_video_decoder_release_frame() takes ownership of the frame and will
2314 destroy it. So we should no longer use it after calling it.
2315 https://bugzilla.gnome.org/show_bug.cgi?id=787628
2317 2017-08-20 20:19:33 +0530 Gurkirpal Singh <gurkirpal204@gmail.com>
2320 configure: Show tizonia target in help
2321 https://bugzilla.gnome.org/show_bug.cgi?id=786544
2323 2017-07-12 14:35:10 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2325 * config/zynqultrascaleplus/gstomx.conf:
2328 * omx/gstomxh265dec.c:
2329 * omx/gstomxh265dec.h:
2331 omxh265dec: add H265 decoder
2332 Add HEVC decoder for the zynqultrascaleplus platform.
2333 I used the H264 decoder code as a template.
2334 https://bugzilla.gnome.org/show_bug.cgi?id=785434
2336 2017-07-12 11:01:15 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2338 * config/zynqultrascaleplus/gstomx.conf:
2343 * omx/gstomxh265enc.c:
2344 * omx/gstomxh265enc.h:
2345 * omx/gstomxh265utils.c:
2346 * omx/gstomxh265utils.h:
2348 omxh265enc: add H265 encoder
2349 The OMX spec doesn't support HEVC but the OMX stack of the
2350 zynqultrascaleplus adds it as a custom extension.
2351 It uses the same API as the one of Android's OMX stack.
2352 I used the H264 encoder code as a template.
2353 https://bugzilla.gnome.org/show_bug.cgi?id=785434
2355 2017-08-28 13:56:22 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2357 * omx/gstomxvideoenc.c:
2358 omxvideoenc: use caps from query in propose_allocation
2359 Prevent crash by not deferencing a NULL pointer if self->input_state
2360 isn't defined when propose_allocation() is called.
2361 https://bugzilla.gnome.org/show_bug.cgi?id=786442
2363 2017-09-04 09:34:03 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2366 omx: display states as string if changing failed
2367 Improve the error message by displaying the states in their string
2368 representation rather than their numerical value.
2369 https://bugzilla.gnome.org/show_bug.cgi?id=787235
2371 2017-08-22 10:22:45 +0100 Julien Isorce <jisorce@oblong.com>
2373 * omx/gstomxvideodec.c:
2374 omxvideodec: EGLDisplay is not indirectly defined by gstgl headers inclusion
2375 Just use gpointer as done in GstGL to not include
2376 EGL/egl.h just for EGLDisplay.
2377 https://bugzilla.gnome.org/show_bug.cgi?id=784779
2379 2017-07-14 16:34:04 +0530 Gurkirpal Singh <gurkirpal204@gmail.com>
2381 * config/tizonia/gstomx.conf.in:
2382 config: expose OMX.mesa h264 decoder and encoder in Tizonia config
2383 https://bugzilla.gnome.org/show_bug.cgi?id=783976
2385 2017-08-11 07:48:37 -0700 Julien Isorce <jisorce@oblong.com>
2387 * omx/gstomxvideodec.c:
2388 omxvideodec: remove wrong SettingsChanged ack
2389 Partially revert 1b7d0b8:
2390 omxvideodec: handle IL 1.2 behavior for OMX_SetParameter
2391 It turned out it was a problem in the decoder which was
2392 not updating some local variables upon SetParameter.
2393 https://bugzilla.gnome.org/show_bug.cgi?id=783976
2395 2017-07-20 09:43:19 +0100 Julien Isorce <jisorce@oblong.com>
2397 * omx/gstomxaudiodec.c:
2398 * omx/gstomxaudioenc.c:
2399 * omx/gstomxvideodec.c:
2400 * omx/gstomxvideoenc.c:
2401 omx{audio,video}{dec,enc}: sequentially disable ports because buffers are not shared
2402 For the history, the parallel disable port has been introduced by:
2403 "00be69f omxvideodec: Disable output port when setting a new format"
2404 and then replicated to videoenc, audiodec and audioenc.
2405 This is only required to do 'parallel' if buffers are shared between ports.
2406 But for decoders and encoders the input and output buffer are of different
2407 nature by definition (bitstream vs images). So they cannot be shared.
2408 Also starting from IL 1.2.0 it is written in the spec that the parallel
2409 disable is not allowed and will return an error. Except when buffers are
2411 Again here we know in advance that they are not shared so let's always
2412 do a sequential disable.
2413 Tested on Desktop, rpi and zynqultrascaleplus.
2414 https://bugzilla.gnome.org/show_bug.cgi?id=786348
2416 2017-08-17 12:26:05 +0100 Tim-Philipp Müller <tim@centricular.com>
2419 Automatic update of common submodule
2420 From 48a5d85 to 3f4aa96
2422 2017-08-10 12:16:53 -0400 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2424 * omx/gstomxvideodec.c:
2425 omxvideodec: use the decoder API to set latency
2426 https://bugzilla.gnome.org/show_bug.cgi?id=785125
2428 2017-07-06 14:19:19 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2430 * omx/gstomxvideodec.c:
2431 * omx/gstomxvideoenc.c:
2432 omxvideoenc/dec: declare latency on zynqultrascaleplus
2433 The OMX specification doesn't provide any API to expose the latency
2434 introduced by encoders and decoders. We implemented this as a custom
2435 extension as declaring the latency is needed for live pipelines like
2437 https://bugzilla.gnome.org/show_bug.cgi?id=785125
2439 2017-08-07 13:16:01 -0400 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2441 * omx/gstomxvideoenc.c:
2442 omxvideoenc: adjust stride and slice height from input
2443 Use the stride and slice height information from the first buffer meta
2444 data to adjust the settings of the input port.
2445 This will ensure that the OMX input buffers match the GStreamer ones
2446 and so will save us from having to copy line-by-line each one.
2447 This is also the first step to allow the OMX encoder to receive dmabuf.
2448 Tested on rpi and zynqultrascaleplus.
2449 https://bugzilla.gnome.org/show_bug.cgi?id=785967
2451 2017-08-07 11:45:29 -0400 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2453 * omx/gstomxvideoenc.c:
2454 omxvideoenc: delay buffer configuration until component is enabled
2455 No significant change for now. Just delay the input port configuration
2456 of the buffer size related fields (stride, slice height, buffer size)
2457 until the component is activated.
2458 This will allow us to use the actual stride/height of the first input
2459 and so avoid the buffer copying code path in most cases.
2460 Tested on rpi and zynqultrascaleplus.
2461 https://bugzilla.gnome.org/show_bug.cgi?id=785967
2463 2017-07-24 13:52:35 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2465 * omx/gstomxvideodec.c:
2466 * omx/gstomxvideoenc.c:
2467 omxvideodec/enc: delay allocation after the allocation query
2468 Allocating OMX components buffers in set_format() is too early.
2469 Doing it when receiving the first buffers will allow the element to use
2470 the information from the allocation query and/or the first incoming
2471 buffer to pick to best allocation mode.
2472 Tested on raspberry pi with dynamic resolution changes on decoder and
2474 https://bugzilla.gnome.org/show_bug.cgi?id=785967
2476 2017-07-25 14:27:45 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2478 * omx/gstomxvideoenc.c:
2479 omxvideoenc: start src thread in handle_frame()
2480 Makes the code simpler as we no longer need to restart the thread in
2481 gst_omx_video_enc_flush() and It's more symetric which the omxvideodec
2483 I'm also going to move the enabling of the OMX component in
2484 handle_frame() and the src pad thread needs to be started after it.
2485 https://bugzilla.gnome.org/show_bug.cgi?id=785967
2487 2017-07-25 14:07:30 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2489 * omx/gstomxvideodec.c:
2490 omxvideodec: earlier return if downstream_flow_ret is not OK
2491 There is no point to (re)start the src thread if, for example, we are
2493 https://bugzilla.gnome.org/show_bug.cgi?id=785967
2495 2017-07-24 12:31:37 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2497 * omx/gstomxvideodec.c:
2498 * omx/gstomxvideodec.h:
2499 omxvideodec: factor out enable and disable code
2500 No semantic change, just factor out the code enabling and disabling the
2501 component to their own functions.
2502 Makes the code easier to read as the set_format() method was already
2503 pretty big. Will also allow us to easily change the enabling logic.
2504 https://bugzilla.gnome.org/show_bug.cgi?id=785967
2506 2017-07-24 12:31:37 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2508 * omx/gstomxvideoenc.c:
2509 * omx/gstomxvideoenc.h:
2510 omxvideoenc: factor out enable and disable code
2511 No semantic change, just factor out the code enabling and disabling the
2512 component to their own functions.
2513 Makes the code easier to read as the set_format() method was already
2514 pretty big. Will also allow us to easily change the enabling logic.
2515 https://bugzilla.gnome.org/show_bug.cgi?id=785967
2517 2017-07-27 12:12:01 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2520 omx: also reset nFilledLen before calling OMX_FillThisBuffer()
2521 The spec states that the buffer passed to OMX_FillThisBuffer() needs to be
2522 empty. Some implementation may check it actually is by checking its
2523 nFilledLen field, so best to reset it as well.
2524 https://bugzilla.gnome.org/show_bug.cgi?id=785623
2526 2017-07-17 21:06:47 +0100 Julien Isorce <jisorce@oblong.com>
2528 * omx/gstomxvideodec.c:
2529 * omx/gstomxvideodec.h:
2530 omxvideodec: make generic the OMX_UseEGLImage code path
2531 Will be easier to maintain and to make enhancements.
2532 Tested with Tizonia on Desktop.
2533 Also tested with Bellagio to make sure it does not crash when
2534 calling OMX_UseEGLImage and indeed it returns NotImplemented.
2535 Then gst-omx fallback to OMX_UseBuffer if it can and so on.
2536 Also tested on rpi to make sure there is no regression.
2537 https://bugzilla.gnome.org/show_bug.cgi?id=784365
2539 2017-07-21 11:52:00 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
2541 * omx/gstomxvideodec.c:
2542 omxvideodec: Fix segment seek
2543 On segment seek, unlike EOS, we drain, but we cannot expect a flush
2544 later to reset the decoder state. As a side effect, the decoder would
2545 remain in EOS state and ignore any new incoming buffers.
2546 To fix this, we call _flush() inside the _drain() function, and
2547 _finish() becomes what _drain() was before. This way, for _finish() (the
2548 eos case) we only drain, for _drain() triggered by segment seek or new
2549 caps, we also reset the decoder state so it's ready to accept buffers.
2550 https://bugzilla.gnome.org/show_bug.cgi?id=785237
2552 2017-07-10 15:00:58 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2554 * omx/gstomxvideoenc.c:
2555 omxvideoenc: ensure enough buffers are allocated in the pool
2556 Handle allocation query and ensure enough buffers are allocated in
2557 the negotiated pool. This help preventing buffer starvation in the pipeline.
2558 https://bugzilla.gnome.org/show_bug.cgi?id=785122
2560 2017-07-04 12:16:39 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2565 * omx/gstomxbufferpool.c:
2566 * omx/gstomxbufferpool.h:
2567 * omx/gstomxvideodec.c:
2568 * omx/gstomxvideodec.h:
2570 omxvideodec: add dmabuf support for output
2571 The zynqultrascaleplus OMX implementation has a custom extension
2572 allowing decoders to output dmabuf and so avoid buffers copy between OMX
2574 Make use of this extension when built on the zynqultrascaleplus. The
2575 buffer pool code should be re-usable for other platforms as well.
2576 https://bugzilla.gnome.org/show_bug.cgi?id=784847
2578 2017-06-20 00:13:33 +0100 Julien Isorce <jisorce@oblong.com>
2580 * config/tizonia/gstomx.conf.in:
2581 config: add OMX.Aratelia.video_decoder.vp8 to Tizonia config
2582 Useful mostly for testing/debugging purpose as this is a software
2583 based encoder (libvpxdec) for which GStreamer provides a direct
2585 https://bugzilla.gnome.org/show_bug.cgi?id=783976
2587 2017-06-19 23:56:02 +0100 Julien Isorce <jisorce@oblong.com>
2589 * omx/gstomxvideodec.c:
2590 omxvideodec: handle IL 1.2 behavior for OMX_SetParameter
2591 It triggers SettingsChanged on the other port and it is up to
2592 the client to decide if it should lead to a port reconfiguration.
2593 Settings are propagated to the other port for fields they have
2594 in common. But this event is only triggered on the other port
2595 if it actually change a setting.
2596 https://bugzilla.gnome.org/show_bug.cgi?id=783976
2598 2017-07-18 23:41:17 +0100 Julien Isorce <jisorce@oblong.com>
2600 * config/tizonia/gstomx.conf.in:
2601 config: set rank to 0 for Tizonia's mp3 decoder
2602 Should have been 0 from the initial commit
2603 eed49b4231a063639f90279c8044404c2149902a
2605 2017-07-17 21:03:55 +0100 Julien Isorce <jisorce@oblong.com>
2607 * omx/gstomxvideodec.c:
2608 omxvideodec: fix file permissions
2609 Introduced by ebc9b4903cbdac2793c24b05a1bb7acc3b67fae5
2611 2017-06-29 23:17:26 +0100 Julien Isorce <jisorce@oblong.com>
2613 * omx/gstomxvideodec.c:
2614 omxvideodec: fix buffer leak when eglimage setup fails
2615 Can happen if gst_buffer_pool_acquire_buffer succeeds but
2616 gst_buffer_n_memory (buffer) is not exactly 1.
2617 In theory this should not happen because the decoder requests
2618 EGLImage(RGBA) but better to fix any leak on corner cases.
2619 https://bugzilla.gnome.org/show_bug.cgi?id=784365
2621 2017-07-17 18:36:36 +0530 Satya Prakash Gupta <sp.gupta@samsung.com>
2624 omx: Possible Memory leak in gst_caps_from_string
2625 https://bugzilla.gnome.org/show_bug.cgi?id=784978
2627 2017-07-17 15:48:44 +0530 Satya Prakash Gupta <sp.gupta@samsung.com>
2629 * omx/gstomxvideoenc.c:
2630 omxvideoenc: Fix deadlock in error case when draining
2631 https://bugzilla.gnome.org/show_bug.cgi?id=784972
2633 2017-07-17 13:44:54 +0530 Satya Prakash Gupta <sp.gupta@samsung.com>
2635 * omx/gstomxaudioenc.c:
2636 omxaudioenc: Fix deadlock in error case when draining
2637 https://bugzilla.gnome.org/show_bug.cgi?id=784967
2639 2017-06-02 12:36:30 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2644 build: include OMX_IndexExt and OMX_ComponentExt if present
2645 These files may be used by OMX implementation to define custom extensions.
2646 Include them if present as we are already doing with OMX_VideoExt.h
2647 https://bugzilla.gnome.org/show_bug.cgi?id=784847
2649 2017-07-13 16:40:26 +1000 Jan Schmidt <jan@centricular.com>
2651 * omx/gstomxh264enc.c:
2652 omxh264enc: Re-add periodicty-idr property for backward compat
2653 Retain backwards compatibility by adding a duplicate
2654 property for periodicty-idr
2655 https://bugzilla.gnome.org/show_bug.cgi?id=784370
2657 2017-06-30 15:15:06 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2659 * omx/gstomxh264enc.c:
2660 omxh264enc: fix typo in "periodicty-idr" property name
2661 Also fix the 'nick' of the property.
2662 https://bugzilla.gnome.org/show_bug.cgi?id=784370
2664 2017-06-29 22:48:47 +0100 Julien Isorce <jisorce@oblong.com>
2666 * omx/gstomxvideodec.c:
2667 * omx/gstomxvideodec.h:
2668 omxvideodec: use OMX_UseBuffer
2669 For example this allows the omx decoder to directly fill the
2670 pixmaps coming from the video sink.
2671 It only avoids a buffer copy when the decoder uses a pool provided
2672 by a downstream element. So let's restrict this usage to situations
2673 where the decoder decides to use a downstream buffer pool.
2674 Tested with Tizonia/OMX.Aratelia.video_decoder.vp8
2675 and with Bellagio/OMX.mesa.video_decoder.avc.
2676 If it fails to setup buffers with OMX_UseBuffer the decoders
2677 fallbacks to usual OMX_AllocateBuffer.
2678 Also it allows to test on desktop the GstOMXBufferPool->other_pool
2679 management which was previously only used in the OMX_UseEGLImage
2681 https://bugzilla.gnome.org/show_bug.cgi?id=784069
2683 2017-07-12 10:29:16 +0100 Julien Isorce <jisorce@oblong.com>
2686 omx: do not always print an error if OMX_{UseBuffer,EGLImage} fails
2687 Let the caller decide to print an error. Because it can be part of
2688 a normal trial path.
2689 https://bugzilla.gnome.org/show_bug.cgi?id=784069
2691 2017-07-12 16:00:53 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2694 meson: add gstomxmp3enc
2695 Commit 02d493e85921596f7cac7ef4af02fde500e9a5d8 didn't add
2696 gstomxmp3enc.c to meson.
2697 https://bugzilla.gnome.org/show_bug.cgi?id=784848
2699 2017-05-23 10:32:58 +0100 Julien Isorce <jisorce@oblong.com>
2701 * config/tizonia/gstomx.conf.in:
2702 config: add OMX.Aratelia.audio_encoder.mp3 to Tizonia config
2703 Useful mostly for testing/debugging purpose as this is a software
2704 based encoder (libmp3lame) for which GStreamer provides a direct
2706 https://bugzilla.gnome.org/show_bug.cgi?id=782988
2708 2017-05-23 10:32:06 +0100 Julien Isorce <jisorce@oblong.com>
2712 * omx/gstomxmp3enc.c:
2713 * omx/gstomxmp3enc.h:
2714 omx: add gstomxmp3enc
2715 Initial support and only tested with the software based
2716 encoder OMX.Aratelia.audio_encoder.mp3 from Tizonia which
2717 internally uses libmp3lame.
2718 https://bugzilla.gnome.org/show_bug.cgi?id=782988
2720 2017-03-28 16:27:10 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2722 * config/zynqultrascaleplus/gstomx.conf:
2725 * omx/gstomxh264dec.c:
2726 h264dec: add hack to pass profile and level to OMX
2727 This information can be useful to zynqultrascaleplus decoders. They may
2728 use this information to reduce startup latency by configuring itself
2729 before receiving the first frames.
2730 We also have a custom OMX extension allowing the decoder to report the
2731 latency. The profile/level information helps it reporting a more
2732 accurate latency earlier.
2733 https://bugzilla.gnome.org/show_bug.cgi?id=783114
2735 2017-07-03 13:17:11 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2738 * omx/gstomxh264enc.c:
2739 * omx/gstomxh264utils.c:
2740 * omx/gstomxh264utils.h:
2742 omxh264enc: move profile and level parsing functions to their own files
2743 Will allow to re-use them in the decoder element.
2744 https://bugzilla.gnome.org/show_bug.cgi?id=783114
2746 2017-07-04 03:15:00 +0530 Gurkirpal Singh <gurkirpal204@gmail.com>
2748 * config/meson.build:
2749 * config/tizonia/meson.build:
2751 * meson_options.txt:
2752 meson: Add tizonia option
2753 https://bugzilla.gnome.org/show_bug.cgi?id=782800
2755 2017-04-29 02:56:59 +0530 Gurkirpal Singh <gurkirpal204@gmail.com>
2758 * config/tizonia/Makefile.am:
2759 * config/tizonia/gstomx.conf.in:
2760 * config/tizonia/meson.build:
2762 config: add omxmp3dec config for tizonia
2763 GST_OMX_CONFIG_DIR=$HOME/gst/master/gst-omx/config/tizonia/ \
2764 gst-launch-1.0 filesrc location=mpthreetest.mp3 ! id3demux ! \
2765 mpegaudioparse ! omxmp3dec ! audioconvert ! pulsesink
2766 v2: [Nicolas] Use template to create gstomx.conf using pkg-config
2767 v3: [Nicolas] Ignore only config/tizonia/gstomx.conf
2768 v4: [Nicolas] Add "/" for single occurence
2769 https://bugzilla.gnome.org/show_bug.cgi?id=782800
2771 2017-05-07 20:09:54 +0530 Gurkirpal Singh <gurkirpal204@gmail.com>
2774 omx: always ignore OMX_ErrorPortUnpopulated
2775 It is safe to ignore it always. Tizonia notifies this error to pass
2776 some khronos conformance tests. Problem is that gst-omx saves this
2777 error in comp->last_error and then gst_omx_port_set_enabled early
2778 error out which fails the pipeline.
2779 https://bugzilla.gnome.org/show_bug.cgi?id=782800
2781 2017-04-29 02:53:26 +0530 Gurkirpal Singh <gurkirpal204@gmail.com>
2785 omx: guard some omx enums with IL version
2786 Some enums that existed in 1.1.2 just do not exit in 1.2.0
2787 See https://www.khronos.org/registry/OpenMAX-IL/specs/OpenMAX_IL_1_2_0_Specification_redline.pdf
2788 https://bugzilla.gnome.org/show_bug.cgi?id=782800
2790 2017-04-29 01:56:01 +0530 Gurkirpal Singh <gurkirpal204@gmail.com>
2793 configure.ac: add tizonia target for --with-omx-target flag.
2794 This will check for tizilheaders.pc which adds path to omx-il
2795 headers its cflags. Can be installed all together with the 1.2 headers
2796 with package tizilheaders if not building from sources:
2797 https://github.com/tizonia/tizonia-openmax-il
2798 It is also adviced to remove libomxil-bellagio-dev package because
2799 it installs headers /usr/include directly, ex: /usr/include/OMX_Video.h.
2800 https://bugzilla.gnome.org/show_bug.cgi?id=782800
2802 2017-07-05 10:47:41 +0100 Julien Isorce <jisorce@oblong.com>
2804 * omx/gstomxaudioenc.c:
2805 omxaudioenc: update local port_def after reopening the component
2806 gst_omx_audio_enc_open will only update GstOMXAudioEnc->port->port_def.
2807 Note that the component is reopen only if the flag
2808 GST_OMX_HACK_NO_COMPONENT_RECONFIGURE is set.
2809 https://bugzilla.gnome.org/show_bug.cgi?id=782418
2811 2017-07-05 10:48:52 +0100 Julien Isorce <jisorce@oblong.com>
2813 * omx/gstomxvideoenc.c:
2814 omxvideoenc: update local port_def after reopening the component
2815 gst_omx_video_enc_open will only update GstOMXVideoEnc->port->port_def.
2816 Note that the component is reopen only if the flag
2817 GST_OMX_HACK_NO_COMPONENT_RECONFIGURE is set.
2818 https://bugzilla.gnome.org/show_bug.cgi?id=782418
2820 2017-05-10 12:38:39 +0900 Sejun Park <sejun79.park@samsung.com>
2822 * omx/gstomxvideodec.c:
2823 omxvideodec: update local port_def after reopening the component
2824 gst_omx_video_dec_open will only update GstOMXVideoDec->port->port_def.
2825 Note that the component is reopen only if the flag
2826 GST_OMX_HACK_NO_COMPONENT_RECONFIGURE is set.
2827 https://bugzilla.gnome.org/show_bug.cgi?id=782418
2829 2017-07-03 16:33:06 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2831 * omx/gstomxvideodec.c:
2832 omxvideodec: increase the minimum number of allocated buffers
2833 Ensure that enough buffers are allocated by adding up component's own
2834 minimal plus the number of buffers requested by downstream.
2835 This should prevent buffers starvation problem if downstream elements
2836 are holding some of the buffers they required.
2837 Also simplify the check on the maximum on buffers. What we actually care
2838 about is to make sure the pool can hold the minimum of required buffers.
2839 https://bugzilla.gnome.org/show_bug.cgi?id=784479
2841 2017-07-03 10:54:50 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2843 * omx/gstomxh264enc.c:
2844 omxh264enc: raise a warning if AVCIntraPeriod is not supported
2845 Some platforms may not implement OMX_IndexConfigVideoAVCIntraPeriod and
2846 use OMX_IndexParamVideoAvc instead to configure the GOP pattern.
2847 So raise a warning instead of an error if this API is not implemented.
2848 https://bugzilla.gnome.org/show_bug.cgi?id=784379
2850 2017-06-29 14:16:19 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2852 * omx/gstomxh264enc.c:
2853 * omx/gstomxh264enc.h:
2854 omxh264enc: add 'b-frames' property
2855 Add a property to control the number of B-frames produced by the
2856 encoder using the OMX_VIDEO_PARAM_AVCTYPE OMX API.
2857 https://bugzilla.gnome.org/show_bug.cgi?id=784379
2859 2017-06-30 14:18:35 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2861 * omx/gstomxh264enc.c:
2862 omxh264enc: fix typo in 'set_avc_intra_period'
2863 https://bugzilla.gnome.org/show_bug.cgi?id=784379
2865 2017-05-22 11:23:33 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2867 * config/Makefile.am:
2868 * config/meson.build:
2869 * config/zynqultrascaleplus/Makefile.am:
2870 * config/zynqultrascaleplus/gstomx.conf:
2871 * config/zynqultrascaleplus/meson.build:
2874 * meson_options.txt:
2875 add 'zynqultrascaleplus' as OMX target
2876 Adding support for the 'Zynq UltraScale+' as a new OMX target.
2877 See https://www.xilinx.com/products/silicon-devices/soc/zynq-ultrascale-mpsoc.html
2878 for details about the platform.
2879 https://bugzilla.gnome.org/show_bug.cgi?id=783097
2881 2017-05-21 15:23:09 +0100 Julien Isorce <jisorce@oblong.com>
2883 * config/bellagio/gstomx.conf:
2884 config: add OMX.mesa.video_decoder.{avc,mpeg2} for Bellagio config
2885 Install libomxil-bellagio0 and make sure mesa has been built with
2886 --enable-omx. Check there is /usr/lib/libomxil-bellagio0/libomx_mesa.so
2887 then run omxregister-bellagio to regenerate $XDG_DATA_HOME/.omxregister
2888 Then omxh264dec and omxmpeg2dec should load.
2889 https://bugzilla.gnome.org/show_bug.cgi?id=782926
2891 2017-05-18 13:50:56 +0100 Julien Isorce <jisorce@oblong.com>
2894 configure.ac: move omx features check after target selection
2895 Does not change anything, except this will be useful for future commits.
2896 Indeed some targets provide a .pc file where to look for the omx headers.
2897 https://bugzilla.gnome.org/show_bug.cgi?id=782800
2899 2017-06-29 16:48:07 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2901 * omx/gstomxh264dec.c:
2902 omxh264dec: remove 'parsed=true' from sink pad
2903 The decoder only requires to receive one frame per buffer which is
2904 already enforced with 'alignment=au'. There is no need to require to
2905 have a parser upstream.
2906 Allow to run "encode ! decode" pipeline without having a parser.
2907 https://bugzilla.gnome.org/show_bug.cgi?id=784344
2909 2017-06-16 13:28:33 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2911 * omx/gstomxh264enc.c:
2912 omxh264enc: set profile/level using OMX_VIDEO_PARAM_AVCTYPE as well
2913 The OMX specification defines two API to set the AVC profile and level:
2914 using OMX_VIDEO_PARAM_PROFILELEVELTYPE and OMX_VIDEO_PARAM_AVCTYPE.
2915 We were already supporting the former but not the latter. We are now
2916 setting both so implementation don't have to rely on a specific one.
2917 https://bugzilla.gnome.org/show_bug.cgi?id=783862
2919 2017-06-16 13:19:33 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2921 * omx/gstomxh264enc.c:
2922 omxh264enc: factor out update_param_profile_level()
2923 https://bugzilla.gnome.org/show_bug.cgi?id=783862
2925 2017-06-16 12:53:15 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2927 * omx/gstomxh264enc.c:
2928 omxh264enc: factor out string to profile/level enum conversion
2929 https://bugzilla.gnome.org/show_bug.cgi?id=783862
2931 2017-06-28 15:06:10 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2933 * omx/gstomxh264enc.c:
2934 omxh264enc: use OMX_IndexConfigBrcmVideoIntraPeriod on pi
2935 The OMX_VIDEO_CONFIG_AVCINTRAPERIOD.nPFrames setting isn't of any use on
2936 the raspbery pi. Instead it uses a custom extension to define the I
2938 https://bugzilla.gnome.org/show_bug.cgi?id=783829
2940 2017-06-28 15:03:52 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2942 * omx/gstomxh264enc.c:
2943 omxh264enc: factor out set_avc_intra_perdiod()
2944 https://bugzilla.gnome.org/show_bug.cgi?id=783829
2946 2017-06-02 12:48:57 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2949 meson: define HAVE_VIDEO_EXT if OMX_VideoExt.h is present
2950 Meson build wasn't defining the HAVE_VIDEO_EXT like configure.ac does.
2951 https://bugzilla.gnome.org/show_bug.cgi?id=783346
2953 2017-06-11 12:32:01 +0000 Graham Leggett <minfrin@sharp.fm>
2955 * omx/gstomxvideoenc.c:
2956 omxvideoenc: Improve debug output when setting codec state due to new codec_data fails
2957 https://bugzilla.gnome.org/show_bug.cgi?id=783657
2959 2017-05-20 14:49:20 +0100 Julien Isorce <jisorce@oblong.com>
2962 omx: allow 0 feature
2963 Previously the omx plugin was blacklisted if GST_OMX_CONFIG_DIR
2964 points to an invalid path or if the gstomx.conf contains 0 valid
2966 Problem is that once the plugin is blacklisted, a rescan is not
2967 triggered upon changes of the env var or the gstomx.conf file
2968 despite being setup with gst_plugin_add_dependency.
2969 This also makes it more consistent with other plugins that auto
2970 generate features. For example gst-{ffmeg,libav}, gstreamer-vaapi,
2972 To clarify the diff, the plugin_init func will return TRUE even if
2973 g_key_file_get_groups returns 0 element and even if
2974 g_key_file_load_from_dirs fails.
2975 https://bugzilla.gnome.org/show_bug.cgi?id=782867
2977 2017-04-26 22:52:17 +0530 Gurkirpal Singh <gurkirpal204@gmail.com>
2979 * config/bellagio/gstomx.conf:
2980 config: add OMX.st.audio_decoder.mp3.mad for Bellagio config
2981 MP3 Software decoder (libmad based) but useful for testing
2982 and to compare with other targets.
2983 GST_OMX_CONFIG_DIR=$HOME/gst/master/gst-omx/config/bellagio/ \
2984 gst-launch-1.0 filesrc location=mpthreetest.mp3 ! id3demux ! \
2985 mpegaudioparse ! omxmp3dec ! audioconvert ! pulsesink
2986 Didn't add 'local' in core-name path compared to other components
2987 in that same gstomx.conf file because OMX.st.audio_decoder.mp3.mad
2988 comes with the Ubuntu package 'libomxil-bellagio0-components-mad'.
2989 All other components listed in this gstomx.conf for Bellagio, are
2990 not provided by any Ubuntu packages. It could explain the 'local',
2991 i.e. requiring to build them from source.
2992 dpkg -L libomxil-bellagio0
2993 /usr/lib/libomxil-bellagio.so.0
2994 https://bugzilla.gnome.org/show_bug.cgi?id=781786
2995 Signed-off-by: Gurkirpal Singh <gurkirpal204@gmail.com>
2996 Signed-off-by: Julien Isorce <jisorce@oblong.com>
2998 2017-05-16 14:39:04 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
3001 Remove plugin specific static build option
3002 Static and dynamic plugins now have the same interface. The standard
3003 --enable-static/--enable-shared toggle are sufficient.
3005 2017-05-10 12:10:10 +0900 Sejun Park <sejun79.park@samsung.com>
3007 * omx/gstomxvideodec.c:
3008 omxvideodec: Removed unreachable code
3009 https://bugzilla.gnome.org/show_bug.cgi?id=782416
3011 2017-05-09 16:26:44 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
3014 meson: add dep on GModule
3015 libgstomx uses the GModule API and so needs it in its dependencies list.
3016 https://bugzilla.gnome.org/show_bug.cgi?id=782387
3018 2017-05-09 13:27:28 +0000 Tim-Philipp Müller <tim@centricular.com>
3021 meson: fix config.h generation
3022 "No such input file config.h.meson", but it's not needed anyway.
3023 https://bugzilla.gnome.org/show_bug.cgi?id=782382
3025 2017-05-04 18:59:33 +0300 Sebastian Dröge <sebastian@centricular.com>
3031 === release 1.12.0 ===
3033 2017-05-04 15:48:56 +0300 Sebastian Dröge <sebastian@centricular.com>
3043 === release 1.11.91 ===
3045 2017-04-27 17:53:50 +0300 Sebastian Dröge <sebastian@centricular.com>
3055 2017-04-17 17:02:48 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
3057 * omx/gstomxvideoenc.c:
3058 videoenc: use GST_ROUND_UP_N() macro
3059 Makes the code much easier to read and understand.
3060 https://bugzilla.gnome.org/show_bug.cgi?id=781409
3062 2017-04-24 20:30:21 +0100 Tim-Philipp Müller <tim@centricular.com>
3065 Automatic update of common submodule
3066 From 60aeef6 to 48a5d85
3068 2017-04-10 23:51:00 +0100 Tim-Philipp Müller <tim@centricular.com>
3072 Automatic update of common submodule
3073 From 39ac2f5 to 60aeef6
3075 === release 1.11.90 ===
3077 2017-04-07 16:36:45 +0300 Sebastian Dröge <sebastian@centricular.com>
3087 2017-04-07 14:27:23 +0300 Sebastian Dröge <sebastian@centricular.com>
3089 * omx/gstomxvideoenc.c:
3090 omxvideoenc: Fix compiler warning
3091 gstomxvideoenc.c: In function ‘gst_omx_video_enc_fill_buffer’:
3092 CC libgstomx_la-gstomxaacdec.lo
3093 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=]
3094 GST_LOG_OBJECT (self, "Matched strides - direct copy %u bytes",
3096 outbuf->omx_buf->nFilledLen);
3099 2017-03-22 17:18:09 +0530 Gurkirpal Singh <gurkirpal204@gmail.com>
3102 meson: fix logic to set HAVE_THEORA
3103 https://bugzilla.gnome.org/show_bug.cgi?id=780392
3105 2017-03-14 03:02:06 +1100 Jan Schmidt <thaytan@noraisin.net>
3107 * omx/gstomxvideoenc.c:
3108 omxvideoenc: Add an unimplemented mapping for RGBA formats
3109 Add some pixel formats mappings for 2 RGBA formats. Not yet
3110 implemented in the buffer input code though, so no effect for now.
3112 2017-03-14 03:00:49 +1100 Jan Schmidt <thaytan@noraisin.net>
3116 * omx/gstomxvideoenc.c:
3117 omxvideoenc: Add GST_OMX_HACK_HEIGHT_MULTIPLE_16 for Rpi
3118 The Raspberry Pi encoder produces corrupt output unless
3119 the input height is a multiple of 16. Add a hack that adds
3120 zero padding when needed.
3122 2017-03-14 02:42:15 +1100 Jan Schmidt <thaytan@noraisin.net>
3124 * omx/gstomxvideoenc.c:
3125 omxvideoenc: Add a mapping for OMX_COLOR_FormatYUV420PackedSemiPlanar
3128 2017-03-14 02:40:24 +1100 Jan Schmidt <thaytan@noraisin.net>
3130 * omx/gstomxvideoenc.c:
3131 omxvideoenc: Filter out unimplemented formats
3132 Don't announce pixel formats in the caps if they've not been
3135 2017-03-14 02:34:36 +1100 Jan Schmidt <thaytan@noraisin.net>
3137 * omx/gstomxvideodec.c:
3138 omxvideodec: demote ERROR message
3139 There's no need to warn about failing to negotiate EGL output
3140 - that can be perfectly normal.
3142 2017-02-24 16:00:29 +0200 Sebastian Dröge <sebastian@centricular.com>
3145 meson: Update version
3147 2017-02-24 15:38:17 +0200 Sebastian Dröge <sebastian@centricular.com>
3152 === release 1.11.2 ===
3154 2017-02-24 15:10:17 +0200 Sebastian Dröge <sebastian@centricular.com>
3163 2017-02-15 18:22:53 +0000 Tim-Philipp Müller <tim@centricular.com>
3166 meson: dist meson build files
3167 Ship meson build files in tarballs, so people who use tarballs
3168 in their builds can start playing with meson already.
3170 2017-01-13 16:23:12 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
3172 * omx/gstomxaacenc.c:
3173 omxaacenc: let encoder know about incoming rate/channels
3174 https://bugzilla.gnome.org/show_bug.cgi?id=777223
3176 2017-01-18 02:43:44 +1100 Matthew Waters <matthew@centricular.com>
3178 * config/bellagio/meson.build:
3179 * config/meson.build:
3180 * config/rpi/meson.build:
3181 * examples/egl/meson.build:
3182 * examples/meson.build:
3183 * hooks/pre-commit.hook:
3185 * meson_options.txt:
3187 build: add meson build definition
3188 Currently only been tested on the RPi within gst-build.
3190 2017-01-18 15:21:35 +1100 Matthew Waters <matthew@centricular.com>
3192 * examples/egl/testegl.c:
3193 examples/testegl: update for libgstgl changes
3195 2017-01-12 16:33:09 +0200 Sebastian Dröge <sebastian@centricular.com>
3200 === release 1.11.1 ===
3202 2017-01-12 16:26:55 +0200 Sebastian Dröge <sebastian@centricular.com>
3211 2017-01-10 15:29:08 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
3213 * omx/gstomxaudioenc.c:
3214 omxaudioenc: set base class format instead of just source pad caps
3216 2016-12-18 19:46:55 +0000 Graham Leggett <minfrin@sharp.fm>
3218 * omx/gstomxaudiodec.c:
3219 * omx/gstomxvideodec.c:
3220 omx*dec: Flush before we stop the srcpad loop
3221 Flushing could otherwise hang if output port queue of pending buffers was empty
3222 https://bugzilla.gnome.org/show_bug.cgi?id=774654
3224 2016-12-14 13:29:08 -0800 Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
3227 Fix broken build due to syntax error
3228 Problem was introduced by 8716c23e2b0553db2982eb84c437f493c974385e
3230 2016-12-12 11:12:48 +0000 Graham Leggett <minfrin@sharp.fm>
3233 Prevent early EOS by resetting eos flag once GST_OMX_ACQUIRE_BUFFER_EOS is triggered
3234 https://bugzilla.gnome.org/show_bug.cgi?id=774600
3236 2016-12-12 11:09:15 +0000 Graham Leggett <minfrin@sharp.fm>
3239 Add clear debug logging on all the paths out of gst_omx_port_acquire_buffer()
3240 https://bugzilla.gnome.org/show_bug.cgi?id=774600
3242 2016-12-01 18:23:50 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com>
3244 * config/rpi/gstomx.conf:
3247 Add a signals-premature-eos hack for egl_render
3248 egl_render seems to have a bug and signals EOS before it has finished
3249 pushing out all data; this hack simply makes acquire_buffer() wait
3250 a bit more before signalling EOS, in case egl_render decides to spit
3252 https://bugzilla.gnome.org/show_bug.cgi?id=741856
3254 2016-12-11 19:52:37 +0000 Graham Leggett <minfrin@sharp.fm>
3256 * omx/gstomxvideo.c:
3257 Add support for OMX_COLOR_FormatYUV420PackedSemiPlanar and OMX_COLOR_Format24bitBGR888
3258 https://bugzilla.gnome.org/show_bug.cgi?id=775959
3260 2016-12-03 08:20:46 +0100 Edward Hervey <bilboed@bilboed.com>
3263 Automatic update of common submodule
3264 From ac2f647 to 39ac2f5
3266 2016-11-26 11:27:58 +0000 Tim-Philipp Müller <tim@centricular.com>
3269 common: use https protocol for common submodule
3270 https://bugzilla.gnome.org/show_bug.cgi?id=775110
3272 2016-11-25 23:56:06 +0200 Sebastian Dröge <sebastian@centricular.com>
3275 omx: Fix compiler warning with latest clang
3276 gstomx.c:1376:42: error: implicit conversion from enumeration type 'GstOMXAcquireBufferReturn' to different enumeration type 'OMX_ERRORTYPE'
3277 (aka 'enum OMX_ERRORTYPE') [-Werror,-Wenum-conversion]
3278 g_return_val_if_fail (!port->tunneled, GST_OMX_ACQUIRE_BUFFER_ERROR);
3279 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3280 https://bugzilla.gnome.org/show_bug.cgi?id=775112
3282 2016-11-17 19:56:35 +1100 Matthew Waters <matthew@centricular.com>
3284 * omx/gstomxvideodec.c:
3285 videodecoder: remove use of EGLImage orientation
3286 New code should use GstVideoTransformationMeta
3287 (The defaults do the right thing here though).
3289 === release 1.11.0 ===
3291 2016-11-01 18:53:25 +0200 Sebastian Dröge <sebastian@centricular.com>
3296 === release 1.10.0 ===
3298 2016-11-01 18:20:48 +0200 Sebastian Dröge <sebastian@centricular.com>
3307 === release 1.9.90 ===
3309 2016-09-30 13:04:51 +0300 Sebastian Dröge <sebastian@centricular.com>
3319 2016-09-14 11:33:13 +0200 Sebastian Dröge <sebastian@centricular.com>
3322 configure: Depend on gstreamer 1.9.2.1
3324 2016-09-12 14:09:46 +0200 Sebastian Dröge <sebastian@centricular.com>
3328 omx: Also search for gstomx.conf in the autoconf --sysconfdir
3329 https://bugzilla.gnome.org/show_bug.cgi?id=770743
3331 2016-09-10 20:52:10 +1000 Jan Schmidt <jan@centricular.com>
3335 Automatic update of common submodule
3336 From b18d820 to f980fd9
3338 2016-09-10 09:58:16 +1000 Jan Schmidt <jan@centricular.com>
3342 Automatic update of common submodule
3343 From ac2f647 to b18d820
3345 2016-09-01 12:36:09 +0300 Sebastian Dröge <sebastian@centricular.com>
3350 === release 1.9.2 ===
3352 2016-09-01 12:35:58 +0300 Sebastian Dröge <sebastian@centricular.com>
3362 2016-07-11 21:15:48 +0200 Stefan Sauer <ensonic@users.sf.net>
3365 Automatic update of common submodule
3366 From ac2f647 to f49c55e
3368 2016-07-06 13:51:24 +0300 Sebastian Dröge <sebastian@centricular.com>
3373 === release 1.9.1 ===
3375 2016-07-06 13:48:45 +0300 Sebastian Dröge <sebastian@centricular.com>
3385 2016-06-29 16:37:43 +0900 Kazunori Kobayashi <kkobayas@igel.co.jp>
3387 * omx/gstomxvideodec.c:
3388 omxvideodec: Use GST_VIDEO_FRAME_PLANE_STRIDE() to get output buffer's stride
3389 GST_VIDEO_FRAME_PLANE_STRIDE() should be used to get the actual buffer stride,
3390 as reported in the buffers's GstVideoMeta, when copying data to that buffer.
3391 https://bugzilla.gnome.org/show_bug.cgi?id=768173
3393 2016-06-21 11:48:40 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
3396 Automatic update of common submodule
3397 From ac2f647 to f363b32
3399 2016-06-21 11:43:13 +0200 Aurélien Zanelli <aurelien.zanelli@parrot.com>
3401 * omx/gstomxaudioenc.c:
3402 omxaudioenc: implement GstPreset interface
3403 To allow user to use GstPreset to quickly save and load a set of
3405 https://bugzilla.gnome.org/show_bug.cgi?id=767907
3407 2016-06-21 11:41:15 +0200 Aurélien Zanelli <aurelien.zanelli@parrot.com>
3409 * omx/gstomxvideoenc.c:
3410 omxvideoenc: implement GstPreset interface
3411 To allow user to use GstPreset to quickly save and load a set of
3413 https://bugzilla.gnome.org/show_bug.cgi?id=767907
3415 2016-06-17 12:06:48 +0300 Sebastian Dröge <sebastian@centricular.com>
3419 * omx/gstomxaudiodec.c:
3420 * omx/gstomxaudioenc.c:
3421 * omx/gstomxvideo.c:
3422 * omx/gstomxvideodec.c:
3423 * omx/gstomxvideoenc.c:
3424 omx: #define OMX_SKIP64BIT on the RPi as required by their API
3425 Also add generic support for OMX_SKIP64BIT to gst-omx, in case other
3426 implementations also #define that for whatever reason.
3427 https://bugzilla.gnome.org/show_bug.cgi?id=766475
3429 2016-06-17 10:59:45 +0300 Sebastian Dröge <sebastian@centricular.com>
3431 * omx/gstomxvideodec.c:
3432 omxvideodec: Implement ::drain() virtual method
3433 https://bugzilla.gnome.org/show_bug.cgi?id=767641
3435 2016-06-04 19:31:45 +0100 Tim-Philipp Müller <tim@centricular.com>
3438 configure: remove AG_GST_PARSE_SUBSYSTEM_DISABLES
3439 This would check which subsystems are disabled in core by grepping
3440 gstconfig.h. Only problem is: gstconfig.h has moved into libdir now
3441 so we've been checking a non-existent file for a while now. The
3442 macro would just sets GST_DISABLE_* for use in configure.ac and
3443 Makefile.am, but we don't use that anywhere so just get rid of it
3444 (the one place where we use GST_DISABLE_GST_DEBUG is in a .c file
3445 which gets the define from the gstconfig.h include).
3446 https://bugzilla.gnome.org/show_bug.cgi?id=750056
3448 2016-01-20 03:10:38 +0900 Gwang Yoon Hwang <yoon@igalia.com>
3450 * examples/egl/testegl.c:
3451 * omx/gstomxvideodec.c:
3452 omxvideodec : Use gstglmemoryegl for the RPi
3453 Modified to use gstglmemoryegl to avoid texture creation/copy operations
3455 [Matthew Waters]: gst-indent the sources and port testegl to GstGLMemoryEGL
3456 https://bugzilla.gnome.org/show_bug.cgi?id=760918
3458 2016-04-14 10:04:32 +0100 Julien Isorce <j.isorce@samsung.com>
3461 Automatic update of common submodule
3462 From 6f2d209 to ac2f647
3464 2016-02-26 12:42:41 +0200 Sebastian Dröge <sebastian@centricular.com>
3467 Automatic update of common submodule
3468 From b64f03f to 6f2d209
3470 2016-02-17 20:51:03 +1100 Matthew Waters <matthew@centricular.com>
3472 * examples/egl/testegl.c:
3473 examples: update egl example for gstgl API changes
3474 https://bugzilla.gnome.org/show_bug.cgi?id=762053
3475 https://bugzilla.gnome.org/show_bug.cgi?id=753917
3477 2016-02-05 18:11:06 -0300 Thiago Santos <thiagoss@osg.samsung.com>
3481 Automatic update of common submodule
3482 From 86e4663 to b64f03f
3484 2015-12-21 00:43:49 +0100 Koop Mast <kwm@rainbow-runner.nl>
3487 configure: Make -Bsymbolic check work with clang.
3488 Update the -Bsymbolic check with the version glib has. This version
3490 https://bugzilla.gnome.org/show_bug.cgi?id=759713
3492 2015-12-07 09:11:32 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
3496 Automatic update of common submodule
3497 From b319909 to 86e4663
3499 2015-11-18 13:00:28 +0000 Enrique Ocaña González <eocanha@igalia.com>
3502 Remember the last_error after a failed set state call to avoid blocking the next get state call
3503 gst_omx_video_dec_flush() blocks forever in
3504 http://cgit.freedesktop.org/gstreamer/gst-omx/tree/omx/gstomxvideodec.c?id=9adf0ff82903cad5331e40975ae91ed5d11bc102#n2110
3505 when the previous call to gst_omx_component_set_state() fails in
3506 http://cgit.freedesktop.org/gstreamer/gst-omx/tree/omx/gstomx.c?id=9adf0ff82903cad5331e40975ae91ed5d11bc102#n827.
3507 To mitigate that, I set "last_error" to true, so the code in
3508 http://cgit.freedesktop.org/gstreamer/gst-omx/tree/omx/gstomx.c?id=9adf0ff82903cad5331e40975ae91ed5d11bc102#n862
3509 exits early and doesn't block.
3510 https://bugzilla.gnome.org/show_bug.cgi?id=758274
3512 2015-11-18 12:59:59 +0000 Enrique Ocaña González <eocanha@igalia.com>
3514 * omx/gstomxaudiodec.c:
3515 * omx/gstomxaudioenc.c:
3516 * omx/gstomxvideodec.c:
3517 * omx/gstomxvideoenc.c:
3518 Properly handle drain requests while flushing
3519 Without this commit the decoder streaming thread stops without ever attending
3520 the drain request, leaving the decoder input thread waiting forever.
3521 https://bugzilla.gnome.org/show_bug.cgi?id=758274
3523 2015-11-10 10:42:35 +0100 Nicolas Huet <nicolas.huet@parrot.com>
3526 omx: fix hacks leak on class init
3528 2015-10-21 14:37:13 +0100 Tim-Philipp Müller <tim@centricular.com>
3531 Automatic update of common submodule
3532 From b99800a to b319909
3534 2015-10-21 14:28:41 +0300 Sebastian Dröge <sebastian@centricular.com>
3537 Automatic update of common submodule
3538 From 9aed1d7 to b99800a
3540 2015-09-01 16:08:11 -0300 Thiago Santos <thiagoss@osg.samsung.com>
3542 * omx/gstomxaacdec.c:
3543 omxaacdec: Do not accept unknown layouts
3544 It was defaulting to RAW when an unknown layout was received but
3545 the caps template would actually forbid that on the caps query
3546 or accept-caps anyway.
3548 2015-09-01 08:59:54 -0300 Thiago Santos <thiagoss@osg.samsung.com>
3550 * omx/gstomxaudiodec.c:
3551 omxaudiodec: use default pad accept-caps handling
3552 Instead of the audiodecoder one. The OMX audioo decoders have their
3553 valid input in the template pad, so just check against that to
3554 avoid doing a query downstream.
3556 2015-08-28 12:57:33 -0300 Thiago Santos <thiagoss@osg.samsung.com>
3558 * omx/gstomxvideodec.c:
3559 omxvideodec: use default pad accept-caps handling
3560 Instead of the videodecoder one. The OMX video decoders have their
3561 valid input in the template pad, so just check against that to
3562 avoid doing a query downstream.
3564 2015-08-22 15:54:55 +0000 Graham Leggett <minfrin@sharp.fm>
3566 * omx/gstomxvideoenc.c:
3567 omxvideoenc: Add keyframe support for the Rpi, using OMX_IndexConfigBrcmVideoRequestIFrame
3568 https://bugzilla.gnome.org/show_bug.cgi?id=753085
3570 2015-08-20 17:20:50 +0900 Vineeth TM <vineeth.tm@samsung.com>
3572 * examples/egl/testegl.c:
3573 gst-omx: Fix memory leaks when context parse fails
3574 When g_option_context_parse fails, context and error variables are not getting free'd
3575 which results in memory leaks. Free'ing the same.
3576 And replacing g_error_free with g_clear_error, which checks if the error being passed
3577 is not NULL and sets the variable to NULL on free'ing.
3578 https://bugzilla.gnome.org/show_bug.cgi?id=753865
3580 2015-08-16 14:53:42 +0200 Philippe Normand <philn@igalia.com>
3582 * omx/gstomxh264dec.c:
3583 omxh264dec: implement is_format_change
3584 The omxvideodecoder class only checks some of the caps parameters but if
3585 other fields change such as h264 profile and/or level it wouldn't trigger a
3587 https://bugzilla.gnome.org/show_bug.cgi?id=752376
3589 2015-07-03 00:26:48 +0200 Aurélien Zanelli <aurelien.zanelli@darkosphere.fr>
3591 * omx/gstomxvideodec.c:
3592 omxvideodec: unref allocator after getting it from allocation query
3593 Otherwise a reference will be leaked for each allocator. It only happens
3594 when target platform is Raspberry Pi and when we have GL support.
3595 https://bugzilla.gnome.org/show_bug.cgi?id=751867
3597 2015-07-03 21:59:54 +0200 Stefan Sauer <ensonic@users.sf.net>
3600 Automatic update of common submodule
3601 From f74b2df to 9aed1d7
3603 2015-06-16 17:50:14 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
3606 Automatic update of common submodule
3607 From 6015d26 to f74b2df
3609 2015-06-09 11:30:49 +0200 Edward Hervey <bilboed@bilboed.com>
3612 Automatic update of common submodule
3613 From d9a3353 to 6015d26
3615 2015-06-08 23:08:28 +0200 Stefan Sauer <ensonic@users.sf.net>
3618 Automatic update of common submodule
3619 From d37af32 to d9a3353
3621 2015-06-07 23:07:22 +0200 Stefan Sauer <ensonic@users.sf.net>
3624 Automatic update of common submodule
3625 From 21ba2e5 to d37af32
3627 2015-06-07 17:32:25 +0200 Stefan Sauer <ensonic@users.sf.net>
3630 Automatic update of common submodule
3631 From c408583 to 21ba2e5
3633 2015-06-07 17:16:43 +0200 Stefan Sauer <ensonic@users.sf.net>
3637 Automatic update of common submodule
3638 From c8fb372 to c408583
3640 2015-05-19 18:21:40 +0300 Sebastian Dröge <sebastian@centricular.com>
3642 * omx/gstomxaudiodec.c:
3643 * omx/gstomxaudiodec.h:
3644 omxaudiodec: Add an output adapter for chunking the output into codec frames
3645 Otherwise the base class will be confused.
3646 See https://bugzilla.gnome.org/show_bug.cgi?id=685730
3648 2015-04-26 18:24:13 +0100 Tim-Philipp Müller <tim@centricular.com>
3652 Remove obsolete Android build cruft
3653 This is not needed any longer.
3655 2015-04-22 10:40:22 +0200 Sebastian Dröge <sebastian@centricular.com>
3659 autotools automatically generate this, and when using different versions
3660 for autogen.sh there will always be changes to a file tracked by git.
3662 2015-04-08 15:57:59 +0100 Tim-Philipp Müller <tim@centricular.com>
3668 Add m4 directory so aclocal doesn't complain in autogen.sh
3669 Might come in handy, and these warnings seem to be
3670 fatal in some environments.
3671 You may need to git clean -x -d -f your tree before
3672 git pulling/merging.
3674 2015-04-07 22:25:57 +0100 Tim-Philipp Müller <tim@centricular.com>
3678 Update autogen.sh to latest version
3680 2015-04-03 18:58:17 +0100 Tim-Philipp Müller <tim@centricular.com>
3683 Automatic update of common submodule
3684 From bc76a8b to c8fb372
3686 2015-03-06 12:12:49 +0000 Luis de Bethencourt <luis.bg@samsung.com>
3688 * omx/gstomxaacdec.c:
3689 omxaudiodec: add comment explaining duplicate code path
3691 2015-03-06 12:09:06 +0000 Luis de Bethencourt <luis.bg@samsung.com>
3693 * omx/gstomxaacdec.c:
3694 Revert "omxaudiodec: remove duplicate code path"
3695 This reverts commit a8d26ff27a8b43f589424a59294f9057641b2a46.
3697 2015-03-06 12:03:56 +0000 Luis de Bethencourt <luis.bg@samsung.com>
3700 omx: handle both errors in the two steps of update_port_definition
3701 Also consider potential errors in the _get_parameter() in the return of the
3702 update_port_definition function.
3705 2015-03-06 10:57:53 +0000 Luis de Bethencourt <luis.bg@samsung.com>
3707 * omx/gstomxaudioenc.c:
3708 omxaudioenc: impossible if statement
3709 ret is set to GST_STATE_CHANGE_SUCCESS and never touched, so it is impossible
3710 for it to be anything else at the if check. Remove the if check.
3713 2015-03-06 10:54:43 +0000 Luis de Bethencourt <luis.bg@samsung.com>
3715 * omx/gstomxaudiodec.c:
3716 omxaudiodec: impossible if statement
3717 ret is set to GST_STATE_CHANGE_SUCCESS and never touched, so it is impossible
3718 for it to be anything else at the if check. Remove it.
3721 2015-03-06 10:50:30 +0000 Luis de Bethencourt <luis.bg@samsung.com>
3723 * omx/gstomxaacdec.c:
3724 omxaudiodec: remove duplicate code path
3726 2014-12-19 11:19:55 +0200 George Kiagiadakis <george.kiagiadakis@collabora.com>
3729 omx: call handle_messages() only once in acquire_buffer() to avoid potential deadlock
3730 There is one rare case where calling handle_messages() more than once can cause a deadlock
3731 in the video decoder element:
3732 - sink pad thread starts the src pad task (gst_omx_video_dec_loop())
3733 - _video_dec_loop() calls gst_omx_port_acquire_buffer() on dec_out_port
3734 - blocks in gst_omx_component_wait_message() releasing comp->lock and comp->messages_lock
3735 (initially, there are no buffers configured on that port, so it waits for OMX_EventPortSettingsChanged)
3736 - the sink pad thread pushes a buffer to the decoder with gst_omx_port_release_buffer()
3737 - _release_buffer() grabs comp->lock and sends the buffer to OMX, which consumes it immediately
3738 - EmptyBufferDone gets called at this point, which signals _wait_message() to unblock
3739 - the message from EmptyBufferDone is processed in gst_omx_component_handle_messages()
3740 called from gst_omx_port_release_buffer()
3741 - gst_omx_port_release_buffer releases comp->lock
3742 - the src pad thread now gets to run, grabbing comp->lock while it exits from _wait_message()
3743 - _acquire_buffer() calls the _handle_messages() on the next line after _wait_message(),
3744 which does nothing (no pending messages)
3745 - then it goes to "retry:" and calls _handle_messages() again, which also does nothing
3746 (still no pending messages)
3747 - scheduler switches to a videocore thread that calls EventHandler, informing us about the
3748 OMX_EventPortSettingsChanged event that just arrived
3749 - EventHandler graps comp->messages_lock, but not comp->lock, so it can run in parallel at
3750 this point just fine.
3751 - scheduler switches back to the src pad thread (which is in the middle of _acquire_buffer())
3752 - the next _handle_messages() which is right before if (g_queue_is_empty (&port->pending_buffers))
3753 processes the OMX_EventPortSettingsChanged
3754 - the buffer queue is still empty, so that thread blocks again in _wait_message()
3755 - the sink pad thread tries to acquire the next input port buffer
3756 - _acquire_buffer() also blocks this thread in:
3757 if (comp->pending_reconfigure_outports) { ... _wait_message() ... }
3758 - DEADLOCK. gstreamer is waiting for omx to do something, omx waits for gstreamer to do something.
3759 By removing those extra _handle_messages() calls, we can ensure that all the checks of
3760 _acquire_buffer() will re-run. In the above case, after the scheduler switches back to
3761 the middle of _acquire_buffer(), the code will enter _wait_message(), which will see that
3762 there are pending messages and will return immediately, going back to "retry:" and
3763 re-doing all the checks properly.
3764 https://bugzilla.gnome.org/show_bug.cgi?id=741854
3766 2015-02-26 09:27:44 +0900 Wonchul Lee <chul0812@gmail.com>
3769 omx: cleanup code a bit to remove else statement
3770 https://bugzilla.gnome.org/show_bug.cgi?id=745191
3772 2015-01-12 16:13:35 +0100 Stefan Sauer <ensonic@users.sf.net>
3775 Automatic update of common submodule
3776 From f2c6b95 to bc76a8b
3778 2014-12-18 10:56:15 +0100 Sebastian Dröge <sebastian@centricular.com>
3781 Automatic update of common submodule
3782 From ef1ffdc to f2c6b95
3784 2014-11-27 17:12:42 +0100 Edward Hervey <bilboed@bilboed.com>
3787 Automatic update of common submodule
3788 From 7bb2bce to ef1ffdc
3790 2014-11-13 09:55:02 +0900 Jun Ji <jun.ji@lge.com>
3794 * omx/gstomxamrdec.c:
3795 * omx/gstomxamrdec.h:
3797 https://bugzilla.gnome.org/show_bug.cgi?id=739333
3799 2014-10-27 18:00:50 +0100 Sebastian Dröge <sebastian@centricular.com>
3802 Automatic update of common submodule
3803 From 84d06cd to 7bb2bce
3805 2014-10-21 13:03:44 +0100 Tim-Philipp Müller <tim@centricular.com>
3808 Automatic update of common submodule
3809 From a8c8939 to 84d06cd
3811 2014-10-21 13:00:10 +0200 Stefan Sauer <ensonic@users.sf.net>
3814 Automatic update of common submodule
3815 From 1f5d3c3 to a8c8939
3817 2014-09-30 10:47:20 +0300 Sebastian Dröge <sebastian@centricular.com>
3819 * omx/gstomxaudiodec.c:
3820 omxaudiodec: Clean up code a bit to get rid of useless NULL checks
3822 2014-09-30 10:50:07 +0900 junji <jun.ji@lge.com>
3824 * omx/gstomxaudiodec.c:
3825 omxaudiodec: Unmap input buffers after usage
3826 https://bugzilla.gnome.org/show_bug.cgi?id=736314
3828 2014-08-31 20:30:13 +0000 Michal Lazo <michal.lazo@mdragon.org>
3830 * omx/gstomxvideoenc.c:
3831 omxvideoenc: Setup aspect ratio on RPi
3832 Needs firmware from yesterday or newer to work with all possible
3833 aspect ratios. Before that it only supported a fixed list.
3834 https://bugzilla.gnome.org/show_bug.cgi?id=732533
3836 2014-08-28 10:44:31 +0300 Sebastian Dröge <sebastian@centricular.com>
3838 * omx/gstomxaudioenc.c:
3839 omxaudioenc: Implement the hack flag GST_OMX_HACK_NO_COMPONENT_RECONFIGURE
3841 2014-08-28 10:43:22 +0300 Sebastian Dröge <sebastian@centricular.com>
3843 * omx/gstomxaudioenc.c:
3844 omxaudioenc: Use the base class' open/close vfuncs instead of calling them ourselves
3846 2014-08-26 22:13:53 -0500 Peng Liu <pengliu.mail@gmail.com>
3848 * config/rpi/gstomx.conf:
3849 * omx/gstomxvideoenc.c:
3850 omxvideoenc: Implement the hack flag GST_OMX_HACK_NO_COMPONENT_RECONFIGURE
3851 Fix a video encoder stall problem on RPi when changing the aspect ratio.
3852 https://bugzilla.gnome.org/show_bug.cgi?id=732533
3854 2014-08-14 17:36:11 +0300 Sebastian Dröge <sebastian@centricular.com>
3856 * omx/gstomxaudiodec.c:
3857 * omx/gstomxaudiodec.h:
3858 * omx/gstomxaudioenc.c:
3859 * omx/gstomxaudioenc.h:
3860 * omx/gstomxvideodec.c:
3861 * omx/gstomxvideodec.h:
3862 * omx/gstomxvideoenc.c:
3863 * omx/gstomxvideoenc.h:
3864 omx: Let base classes handle EOS
3865 https://bugzilla.gnome.org//show_bug.cgi?id=734774
3867 2014-08-14 17:33:07 +0300 Sebastian Dröge <sebastian@centricular.com>
3869 * omx/gstomxaudiodec.c:
3870 omxaudiodec: Fix flushing logic and make it more similar to the video decoder
3872 === release 1.2.0 ===
3874 2014-07-23 11:28:12 +0200 Sebastian Dröge <sebastian@centricular.com>
3884 2014-07-22 09:23:00 +0200 Sebastian Dröge <sebastian@centricular.com>
3886 * config/bellagio/gstomx.conf:
3887 * config/rpi/gstomx.conf:
3888 config: Update ranks to PRIMARY+1 to have higher preference than avdec_*
3889 See https://bugzilla.gnome.org/show_bug.cgi?id=732161
3891 2014-07-20 17:46:30 +0200 Sebastian Dröge <sebastian@centricular.com>
3893 * omx/gstomxaudiosink.c:
3894 omxaudiosink: Set port to not flushing in prepare() and keep it at flushing in unprepare()
3895 https://bugzilla.gnome.org/show_bug.cgi?id=733168
3897 2014-07-13 22:15:18 +0200 Sebastian Dröge <sebastian@centricular.com>
3899 * omx/gstomxaacdec.c:
3900 * omx/gstomxaudiodec.c:
3901 * omx/gstomxaudiodec.h:
3902 * omx/gstomxmp3dec.c:
3903 omxaudiodec: Implement setting of fallback channel positions
3905 2014-07-13 18:22:39 +0200 Sebastian Dröge <sebastian@centricular.com>
3909 * omx/gstomxaacdec.c:
3910 * omx/gstomxaacdec.h:
3911 * omx/gstomxmp3dec.c:
3912 omx: Add AAC audio decoder
3914 2014-07-02 09:22:28 +0200 Sebastian Dröge <sebastian@centricular.com>
3916 * omx/gstomxaudiodec.c:
3917 omxaudiodec: Get PCM parameters from the out port, not the in port
3919 2014-05-15 13:24:39 +0200 Sebastian Dröge <sebastian@centricular.com>
3921 * omx/gstomxaudiodec.c:
3922 omxaudiodec: Implement hack for not disabling the output port after set_format until the output format is known
3923 Needed on some OMX implementations, e.g. the one from Atmel. It does
3924 not send the settings-changed event on the output port if it is
3927 2014-05-10 23:12:54 +0200 Sebastian Dröge <sebastian@centricular.com>
3931 * omx/gstomxaudiodec.c:
3932 * omx/gstomxaudiodec.h:
3933 * omx/gstomxmp3dec.c:
3934 * omx/gstomxmp3dec.h:
3935 omx: Add audio decoder base class and a subclass for MP3
3937 2014-07-01 09:38:01 +0200 Sebastian Dröge <sebastian@centricular.com>
3941 omx: Link to gmodule-2.0-no-export for being able to use the g_module_*() API
3942 https://bugzilla.gnome.org/show_bug.cgi?id=732518
3944 2014-06-30 15:00:54 +0200 Sebastian Dröge <sebastian@centricular.com>
3946 * examples/egl/testegl.c:
3947 examples: #define GST_USE_UNSTABLE_API for libgstgl
3949 2014-06-29 19:10:19 +0200 Sebastian Dröge <sebastian@centricular.com>
3951 * omx/gstomxh264enc.c:
3952 * omx/gstomxh264enc.h:
3953 omxh264enc: Properly accumulate headers and push before the next frame
3954 Fixes output of encoding on RPi, where each header buffer (SPS and PPS)
3955 is in a separate OMX buffer.
3956 https://bugzilla.gnome.org/show_bug.cgi?id=726669
3958 2014-06-29 19:04:54 +0200 Sebastian Dröge <sebastian@centricular.com>
3960 * omx/gstomxvideoenc.c:
3961 omxvideoenc: Implement flush() instead of the deprecated reset()
3963 2014-06-25 17:14:18 +0200 Sebastian Dröge <sebastian@centricular.com>
3965 * config/rpi/gstomx.conf:
3966 rpi: It's 44100Hz, not 41400Hz
3968 2014-06-25 11:12:51 +0100 Julien Isorce <julien.isorce@collabora.co.uk>
3971 configure.ac: require gstgl >= 1.3.3
3973 2014-04-25 13:25:05 +0100 Julien Isorce <julien.isorce@collabora.co.uk>
3977 example: enable testegl
3978 See https://bugzilla.gnome.org/show_bug.cgi?id=728940
3980 2014-06-25 10:19:54 +0100 Julien Isorce <julien.isorce@collabora.co.uk>
3982 * examples/egl/testegl.c:
3983 testegl: do matrix mutlplication in the shader
3984 See https://bugzilla.gnome.org/show_bug.cgi?id=728940
3986 2014-06-25 09:36:38 +0100 Julien Isorce <julien.isorce@collabora.co.uk>
3988 * examples/egl/testegl.c:
3989 testegl: add a comment for the parse command
3990 See https://bugzilla.gnome.org/show_bug.cgi?id=728940
3992 2014-04-25 17:32:16 +0100 Julien Isorce <julien.isorce@collabora.co.uk>
3994 * examples/egl/Makefile.am:
3995 * examples/egl/cube_texture_and_coords.h:
3996 * examples/egl/testegl.c:
3997 testegl: convert code from GLESv1 to GLESv2
3998 See https://bugzilla.gnome.org/show_bug.cgi?id=728940
4000 2014-04-25 13:21:59 +0100 Julien Isorce <julien.isorce@collabora.co.uk>
4002 * examples/egl/Makefile.am:
4003 * examples/egl/testegl.c:
4004 testegl: port to gstgl API
4005 - append a glfilter just before fakesink
4006 So that we get gltexture or eglimages
4007 - propagate our EGLDisplay to the pipeline
4008 see GST_QUERY_CONTEXT
4009 - share our EGLContext with the iternal gl context
4010 of the pipeline, see GST_QUERY_ALLOCATION
4011 - use GstVideoGLTextureUploadMeta to upload
4012 the incoming gltexture or eglimage to our gl texture
4013 TODO: convert from GLESv1 to GLESv2
4014 See https://bugzilla.gnome.org/show_bug.cgi?id=728940
4016 2014-06-24 14:52:58 +0200 Sebastian Dröge <sebastian@centricular.com>
4018 * omx/gstomxbufferpool.c:
4019 * omx/gstomxbufferpool.h:
4020 * omx/gstomxvideodec.c:
4021 omxbufferpool: Copy buffers if the stride does not match and we can't use video meta
4022 https://bugzilla.gnome.org/show_bug.cgi?id=731672
4024 2014-06-24 14:52:43 +0200 Sebastian Dröge <sebastian@centricular.com>
4028 * omx/gstomxvp8dec.h:
4029 omx: Only include OMX_VideoExt.h conditionally
4030 It does not exist on the RPi for example.
4032 2014-06-24 13:59:44 +0200 Sebastian Dröge <sebastian@centricular.com>
4035 configure.ac: Require GStreamer core/base >= 1.2.2
4036 Needed at least for gst_video_decoder_release_frame().
4038 2014-06-24 13:02:13 +0200 Sebastian Dröge <sebastian@centricular.com>
4040 * omx/gstomxbufferpool.c:
4041 omxbufferpool: Fix format string compiler warning
4043 2014-06-22 21:11:45 +0000 Michal Lazo <xlazom00@gmail.com>
4045 * omx/gstomxbufferpool.c:
4046 omxbufferpool: Initialize debug category
4048 2014-06-24 12:42:22 +0200 Sebastian Dröge <sebastian@centricular.com>
4050 * omx/gstomxbufferpool.c:
4051 omxbufferpool: Properly convert OMX alignment to GStreamer alignment
4052 GStreamer uses a bitmask for the alignment while OMX uses the
4053 alignment itself. Let's convert.
4054 https://bugzilla.gnome.org/show_bug.cgi?id=710564
4056 2014-06-24 11:11:28 +0200 Sebastian Dröge <sebastian@centricular.com>
4058 * omx/gstomxh264enc.c:
4059 omxh264enc: Don't let baseclass finish frames for SPS/PPS buffers
4060 Otherwise we a) send them twice, and b) finish a frame for something
4061 that does not even include a frame.
4062 https://bugzilla.gnome.org/show_bug.cgi?id=726669
4064 2014-06-24 10:22:37 +0200 Sebastian Dröge <sebastian@centricular.com>
4066 * omx/gstomxvideo.h:
4067 omxvideo: Include the separate headers too for compatibility with 1.0.x
4069 2014-03-24 16:09:40 +0800 Zhao, Halley <halley.zhao@intel.com>
4072 * omx/gstomxvp8dec.h:
4073 omxvp8dec: use VP8 definition from OMX_VideoExt.h
4074 https://bugzilla.gnome.org/show_bug.cgi?id=726957
4076 2014-03-24 15:33:26 +0800 Zhao, Halley <halley.zhao@intel.com>
4079 configure: add --with-omx-header-path option for external omx headers
4080 https://bugzilla.gnome.org/show_bug.cgi?id=726957
4082 2014-06-18 23:04:33 +0200 Aurélien Zanelli <aurelien.zanelli@darkosphere.fr>
4084 * omx/gstomxvideodec.c:
4085 omxvideodec: fix a query leak
4086 Also add a debug message if query fails.
4087 https://bugzilla.gnome.org/show_bug.cgi?id=731898
4089 2014-05-30 15:29:15 +0200 Aurélien Zanelli <aurelien.zanelli@parrot.com>
4091 * omx/gstomxvideodec.c:
4092 omxvideodec: release frames with old PTS to avoid memory issue
4093 Interlaced stream could make the decoder use two input frames to produce
4094 one output frame causing the gstvideodecoder frame list to grow.
4095 Assuming the video decoder output frame in display order rather than in
4096 decoding order, this commit add a way to release frames with PTS less
4097 than current output frame.
4098 https://bugzilla.gnome.org/show_bug.cgi?id=730995
4100 2013-06-27 21:59:29 +0900 Kazunori Kobayashi <kkobayas@igel.co.jp>
4103 omx: Fix a missing g_free() in error path
4104 This fixes a memory leak with g_strdup() when an error occurs.
4105 https://bugzilla.gnome.org/show_bug.cgi?id=731141
4107 2014-06-02 15:34:09 +0200 Aurélien Zanelli <aurelien.zanelli@parrot.com>
4109 * omx/gstomxvideodec.c:
4110 omxvideodec: add missing stream unlock in error path
4112 2014-05-31 15:12:05 +0200 Sebastian Dröge <sebastian@centricular.com>
4115 omx: Don't handle disabling/enabling ports exactly like flushing
4116 Otherwise we might abort a flush operation in another thread when
4117 enabling/disabling ports, leading to deadlocks sometimes.
4118 https://bugzilla.gnome.org/show_bug.cgi?id=730989
4120 2014-05-26 11:02:10 +0200 Sebastian Dröge <sebastian@centricular.com>
4122 * omx/gstomxvideodec.c:
4123 omxvideodec: Don't leak buffer pool config in error cases
4126 2014-05-21 10:53:43 +0200 Sebastian Dröge <sebastian@centricular.com>
4129 Automatic update of common submodule
4130 From 211fa5f to 1f5d3c3
4132 2014-05-19 09:10:07 +0200 Sebastian Dröge <sebastian@centricular.com>
4134 * omx/gstomxvideoenc.c:
4135 omxvideoenc: Don't forget to unref codec state
4138 2014-05-19 09:08:33 +0200 Sebastian Dröge <sebastian@centricular.com>
4140 * omx/gstomxvideodec.c:
4141 omxvideodec: Make output buffer pointer always initialized
4144 2014-05-19 09:06:42 +0200 Sebastian Dröge <sebastian@centricular.com>
4146 * omx/gstomxvideodec.c:
4147 omxvideodec: Check return value of gst_buffer_map()
4150 2014-05-19 09:04:09 +0200 Sebastian Dröge <sebastian@centricular.com>
4152 * omx/gstomxvideodec.c:
4153 omxvideodec: Check return value of gst_omx_port_set_enabled() for errors
4156 2014-05-19 09:01:46 +0200 Sebastian Dröge <sebastian@centricular.com>
4158 * omx/gstomxvideodec.c:
4159 omxvideodec: Check return values of buffer pool config parsing functions
4162 2014-05-19 08:48:50 +0200 Sebastian Dröge <sebastian@centricular.com>
4165 omx: Remove dead code, buf can never be NULL here as we just check for that the line above
4168 2014-05-19 08:47:36 +0200 Sebastian Dröge <sebastian@centricular.com>
4171 omx: Fix comparisons in gst_omx_state_to_string() case to actually make sense
4174 2014-05-19 08:45:10 +0200 Sebastian Dröge <sebastian@centricular.com>
4177 omx: Make sure to compare the error codes as unsigned integers so that comparisons >2**31 actually work
4180 2014-05-19 08:40:23 +0200 Sebastian Dröge <sebastian@centricular.com>
4183 omx: Fix comparisons in gst_omx_command_to_string() default cause to actually work
4186 2014-05-15 13:22:56 +0200 Sebastian Dröge <sebastian@centricular.com>
4188 * omx/gstomxaudioenc.c:
4189 omxaudioenc: Implement hack for not disabling the output port after set_format until the output format is known
4190 Needed on some OMX implementations, e.g. the one from Atmel. It does
4191 not send the settings-changed event on the output port if it is
4194 2014-05-15 13:21:07 +0200 Sebastian Dröge <sebastian@centricular.com>
4196 * omx/gstomxvideoenc.c:
4197 omxvideoenc: Implement hack for not disabling the output port after set_format until the output format is known
4198 Needed on some OMX implementations, e.g. the one from Atmel. It does
4199 not send the settings-changed event on the output port if it is
4202 2014-05-15 10:58:34 +0200 Sebastian Dröge <sebastian@centricular.com>
4206 * omx/gstomxvideodec.c:
4207 omx: Add a hack for not disabling the output port after set_format until the output format is known
4208 Needed on some OMX implementations, e.g. the one from Atmel. It does
4209 not send the settings-changed event on the output port if it is
4212 2014-05-12 12:33:32 +0200 Josep Torra <n770galaxy@gmail.com>
4214 * omx/gstomxaudiosink.c:
4215 omxaudiosink: implement _delay only in the RaspberryPI
4216 Make code implementation conditionally built for RaspberryPI because
4217 OMX_IndexConfigAudioRenderingLatency seems to be a Broadcom extension.
4218 On other targets the query position might not be accurate without
4219 implementing _delay appropriatelly.
4221 2014-05-12 08:56:15 +0200 Sebastian Dröge <sebastian@centricular.com>
4223 * omx/gstomxaudioenc.c:
4224 omxaudioenc: Correctly scale nTickCount by OMX_TICKS_PER_SECOND
4226 2014-05-10 22:48:23 +0200 Sebastian Dröge <sebastian@centricular.com>
4228 * omx/gstomxaudioenc.c:
4229 omxaudioenc: Drain encoder on NULL buffer and don't drain on flushing
4231 2014-05-10 22:47:56 +0200 Sebastian Dröge <sebastian@centricular.com>
4233 * omx/gstomxvideodec.c:
4234 omxvideodec: Set nTickCount based on the buffer's duration instead of something wrong
4236 2014-05-10 22:47:21 +0200 Sebastian Dröge <sebastian@centricular.com>
4238 * omx/gstomxvideoenc.c:
4239 omxvideoenc: Set nTickCount to the whole duration of the buffer instead of a wrong calculation
4241 2014-05-10 22:46:51 +0200 Sebastian Dröge <sebastian@centricular.com>
4243 * omx/gstomxaudiosink.c:
4244 omxaudiosink: Fix format string compiler warnings
4246 2014-04-04 14:11:58 +0200 Josep Torra <n770galaxy@gmail.com>
4248 * config/rpi/gstomx.conf:
4251 * omx/gstomxanalogaudiosink.c:
4252 * omx/gstomxanalogaudiosink.h:
4253 * omx/gstomxaudiosink.c:
4254 * omx/gstomxaudiosink.h:
4255 * omx/gstomxhdmiaudiosink.c:
4256 * omx/gstomxhdmiaudiosink.h:
4257 omxaudiosink: Implements OpenMAX based audio sinks
4258 Provides omxanalogaudiosink and omxhdmiaudiosink elements on
4260 - omxanalogaudiosink is capable to render raw mono or stereo audio
4261 through the jack output.
4262 - omxhdmiaudiosink is capable to render raw audio up to 8 channels
4263 and transmit ac3/dts(IEC 61937) through the HDMI output.
4264 - sinks provide a clock derived from rendered samples
4265 - sinks support the GstStreamVolume interface by implementing
4266 the volume and mute properties.
4267 https://bugzilla.gnome.org/show_bug.cgi?id=728962
4269 2014-05-03 10:17:35 +0200 Sebastian Dröge <sebastian@centricular.com>
4272 Automatic update of common submodule
4273 From bcb1518 to 211fa5f
4275 2014-04-29 15:16:16 +0100 Julien Isorce <julien.isorce@collabora.co.uk>
4277 * omx/gstomxvideodec.c:
4278 omxvideodec: can negotiate caps with memory:EGLImage feature when using EGLImage allocator
4279 Previously when using gst EGLImage allocator the caps was
4280 video/x-raw, format=RGBA instead of
4281 video/x-raw(memory:EGLImage), format=RGBA
4282 Kepp previous behavior in case negotiation fails with caps feature.
4283 It means it will still have a chance to use EGLImage even if the
4284 feature is not in the caps.
4285 https://bugzilla.gnome.org/show_bug.cgi?id=729196
4287 2014-04-23 09:57:48 +0200 Aurélien Zanelli <aurelien.zanelli@parrot.com>
4289 * omx/gstomxvp8dec.h:
4290 omxvp8dec: fix typo in GST_TYPE_OMX_VP8_DEC define
4291 https://bugzilla.gnome.org/show_bug.cgi?id=728774
4293 2014-04-16 11:00:55 +0200 Aurélien Zanelli <aurelien.zanelli@parrot.com>
4295 * omx/gstomxvideodec.c:
4296 omxvideodec: don't unref caps before logging field from it
4297 https://bugzilla.gnome.org/show_bug.cgi?id=728322
4299 2014-04-15 17:30:13 +0100 Julien Isorce <julien.isorce@collabora.co.uk>
4303 example: disable testegl since libgstegl has been removed
4304 As decided in bug #703343
4305 Not compatible with the new libgstgl API.
4306 A portage has been started, attachment 272800.
4307 https://bugzilla.gnome.org/show_bug.cgi?id=703343
4309 2014-04-15 17:11:08 +0100 Julien Isorce <julien.isorce@collabora.co.uk>
4311 * omx/gstomxvideodec.c:
4312 omxvideodec: use new libgstgl API since libgstegl has been removed
4313 There is no point to retrieve a ref/unref type
4314 instead of an EGLDisplay directly. It's like for EGLImage.
4315 https://bugzilla.gnome.org/show_bug.cgi?id=703343
4317 2014-04-15 17:06:38 +0100 Julien Isorce <julien.isorce@collabora.co.uk>
4320 * examples/Makefile.am:
4322 * omx/gstomxvideodec.c:
4323 configure.ac: check for libgstgl since libgstegl has been removed
4324 https://bugzilla.gnome.org/show_bug.cgi?id=703343
4326 2014-04-09 18:52:16 +0200 Aurélien Zanelli <aurelien.zanelli@parrot.com>
4328 * omx/gstomxbufferpool.c:
4329 * omx/gstomxvideodec.c:
4330 omxvideodec: add support of more color format
4331 Add support for ABGR, ARGB, RGB16, BGR16, YUY2, UYVY, YVYU, GRAY8 and
4334 2014-04-09 18:51:57 +0200 Aurélien Zanelli <aurelien.zanelli@parrot.com>
4336 * omx/gstomxvideodec.c:
4337 omxvideodec: simplify color format conversion in fill_buffer function
4339 2014-04-09 18:51:41 +0200 Aurélien Zanelli <aurelien.zanelli@parrot.com>
4341 * omx/gstomxbufferpool.c:
4342 omxbufferpool: make video stride and offset calculation easier
4343 It will be easier to support more color format.
4345 2014-04-09 18:51:12 +0200 Aurélien Zanelli <aurelien.zanelli@parrot.com>
4347 * omx/gstomxvideo.c:
4348 * omx/gstomxvideo.h:
4349 * omx/gstomxvideodec.c:
4350 omx: add an helper to convert OMX color format to GStreamer color format
4352 2014-03-10 17:43:50 +0100 Josep Torra <n770galaxy@gmail.com>
4354 * examples/egl/testegl.c:
4355 * omx/gstomxvideodec.c:
4356 omxvideodec: Implement pipeline draining to support adaptive scenarios
4357 When draining due a format change also drain
4358 the pipeline to reclaim back all buffers.
4359 https://bugzilla.gnome.org/show_bug.cgi?id=726107
4361 2014-03-27 13:57:32 +0100 Josep Torra <n770galaxy@gmail.com>
4363 * examples/egl/testegl.c:
4364 examples: fix several memory leaks in the testegl example
4365 Ensure to call to image_data_free in order to release GPU resources.
4366 Also ensure to destroy EGLImage and GLTexture from proper
4368 https://bugzilla.gnome.org/show_bug.cgi?id=726107
4370 2014-03-25 17:16:31 +0000 Julien Isorce <julien.isorce@collabora.co.uk>
4372 * examples/egl/testegl.c:
4373 examples: keep a ref on the buffer instead of the memory
4375 https://bugzilla.gnome.org/show_bug.cgi?id=726107
4377 2014-03-07 20:08:05 +0100 Josep Torra <n770galaxy@gmail.com>
4379 * omx/gstomxvideodec.c:
4380 omxvideodec: fixes race condition during seeks
4381 Acording 6.1.3 Seek Event Sequence in the OpenMAX IL 1.1.2 spec
4382 document in order to flush the component it needs to be in
4384 https://bugzilla.gnome.org/show_bug.cgi?id=726038
4386 2014-01-29 18:31:26 +0000 Julien Isorce <julien.isorce@collabora.co.uk>
4388 * omx/gstomxvideodec.c:
4389 omxvideodec: use flush because reset is deprecated
4390 https://bugzilla.gnome.org/show_bug.cgi?id=726038
4392 2014-01-27 17:03:50 +0000 Julien Isorce <julien.isorce@collabora.co.uk>
4394 * omx/gstomxvideodec.c:
4395 omxvideodec: populate the most downstream output port on reset
4396 Make seeking work when using egl_render component
4397 https://bugzilla.gnome.org/show_bug.cgi?id=726038
4399 2014-03-24 17:49:59 +0100 Josep Torra <n770galaxy@gmail.com>
4401 * omx/gstomxbufferpool.c:
4402 omxbufferpool: return buffers to the pool instead of freeing them
4403 We have to return the buffers back to the pool in when stopping to
4404 not mess with the GstBufferPool accounting.
4405 The OMX buffers will be freed when those won't be in charge of the
4406 pool in the chained up call to 'stop'.
4407 Fixes segfaults on finalize and pool not being properly deactivated.
4408 https://bugzilla.gnome.org/show_bug.cgi?id=726337
4410 2014-03-19 12:12:49 +0100 Christian König <christian.koenig@amd.com>
4412 * omx/gstomxvideodec.c:
4413 omxvideodec: add missing unlock in the error path
4414 Signed-off-by: Christian König <christian.koenig@amd.com>
4415 https://bugzilla.gnome.org/show_bug.cgi?id=726958
4417 2014-03-18 23:36:59 +0100 Michal Lazo <xlazom00@gmail.com>
4419 * omx/gstomxh264enc.c:
4420 * omx/gstomxh264enc.h:
4423 2014-03-17 09:57:11 +0000 Julien Isorce <julien.isorce@collabora.co.uk>
4425 * omx/gstomxbufferpool.c:
4426 omxbufferpool: fix memory leak if used on output port
4427 When using GstOMXBufferPool on an output port, it internally uses
4428 a GPtrArray to manage the GstBuffers instead of the default queue
4429 from the GstBufferPool base class.
4430 In this case GstBufferPool::default_free_buffer is not called when
4431 the pool is stopped. Because the queue is empty. So explicitely
4432 call gst_omx_buffer_pool_free_buffer on each buffer contained in
4434 https://bugzilla.gnome.org/show_bug.cgi?id=726337
4436 2014-03-16 17:32:05 +0100 Sebastian Dröge <sebastian@centricular.com>
4438 * omx/gstomxh264enc.c:
4439 omxh264enc: Fix compiler warnings
4441 2014-03-16 17:19:08 +0100 Michal Lazo <xlazom00@gmail.com>
4443 * omx/gstomxh264enc.c:
4444 * omx/gstomxh264enc.h:
4445 omxh264enc: IDR interval, SPS and PPS headers for rpi
4446 https://bugzilla.gnome.org/show_bug.cgi?id=720031
4448 2014-03-13 14:26:58 +0100 Christian König <christian.koenig@amd.com>
4452 * omx/gstomxvideo.c:
4453 omxvideo: fix debug category initialisation
4454 https://bugzilla.gnome.org/show_bug.cgi?id=726024
4456 2014-03-13 19:04:47 +0100 Christian König <christian.koenig@amd.com>
4458 * omx/gstomxbufferpool.h:
4459 omxbufferpool: add proper type definitions
4460 https://bugzilla.gnome.org/show_bug.cgi?id=726325
4462 2014-03-02 10:30:04 +0100 Christian König <christian.koenig@amd.com>
4465 omx: consolidate message waiting code
4466 Add a wait_message helper function and remove all those duplicated code.
4467 https://bugzilla.gnome.org/show_bug.cgi?id=725493
4469 2014-03-12 12:48:12 +0100 Sebastian Dröge <sebastian@centricular.com>
4471 * omx/gstomxvideo.c:
4472 omx: Copy old copyright notice into the new file
4474 2014-03-12 12:47:34 +0100 Sebastian Dröge <sebastian@centricular.com>
4476 * omx/gstomxvideo.c:
4477 * omx/gstomxvideo.h:
4478 * omx/gstomxvideodec.c:
4479 * omx/gstomxvideoenc.c:
4480 omx: Rename function from _4_ to _for_ for clarity
4482 2014-03-03 16:15:24 +0100 Christian König <christian.koenig@amd.com>
4485 * omx/gstomxvideo.c:
4486 * omx/gstomxvideo.h:
4487 * omx/gstomxvideodec.c:
4488 * omx/gstomxvideoenc.c:
4489 omxvideo: start sharing more code between video decoder and encoder
4490 Identical functionality spread of two different components.
4491 We can't use a common base class because of different inheritance,
4492 but let's try to share the code anyway.
4493 https://bugzilla.gnome.org/show_bug.cgi?id=726024
4495 2014-03-12 12:43:49 +0100 Sebastian Dröge <sebastian@centricular.com>
4497 * examples/egl/Makefile.am:
4498 examples: Only build RPi EGL example if RPi was chosen as target
4500 2014-03-12 12:42:23 +0100 Sebastian Dröge <sebastian@centricular.com>
4502 * omx/gstomxbufferpool.h:
4503 omxbufferpool: Fix header include guard
4505 2014-03-05 11:41:02 +0100 Christian König <christian.koenig@amd.com>
4508 * omx/gstomxbufferpool.c:
4509 * omx/gstomxbufferpool.h:
4510 * omx/gstomxvideodec.c:
4511 omxvideodec: separate the buffer pool from the decoder
4512 https://bugzilla.gnome.org/show_bug.cgi?id=726025
4514 2014-03-04 17:41:20 +0100 Christian König <christian.koenig@amd.com>
4518 * omx/gstomxvideodec.c:
4519 omx: simplify tunnel functions
4520 Specifying the component is error prone and unnecessary.
4521 https://bugzilla.gnome.org/show_bug.cgi?id=726021
4523 2014-03-07 17:12:24 +0100 Christian König <christian.koenig@amd.com>
4525 * omx/gstomxvideodec.c:
4526 omxvideodec: fix memory leak in gst_omx_video_dec_allocate_output_buffers
4527 https://bugzilla.gnome.org/show_bug.cgi?id=725907
4529 2014-03-07 13:18:49 +0100 Christian König <christian.koenig@amd.com>
4531 * omx/gstomxvideodec.c:
4532 omxvideodec: fix memory leak gst_omx_video_dec_negotiate
4533 https://bugzilla.gnome.org/show_bug.cgi?id=725907
4535 2014-03-05 18:54:05 +0100 Christian König <christian.koenig@amd.com>
4537 * omx/gstomxvideoenc.c:
4538 omxvideoenc: fix a memory leak in gst_omx_video_enc_getcaps
4539 https://bugzilla.gnome.org/show_bug.cgi?id=725826
4541 2014-03-05 17:43:33 +0100 Josep Torra <n770galaxy@gmail.com>
4544 Makefile.am: build examples
4545 There's no reason to not build the examples now that are ported to 1.x.
4547 2014-03-05 17:25:09 +0100 Josep Torra <n770galaxy@gmail.com>
4549 * examples/egl/testegl.c:
4550 examples: avoid a clashing name with the recently added GstEGLImagePool
4551 Fixes build with current master.
4553 2013-09-05 03:41:10 -0600 Christian König <christian.koenig@amd.com>
4555 * omx/gstomxvideoenc.c:
4556 omxvideoenc: simplify _find_nearest_frame
4557 Just the same as we did with the decoder. Also give the
4558 function a gst_omx_video_enc prefix to distinct it from
4559 the decoder function.
4560 https://bugzilla.gnome.org/show_bug.cgi?id=724236
4562 2013-09-05 02:23:39 -0600 Christian König <christian.koenig@amd.com>
4564 * omx/gstomxvideodec.c:
4565 omxvideodec: simplify _find_nearest_frame
4566 No need to make it more complicated and error prone than
4567 necessary. Also give the function a gst_omx_video_dec prefix
4568 to distinct it from the encoder function.
4569 https://bugzilla.gnome.org/show_bug.cgi?id=724236
4571 2013-09-05 02:05:52 -0600 Christian König <christian.koenig@amd.com>
4573 * omx/gstomxvideodec.c:
4574 omxvideodec: remove dead code
4575 This code doesn't seems to be used for quite a while,
4576 remove it before it starts to rot.
4577 https://bugzilla.gnome.org/show_bug.cgi?id=724236
4579 2014-03-01 22:28:24 +0100 Christian König <christian.koenig@amd.com>
4582 omx: fix two serious message handling bugs
4583 Waiting for the next message if we already got one
4584 is nonsense and can lead to lockups.
4585 https://bugzilla.gnome.org/show_bug.cgi?id=725468
4587 2014-03-01 18:49:41 +0100 Christian König <christian.koenig@amd.com>
4589 * omx/gstomxvideoenc.c:
4590 omxvideoenc: fix startup race condition
4591 The reset function shouldn't start the src pad
4592 loop if it wasn't started before.
4593 Signed-off-by: Christian König <christian.koenig@amd.com>
4595 2014-03-01 18:48:17 +0100 Christian König <christian.koenig@amd.com>
4597 * omx/gstomxvideodec.c:
4598 omxvideodec: fix startup race condition
4599 The reset function shouldn't start the src pad
4600 loop if it wasn't started before.
4601 Signed-off-by: Christian König <christian.koenig@amd.com>
4603 2014-02-28 09:36:13 +0100 Sebastian Dröge <sebastian@centricular.com>
4606 Automatic update of common submodule
4607 From fe1672e to bcb1518
4609 2014-02-26 22:15:00 +0100 Stefan Sauer <ensonic@users.sf.net>
4612 Automatic update of common submodule
4613 From 1a07da9 to fe1672e
4615 2014-01-30 10:45:18 +0100 Edward Hervey <bilboed@bilboed.com>
4618 Automatic update of common submodule
4619 From d48bed3 to 1a07da9
4621 2014-01-25 17:44:14 +0100 Sebastian Dröge <sebastian@centricular.com>
4623 * omx/gstomxaudioenc.c:
4624 * omx/gstomxvideodec.c:
4625 * omx/gstomxvideoenc.c:
4626 omx: Don't handle FLUSHING and NOT_LINKED as errors
4627 Also don't stop the task on NOT_LINKED. We're not a demuxer.
4629 2013-12-22 22:35:31 +0000 Tim-Philipp Müller <tim@centricular.com>
4632 Automatic update of common submodule
4633 From dbedaa0 to d48bed3
4635 2013-11-05 11:22:02 +0000 Tim-Philipp Müller <tim@centricular.com>
4638 Automatic update of common submodule
4639 From 865aa20 to dbedaa0
4641 2013-09-28 13:32:37 +0200 Josep Torra <n770galaxy@gmail.com>
4643 * examples/egl/testegl.c:
4644 examples: simplify the thread synchronization code
4645 Make everithing more simple and fix the races conditions remaining in
4646 the previous approaches.
4648 2013-09-25 19:17:17 +0200 Sebastian Dröge <slomo@circular-chaos.org>
4650 * config/rpi/gstomx.conf:
4651 rpi: The WMV/VC1 decoder can only do WMV9 and VC1, no older versions
4653 2013-09-24 18:34:42 +0100 Tim-Philipp Müller <tim@centricular.net>
4656 Automatic update of common submodule
4657 From 6b03ba7 to 865aa20
4659 2013-09-24 18:48:24 +0200 Josep Torra <n770galaxy@gmail.com>
4661 * examples/egl/testegl.c:
4662 examples: fix another race condition
4663 Fix a race condition that caused randome deadlocks on EOS.
4665 2013-09-20 17:19:53 +0200 Josep Torra <n770galaxy@gmail.com>
4667 * config/rpi/gstomx.conf:
4668 rpi: fix a copy paste error in the config file
4670 2013-09-20 17:09:52 +0200 Josep Torra <n770galaxy@gmail.com>
4672 * examples/egl/testegl.c:
4673 examples: fix a race condition when seeking
4674 Fixes a race condition that caused pipeline deadlock during seeks.
4676 2013-09-20 10:38:12 +0200 Josep Torra <n770galaxy@gmail.com>
4678 * examples/egl/testegl.c:
4679 examples: display QoS statistics
4681 2013-09-20 09:34:37 +0200 Josep Torra <n770galaxy@gmail.com>
4683 * examples/egl/testegl.c:
4684 examples: use dedicated thread for rendering the scene
4685 Produces smother animation and prevents dropping frames due busy
4688 2013-09-20 08:25:21 +0200 Josep Torra <n770galaxy@gmail.com>
4690 * examples/egl/testegl.c:
4691 examples: don't force an specific audio sink
4692 Let playbin2 choose the audiosink available in the system.
4694 2013-09-20 08:19:48 +0200 Josep Torra <n770galaxy@gmail.com>
4696 * examples/egl/Makefile.am:
4697 examples: drop remnants of initial appsink attempt
4699 2013-09-20 16:18:18 +0200 Edward Hervey <edward@collabora.com>
4702 Automatic update of common submodule
4703 From b613661 to 6b03ba7
4705 2013-09-19 18:45:36 +0100 Tim-Philipp Müller <tim@centricular.net>
4708 Automatic update of common submodule
4709 From 74a6857 to b613661
4711 2013-09-19 17:38:30 +0100 Tim-Philipp Müller <tim@centricular.net>
4714 Automatic update of common submodule
4715 From 01a7a46 to 74a6857
4717 2013-08-20 16:00:07 +0100 Tim-Philipp Müller <tim@centricular.net>
4720 * omx/gstomxvideodec.c:
4721 omx: don't use the 'z' modifier to print size_t
4722 gcc will warn in some cases even if the size of the type
4723 is exactly that of size_t on the platform.
4724 https://bugzilla.gnome.org/show_bug.cgi?id=699008
4726 2013-07-01 15:48:47 +0200 Roman Arutyunyan <arutyunyan.roman@gmail.com>
4728 * omx/gstomxvideoenc.c:
4729 gstomxvideoenc: Set bitrate in setcaps
4730 Otherwise it gets lost whenever we configure new caps
4731 https://bugzilla.gnome.org/show_bug.cgi?id=698049
4733 2013-06-30 18:17:05 +0700 Ilya Smelykh <ilya@videoexpertsgroup.com>
4735 * examples/egl/testegl.c:
4736 examples: enable audio in testegl example
4738 2013-06-12 09:38:22 +0200 Sebastian Dröge <slomo@circular-chaos.org>
4741 configure: Allow build without gstreamer-egl
4743 2013-06-07 12:39:18 +0700 Ilya Smelykh <ilya@videoexpertsgroup.com>
4745 * examples/egl/Makefile.am:
4746 * examples/egl/testegl.c:
4747 examples: testegl example port to 1.x
4748 https://bugzilla.gnome.org/show_bug.cgi?id=701706
4750 2013-06-05 15:17:16 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
4753 Automatic update of common submodule
4754 From 098c0d7 to 01a7a46
4756 2013-05-20 12:06:34 +0200 Josep Torra <n770galaxy@gmail.com>
4758 * omx/gstomxaudioenc.c:
4759 * omx/gstomxvideodec.c:
4760 * omx/gstomxvideoenc.c:
4761 omx: Take lock on EOS to update the flow return value
4762 Fixes "GThread-ERROR **: file gthread-posix.c: line 171
4763 (g_mutex_free_posix_impl): error 'Device or resource busy' during
4764 'pthread_mutex_destroy ((pthread_mutex_t *) mutex)'" in _finalize.
4766 2013-05-15 10:54:12 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
4769 Automatic update of common submodule
4770 From 5edcd85 to 098c0d7
4772 2013-04-11 17:35:19 +0200 Josep Torra <n770galaxy@gmail.com>
4776 * examples/Makefile.am:
4777 * examples/egl/Makefile.am:
4778 * examples/egl/cube_texture_and_coords.h:
4779 * examples/egl/testegl.c:
4780 examples: add an example aplication based OpenGL ES + EGL
4781 Application that shows how to integrate playbin with an OpenGL ES
4782 scene through EGL. Renders a video on the surfaces of an animated cube.
4783 The code is not ported to 1.x so it's not built by default.
4785 2013-05-10 12:25:07 +0200 Josep Torra <n770galaxy@gmail.com>
4787 * omx/gstomxvideodec.c:
4788 omxvideodec: Redesign video size change reconfiguration code
4789 Ensure stop the decoder before clossing the tunnel.
4791 2013-05-06 16:25:27 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
4794 Makefile.am: Add -I common/m4
4795 This allows autoreconf to work correctly and automatic regeneration
4796 of autotools files if something changed.
4798 2013-05-06 19:03:59 +0530 jitendra <jvarshney20@gmail.com>
4802 * omx/gstomxaudioenc.c:
4803 * omx/gstomxvideodec.c:
4804 * omx/gstomxvideoenc.c:
4805 omx: Add pads based on element type
4806 This allows to later add sources and sink that only have a srcpad
4808 https://bugzilla.gnome.org/show_bug.cgi?id=699754
4810 2013-04-27 02:50:25 +0200 Carlos Rafael Giani <dv@pseudoterminal.org>
4813 omx: fixed type error in printf call
4815 https://bugzilla.gnome.org/show_bug.cgi?id=699008
4817 2013-04-08 17:26:16 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
4821 * omx/gstomxvideodec.c:
4822 Check for gstreamer-egl
4823 And don't use if not available.
4824 https://bugzilla.gnome.org/show_bug.cgi?id=697574
4826 2013-04-23 09:53:18 +0100 Tim-Philipp Müller <tim@centricular.net>
4829 configure: error out if no OMX target has been set explicitly with --with-omx-target=x
4830 Avoids people building for e.g. the Raspberry Pi and then wondering
4831 why things don't work as expected (since structs are packed differently
4834 2013-04-22 23:55:03 +0100 Tim-Philipp Müller <tim@centricular.net>
4837 Automatic update of common submodule
4838 From 3cb3d3c to 5edcd85
4840 2013-04-18 22:07:28 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
4843 * omx/gstomxaudioenc.c:
4844 * omx/gstomxh263enc.c:
4845 * omx/gstomxh264enc.c:
4846 * omx/gstomxmpeg4videoenc.c:
4847 * omx/gstomxvideodec.c:
4848 * omx/gstomxvideoenc.c:
4849 omx: more printf format fixes
4850 Fix printf formats again, so that gst-omx compiles warning-
4851 free on the Raspberry Pi as well. Unfortunately OMX_UINT32
4852 maybe be typedefed to uint32_t or unsigned long, which
4853 doesn't work well with our debugging printf format strings,
4854 so just use %u for those and cast to guint.
4856 2013-04-18 16:40:06 +0200 Josep Torra <n770galaxy@gmail.com>
4859 omx: fixes unused variable 'comp' when GStreamer is built without debug
4861 2013-04-18 16:03:56 +0200 Josep Torra <n770galaxy@gmail.com>
4863 * omx/gstomxvideodec.c:
4864 omxvideodec: don't use 'self->dec_out_port' anymore and use just 'port'
4865 Fixes some criticals.
4867 2013-04-18 15:21:32 +0200 Josep Torra <n770galaxy@gmail.com>
4869 * omx/gstomxvideodec.c:
4870 omxvideodec: fixes 'port' may be used uninitialized in this function
4872 2013-04-18 12:03:31 +0200 Josep Torra <n770galaxy@gmail.com>
4874 * omx/gstomxvideodec.c:
4875 omxvideodec: silence warnings building for RPI related to 'vcos_*'
4877 2013-04-18 11:19:52 +0200 Josep Torra <n770galaxy@gmail.com>
4879 * omx/gstomxvideodec.c:
4880 omxvideodec: Use new type from libgstvideo
4882 2013-04-16 14:50:49 +0530 jitendra <jvarshney20@gmail.com>
4884 * omx/gstomxaudioenc.c:
4885 * omx/gstomxvideodec.c:
4886 * omx/gstomxvideoenc.c:
4887 omx: Disable output port before transition to idle state
4888 https://bugzilla.gnome.org/show_bug.cgi?id=698109
4890 2012-10-24 12:19:41 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
4893 gst: Add better support for static plugins
4895 2013-04-14 17:57:34 +0100 Tim-Philipp Müller <tim@centricular.net>
4898 Automatic update of common submodule
4899 From aed87ae to 3cb3d3c
4901 2013-04-12 17:58:30 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
4904 configure: add --disable-fatal-warnings for disabling -Werror
4906 2013-04-09 21:02:09 +0200 Stefan Sauer <ensonic@users.sf.net>
4909 Automatic update of common submodule
4910 From 04c7a1e to aed87ae
4912 2013-04-08 17:02:32 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
4915 * omx/gstomxaudioenc.c:
4916 * omx/gstomxh263enc.c:
4917 * omx/gstomxh264enc.c:
4918 * omx/gstomxmpeg4videoenc.c:
4919 * omx/gstomxvideodec.c:
4920 * omx/gstomxvideoenc.c:
4921 omx: fix printf formats in debug messages
4922 OMX_U32 is typedefed to an unsigned long,
4923 OMX_TICKS to a 64-bit integer.
4925 2013-04-08 16:52:19 +0200 Josep Torra <n770galaxy@gmail.com>
4927 * omx/gstomxvideodec.c:
4928 omxvideodec: use the correct printf format in a debug message
4930 2013-04-08 16:31:33 +0200 Josep Torra <n770galaxy@gmail.com>
4932 * omx/gstomxvideodec.c:
4933 omxvideodec: use the correct OMX_IndexParam value
4934 Fixes playback is not smooth in the EGL path.
4936 2013-04-05 13:45:24 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
4938 * omx/gstomxvideodec.c:
4939 omxvideodec: Don't use API that is not in master yet
4940 It's not really needed here yet, will be needed in future versions
4942 2013-02-25 11:55:04 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
4948 * omx/gstomxvideodec.c:
4949 * omx/gstomxvideodec.h:
4950 omxvideodec: Add support for egl_render on RPi
4952 2013-03-22 19:26:54 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
4957 2013-03-22 19:23:14 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
4959 * omx/gstomxh263enc.c:
4960 * omx/gstomxh264enc.c:
4961 * omx/gstomxmpeg4videoenc.c:
4962 omx: fix compiler warnings when compiling with -DG_DISABLE_ASSERT
4963 As we do for releases. Fixes 'variable may be used uninitialized'
4966 === release 1.0.0 ===
4968 2013-03-22 17:16:33 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
4979 2013-03-19 16:40:09 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
4981 * omx/gstomxtheoradec.h:
4982 * omx/gstomxvp8dec.h:
4983 omx: fix typo in copyright headers
4985 2013-03-19 13:46:33 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
4987 * config/rpi/gstomx.conf:
4988 rpi: Fix commit that added the VC1 decoder
4990 2013-03-19 13:27:35 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
4992 * config/rpi/gstomx.conf:
4993 * omx/gstomxh263dec.c:
4994 * omx/gstomxh264dec.c:
4995 * omx/gstomxmjpegdec.c:
4996 * omx/gstomxmpeg2videodec.c:
4997 * omx/gstomxmpeg4videodec.c:
4998 * omx/gstomxtheoradec.c:
4999 * omx/gstomxvideodec.c:
5000 * omx/gstomxvp8dec.c:
5001 * omx/gstomxwmvdec.c:
5002 omx: Add more constraints to the default sink template caps
5004 2013-03-19 13:10:39 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5006 * config/rpi/gstomx.conf:
5007 rpi: Add VC1/WMV3 decoder
5008 WMV2 and WMV1 (aka WMV 1-8) are not supported by RPi.
5010 2013-03-19 12:59:20 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5012 * config/rpi/gstomx.conf:
5013 rpi: Add MJPEG decoder
5015 2013-03-19 12:56:50 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5017 * config/rpi/gstomx.conf:
5018 rpi: Add VP8 decoder
5020 2013-03-19 12:55:09 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5022 * omx/gstomxvideodec.c:
5023 omxvideodec: Set ENDOFFRAME flag for the end of frames
5025 2013-03-19 12:28:50 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5027 * config/rpi/gstomx.conf:
5028 rpi: Add Theora decoder to the config
5030 2013-03-19 09:36:18 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5035 * omx/gstomxtheoradec.c:
5036 * omx/gstomxtheoradec.h:
5037 omx: Add Theora decoder
5039 2013-03-18 16:43:24 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5042 omx: Remove additional comma
5044 2013-03-18 16:34:21 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5046 * config/rpi/gstomx.conf:
5049 * omx/gstomxmpeg2dec.h:
5050 * omx/gstomxmpeg2videodec.c:
5051 * omx/gstomxmpeg2videodec.h:
5052 omx: Rename MPEG2 decoder for consistency everywhere
5054 2013-03-18 16:30:40 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5058 * omx/gstomxmjpegdec.c:
5059 * omx/gstomxmjpegdec.h:
5060 omx: Add MJPEG decoder support
5062 2013-03-18 16:06:54 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5067 * omx/gstomxvp8dec.c:
5068 * omx/gstomxvp8dec.h:
5069 omx: Add VP8 decoder support
5071 2013-03-18 15:44:23 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5073 * config/rpi/gstomx.conf:
5074 rpi: Add h263 decoder and rename MPEG2 decoder for consistency
5076 2013-03-16 13:20:27 +0000 Tim-Philipp Müller <tim@centricular.net>
5078 * omx/gstomxmpeg2dec.c:
5079 omxmpeg2dec: mpeg-2 decoder should be able to handle mpeg-1 too
5080 https://bugzilla.gnome.org/show_bug.cgi?id=695879
5082 2013-03-16 10:13:06 +0100 Josep Torra <n770galaxy@gmail.com>
5085 omx: minor stylistic change for consistency with other similar code
5087 2013-03-16 10:00:24 +0100 Josep Torra <n770galaxy@gmail.com>
5089 * omx/gstomxaudioenc.c:
5090 * omx/gstomxvideodec.c:
5091 * omx/gstomxvideoenc.c:
5092 omx: Clarify that loop task is also paused in EOS
5094 2013-03-16 09:59:01 +0100 Josep Torra <n770galaxy@gmail.com>
5096 * omx/gstomxvideoenc.c:
5097 omxvideoenec: Don't forget propagate flow return value upstream
5099 2013-03-15 13:16:39 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
5102 omx: improve debug logging some more
5104 2013-03-15 14:09:45 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5106 * omx/gstomxvideodec.c:
5107 omxvideodec: Make sure that the first frame we pass to OpenMAX is a sync frame
5109 2013-03-15 11:46:34 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5111 * omx/gstomxaudioenc.c:
5112 * omx/gstomxvideodec.c:
5113 * omx/gstomxvideoenc.c:
5114 omx: Stop output port task after draining
5116 2013-03-15 10:58:58 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5119 omx: Reset EOS flag in more places
5121 2013-03-15 10:38:43 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5123 * omx/gstomxvideodec.c:
5124 omxvideodec: Deallocate output buffers with the right function
5126 2013-03-15 01:06:05 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
5130 omx: log commands as strings
5131 Makes logs easier to read.
5133 2013-03-15 00:47:47 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
5137 omx: log states as strings
5139 2013-03-15 00:28:02 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
5143 omx: log component name in debug messages
5144 Useful when we have more different components
5145 active at the same time.
5147 2013-03-15 09:51:42 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5149 * omx/gstomxvideodec.c:
5150 omxvideodec: Don't interpolate timestamps
5151 We will get exactly one frame per input buffer and assigning
5152 timestamps between frames if more than one OMX buffer is required
5153 per frame easily confuses timestamp tracking in OMX.
5155 2013-03-15 09:32:42 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5157 * omx/gstomxvideodec.c:
5158 omxvideodec: Give the codec_data the timestamp of the first frame and no duration
5160 2013-03-14 17:31:17 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5162 * config/rpi/gstomx.conf:
5163 omx: The MPEG4 encoder is not available on RPi and probably never will
5165 2013-03-14 17:26:30 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5168 omx: Reset some more buffer fields as required
5170 2013-03-14 17:01:08 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5172 * config/rpi/gstomx.conf:
5174 omx: The hack to disable usage of EOS buffers is not necessary anymore on RPi
5176 2013-03-14 17:00:12 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5179 omx: Reset the flags for output ports when releasing a buffer, not for input ports
5181 2013-03-14 15:03:02 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5183 * omx/gstomxh263enc.c:
5184 * omx/gstomxh264enc.c:
5185 * omx/gstomxmpeg4videoenc.c:
5186 omx: Only unref caps after usage of its fields
5188 2013-03-14 14:51:32 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5190 * omx/gstomxvideodec.c:
5191 omxvideodec: Simplify bufferpool implementation
5193 2013-03-13 13:23:35 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5195 * omx/gstomxvideodec.c:
5196 omxvideodec: Improve min/max buffer counts handling
5198 2013-03-14 12:49:42 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5202 * omx/gstomxaudioenc.c:
5203 * omx/gstomxvideodec.c:
5204 * omx/gstomxvideoenc.c:
5205 omx: Handle the OMX_EventBufferFlag to detect EOS too
5207 2013-03-13 10:29:23 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5211 omx: Mark OpenMAX buffers as EGLImage if they contain one
5212 Needs special handling in some places, e.g. because nFilledLen
5215 2013-03-13 10:21:49 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5217 * omx/gstomxvideoenc.c:
5218 omxvideoenc: Properly check the nVersion field
5220 2013-03-13 09:34:43 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5222 * omx/gstomxvideoenc.c:
5223 omxvideoenc: RPi returns garbage for OMX_IndexParamVideoBitrate, work around that
5225 2013-03-12 20:02:53 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5227 * omx/gstomxvideodec.c:
5228 omxvideodec: Make sure to always get the right buffer
5230 2013-03-12 19:35:39 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5232 * omx/gstomxvideodec.c:
5233 omxvideodec: Make sure the buffer is released to the pool if it's not the one we wanted
5235 2013-03-12 19:17:08 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5237 * omx/gstomxvideodec.c:
5238 omxvideodec: Drop too late frames instead of finishing them
5240 2013-03-12 19:16:46 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5242 * omx/gstomxvideodec.c:
5243 omx: Release buffers to the correct port
5245 2013-03-13 09:37:02 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5248 omx: Always load the OpenMAX IL cores with G_MODULE_BIND_LOCAL
5250 2013-03-12 18:20:22 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5253 omx: Lazy-load symbols of libbcm_host.so
5254 It exports eglIntOpenMAXILDoneMarker(), which is also
5255 exported by libopenmaxil.so... but we need the version
5256 from libopenmaxil.so as the other one is just a stub.
5258 2013-03-11 13:59:15 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5260 * omx/gstomxaacenc.c:
5261 * omx/gstomxh263enc.c:
5262 * omx/gstomxmpeg4videoenc.c:
5263 omx: Don't set profile/level in other encoders if downstream caps don't specify any
5265 2013-03-11 13:49:38 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5267 * omx/gstomxh264enc.c:
5268 omxh264enc: If caps specify no profile/level use the component's defaults
5270 2013-03-11 13:45:04 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5272 * omx/gstomxvideoenc.c:
5273 omxvideoenc: Always allocate output buffers from the loop function
5275 2013-03-11 13:12:57 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5277 * omx/gstomxh264enc.c:
5278 omxh264enc: The h264 encoders are supposed to output byte-stream/au
5280 2013-03-11 11:47:42 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5282 * omx/gstomxvideoenc.c:
5283 omxvideoenc: Wait until the Executing state is reached before passing buffers to the component
5285 2013-03-11 10:39:25 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5287 * omx/gstomxvideodec.c:
5288 omxvideodec: Don't provide buffers to downstream
5289 This only works reliable if we have a way to tell downstream to
5290 release all our buffers for reconfiguration.
5292 2013-03-11 10:29:44 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5294 * omx/gstomxaudioenc.c:
5295 omxaudioenc: Disable output port when setting a new format
5297 2013-03-11 10:29:30 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5299 * omx/gstomxvideoenc.c:
5300 omxvideoenc: Disable output port when setting a new format
5302 2013-03-11 10:22:07 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5304 * omx/gstomxvideodec.c:
5305 omxvideodec: Disable output port when setting a new format
5306 Based on a patch by Josep Torra <n770galaxy@gmail.com>
5308 2013-03-11 10:04:10 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5310 * omx/gstomxaudioenc.c:
5311 * omx/gstomxvideodec.c:
5312 * omx/gstomxvideoenc.c:
5313 omx: Catch errors when releasing buffers to a port and handle them
5315 2013-03-10 12:09:23 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5317 * omx/gstomxvideoenc.c:
5318 omxvideoenc: Use the correct video codec state when filling an input buffer
5320 2013-03-10 12:05:50 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5322 * omx/gstomxvideoenc.c:
5323 omxvideoenc: Store correct input state
5325 2013-03-10 11:27:34 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5327 * omx/gstomxvideoenc.c:
5328 omxvideoenc: Allocate output buffers as early as possible
5330 2013-03-10 11:01:57 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5333 omx: Log unknown events
5335 2013-03-09 14:14:40 +0100 Josep Torra <n770galaxy@gmail.com>
5337 * omx/gstomxaudioenc.c:
5338 * omx/gstomxvideodec.c:
5339 * omx/gstomxvideoenc.c:
5340 omx: Fix deadlock in encoders and add explainatory comments.
5342 2013-03-09 13:27:08 +0100 Josep Torra <n770galaxy@gmail.com>
5344 * omx/gstomxvideodec.c:
5345 omxvideodec: fix printf format identifier
5347 2013-03-09 13:07:59 +0100 Josep Torra <n770galaxy@gmail.com>
5349 * omx/gstomxvideodec.c:
5350 omx: Minor changes on debuging info
5352 2013-03-09 13:00:33 +0100 Josep Torra <n770galaxy@gmail.com>
5354 * omx/gstomxvideodec.c:
5355 omxvideodec: avoid a deadlock
5357 2013-03-08 15:56:40 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5359 * omx/gstomxvideodec.c:
5360 omxvideodec: Don't forget to populate output port
5362 2013-03-08 15:11:27 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5364 * omx/gstomxaudioenc.c:
5365 * omx/gstomxvideodec.c:
5366 * omx/gstomxvideoenc.c:
5367 omx: Flush and stop srcpad when configuring new caps
5369 2013-03-07 17:40:21 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5371 * config/rpi/gstomx.conf:
5373 Revert "omx: use no-component-reconfigure hack on the Raspberry PI"
5374 This reverts commit e123b2089f69a413241f30a2428ea6edd8f231e7.
5375 It's not required anymore after the fix from the last commit.
5377 2013-03-07 17:38:40 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5379 * omx/gstomxvideodec.c:
5380 omxvideodec: Only negotiate a color format with downstream on the initial caps
5382 2013-03-07 17:29:43 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5384 * omx/gstomxvideodec.c:
5385 omxvideodec: Make sure the output port is disabled while we allocate buffers
5387 2013-03-07 17:27:05 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5390 omx: Also wait for disabled output ports to be reconfigured
5392 2013-03-07 14:10:12 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5394 * omx/gstomxvideodec.c:
5395 * omx/gstomxvideodec.h:
5396 omxvideodec: Add buffer pool for sharing OpenMAX memory with downstream
5398 2013-03-07 11:11:58 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5402 * omx/gstomxaudioenc.c:
5403 * omx/gstomxvideodec.c:
5404 * omx/gstomxvideoenc.c:
5405 omx: Add timeout to the flush operation and move buffer populating to a separate function
5407 2013-03-06 17:33:23 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5409 * config/rpi/gstomx.conf:
5412 omx: Remove min buffer count hack for RPi again
5413 It's not necessary anymore
5415 2013-03-06 17:05:51 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5419 * omx/gstomxaudioenc.c:
5420 * omx/gstomxvideodec.c:
5421 * omx/gstomxvideoenc.c:
5422 omx: Do number of buffers configuration explicitely
5424 2013-03-07 11:24:54 +0100 Josep Torra <n770galaxy@gmail.com>
5426 * omx/gstomxvideodec.c:
5427 omxvideodec: fixes reconfiguration
5428 Avoid having fixed fields from previous caps on reconfiguration.
5430 2013-03-07 11:02:39 +0100 Josep Torra <n770galaxy@gmail.com>
5432 * config/rpi/gstomx.conf:
5434 omx: use no-component-reconfigure hack on the Raspberry PI
5436 2013-03-07 00:03:28 +0000 Tim-Philipp Müller <tim@centricular.net>
5439 Automatic update of common submodule
5440 From 2de221c to 04c7a1e
5442 2013-03-01 15:32:47 +0100 Josep Torra <n770galaxy@gmail.com>
5444 * omx/gstomxvideoenc.h:
5445 omxvideoenc: drop unused data member
5447 2013-03-01 12:23:54 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5449 * omx/gstomxh263enc.c:
5450 * omx/gstomxh264enc.c:
5451 * omx/gstomxmpeg4videoenc.c:
5452 omxvideoenc: And set it actually on the right port
5454 2013-03-01 12:18:08 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5456 * omx/gstomxh263enc.c:
5457 * omx/gstomxh264enc.c:
5458 * omx/gstomxmpeg4videoenc.c:
5459 omxvideoenc: Set the coding type in the subclasses to the specific codec
5461 2013-03-01 11:49:53 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5463 * omx/gstomxvideoenc.c:
5464 omxvideoenc: gst_omx_port_update_port_definition() returns a OMX_ERRORTYPE, not a gboolean
5466 2013-03-01 11:44:17 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5468 * omx/gstomxvideodec.c:
5469 * omx/gstomxvideoenc.c:
5470 omxvideo{dec,enc}: Don't use the input state if it wasn't set yet
5472 2013-03-01 11:25:04 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5474 * omx/gstomxaudioenc.c:
5475 omxaudioenc: Only enable the output port after we know the output format
5477 2013-03-01 11:24:56 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5479 * omx/gstomxvideoenc.c:
5480 omxvideoenc: Only enable the output port after we know the output format
5482 2013-02-28 17:02:31 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5484 * omx/gstomxvideodec.c:
5485 omxvideodec: Only enable the output port after we know the output format
5487 2013-03-01 11:18:18 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5491 omx: Handle errors more gracefully
5493 2013-02-28 15:48:53 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5497 * omx/gstomxaudioenc.c:
5498 * omx/gstomxh263dec.c:
5499 * omx/gstomxh264dec.c:
5500 * omx/gstomxmpeg2dec.c:
5501 * omx/gstomxmpeg4videodec.c:
5502 * omx/gstomxvideodec.c:
5503 * omx/gstomxwmvdec.c:
5504 omx: Return the OMX_ERRORTYPE from gst_omx_port_update_port_definition
5506 2013-02-28 15:37:53 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5509 omx: Return port definition update errors
5511 2013-02-28 13:57:43 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5513 * config/rpi/gstomx.conf:
5516 omx: Add hack for RPi for the minimum number of buffers required for a port
5517 The value in the port definition is invalid and the initial actual
5518 buffer count should be used.
5520 2013-02-28 13:26:56 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5523 omx: Always tell the component about the right number of buffers that we're going to allocate
5525 2013-02-28 13:07:58 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5528 omx: Invert assertion to let it express what was intended
5530 2013-02-28 11:19:07 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5534 * omx/gstomxaudioenc.c:
5535 * omx/gstomxvideodec.c:
5536 * omx/gstomxvideoenc.c:
5537 omx: Add API for allocating a specific number of buffers and using EGLImages or buffers allocated elsewhere
5539 2013-02-27 16:55:16 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5541 * omx/gstomxaudioenc.c:
5542 * omx/gstomxvideodec.c:
5543 * omx/gstomxvideoenc.c:
5544 omx: Refactor code flow a bit if output port settings have changed
5546 2013-02-27 15:49:56 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5550 * omx/gstomxaudioenc.c:
5551 * omx/gstomxvideodec.c:
5552 * omx/gstomxvideoenc.c:
5553 omx: Clean up port settings change handling
5555 2013-02-27 11:30:14 +0100 Josep Torra <n770galaxy@gmail.com>
5557 * omx/gstomxvideodec.c:
5558 omxvideodec: initialize param structure before using it
5560 2013-02-27 10:21:39 +0100 Josep Torra <n770galaxy@gmail.com>
5562 * omx/gstomxvideoenc.c:
5563 omxvideoenc: prevent a NULL pointer access
5565 2013-02-26 17:25:49 +0100 Josep Torra <n770galaxy@gmail.com>
5567 * omx/gstomxvideodec.c:
5568 omxvideodec: prevent a NULL pointer access
5570 2013-02-25 13:11:16 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5573 omx: Fix deadlock during reconfiguration
5575 2013-02-25 12:38:27 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5578 * omx/gstomxaudioenc.c:
5579 * omx/gstomxvideodec.c:
5580 * omx/gstomxvideoenc.c:
5581 omx: Auto-detect the port indizes if possible
5583 2013-02-25 11:42:38 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5585 * omx/gstomxvideodec.c:
5586 * omx/gstomxvideoenc.c:
5587 omx: Refactor querying of component supported caps into its own function
5589 2013-02-25 10:41:12 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5593 * omx/gstomxaudioenc.c:
5594 * omx/gstomxvideodec.c:
5595 * omx/gstomxvideoenc.c:
5596 omx: Refactor waiting for buffers to be released by the component to a separate function
5598 2013-01-11 17:44:13 +0000 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5602 omx: Add methods to set up and close a tunnel between components
5604 2013-02-25 09:15:53 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5606 * omx/gstomxaacenc.c:
5607 * omx/gstomxaudioenc.c:
5608 * omx/gstomxaudioenc.h:
5609 omxaudioenc: Rename component variable
5611 2013-02-25 09:15:46 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5613 * omx/gstomxh263enc.c:
5614 * omx/gstomxh264enc.c:
5615 * omx/gstomxmpeg4videoenc.c:
5616 * omx/gstomxvideoenc.c:
5617 * omx/gstomxvideoenc.h:
5618 omxvideoenc: Rename component variable
5620 2013-02-25 09:12:22 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5622 * omx/gstomxvideodec.c:
5623 * omx/gstomxvideodec.h:
5624 omxvideodec: Rename component variable
5626 2013-02-22 16:27:33 +0100 Josep Torra <n770galaxy@gmail.com>
5628 * omx/gstomxvideoenc.c:
5629 omxvideoenc: remove duplicated line
5631 2013-02-22 10:42:08 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5634 Retry loading libbcm_host.so without an absolute path if that failed
5636 2013-02-21 20:32:42 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5638 * config/bellagio/Makefile.am:
5639 Add missing file from last commit
5641 2013-02-21 11:01:28 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5643 * config/Makefile.am:
5644 * config/bellagio/gstomx.conf:
5647 Add OpenMAX IL target for Bellagio
5648 Not tested since a very long time though.
5650 2013-02-21 10:59:29 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5654 Allow using external OpenMAX IL headers
5656 2013-02-21 10:14:12 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5661 2013-02-21 10:13:16 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5663 * config/Makefile.am:
5664 * config/rpi/Makefile.am:
5665 * config/rpi/gstomx.conf:
5667 Install the RPI config when the RPI target is selected
5669 2013-02-21 10:08:07 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5672 Set default hacks for the RPI target and always initialize bcm_host
5674 2013-02-21 10:05:37 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5677 Add configure parameter for setting the OpenMAX IL target
5679 2013-02-12 11:55:39 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5682 omx: Add FIXME for the future
5684 2013-02-12 11:49:21 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5688 * omx/gstomxaudioenc.c:
5689 * omx/gstomxaudioenc.h:
5690 * omx/gstomxvideodec.c:
5691 * omx/gstomxvideodec.h:
5692 * omx/gstomxvideoenc.c:
5693 * omx/gstomxvideoenc.h:
5694 omx: Some minor refactoring and cleanup
5696 2013-02-12 11:45:40 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5699 omx: Don't access the port's buffers array if it wasn't allocated yet
5701 2013-02-12 11:44:40 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5704 omx: Mark an array as const
5706 2013-02-12 11:41:43 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5710 * omx/gstomxaudioenc.c:
5711 * omx/gstomxvideodec.c:
5712 * omx/gstomxvideoenc.c:
5713 omx: Split enabling/disabling of port into sending the command and waiting for it
5714 This allows to do anything necessary after sending the command to actually let it finish
5716 2013-02-12 11:37:38 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5719 omx: Flushing is also allowed in Paused state
5721 2013-02-12 11:28:36 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5723 * omx/gstomxvideoenc.c:
5724 omxvideoenc: Set stride, slice height and buffer size
5726 2013-02-12 11:09:30 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5728 * config/raspberry-pi.conf:
5729 config: Add h264 and mpeg2 encoders to the raspberry pi config
5730 Not completely working yet though.
5732 2013-02-12 11:03:32 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5734 * omx/gstomxvideoenc.c:
5735 omxvideoenc: Properly negotiate OMX color format with the component
5737 2013-02-12 10:53:24 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5739 * omx/gstomxvideoenc.c:
5740 omxvideoenc: Implement getcaps() vfunc
5742 2013-01-29 21:32:53 +0000 Tim-Philipp Müller <tim@centricular.net>
5745 configure: use 1.0 gstconfig.h to detect disabled subsystems
5746 Update unused configure check for GStreamer core subsystem
5747 features from 0.10 to 1.0.
5749 2013-01-28 20:44:41 +0100 Stefan Sauer <ensonic@users.sf.net>
5752 Automatic update of common submodule
5753 From a942293 to 2de221c
5755 2013-01-24 14:02:36 +0100 Julian Scheel <julian@jusst.de>
5757 * config/raspberry-pi.conf:
5760 * omx/gstomxmpeg2dec.c:
5761 * omx/gstomxmpeg2dec.h:
5762 omx: add mpeg2 video decoder
5763 This adds a decoder class for mpeg2, as well as an extended
5764 configuration for raspberry pi.
5765 https://bugzilla.gnome.org/show_bug.cgi?id=692446
5766 Signed-off-by: Julian Scheel <julian@jusst.de>
5768 2013-01-18 16:47:04 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5771 omx: Minimize the time when the messages lock is held
5772 Fixes a deadlock if any OMX functions are called when the
5773 messages are handled.
5774 Thanks to Nicolas Dufresne for noticing.
5776 2013-01-18 15:28:20 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
5779 omx: improve debug message when we can't find the config file
5780 Mention where we looked for the config file.
5782 2013-01-18 12:34:38 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
5785 build: fix autogen.sh with automake 1.13
5786 AM_CONFIG_HEADER -> AC_CONFIG_HEADERS
5788 2013-01-17 18:07:41 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5791 * omx/gstomxaudioenc.h:
5792 * omx/gstomxvideodec.h:
5793 * omx/gstomxvideoenc.h:
5794 omx: Fix includes to properly work with the 1.0 releases
5796 2013-01-15 15:08:28 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
5799 Automatic update of common submodule
5800 From a72faea to a942293
5802 2013-01-15 14:34:45 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5805 omx: Update port definition when changing some port setting
5807 2013-01-14 11:41:57 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5811 omx: Rename from libgstopenmax.so to ligstomx.so for consistency
5813 2013-01-11 15:32:22 +0000 Nicolas Dufresne <nicolas.dufresne@collabora.com>
5816 omx: Add a method to send message
5818 2013-01-11 15:44:38 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5822 omx: Atomic ops are not required anymore for the reconfiguration
5824 2013-01-11 12:52:10 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5826 * omx/gstomxaudioenc.c:
5827 * omx/gstomxvideodec.c:
5828 * omx/gstomxvideoenc.c:
5829 omx: Fix some memory leaks and suboptimal locking
5831 2013-01-11 12:34:04 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5833 * omx/gstomxvideoenc.c:
5834 omxvideoenc: Don't forget to unmap frame in error cases
5836 2013-01-11 12:29:20 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5838 * omx/gstomxvideoenc.c:
5839 omxvideoenc: Fix copying of the video frames to the OMX buffers
5841 2013-01-11 12:24:13 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5843 * omx/gstomxvideodec.c:
5844 omxvideodec: Fix copying of the video frames from the OMX buffers
5846 2013-01-10 14:44:33 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5851 * omx/gstomxaudioenc.c:
5852 * omx/gstomxrecmutex.c:
5853 * omx/gstomxrecmutex.h:
5854 omx: Implement new approach for locking that should solve all deadlocks on RPi
5855 No mutex is locked while calling any OpenMAX functions anymore
5856 and everything from the OpenMAX callbacks is inserted into a message
5857 queue and handled from outside the callbacks.
5858 Also there's only a single mutex and condition variable per component
5859 now for handling anything from OpenMAX callbacks and a single mutex
5860 for keeping our component/port state sane.
5862 2012-12-20 19:30:38 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5864 * omx/gstomxvideodec.c:
5865 omxvideodec: Set the OMX buffer nFilledLength field properly
5867 2012-12-20 18:48:21 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5869 * omx/gstomxrecmutex.c:
5870 * omx/gstomxrecmutex.h:
5871 omxrecmutex: Fix another race condition when two threads are trying to lock for recursion at the same time
5873 2012-12-20 18:16:43 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5875 * omx/gstomxrecmutex.c:
5876 * omx/gstomxrecmutex.h:
5877 omxrecmutex: Fix yet another race condition that resulted in deadlocks
5879 2012-12-20 17:46:36 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5882 * omx/gstomxrecmutex.c:
5883 * omx/gstomxrecmutex.h:
5884 omx: Fix another race condition in the recursive mutex
5885 Between lock() and begin_recursion() it was possible for another thread to
5886 try to do a recursive_lock(). This would block because the mutex was already
5887 locked(), but not ready for recursive locking yet. unlock() would never
5888 happen in the original thread because it was waiting for the other thread
5890 Happened on the Raspberry Pi.
5892 2012-12-20 14:45:18 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5894 * omx/gstomxrecmutex.c:
5895 * omx/gstomxrecmutex.h:
5896 omxrecmutex: Fix a small race condition when unlocking a non-recursive lock
5898 2012-12-20 12:30:05 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5900 * omx/gstomxaudioenc.c:
5901 * omx/gstomxvideodec.c:
5902 * omx/gstomxvideoenc.c:
5903 omx: Fix ununsed variable compiler warning
5905 2012-12-20 12:27:47 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5907 * omx/gstomxaudioenc.c:
5908 * omx/gstomxvideodec.c:
5909 * omx/gstomxvideoenc.c:
5910 omx: No need to start the srcpad task in ::start() already
5911 It will be started properly after the caps are set.
5913 2012-12-20 12:23:49 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5915 * omx/gstomxvideodec.c:
5916 omxvideodec: OMX_ErrorNoMore is no error and just means we ended iteration
5918 2012-12-20 12:20:31 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5920 * omx/gstomxaudioenc.c:
5921 * omx/gstomxvideodec.c:
5922 * omx/gstomxvideoenc.c:
5923 omx: Improve debug output
5925 2012-12-20 12:02:30 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5927 * omx/gstomxvideodec.c:
5928 omxvideodec: Don't forget to free a GList
5930 2012-12-20 11:56:29 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5932 * omx/gstomxvideodec.c:
5933 omxvideodec: Map OMX_COLOR_FormatYUV420PackedPlanar to I420 too
5934 This is used on the Raspberry Pi.
5936 2012-12-20 11:55:36 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5938 * omx/gstomxvideodec.c:
5939 omxvideodec: During negotiation of the output format make sure we use the correct OpenMAX format
5941 2012-12-20 11:42:17 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5943 * omx/gstomxvideodec.c:
5944 omxvideodec: If negotiation fails this could also mean that the component can't do it at this point yet
5946 2012-12-20 11:40:13 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5948 * omx/gstomxvideodec.c:
5949 omxvideodec: Improve format negotiation a bit
5950 Don't leak caps and make sure to fixate caps.
5952 2012-12-19 13:05:28 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5955 omx: Also initialize nStep field of the OMX structures
5957 2012-12-19 13:03:37 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5960 omx: Initialize struct version with the OMX version we compiled with
5962 2012-12-19 12:44:31 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5964 * omx/gstomxvideodec.c:
5965 omxvideodec: Extract data from the input buffer, not the codec data
5967 2012-12-19 12:19:12 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5970 * tools/listcomponents.c:
5971 omx: Use has_suffix() instead of has_prefix() for the Broadcom hack
5973 2012-12-19 12:08:35 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5977 * tools/Makefile.am:
5978 * tools/listcomponents.c:
5979 tools: Add tool to list all components and their roles
5981 2012-12-19 11:31:51 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5984 omx: Add hack to load and initialize libbcm_host.so
5985 Needed on the Raspberry Pi. Patch based on a patch by
5986 George Kiagiadakis <george.kiagiadakis@collabora.com>
5988 2012-12-19 11:22:16 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5992 configure: Add configure option to pack OpenMAX structures
5993 This is required to set to 4 for the Raspberry Pi for example.
5995 2012-12-19 11:07:44 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
5998 configure: Require GStreamer 1.0.0
6000 2012-04-20 17:13:52 +0300 George Kiagiadakis <george.kiagiadakis@collabora.com>
6003 omx: Initialize structures to version 1.1.2
6005 2012-12-19 09:51:22 +0000 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6008 * config/Makefile.am:
6009 * config/raspberry-pi.conf:
6011 config: Add raspberry-pi configuration in a different directory
6013 2012-05-20 20:11:59 +0300 George Kiagiadakis <george.kiagiadakis@collabora.com>
6015 * omx/gstomx-raspberry.conf:
6016 raspberry: Add a gstomx.conf for the Raspberry Pi
6018 2012-12-12 17:45:39 +0000 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6021 * omx/gstomxvideoenc.h:
6022 omx: Fix some compilation errors caused by circular includes
6024 2012-11-19 11:29:44 +0000 Tim-Philipp Müller <tim@centricular.net>
6027 Automatic update of common submodule
6028 From 6bb6951 to a72faea
6030 2012-11-12 15:14:09 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6032 * omx/gstomxvideodec.c:
6033 * omx/gstomxvideoenc.c:
6034 omx: Fix refcount problem with frames being dropped because of decoder bugs
6036 2012-11-12 11:29:48 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6040 * omx/gstomxaudioenc.c:
6041 * omx/gstomxaudioenc.h:
6042 * omx/gstomxrecmutex.c:
6043 * omx/gstomxrecmutex.h:
6044 * omx/gstomxvideodec.c:
6045 * omx/gstomxvideodec.h:
6046 * omx/gstomxvideoenc.c:
6047 * omx/gstomxvideoenc.h:
6048 omx: Update to new GLib thread API
6050 2012-10-22 14:34:53 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6052 * omx/gstomxvideodec.c:
6053 * omx/gstomxvideoenc.c:
6054 omx: Use open/close vfuncs
6056 2012-10-22 14:28:04 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6058 * omx/gstomxvideodec.c:
6059 * omx/gstomxvideoenc.c:
6060 omx: Handle video meta correctly
6062 2012-06-20 13:11:58 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6065 * omx/gstbasevideocodec.c:
6066 * omx/gstbasevideocodec.h:
6067 * omx/gstbasevideodecoder.c:
6068 * omx/gstbasevideodecoder.h:
6069 * omx/gstbasevideoencoder.c:
6070 * omx/gstbasevideoencoder.h:
6071 * omx/gstbasevideoutils.c:
6072 * omx/gstbasevideoutils.h:
6073 * omx/gstomxh263dec.c:
6074 * omx/gstomxh263enc.c:
6075 * omx/gstomxh264dec.c:
6076 * omx/gstomxh264enc.c:
6077 * omx/gstomxmpeg4videodec.c:
6078 * omx/gstomxmpeg4videoenc.c:
6079 * omx/gstomxvideodec.c:
6080 * omx/gstomxvideodec.h:
6081 * omx/gstomxvideoenc.c:
6082 * omx/gstomxvideoenc.h:
6083 * omx/gstomxwmvdec.c:
6084 omx: Port to video base classes from -base
6086 2012-10-17 17:57:43 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
6088 * omx/gstomxaacenc.c:
6089 * omx/gstomxh263dec.c:
6090 * omx/gstomxh263enc.c:
6091 * omx/gstomxh264dec.c:
6092 * omx/gstomxh264enc.c:
6093 * omx/gstomxmpeg4videodec.c:
6094 * omx/gstomxmpeg4videoenc.c:
6095 * omx/gstomxwmvdec.c:
6096 omx: gst_element_class_set_details_simple() -> set_static_metadata()
6098 2012-10-06 15:01:11 +0100 Tim-Philipp Müller <tim@centricular.net>
6101 Automatic update of common submodule
6102 From 6c0b52c to 6bb6951
6104 2012-09-22 16:10:38 +0100 Tim-Philipp Müller <tim@centricular.net>
6107 Automatic update of common submodule
6108 From 4f962f7 to 6c0b52c
6110 2012-06-21 20:22:13 +0300 George Kiagiadakis <george.kiagiadakis@collabora.com>
6113 omx: fix debug statement
6115 2012-06-21 20:21:03 +0300 George Kiagiadakis <george.kiagiadakis@collabora.com>
6118 omx: use recursive_lock inside set_last_error(), since this function may be called from an event handler
6120 2012-08-22 13:31:59 +0200 Stefan Sauer <ensonic@users.sf.net>
6123 Automatic update of common submodule
6124 From 668acee to 4f962f7
6126 2012-08-05 16:42:43 +0100 Tim-Philipp Müller <tim@centricular.net>
6129 Automatic update of common submodule
6130 From 94ccf4c to 668acee
6132 2012-08-03 19:32:13 +0100 Tim-Philipp Müller <tim@centricular.net>
6135 omx: fix plugin name for new GST_PLUGIN_DEFINE API
6137 2012-07-23 08:47:32 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6140 Automatic update of common submodule
6141 From 98e386f to 94ccf4c
6143 2012-07-10 09:57:09 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6145 * omx/gstbasevideodecoder.c:
6146 omx: Update for allocation query API changes
6148 2012-06-20 11:09:13 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6150 * omx/gstomxaudioenc.c:
6151 * omx/gstomxvideodec.c:
6152 * omx/gstomxvideoenc.c:
6153 omx: Fix compilation after gst_pad_start_task() API changes
6155 2012-06-08 15:06:35 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
6158 Automatic update of common submodule
6159 From 03a0e57 to 98e386f
6161 2012-06-06 18:20:18 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
6164 Automatic update of common submodule
6165 From 1fab359 to 03a0e57
6167 2012-06-01 10:30:27 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
6170 Automatic update of common submodule
6171 From f1b5a96 to 1fab359
6173 2012-05-31 13:10:33 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6176 Automatic update of common submodule
6177 From 92b7266 to f1b5a96
6179 2012-05-30 12:47:59 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6182 Automatic update of common submodule
6183 From ec1c4a8 to 92b7266
6185 2012-05-30 11:26:30 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6188 Automatic update of common submodule
6189 From 3429ba6 to ec1c4a8
6191 2012-05-13 15:58:10 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6194 Automatic update of common submodule
6195 From dc70203 to 3429ba6
6197 2012-05-08 16:13:32 +0300 George Kiagiadakis <george.kiagiadakis@collabora.com>
6200 omx: Fix spelling mistake found by lintian: s/Seperate/Separate/
6202 2012-04-30 23:58:43 +0300 George Kiagiadakis <george.kiagiadakis@collabora.com>
6207 * omx/gstomxaudioenc.c:
6208 * omx/gstomxrecmutex.c:
6209 * omx/gstomxrecmutex.h:
6210 * omx/gstomxvideodec.c:
6211 * omx/gstomxvideoenc.c:
6212 Implement a new custom recursive mutex type and fix locking in callbacks so that in-context calls are allowed.
6213 According to the OMX specification, implementations are allowed to call
6214 callbacks in the context of their function calls. However, our callbacks
6215 take locks and this causes deadlocks if the unerlying OMX implementation
6216 uses this kind of in-context calls.
6217 A solution to the problem would be a recursive mutex. However, a normal
6218 recursive mutex does not fix the problem because it is not guaranteed
6219 that the callbacks are called from the same thread. What we see in Broadcom's
6220 implementation for example is:
6222 - OMX_Foo waits on a condition
6223 - A callback is executed in a different thread
6224 - When the callback returns, its calling function
6225 signals the condition that OMX_Foo waits on
6226 - OMX_Foo wakes up and returns
6227 The solution I came up with here is to take a second lock inside the callback,
6228 but only if recursion is expected to happen. Therefore, all calls to OMX
6229 functions are guarded by calls to gst_omx_rec_mutex_begin_recursion() / _end_recursion(),
6230 which effectively tells the mutex that at this point we want to allow calls
6231 to _recursive_lock() to succeed, although we are still holding the master lock.
6233 2012-04-20 14:51:34 +0000 George Kiagiadakis <george.kiagiadakis@collabora.com>
6237 omx: Add hack to disable setting roles to components.
6241 2012-04-30 23:20:24 +0000 George Kiagiadakis <george.kiagiadakis@collabora.com>
6244 * omx/gstomxvideodec.c:
6245 omxvideodec: Implement no-empty-eos-buffer hack, as in omxvideoenc.
6247 omx/gstomxvideodec.c
6249 2012-04-30 23:19:55 +0000 George Kiagiadakis <george.kiagiadakis@collabora.com>
6251 * omx/gstomxvideodec.c:
6252 omxvideodec: Fix coding style in the drain-may-not-return hack code
6254 2012-04-25 19:03:48 +0530 Arun Raghavan <arun.raghavan@collabora.co.uk>
6257 omx: Fix trivial debug print bug
6259 2012-04-25 19:01:32 +0530 Arun Raghavan <arun.raghavan@collabora.co.uk>
6263 * omx/gstomxvideodec.c:
6264 omxvideodec: Add hack for Ducati components not returning from drain
6265 This happens on the Galaxy Nexus, and causes the pipeline to hang waiting
6266 endlessly for a drain. The hack replaces the wait with a wait + 500ms timeout.
6268 2012-04-25 16:35:40 +0530 Arun Raghavan <arun.raghavan@collabora.co.uk>
6271 omx: Fix deadlock between ending a flush and the event handler
6272 gst_omx_port_set_flushing() calls OMX_FillThisBuffer at the end of a flush
6273 without releasing the port lock, and this can cause a deadlock with the
6274 EventHandler. This patches fixes this by dropping the lock for the duration of
6275 the fill buffer call.
6277 2012-04-24 15:41:38 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6279 * omx/gstbasevideodecoder.c:
6280 * omx/gstbasevideoencoder.c:
6281 omx: Update video encoder/decoder base classes from gst-plugins-bad
6283 2012-04-16 09:16:10 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6286 configure: Modernize autotools setup a bit
6287 Also we now only create tar.bz2 and tar.xz tarballs.
6289 2012-04-16 09:12:37 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6292 Automatic update of common submodule
6294 2012-04-16 08:34:56 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6296 * omx/gstomxaudioenc.c:
6297 omxaudioenc: Use gst_buffer_extract() to copy the input buffer data to the OpenMAX buffer
6299 2012-04-13 17:16:42 -0400 Alessandro Decina <alessandro.decina@collabora.com>
6302 Fix relative/absolute path glitch
6303 Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
6305 2012-04-12 15:57:32 -0400 Olivier Crête <olivier.crete@collabora.com>
6310 * omx/gstbasevideocodec.c:
6311 * omx/gstbasevideocodec.h:
6312 * omx/gstbasevideodecoder.c:
6313 * omx/gstbasevideodecoder.h:
6314 * omx/gstbasevideoencoder.c:
6315 * omx/gstbasevideoencoder.h:
6318 * omx/gstomxaacenc.c:
6319 * omx/gstomxaudioenc.c:
6320 * omx/gstomxaudioenc.h:
6321 * omx/gstomxh263dec.c:
6322 * omx/gstomxh263enc.c:
6323 * omx/gstomxh264dec.c:
6324 * omx/gstomxh264enc.c:
6325 * omx/gstomxmpeg4videodec.c:
6326 * omx/gstomxmpeg4videoenc.c:
6327 * omx/gstomxvideodec.c:
6328 * omx/gstomxvideodec.h:
6329 * omx/gstomxvideoenc.c:
6330 * omx/gstomxvideoenc.h:
6331 * omx/gstomxwmvdec.c:
6334 2012-01-18 16:53:16 -0300 Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
6338 Enable building with Android's buildsystem
6339 This change adds prelimary buildsystem hooks to
6340 build gst-omx with the Android buildsystem. Like
6341 the rest of GStreamer's Android hooks, the process
6342 relies on the availability of androgenizer. A tool
6343 developed by Collabora to automatically generate
6344 Android.mk files from within the auto* setup.
6345 Androgenizer is currently available at:
6346 http://cgit.collabora.com/git/user/derek/androgenizer.git/
6348 2011-12-13 10:17:41 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6350 * omx/gstbasevideocodec.c:
6351 basevideocodec: Don't use G_TYPE_REGISTER_BOXED() yet
6352 This would require GLib 2.26.
6354 2011-12-14 10:09:34 +0100 Jonas Larsson <Jonas.Larsson@palm.com>
6356 * omx/gstomxaudioenc.c:
6357 omxaudioenc: Add hack for encoder components that don't allow empty EOS buffers
6359 2011-12-14 10:07:29 +0100 Jonas Larsson <Jonas.Larsson@palm.com>
6361 * omx/gstomxvideoenc.c:
6362 omxvideoenc: Fix deadlock when using the EOS hack
6364 2011-12-12 14:26:48 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6366 * omx/gstomxvideoenc.c:
6367 omxvideoenc: Remove workaround for basevideocodec bug
6369 2011-12-12 14:26:34 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6371 * omx/gstomxvideodec.c:
6372 omxvideodec: Remove workaround for basevideocodec bug
6374 2011-12-05 17:57:01 +0000 Matej Knopp <matej.knopp@gmail.com>
6376 * omx/gstbasevideocodec.c:
6377 * omx/gstbasevideocodec.h:
6378 * omx/gstbasevideodecoder.c:
6379 * omx/gstbasevideoencoder.c:
6380 basevideo: Make GstVideoFrame a reference counted boxed object
6381 ...and also clear all existing frames when resetting the decoder or encoder.
6383 2011-12-09 12:17:29 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6387 * omx/gstomxvideoenc.c:
6388 omx: Add hack for encoder components that don't allow empty EOS buffers
6390 2011-12-09 10:21:47 +0100 Dake Gu <Dake.Gu@palm.com>
6392 * omx/gstomxaacenc.c:
6393 omxaacenc: Generate and set codec_data on the caps for raw AAC
6395 2011-10-31 11:36:06 +0100 Alessandro Decina <alessandro.decina@collabora.co.uk>
6397 * omx/gstbasevideoencoder.c:
6398 basevideoencoder: handle failures in start() and stop()
6400 2011-08-26 10:50:38 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
6402 * omx/gstbasevideoencoder.c:
6403 basevideoenc: do not try to calculate latency from an unknown framerate
6404 It'll divide by zero, and latency is unknown for an unknown framerate.
6405 Fixes an assert in the schroenc test.
6406 https://bugzilla.gnome.org/show_bug.cgi?id=657419
6408 2011-12-08 11:50:49 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6410 * omx/gstbasevideoencoder.c:
6411 basevideoencoder: Only make the header buffer metadata writable, not the buffer
6413 2011-12-08 10:18:36 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6415 * omx/gstbasevideoencoder.c:
6416 basevideoencoder: Fix handling of force-keyunit events
6418 2011-12-06 13:28:41 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6420 * omx/gstomxaudioenc.c:
6421 omxaudioenc: Don't forward EOS events immediately but let all other events be handled by the base class
6422 Previously this logic was inversed, which did not make any sense at all.
6424 2011-12-06 12:47:25 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6426 * omx/gstomxaudioenc.c:
6427 * omx/gstomxaudioenc.h:
6428 omxaudioenc: Use correct timestamp, duration and filled length for the EOS buffers
6430 2011-12-06 12:47:12 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6432 * omx/gstomxvideodec.c:
6433 * omx/gstomxvideodec.h:
6434 omxvideodec: Use correct timestamp, duration and filled length for the EOS buffers
6436 2011-12-06 12:46:51 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6438 * omx/gstomxvideoenc.c:
6439 * omx/gstomxvideoenc.h:
6440 omxvideoenc: Use correct timestamp, duration and filled length for the EOS buffers
6442 2011-12-05 13:18:09 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6445 omx: Improve debugging of buffer handling
6447 2011-12-05 08:12:48 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6449 * omx/gstomxvideoenc.c:
6450 omxvideoenc: Drop EOS events in ::finish()
6451 The event will be forwarded downstream from the srcpad
6452 loop function after the last buffer was generated by the
6453 component. Forwarding it after ::finish() will use the
6454 sinkpad streaming thread and does not guarantee that
6455 the encoder is completely drained.
6457 2011-12-01 16:20:36 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6459 * omx/gstomxvideodec.c:
6460 omxvideodec: Properly drop frames due to QoS
6461 Instead of finishing them they should be passed to drop(), which
6462 will then send QoS messages.
6464 2011-11-29 12:21:32 +0100 Jonas Larsson <jonas@hallerud.se>
6466 * omx/gstomxh264enc.c:
6467 omxh264enc: Add support for resending headers after a forced-keyframe
6469 2011-11-29 12:12:33 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6471 * omx/gstbasevideocodec.h:
6472 * omx/gstbasevideoencoder.c:
6473 basevideoencoder: Pass the all-headers field of the force-key-unit event to the subclass
6475 2011-11-29 12:12:04 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6477 * omx/gstbasevideoencoder.c:
6478 * omx/gstbasevideoencoder.h:
6479 basevideoencoder: Implement full support for the new force-key-unit event
6480 Including support for the running-time and count fields.
6482 2011-11-29 09:31:11 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6484 * omx/gstbasevideoencoder.c:
6485 basevideoencoder: Use new force-keyunit event API from gst-plugins-base
6487 2011-11-29 09:18:19 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6489 * omx/gstbasevideoencoder.c:
6490 * omx/gstbasevideoencoder.h:
6491 basevideoencoder: Adjusting padding is not required for -bad libraries
6493 2011-11-28 19:48:01 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6495 * omx/gstbasevideoencoder.h:
6496 basevideoencoder: Move some fields to the private part of the instance struct
6498 2011-11-28 19:36:56 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6500 * omx/gstbasevideoencoder.c:
6501 basevideoencoder: Make headers metadata writable before pushing downstream
6502 The timestamp, duration, etc of the headers has to be changed.
6504 2011-11-28 19:35:40 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6506 * omx/gstbasevideoencoder.c:
6507 * omx/gstbasevideoencoder.h:
6508 basevideoencoder: Push the downstream force-keyframe event after the next keyframe
6509 Even if the corresponding GstVideoFrame doesn't have the is_sync_point
6512 2011-11-28 19:29:13 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6514 * omx/gstbasevideoencoder.c:
6515 * omx/gstbasevideoencoder.h:
6516 basevideoencoder: Don't push an upstream force-keyunit event downstream
6518 2011-11-25 11:48:08 +0100 Jonas Larsson <jonas@hallerud.se>
6520 * omx/gstbasevideoencoder.c:
6521 * omx/gstbasevideoencoder.h:
6522 basevideoencoder: Add initial support for the all-headers field of the force-keyframe event
6525 2011-11-25 11:37:39 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
6527 * omx/gstbasevideodecoder.c:
6528 basevideodecoder: some more debug logging
6530 2011-11-23 20:03:32 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
6532 * omx/gstbasevideodecoder.c:
6533 * omx/gstbasevideodecoder.h:
6534 basevideodecoder: add API to drop a frame and post a QoS message on the bus
6535 https://bugzilla.gnome.org/show_bug.cgi?id=640017
6536 API: gst_base_video_decoder_drop_frame()
6538 2011-11-22 23:04:49 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
6540 * omx/gstbasevideodecoder.c:
6541 docs: fix comment in gst_base_video_decoder_get_max_decode_time() docs
6543 2011-11-22 19:57:07 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
6545 * omx/gstbasevideodecoder.c:
6546 basevideodecoder: fix weird event list handling
6547 Get rid of weird code that copies a list manually, taking
6548 ownership of the elements and then frees the old list. Instead,
6549 just take over the old list entirely. (If the intent was to
6550 reverse the list, one could use g_list_reverse() instead).
6551 Then, push events in the list out from last to first (since they
6552 were prepended as they came in) instead of just pushing out the
6553 last in the list and leaking the others.
6555 2011-11-25 11:31:58 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6559 * omx/gstbaseaudiodecoder.c:
6560 * omx/gstbaseaudiodecoder.h:
6561 * omx/gstbaseaudioencoder.c:
6562 * omx/gstbaseaudioencoder.h:
6563 * omx/gstbaseaudioutils.c:
6564 * omx/gstbaseaudioutils.h:
6565 * omx/gstomxaacenc.c:
6566 * omx/gstomxaudioenc.c:
6567 * omx/gstomxaudioenc.h:
6568 omxaudioenc: Use audio base classes from gst-plugins-base instead of having our own copies
6570 2011-11-18 10:00:31 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6572 * omx/gstomxaudioenc.c:
6573 omxaudioenc: First set ports to flushing before waiting for the srcpad streaming thread to finish
6575 2011-11-18 09:59:43 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6577 * omx/gstomxvideoenc.c:
6578 omxvideoenc: First set ports to flushing before waiting for the srcpad streaming thread to finish
6580 2011-11-18 09:58:58 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6582 * omx/gstomxvideodec.c:
6583 omxvideodec: First set ports to flushing before waiting for the srcpad streaming thread to finish
6585 2011-11-17 14:38:54 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6588 omx: Only disabling of a port is like flushing, enabling is like unflushing
6590 2011-11-17 13:33:35 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6593 omx: Enabling/disabling a port is also like flushing
6594 The component returns all buffers to us and shouldn't get any
6595 new buffers passed anymore.
6597 2011-11-17 11:26:33 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6599 * omx/gstomxaudioenc.c:
6600 omxaudioenc: Signal the drain GCond even if downstream returned an error
6602 2011-11-17 11:26:20 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6604 * omx/gstomxvideoenc.c:
6605 omxvideoenc: Signal the drain GCond even if downstream returned an error
6607 2011-11-17 11:25:52 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6609 * omx/gstomxvideodec.c:
6610 omxvideodec: Signal the drain GCond even if downstream returned an error
6612 2011-11-17 10:34:19 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6614 * omx/gstbasevideoencoder.c:
6615 basevideoencoder: Only call ::reset once in READY->PAUSED
6617 2011-11-17 10:19:35 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6619 * omx/gstomxaudioenc.c:
6620 omxaudioenc: Shutdown component in PAUSED->READY and deallocate buffers
6622 2011-11-17 10:19:30 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6624 * omx/gstomxvideoenc.c:
6625 omxvideoenc: Shutdown component in PAUSED->READY and deallocate buffers
6627 2011-11-17 10:19:10 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6629 * omx/gstomxvideodec.c:
6630 omxvideodec: Shutdown component in PAUSED->READY and deallocate buffers
6632 2011-11-16 12:02:08 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6634 * omx/gstomxvideoenc.c:
6635 omxvideoenc: Set force_keyframe to FALSE after handling it
6636 There's no reason why the base class should forward the event
6637 further downstream if we already handled it and will insert a
6640 2011-11-16 11:21:25 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6642 * omx/gstomxvideodec.c:
6643 omxvideodec: Always push buffers downstream, even if we didn't find a corresponding GstVideoFrame
6645 2011-11-15 09:47:55 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6648 omx: Fix debug level for flushing in wrong state from ERROR to DEBUG
6649 It's not really an error and doesn't matter at all if flush is called
6650 when the component is not running.
6652 2011-11-15 08:40:07 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6654 * omx/gstomxh264enc.c:
6655 omxh264enc: Detect bytestream stream format and don't put SPS/PPS into the caps for this format
6657 2011-11-15 08:28:32 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6659 * omx/gstomxvideoenc.c:
6660 * omx/gstomxvideoenc.h:
6661 omxvideoenc: Add vfunc for handling the output frames
6662 This can be used by subclasses to override the buffer flags
6663 or to handle some frames differently than the default behaviour.
6665 2011-11-14 12:50:26 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6667 * omx/gstomxvideodec.c:
6668 omxvideodec: Don't release buffers twice if dropping because of QoS
6670 2011-11-14 09:13:06 -0800 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6673 omx: Add XXX to the nOffset reset hack comment for QCOM
6675 2011-11-10 15:18:08 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6677 * omx/gstomxaudioenc.c:
6678 omxaudioenc: Make srcpad caps setting threadsafe
6680 2011-11-10 15:17:56 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6682 * omx/gstomxvideoenc.c:
6683 omxvideoenc: Make srcpad caps setting threadsafe
6685 2011-11-10 15:17:41 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6687 * omx/gstomxvideodec.c:
6688 omxvideodec: Make srcpad caps setting threadsafe
6690 2011-11-10 15:10:14 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6692 * omx/gstomxaudioenc.c:
6693 omxaudioenc: Make the srcpad task and the sinkpad streaming thread handling threadsafe
6695 2011-11-10 15:03:05 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6697 * omx/gstomxaudioenc.c:
6698 omxaudioenc: Always flush the ports and make sure no processing is happening in ::flush
6699 This fixes a race condition that happened when seeking
6700 very often in a short period of time.
6702 2011-11-10 15:02:22 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6704 * omx/gstomxvideoenc.c:
6705 omxvideoenc: Always flush the ports and make sure no processing is happening in ::reset
6706 This fixes a race condition that happened when seeking
6707 very often in a short period of time.
6709 2011-11-10 15:01:36 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6711 * omx/gstomxvideoenc.c:
6712 omxvideoenc: Fix minor race condition when draining after upstream signalled EOS
6714 2011-11-10 14:56:19 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6716 * omx/gstomxaudioenc.c:
6717 omxaudioenc: Improve EOS handling
6718 If downstream return UNEXPECTED we should still signal the
6719 drain cond because nothing will trigger this again later.
6721 2011-11-10 14:56:11 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6723 * omx/gstomxvideoenc.c:
6724 omxvideoenc: Improve EOS handling
6725 If downstream return UNEXPECTED we should still signal the
6726 drain cond because nothing will trigger this again later.
6728 2011-11-10 14:54:33 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6730 * omx/gstomxaudioenc.c:
6731 omxaudioenc: Improve debugging of EOS and draining
6733 2011-11-10 14:54:17 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6735 * omx/gstomxvideoenc.c:
6736 omxvideoenc: Improve debugging of EOS and draining
6738 2011-11-10 14:51:06 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6740 * omx/gstomxvideodec.c:
6741 omxvideodec: Log if acquiring buffer for EOS failed
6743 2011-11-10 14:42:13 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6745 * omx/gstomxvideodec.c:
6746 omxvideodec: The component is not started in READY
6748 2011-11-10 14:39:40 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6750 * omx/gstomxaudioenc.c:
6751 omxaudioenc: No need to signal the drain cond when going from READY to PAUSED
6752 Also the component is not started in READY
6754 2011-11-10 14:40:56 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6756 * omx/gstomxvideoenc.c:
6757 omxvideoenc: No need to signal the drain cond when going from READY to PAUSED
6758 Also the component is not started in READY.
6760 2011-11-09 15:46:02 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6762 * omx/gstomxvideodec.c:
6763 omxvideodec: Always flush the ports and make sure no processing is happening in ::reset
6764 This fixes a race condition that happened when seeking
6765 very often in a short period of time.
6767 2011-11-09 15:45:20 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6769 * omx/gstomxvideodec.c:
6770 omxvideodec: Fix minor race condition when draining after upstream signalled EOS
6772 2011-11-09 15:44:11 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6774 * omx/gstomxvideodec.c:
6775 omxvideodec: Improve EOS handling
6776 If downstream return UNEXPECTED we should still signal the
6777 drain cond because nothing will trigger this again later.
6779 2011-11-09 15:43:32 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6781 * omx/gstomxvideodec.c:
6782 omxvideodec: Improve debugging of EOS and draining
6784 2011-11-09 15:42:46 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6786 * omx/gstomxvideodec.c:
6787 omxvideodec: The component is not started already when going from READY to PAUSED
6789 2011-11-09 15:42:13 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6791 * omx/gstomxvideodec.c:
6792 omxvideodec: No need to signal the drain cond when going from READY to PAUSED
6794 2011-11-09 15:41:02 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6797 omx: Always reset buffer flags for output ports, even in flushing/error state
6799 2011-11-09 09:00:57 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6801 * omx/gstomxvideodec.c:
6802 omxvideodec: Improve debugging in case of QoS-related frame drops
6804 2011-11-08 12:46:31 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6806 * omx/gstomxvideoenc.c:
6807 omxvideoenc: Release the video codec stream lock before acquiring an input buffer
6808 Otherwise the srcpad task might block on this lock and
6809 no buffers ever become available again.
6811 2011-11-08 12:45:16 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6813 * omx/gstomxaudioenc.c:
6814 omxaudioenc: Release the audio encoder stream lock before acquiring an input buffer
6815 Otherwise the srcpad task might block on this lock and
6816 no buffers ever become available again.
6818 2011-11-08 12:42:58 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6820 * omx/gstomxvideodec.c:
6821 omxvideodec: Release the video codec stream lock before acquiring an input buffer
6822 Otherwise the srcpad task might block on this lock and
6823 no buffers ever become available again.
6825 2011-11-08 11:07:01 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6827 * omx/gstomxaudioenc.c:
6828 * omx/gstomxaudioenc.h:
6829 omxaudioenc: Don't try to drain the component after EOS
6830 And don't send EOS twice in any case. This most likely
6831 will cause the component to not output it again and
6832 is not necessary anyway.
6834 2011-11-08 11:03:29 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6836 * omx/gstomxvideoenc.c:
6837 * omx/gstomxvideoenc.h:
6838 omxvideoenc: Don't try to drain the component after EOS
6839 And don't send EOS twice in any case. This most likely
6840 will cause the component to not output it again and
6841 is not necessary anyway.
6843 2011-11-08 10:46:36 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6845 * omx/gstomxvideodec.c:
6846 * omx/gstomxvideodec.h:
6847 omxvideodec: Don't try to drain the component after EOS
6848 And don't send EOS twice in any case. This most likely
6849 will cause the component to not output it again and
6850 is not necessary anyway.
6852 2011-11-08 09:09:28 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6854 * omx/gstomxvideodec.c:
6855 omxvideodec: Implement dropping of too late frames via QoS
6857 2011-11-08 08:31:58 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6859 * omx/gstomxaudioenc.c:
6860 omxaudioenc: Minor code refactoring
6862 2011-11-08 08:31:43 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6864 * omx/gstomxvideoenc.c:
6865 omxvideoenc: Minor code refactoring
6867 2011-11-08 08:31:32 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6869 * omx/gstomxvideodec.c:
6870 omxvideodec: Make sure to always release buffers back to OMX
6872 2011-11-08 08:24:19 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6875 omx: Also properly release buffers when in error state
6877 2011-11-08 08:22:08 +0100 Jonas Larsson <Jonas.Larsson@palm.com>
6880 omx: Properly release buffers during flushing
6881 We can't pass them back to OMX_FillThisBuffer() or OMX_EmptyThisBuffer()
6882 but instead of doing nothing we have to put them back into our queue.
6883 Otherwise the buffer is leaked and we will have too few buffers in
6886 2011-11-07 14:00:47 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6888 * omx/gstomxvideodec.c:
6889 omxvideodec: Free pending frames after draining component
6891 2011-11-07 14:00:35 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6893 * omx/gstomxvideoenc.c:
6894 omxvideoenc: Free pending frames after draining the component
6896 2011-11-07 11:07:01 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6898 * omx/gstomxvideoenc.c:
6899 omxvideoenc: Make handling and usage of the base video codec frames threadsafe
6901 2011-11-07 11:05:29 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6903 * omx/gstomxvideoenc.c:
6904 omxvideoenc: Fix deadlock between srcpad stream lock and ::reset()
6906 2011-11-07 11:04:27 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6908 * omx/gstomxvideodec.c:
6909 omxvideoenc: Make handling and usage of the base video codec frames threadsafe
6911 2011-11-07 10:58:44 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6913 * omx/gstomxvideoenc.c:
6914 omxvideoenc: Free all pending frames after draining the component
6916 2011-11-07 10:58:24 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6918 * omx/gstomxvideodec.c:
6919 omxvideodec: Always free all pending frames when caps changes require reconfiguration
6921 2011-11-04 09:43:48 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6923 * omx/gstomxaudioenc.c:
6924 omxaudioenc: Only drain the component a single time and only after processing started
6926 2011-11-04 09:43:32 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6928 * omx/gstomxvideodec.c:
6929 omxvideodec: Only drain the component a single time and only after processing started
6931 2011-11-04 09:43:12 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6933 * omx/gstomxvideoenc.c:
6934 omxvideoenc: Only drain the component a single time and only after processing started
6936 2011-11-04 09:04:16 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6939 omx: Reset buffer flags to 0 after it was consumed by the component or the element
6940 Some implementations don't reset the flags and the standard is not
6941 really clear on the expected behaviour. Let's just always reset the
6942 flags as they're not valid at this point anymore.
6944 2011-11-02 13:50:14 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6946 * omx/gstomxvideoenc.c:
6947 * omx/gstomxvideoenc.h:
6948 omxvideoenc: Better handling of encoder parameters
6949 Only set them if necessary and allow to use the component
6952 2011-11-02 13:22:50 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6954 * omx/gstomxvideoenc.c:
6955 omxvideoenc: Make unsupported bitrate/quantizer settings less fatal
6957 2011-11-02 10:39:50 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6959 * omx/gstomxvideodec.c:
6960 omxvideodec: If no stride was set for the OMX output port assume GStreamer stride
6961 This is not really correct but there's nothing else we could do.
6963 2011-11-02 10:39:10 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6965 * omx/gstomxvideoenc.c:
6966 omxvideoenc: If no stride was set for the OMX input port assume GStreamer stride
6967 This is not really correct but there's nothing else we could do.
6969 2011-11-01 16:46:09 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6971 * omx/gstomxaudioenc.c:
6972 * omx/gstomxaudioenc.h:
6973 omxaudioenc: Implement draining of the component and use it
6974 This makes sure that all buffers are encoded and pushed downstream
6975 before flushing the ports and losing some buffers.
6977 2011-11-01 16:41:46 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6979 * omx/gstomxvideoenc.c:
6980 * omx/gstomxvideoenc.h:
6981 omxvideoenc: Implement draining of the component and use it
6982 This makes sure that all buffers are encoded and pushed downstream
6983 before flushing the ports and losing some buffers.
6985 2011-11-01 16:08:59 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6987 * omx/gstomxvideodec.c:
6988 * omx/gstomxvideodec.h:
6989 omxvideodec: Implement draining of the component and use it
6990 This makes sure that all buffers are decoded and pushed downstream
6991 before flushing the ports and losing some buffers.
6993 2011-10-20 14:32:40 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
6995 * omx/gstomxvideodec.c:
6996 omxvideodec: Fix deadlock if ::reset is called before finding the corresponding frame of a decoded buffer
6998 2011-11-01 15:10:12 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7000 * omx/gstomxaudioenc.c:
7001 * omx/gstomxaudioenc.h:
7002 * omx/gstomxvideoenc.h:
7003 omxaudioenc: Forward downstream flow returns to upstream
7005 2011-11-01 15:10:01 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7007 * omx/gstomxvideoenc.c:
7008 omxvideoenc: Forward downstream flow returns to upstream
7010 2011-11-01 13:58:38 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7012 * omx/gstomxvideodec.c:
7013 * omx/gstomxvideodec.h:
7014 omxvideodec: Forward downstream flow returns to upstream
7016 2011-10-25 14:23:38 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7019 omx: Add minimal README file
7021 2011-10-20 15:21:07 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7023 * omx/gstomxvideodec.c:
7024 omxvideodec: Fix deadlock caused by calling reset while the loop function does something with the base video codec stream lock
7026 2011-10-20 15:20:47 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7028 * omx/gstomxvideoenc.c:
7029 omxvideoenc: Fix deadlock caused by calling reset while the loop function does something with the base video codec stream lock
7031 2011-10-20 14:30:38 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7033 * omx/gstomxvideodec.c:
7034 omxvideodec: Move locking at the correct place
7036 2011-10-14 10:27:47 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7040 omx: Remove QCOM hack to reset nOffset in EmptyBufferDone
7041 This is now done in a generic way that does not require any
7042 hacks because it will work without any side effects on any
7045 2011-10-14 10:26:00 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7048 omx: Reset nOffset to 0 in EmptyBufferDone if nFilledLen is 0
7049 Some OMX implementations don't reset nOffset when the complete
7050 buffer is emptied but instead only reset nFilledLen. We reset
7051 nOffset to 0 if nFilledLen == 0, which is safe to do because
7052 the offset *must* be 0 if the buffer is not filled at all.
7053 Seen in QCOM's OMX implementation.
7055 2011-10-04 10:56:33 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7057 * omx/gstomxvideoenc.c:
7058 omxvideoenc: If one parameter/configuration is not supported don't skip the next
7060 2011-10-03 09:12:44 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7062 * omx/gstomxh264dec.c:
7063 omxh264dec: Require stream-format=byte-stream
7064 Other stream-formats are unlikely to be supported by OMX components.
7066 2011-09-29 10:37:32 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7068 * omx/gstomxvideodec.c:
7069 * omx/gstomxvideodec.h:
7070 omxvideodec: Add API for subclasses to prepare/convert frames
7072 2011-09-27 15:08:54 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7074 * omx/gstomxaudioenc.c:
7075 omxaudioenc: Switch to Idle first and wait before switching to Loaded and deallocating buffers
7076 Allocating buffers before the Idle state is reached can lead to crashes.
7078 2011-09-27 15:08:44 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7080 * omx/gstomxvideoenc.c:
7081 omxvideoenc: Switch to Idle first and wait before switching to Loaded and deallocating buffers
7082 Allocating buffers before the Idle state is reached can lead to crashes.
7084 2011-09-27 15:05:19 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7086 * omx/gstomxvideodec.c:
7087 omxvideodec: Switch to Idle first and wait before switching to Loaded and deallocating buffers
7088 Allocating buffers before the Idle state is reached can lead to crashes.
7090 2011-09-27 14:15:06 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7094 * omx/gstomxvideodec.c:
7095 omxvideodec: New hack for QCOM to recreate the component instead of reconfiguring it on caps changes
7097 2011-09-27 12:13:56 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7100 omx: Change a g_assert() into a GST_WARNING_OBJECT()
7102 2011-09-26 13:04:18 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7106 omx: Add hack for Qualcomm's OMX implementation to manually reset nOffset in EmptyBufferDone
7108 2011-09-23 17:02:49 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7110 * omx/gstomxaudioenc.c:
7111 omxaudioenc: Add a check to prevent a zero-sized OMX buffer
7113 2011-09-23 17:02:19 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7115 * omx/gstomxvideoenc.c:
7116 omxvideoenc: Add some more checks for correct OMX buffer sizes
7118 2011-09-23 15:53:49 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7120 * omx/gstomxvideodec.c:
7121 omxvideodec: Add some more checks for OMX buffer sizes
7123 2011-09-14 10:15:38 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7127 * omx/gstomxaudioenc.c:
7128 * omx/gstomxvideodec.c:
7129 * omx/gstomxvideoenc.c:
7130 omx: Wait until the Executing state is reached before calling OMX_FillThisBuffer()
7131 This correctly works around the QCOM race condition that happens when calling
7132 FTB after setting the new state and before reaching it.
7134 2011-09-02 14:43:43 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7136 * omx/gstomxvideodec.c:
7137 omxvideodec: Negotiate video format with downstream and what the component claims to support
7139 2011-08-25 19:56:58 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
7141 * omx/gstbasevideoencoder.c:
7142 basevideoencoder: fix element leak
7143 and this concludes an hour of yelling at the bloody test failing,
7144 only to track down the problem not being in the test.
7145 https://bugzilla.gnome.org/show_bug.cgi?id=657368
7147 2011-08-19 09:20:39 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7149 * omx/gstomxvideoenc.c:
7150 omxvideoenc: Release basevideocodec stream lock while waiting for a buffer
7151 This prevents deadlocks if no empty input buffers are available and
7152 releasing input buffers requires the loop function to handle some
7153 output buffers first.
7155 2011-08-19 09:19:22 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7157 * omx/gstomxvideodec.c:
7158 omxvideodec: Release basevideocodec stream lock while waiting for a buffer
7159 This prevents deadlocks if no empty input buffers are available and
7160 releasing input buffers requires the loop function to handle some
7161 output buffers first.
7163 2011-08-18 10:24:26 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7165 * omx/gstbasevideodecoder.c:
7166 basevideodecoder: Fix deadlock
7168 2011-08-18 10:03:20 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7170 * omx/gstbaseaudiodecoder.c:
7171 baseaudiodecoder: Don't take the stream lock in the seek handler
7172 This will lead to deadlocks
7174 2011-08-18 10:02:50 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7176 * omx/gstbasevideocodec.c:
7177 * omx/gstbasevideocodec.h:
7178 * omx/gstbasevideodecoder.c:
7179 * omx/gstbasevideoencoder.c:
7180 basevideo: Fix locking, especially if both pads have different streaming threads
7182 2011-08-18 09:42:02 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7184 * omx/gstbasevideodecoder.c:
7185 * omx/gstbasevideoencoder.c:
7186 basevideo: Don't call g_type_class_peek_parent() in class_init
7187 This is already done by the GObject boilerplate macro
7189 2011-08-18 09:40:46 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7191 * omx/gstbaseaudiodecoder.c:
7192 baseaudiodecoder: Don't call g_type_class_peek_parent() in class_init
7193 This is already done by the boilerplate macro
7195 2011-08-18 09:34:38 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7197 * omx/gstbaseaudiodecoder.c:
7198 * omx/gstbaseaudiodecoder.h:
7199 baseaudiodecoder: Fix thread safety issues if both pads have different streaming threads
7201 2011-08-18 09:17:04 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7203 * omx/gstbaseaudiodecoder.c:
7204 baseaudiodecoder: Delay sending of serialized events to finish_frame()
7206 2011-08-17 14:33:31 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7208 * omx/gstomxaudioenc.c:
7209 omxaudioenc: Always require at least OMX_MIN_PCMPAYLOAD_MSEC per input buffer
7211 2011-08-17 14:28:44 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7213 * omx/gstbaseaudioencoder.c:
7214 * omx/gstbaseaudioencoder.h:
7215 baseaudioencoder: Add support for requesting a minimum and maximum number of samples per frame
7216 This extends the special case of a fixed number of samples per frame
7217 that was supported before already.
7219 2011-08-17 14:17:18 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7221 * omx/gstomxaudioenc.c:
7222 omxaudioenc: Handle inbuf==NULL properly in ::handle_frame()
7224 2011-08-17 13:04:19 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7226 * omx/gstomxaacenc.c:
7227 omxaacenc: Implement ::get_num_samples() vfunc
7229 2011-08-17 13:03:50 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7231 * omx/gstomxaudioenc.c:
7232 * omx/gstomxaudioenc.h:
7233 omxaudioenc: Add vfunc to get the number of samples inside a buffer
7235 2011-08-17 11:34:31 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7237 * omx/gstomxaudioenc.c:
7238 omxaudioenc: Release baseaudioencoder stream lock while waiting for a buffer in ::handle_frame()
7239 This prevents deadlocks if no empty input buffers are available and
7240 releasing input buffers requires the loop function to handle some
7241 output buffers first.
7243 2011-08-17 11:34:04 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7245 * omx/gstbaseaudioencoder.c:
7246 * omx/gstbaseaudioencoder.h:
7247 baseaudioencoder: Fix thread safety issues if both pads have different streaming threads
7249 2011-08-17 09:58:01 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7251 * omx/gstbaseaudioencoder.c:
7252 baseaudioencoder: Taking the OBJECT lock in reset() is not needed
7254 2011-08-16 11:03:24 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7256 * omx/gstomxaudioenc.c:
7257 omxaudioenc: Remove hack that only applies to the video encoder class
7259 2011-08-16 10:49:21 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7264 * omx/gstomxaacenc.c:
7265 * omx/gstomxaacenc.h:
7266 omxaacenc: Add initial version of OpenMAX AAC encoder element
7268 2011-08-15 15:10:04 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7271 * omx/gstomxaudioenc.c:
7272 * omx/gstomxaudioenc.h:
7273 omxaudioenc: Add initial version of audio encoder base class
7275 2011-08-15 14:14:11 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7277 * omx/gstbaseaudioencoder.c:
7278 baseaudioencoder: Delay sending of serialized events to finish_frame()
7280 2011-08-15 13:06:51 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7283 * omx/gstbaseaudiodecoder.c:
7284 * omx/gstbaseaudiodecoder.h:
7285 * omx/gstbaseaudioencoder.c:
7286 * omx/gstbaseaudioencoder.h:
7287 audio: Integrate audio base classes into the build system and fixup
7289 2011-08-15 12:56:00 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7291 * omx/gstbaseaudiodecoder.c:
7292 * omx/gstbaseaudiodecoder.h:
7293 * omx/gstbaseaudioencoder.c:
7294 * omx/gstbaseaudioencoder.h:
7295 * omx/gstbaseaudioutils.c:
7296 * omx/gstbaseaudioutils.h:
7297 audio: Add audio decoder/encoder base classes
7298 Taken from http://cgit.collabora.com/git/user/manauw/gst-plugins-bad.git/log/?h=baseaudio
7300 2011-08-12 12:25:03 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7302 * omx/gstbasevideoencoder.c:
7303 basevideoencoder: Proxy the width/height/framerate/PAR constraints of downstream caps to upstream
7304 This allows to specify constraints on the compressed downstream caps
7305 by muxers or capsfilters, which will then be forwarded to upstream
7306 and allows video converters to fulfill the constraints.
7307 Code based on Mark Nauwelaerts audio encoder base class.
7309 2011-08-12 12:13:45 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7311 * omx/gstbasevideoencoder.h:
7312 basevideoencoder: Remove old ::getcaps() comment
7314 2011-08-12 12:06:23 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7316 * omx/gstbasevideoencoder.c:
7317 * omx/gstbasevideoencoder.h:
7318 basevideoencoder: Remove ::get_caps() vfunc
7319 Subclasses can set the caps more efficiently and this only
7320 caused additional indirections.
7322 2011-08-10 10:24:21 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7324 * omx/gstomxh263enc.c:
7325 * omx/gstomxh264enc.c:
7326 * omx/gstomxmpeg4videoenc.c:
7327 * omx/gstomxvideoenc.c:
7328 omxvideoenc: Use "video/x-raw-yuv" as sink template caps instead of strict I420 caps
7330 2011-08-10 10:23:39 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7332 * omx/gstomxmpeg4videodec.c:
7333 omxmpeg4videodec: Don't require width/height on sink pad caps
7335 2011-08-10 10:11:37 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7337 * omx/gstomxh263dec.c:
7338 * omx/gstomxh264dec.c:
7339 * omx/gstomxmpeg4videodec.c:
7340 * omx/gstomxvideodec.c:
7341 * omx/gstomxwmvdec.c:
7342 omxvideodec: Use "video/x-raw-yuv" as src template caps instead of strict I420 caps
7344 2011-08-10 09:56:30 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7346 * omx/gstomxvideoenc.c:
7347 omxvideoenc: Set the state back to StateLoaded even if an error happened
7349 2011-08-10 09:49:57 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7352 omx: Don't hold any locks while calling OMX_SendCommand()
7353 It might call into one of the callbacks and lead to deadlocks, e.g.
7354 with the Qualcomm OMX implementation.
7356 2011-08-10 09:32:01 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7361 2011-08-10 09:23:10 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7364 omx: Reset pending reconfigure output ports when changing the state from Executing to any lower state
7366 2011-08-10 09:08:00 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7369 omx: Fix crash when setting last error after the ports were freed
7371 2011-08-10 09:03:52 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7374 omx: Free component structure
7376 2011-08-10 09:02:52 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7379 omx: Make component destruction safer
7381 2011-08-10 08:53:05 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7384 omx: Set pAppPrivate of buffers to NULL when deallocating buffers
7385 This prevents usage of freed memory later if the OMX component
7386 has weird behaviour.
7388 2011-08-10 08:52:25 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7390 * omx/gstomxvideodec.c:
7391 omxvideodec: Set the state back to StateLoaded even if an error happened
7393 2011-08-10 08:51:54 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7396 omx: Add some assertions to check if the buffer pAppPrivate is still correct
7398 2011-08-08 13:04:30 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7401 omx: Add parenthesis at correct places in the struct init macro
7403 2011-08-08 12:12:58 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7406 omx: Only prevent setting a higher state if the component is in an error state
7408 2011-08-03 16:02:01 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7410 * omx/gstbasevideodecoder.c:
7411 basevideodecoder: Use the cached video frame size instead of recalculating it
7413 2011-08-03 15:35:01 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7416 omx: Improve debugging in param/config getter/setter wrappers
7418 2011-08-03 13:10:33 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7420 * omx/gstomxvideodec.c:
7421 omxvideodec: Don't abort if the color format is not supported but give a useful error message
7423 2011-08-02 15:14:37 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7425 * omx/gstomxh263enc.c:
7426 * omx/gstomxh264enc.c:
7427 * omx/gstomxmpeg4videoenc.c:
7428 * omx/gstomxvideoenc.c:
7429 omxvideoenc: Don't fail if setting the bitrate or profile is not supported by the component
7430 Also always set/get the profile, even if there are no peer caps.
7432 2011-08-02 15:14:24 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7434 * omx/gstbasevideoencoder.c:
7435 basevideoencoder: Make access to the list of frames threadsafe
7437 2011-08-01 13:22:05 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7441 omx: Add a hacks flag for the Qualcomm 7x30 OMX_FillThisBuffer() race and make it optional
7443 2011-07-29 13:56:59 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7446 omx: Add workaround for QCOM 7x30 race condition
7448 2011-07-29 12:06:21 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7452 * omx/gstomxh263enc.c:
7453 * omx/gstomxh263enc.h:
7454 omxh263enc: Add H.263 encoder element
7456 2011-07-29 11:26:39 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7458 * omx/gstomxmpeg4videoenc.c:
7459 omxmpeg4videoenc: Add support for setting profile/level via caps
7461 2011-07-28 14:14:45 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7463 * omx/gstomxh264enc.c:
7464 omxh264enc: Add support for setting profile/level via caps
7466 2011-07-28 12:58:25 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7468 * omx/gstomxvideoenc.c:
7469 omxvideoenc: Add support for forcing the next frame to be a keyframe
7471 2011-07-28 11:54:16 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7473 * omx/gstomxvideoenc.c:
7474 * omx/gstomxvideoenc.h:
7475 omxvideoenc: Add support for setting bitrate/quantization related parameters
7477 2011-07-28 10:23:08 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7481 omx: Add wrapper functions for OMX_[GS]et{Config,Parameter}
7483 2011-07-28 09:54:53 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7487 omx: Add macro to initialize OpenMAX structures
7489 2011-07-28 09:08:38 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7491 * omx/gstomxvideoenc.c:
7492 omxvideoenc: Don't output 0-byte buffers
7494 2011-07-25 15:05:08 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7497 omx: Ensure that the pAppPrivate pointer in OMX buffers is set correctly
7499 2011-07-25 13:19:06 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7501 * omx/gstomxvideodec.c:
7502 * omx/gstomxvideoenc.c:
7503 omxvideo{enc,dec}: Only set/unset flushing state on ports if they were created already
7505 2011-07-25 12:01:05 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7509 * omx/gstomxwmvdec.c:
7510 * omx/gstomxwmvdec.h:
7511 omxwmvdec: Add WMV video decoder element
7513 2011-07-25 11:44:56 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7517 * omx/gstomxh263dec.c:
7518 * omx/gstomxh263dec.h:
7519 omxh263dec: Add H.263 decoder element
7521 2011-07-25 11:32:51 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7525 * omx/gstomxh264enc.c:
7526 * omx/gstomxh264enc.h:
7527 omxh264enc: Add H.264 encoder element
7529 2011-07-25 10:48:58 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7531 * omx/gstomxvideodec.c:
7532 omxvideodec: Try harder to deallocate the buffers after errors happened
7534 2011-07-25 10:47:28 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7536 * omx/gstomxvideoenc.c:
7537 omxvideoenc: Try harder to deallocate the buffers after errors happened
7539 2011-07-25 10:46:49 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7542 omx: Deallocate port buffers before freeing the component
7543 They should be deallocated by the caller before reaching the
7544 Loaded state but to be on the safe side we will make sure
7545 they're really deallocated here.
7547 2011-07-21 11:15:14 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7549 * omx/gstomxvideoenc.c:
7550 omxvideoenc: Add initial support for stride conversion
7552 2011-07-21 10:38:26 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7554 * omx/gstomxh264dec.c:
7555 * omx/gstomxmpeg4videodec.c:
7556 * omx/gstomxmpeg4videoenc.c:
7557 omx: Set default roles for the components if none were set from the config file
7559 2011-07-21 10:36:19 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7562 omx: Failure to set the component role is fatal
7564 2011-07-21 07:53:25 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7566 * omx/gstomxvideoenc.c:
7567 omxvideoenc: Add support for setting codec_data on the srcpad caps
7569 2011-07-21 07:44:34 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7571 * omx/gstomxvideoenc.c:
7572 omxvideoenc: Free/drop GstVideoFrames that resulted in an empty buffer
7574 2011-07-21 07:44:10 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7576 * omx/gstbasevideoencoder.c:
7577 basevideoencoder: Allow finishing of frames with no src_buffer to drop/free the GstVideoFrame
7579 2011-07-21 07:31:05 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7581 * omx/gstomxvideoenc.c:
7582 omxvideoenc: Remove obsolete TODO comment
7584 2011-07-20 11:09:54 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7588 omx: Use libgstopenmax.so for the plugin filename and openmax for the plugin name
7589 Resolves conflicts with gst-openmax.
7591 2011-07-20 08:34:33 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7597 * omx/gstomxmpeg4videoenc.c:
7598 * omx/gstomxmpeg4videoenc.h:
7599 * omx/gstomxvideoenc.c:
7600 * omx/gstomxvideoenc.h:
7601 omxvideoenc: Add video encoder base class and MPEG4 video encoder
7602 Unfortunately requires lots of hacks again to work properly with
7605 2011-07-20 10:39:51 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7607 * omx/gstbasevideoencoder.c:
7608 basevideoencoder: Only get caps from the subclass if they were not set yet by the subclass
7610 2011-07-20 09:25:28 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7612 * omx/gstbasevideoencoder.c:
7613 * omx/gstbasevideoencoder.h:
7614 basevideoencoder: Delay sending of serialized sink events until finish_frame()
7616 2011-07-20 09:09:25 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7618 * omx/gstbasevideoencoder.c:
7619 * omx/gstbasevideoencoder.h:
7620 basevideoencoder: Add ::reset vfunc and handle ::reset/::finish the same way as in the decoder
7622 2011-07-19 12:50:43 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7624 * omx/gstbasevideoencoder.c:
7625 basevideoencoder: Use a temporary GstVideoState until the subclass accepted the caps
7626 Also store the caps in the GstVideoState and assume a PAR of 1/1 instead
7627 of 0/1 if no PAR is specified in the caps.
7629 2011-07-19 12:29:51 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7632 * omx/gstomxvideodec.c:
7633 omx: Improve debug output a bit
7635 2011-07-19 10:33:54 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7639 * omx/gstomxvideodec.c:
7640 omx: Rework port reconfiguration again and only use the Bellagio specific hacks with Bellagio
7641 We only reconfigure ports that need to be reconfigured now instead of
7644 2011-07-19 10:33:15 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7649 * omx/gstomxvideodec.c:
7650 * omx/gstomxvideodec.h:
7651 omx: Add infrastructure to enable special hacks for broken OpenMAX implementations
7653 2011-07-18 13:10:49 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7656 omx: When acquiring a buffer from an input port always wait until all output ports are reconfigured
7658 2011-07-18 08:41:20 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7660 * omx/gstomxvideodec.c:
7661 omxvideodec: Add support for converting between omx and gst rowstrides
7663 2011-07-14 10:34:09 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7666 omx: Provide all buffers to output ports after enabling them
7668 2011-07-14 08:29:03 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7670 * omx/gstomxvideodec.c:
7671 omxvideodec: Add support for NV12 / OMX_COLOR_FormatYUV420SemiPlanar
7673 2011-07-14 07:58:41 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7675 * omx/gstomxvideodec.c:
7676 * omx/gstomxvideodec.h:
7677 omxvideodec: Only flush the component ports after we passed input to them
7679 2011-07-13 21:19:34 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7681 * omx/gstomxvideodec.c:
7682 omxvideodec: Only change states downwards if an upper state was reached
7684 2011-07-13 20:37:02 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7688 * omx/gstomxvideodec.c:
7689 * omx/gstomxvideodec.h:
7690 omx: Add support for setting the component-role
7692 2011-07-13 20:22:51 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7696 * omx/gstomxvideodec.c:
7697 omx: Improve error reporting by formatting the error codes better and also providing their string representation
7699 2011-07-13 14:36:14 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7702 build: Dist autogen.sh
7704 2011-07-13 14:35:51 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7708 build: Only require GStreamer >= 0.10.29 and GLib >= 2.16
7710 2011-07-13 14:04:47 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7713 build: Dist gstomx.conf
7715 2011-07-13 14:04:20 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7718 build: Clean _stdint.h on "make distclean"
7720 2011-07-13 14:02:50 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7722 * omx/gstomxvideodec.c:
7723 omxvideodec: Fix typo
7725 2011-07-13 13:59:50 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7730 2011-07-13 12:46:50 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7732 * omx/gstomxvideodec.c:
7733 omxvideodec: Set SYNCFRAME flag on the OMX buffers for non-delta units
7735 2011-07-13 12:37:44 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7737 * omx/gstomxvideodec.c:
7738 omxvideodec: Free all pending frames when resetting the decoder
7739 Workaround for https://bugzilla.gnome.org/show_bug.cgi?id=654529
7741 2011-07-13 09:59:49 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7743 * omx/gstomxvideodec.c:
7744 omxvideodec: Handle output buffers without a corresponding GstVideoFrame more gracefully
7745 This can happen on EOS in some cases and when the input is not
7748 2011-07-13 09:31:22 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7750 * omx/gstomxvideodec.c:
7751 omxvideodec: Fix deadlock when finishing old frames that are left over by the decoder
7753 2011-07-12 11:37:28 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7755 * omx/gstomxh264dec.c:
7756 omxh264dec: It's called H.264, not H264
7758 2011-07-12 11:36:42 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7760 * omx/gstomxh264dec.c:
7761 * omx/gstomxmpeg4videodec.c:
7762 * omx/gstomxvideodec.c:
7763 * omx/gstomxvideodec.h:
7764 omxvideodec: Make sink/src pad template caps configurable
7766 2011-07-12 11:13:50 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7769 omx: Allow to set a preferred configuration directory with the GST_OMX_CONFIG_DIR environment variable
7771 2011-07-12 10:55:57 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7773 * omx/gstomxh264dec.c:
7774 * omx/gstomxmpeg4videodec.c:
7775 * omx/gstomxvideodec.c:
7776 omxvideodec: Make core/component-name and in/outport index configurable
7778 2011-07-12 10:05:31 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7783 omx: Add initial version of configuration system
7784 This now only registers elements that are specified in the
7786 The configuration file is a keyfile in the first XDG configuration
7787 directory with the name gstomx.conf.
7789 2011-07-12 08:53:15 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7793 * omx/gstomxh264dec.c:
7794 * omx/gstomxh264dec.h:
7795 * omx/gstomxh264videodec.h:
7796 omxh264dec: Rename from omxh264videodec to omxh264dec
7798 2011-07-12 08:40:48 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7800 * omx/gstomxh264videodec.c:
7801 omxh264videodec: Require alignment=au and stream-format={avc,bytestream}
7803 2011-07-11 12:59:07 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7805 * omx/gstbasevideodecoder.c:
7806 basevideodecoder: First inform subclass about resetting before resetting/freeing all internal state
7807 The subclass might want to access the old state.
7809 2011-07-11 12:36:42 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7811 * omx/gstbasevideodecoder.c:
7812 basevideodecoder: Track present position on discont before resetting it
7814 2011-07-11 11:52:33 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7816 * omx/gstbasevideodecoder.c:
7817 basevideodecoder: Also protect the list of pending frames from concurrent access when pushing all pendings events
7819 2011-07-11 11:28:40 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7821 * omx/gstbasevideocodec.c:
7822 * omx/gstbasevideocodec.h:
7823 * omx/gstbasevideodecoder.c:
7824 basevideocodec: Protect access to the list of pending frames with the object lock
7825 This is required if ::finish_frame() and all buffer output happens
7826 on a different thread than the sinkpad streaming thread.
7828 2011-07-11 09:35:25 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7830 * omx/gstbasevideodecoder.c:
7831 basevideodecoder: Set the correct lists to NULL after freeing
7833 2011-07-11 08:54:53 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7835 * omx/gstbasevideodecoder.c:
7836 basevideodecoder: Work with a copy of the GstVideoState in setcaps until the caps are accepted
7837 Also fix a refcount problem with the codec_data.
7839 2011-07-12 08:34:44 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7843 * omx/gstomxh264videodec.c:
7844 * omx/gstomxh264videodec.h:
7845 omxh264videodec: Add h.264 video decoder
7847 2011-07-12 08:29:15 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7849 * omx/gstomxmpeg4videodec.c:
7850 omxmpeg4videodec: Fix debug category name
7852 2011-07-09 11:41:42 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7855 * omx/gstbasevideocodec.h:
7856 * omx/gstbasevideodecoder.c:
7857 * omx/gstbasevideoencoder.c:
7858 * omx/gstbasevideoutils.c:
7859 * omx/gstbasevideoutils.h:
7860 basevideo: Move the utils from the codec header to its own header
7862 2011-07-09 11:32:06 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7864 * omx/gstbasevideocodec.c:
7865 * omx/gstbasevideodecoder.c:
7866 basevideo: Use GSlice for allocating GstVideoFrame and don't duplicate code in the decoder base class
7868 2011-07-09 11:05:37 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7870 * omx/gstomxvideodec.c:
7871 omxvideodec: Use the destroy notify to free the coder_hook
7873 2011-07-09 10:57:52 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7875 * omx/gstbasevideocodec.c:
7876 * omx/gstbasevideocodec.h:
7877 * omx/gstbasevideodecoder.c:
7878 basevideo: Add destroy notify for the coder_hook to prevent memory leaks
7881 2011-07-09 10:44:16 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7884 basevideo: Fix GType names to not conflict with the public video base classes
7885 It's still not possible to include headers of both in the same file
7886 or compile/link both into the same plugin but that shouldn't be
7889 2011-07-08 15:42:56 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7891 * omx/gstomxvideodec.c:
7892 omxvideodec: Fix some minor memory leaks
7894 2011-07-08 15:25:07 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7898 * omx/gstomxvideodec.c:
7899 omx: Rework port reconfiguration
7900 We always reconfigure all ports now if the settings of one
7901 port changes to prevent lots of race conditions, dropped
7902 frames and similar issues.
7904 2011-07-08 13:16:45 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7906 * omx/gstomxvideodec.c:
7907 * omx/gstomxvideodec.h:
7908 omxvideodec: Use the frames storage of the base class instead of implementing our own
7909 They could get out of sync and we could store already destroyed frames.
7911 2011-07-07 12:51:03 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7914 omx: Clarify GQueue/GPtrArray element types
7916 2011-07-07 12:23:24 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7920 * omx/gstomxvideodec.c:
7921 omx: Add more checks to acquire_buffer() and return the current state additional to the buffer
7922 Also refactor the code flow in the video decoder for this. This makes
7923 the usage of acquire_buffer() easier and more atomic.
7925 2011-07-07 12:22:57 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7927 * omx/gstomxvideodec.c:
7928 omxvideodec: Also flush/unflush the input port when changing the state PAUSED<->READY
7930 2011-07-07 12:21:31 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7933 omx: Don't broadcast port->port_cond after allocating buffers successfully
7934 Allocating buffers must happen while no thread is waiting for the
7935 cond and especially must happen from the thread that would acquire
7936 buffers from the port.
7938 2011-07-07 11:27:15 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7940 * omx/gstomxvideodec.c:
7941 omxvideodec: Don't leak the codec_data after sending it
7943 2011-07-07 10:27:31 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7946 omx: Always check if the component is in an error state before waiting for a condition variable to be signalled
7947 Otherwise we might wait forever because nothing is going to signal
7948 the condition variable anymore.
7950 2011-07-07 10:22:12 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7953 omx: Always hold port->port_lock before signalling port->port_cond when notifying about errors
7954 Otherwise a port might be in the critical section, has checked the error state
7955 already but waits after port->port_cond is signalled, which will lead
7958 2011-07-07 10:07:43 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7960 * omx/gstomxvideodec.c:
7961 omxvideodec: Remove reconfiguration test hack
7963 2011-07-06 13:27:12 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7966 omx: Improve debug output a bit
7968 2011-07-06 13:26:51 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7971 omx: Always try to deallocate buffers, even if there's a component error
7973 2011-07-06 13:26:01 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7976 omx: Use G_USEC_PER_SEC for clarity instead of 1000000
7978 2011-07-06 13:19:15 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7980 * omx/gstomxvideodec.c:
7981 omxvideodec: Error out if the GStreamer allocated buffer is smaller than the OpenMAX output buffer
7982 Usually this must never happen but currently it happens during reconfigurations
7983 because of a race condition. Still it's better than crashing.
7985 2011-07-06 10:40:13 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7989 omx: Don't use port_def.bEnabled to check if the Enable/Disable command is finished
7990 bEnabled should be set immediately after sending the command, it's only
7991 Bellagio that waits until the command is finished before setting it.
7993 2011-07-06 10:30:11 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
7995 * omx/gstomxvideodec.c:
7996 omxvideodec: Remove obsolete FIXME comment
7998 2011-07-06 10:29:54 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8002 omx: Improve error handling and reporting
8004 2011-07-06 08:48:37 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8006 * omx/gstomxmpeg4videodec.c:
8007 * omx/gstomxvideodec.c:
8008 * omx/gstomxvideodec.h:
8009 omxvideodec: Make the inport and outport index configurable by the subclass
8011 2011-06-28 08:51:23 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8016 * omx/gstomxmpeg4videodec.c:
8017 * omx/gstomxmpeg4videodec.h:
8018 * omx/gstomxvideodec.c:
8019 * omx/gstomxvideodec.h:
8020 omx: Add initial version of OpenMAX framework, video decoder base class and MPEG4 video decoder
8021 This currently hardcodes a lot of stuff but works at least.
8022 Also adds a generic framework for handling OpenMAX cores, components
8025 2011-06-28 11:47:25 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8027 * omx/gstbasevideocodec.c:
8028 * omx/gstbasevideocodec.h:
8029 * omx/gstbasevideodecoder.c:
8030 * omx/gstbasevideodecoder.h:
8031 basevideodecoder: Don't reorder serialized src events
8032 And allow to drop EOS by the subclass if ::finish returns
8036 2011-06-27 09:41:40 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8038 * omx/gstbasevideocodec.c:
8039 * omx/gstbasevideocodec.h:
8040 * omx/gstbasevideodecoder.c:
8041 basevideo: Add the caps to the GstVideoState and clean up caps/codec_data properly
8043 2011-06-27 09:37:03 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8045 * omx/gstbasevideocodec.c:
8046 * omx/gstbasevideocodec.h:
8047 * omx/gstbasevideodecoder.c:
8048 * omx/gstbasevideodecoder.h:
8049 * omx/gstbasevideoencoder.c:
8050 * omx/gstbasevideoencoder.h:
8051 * omx/gstbasevideoutils.c:
8052 basevideo: Add video encoder/decoder base classes from gst-plugins-bad
8054 2011-06-21 11:17:35 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
8056 * omx/openmax/OMX_Audio.h:
8057 * omx/openmax/OMX_Component.h:
8058 * omx/openmax/OMX_ComponentExt.h:
8059 * omx/openmax/OMX_ContentPipe.h:
8060 * omx/openmax/OMX_Core.h:
8061 * omx/openmax/OMX_CoreExt.h:
8062 * omx/openmax/OMX_IVCommon.h:
8063 * omx/openmax/OMX_Image.h:
8064 * omx/openmax/OMX_Index.h:
8065 * omx/openmax/OMX_IndexExt.h:
8066 * omx/openmax/OMX_Other.h:
8067 * omx/openmax/OMX_Types.h:
8068 * omx/openmax/OMX_Video.h:
8069 * omx/openmax/OMX_VideoExt.h:
8070 openmax: Add OpenMAX IL 1.1.2 headers