Commit graph

509 commits

Author SHA1 Message Date
Sebastian Dröge
40869afea7 omxvideoenc: Implement hack for not disabling the output port after set_format until the output format is known
Needed on some OMX implementations, e.g. the one from Atmel. It does
not send the settings-changed event on the output port if it is
disabled.
2014-05-15 13:21:07 +02:00
Sebastian Dröge
4e20116bc6 omx: Add a hack for not disabling the output port after set_format until the output format is known
Needed on some OMX implementations, e.g. the one from Atmel. It does
not send the settings-changed event on the output port if it is
disabled.
2014-05-15 10:59:35 +02:00
Josep Torra
e08540d969 omxaudiosink: implement _delay only in the RaspberryPI
Make code implementation conditionally built for RaspberryPI because
OMX_IndexConfigAudioRenderingLatency seems to be a Broadcom extension.

On other targets the query position might not be accurate without
implementing _delay appropriatelly.
2014-05-12 12:33:32 +02:00
Sebastian Dröge
527af797d2 omxaudioenc: Correctly scale nTickCount by OMX_TICKS_PER_SECOND 2014-05-12 08:56:15 +02:00
Sebastian Dröge
14af0f266e omxaudioenc: Drain encoder on NULL buffer and don't drain on flushing 2014-05-10 22:48:23 +02:00
Sebastian Dröge
cfbf5bf16d omxvideodec: Set nTickCount based on the buffer's duration instead of something wrong 2014-05-10 22:47:56 +02:00
Sebastian Dröge
bc2990169a omxvideoenc: Set nTickCount to the whole duration of the buffer instead of a wrong calculation 2014-05-10 22:47:21 +02:00
Sebastian Dröge
cef3fb5fc3 omxaudiosink: Fix format string compiler warnings 2014-05-10 22:46:51 +02:00
Josep Torra
b3eb4d897d omxaudiosink: Implements OpenMAX based audio sinks
Provides omxanalogaudiosink and omxhdmiaudiosink elements on
the Raspberry PI.

- omxanalogaudiosink is capable to render raw mono or stereo audio
through the jack output.
- omxhdmiaudiosink is capable to render raw audio up to 8 channels
and transmit ac3/dts(IEC 61937) through the HDMI output.
- sinks provide a clock derived from rendered samples
- sinks support the GstStreamVolume interface by implementing
the volume and mute properties.

https://bugzilla.gnome.org/show_bug.cgi?id=728962
2014-05-09 13:15:18 +02:00
Julien Isorce
bdec8c0595 omxvideodec: can negotiate caps with memory:EGLImage feature when using EGLImage allocator
Previously when using gst EGLImage allocator the caps was
video/x-raw, format=RGBA instead of
video/x-raw(memory:EGLImage), format=RGBA

Kepp previous behavior in case negotiation fails with caps feature.
It means it will still have a chance to use EGLImage even if the
feature is not in the caps.

https://bugzilla.gnome.org/show_bug.cgi?id=729196
2014-05-02 18:00:48 +01:00
Aurélien Zanelli
420b0b62d3 omxvp8dec: fix typo in GST_TYPE_OMX_VP8_DEC define
https://bugzilla.gnome.org/show_bug.cgi?id=728774
2014-04-23 10:34:52 +02:00
Aurélien Zanelli
da4cf3da1f omxvideodec: don't unref caps before logging field from it
https://bugzilla.gnome.org/show_bug.cgi?id=728322
2014-04-17 09:33:47 +02:00
Julien Isorce
499fb23e9c omxvideodec: use new libgstgl API since libgstegl has been removed
There is no point to retrieve a ref/unref type
instead of an EGLDisplay directly. It's like for EGLImage.

https://bugzilla.gnome.org/show_bug.cgi?id=703343
2014-04-15 18:32:12 +01:00
Julien Isorce
d4bb7cb4c7 configure.ac: check for libgstgl since libgstegl has been removed
https://bugzilla.gnome.org/show_bug.cgi?id=703343
2014-04-15 18:32:12 +01:00
Aurélien Zanelli
1b6879921c omxvideodec: add support of more color format
Add support for ABGR, ARGB, RGB16, BGR16, YUY2, UYVY, YVYU, GRAY8 and
NV16 color format.
2014-04-15 15:09:24 +01:00
Aurélien Zanelli
f5f876f681 omxvideodec: simplify color format conversion in fill_buffer function 2014-04-15 15:09:24 +01:00
Aurélien Zanelli
6834d2e0b3 omxbufferpool: make video stride and offset calculation easier
It will be easier to support more color format.
2014-04-15 15:09:23 +01:00
Aurélien Zanelli
c115da9fd5 omx: add an helper to convert OMX color format to GStreamer color format 2014-04-15 15:09:23 +01:00
Josep Torra
718fd1bb93 omxvideodec: Implement pipeline draining to support adaptive scenarios
When draining due a format change also drain
the pipeline to reclaim back all buffers.

https://bugzilla.gnome.org/show_bug.cgi?id=726107
2014-03-28 11:40:20 +00:00
Josep Torra
73d83f311c omxvideodec: fixes race condition during seeks
Acording 6.1.3 Seek Event Sequence in the OpenMAX IL 1.1.2 spec
document in order to flush the component it needs to be in
paused state.

https://bugzilla.gnome.org/show_bug.cgi?id=726038
2014-03-25 16:07:25 +00:00
Julien Isorce
39ca9f980e omxvideodec: use flush because reset is deprecated
https://bugzilla.gnome.org/show_bug.cgi?id=726038
2014-03-25 16:07:15 +00:00
Julien Isorce
777411c286 omxvideodec: populate the most downstream output port on reset
Make seeking work when using egl_render component

https://bugzilla.gnome.org/show_bug.cgi?id=726038
2014-03-25 16:06:51 +00:00
Josep Torra
100e9f998d omxbufferpool: return buffers to the pool instead of freeing them
We have to return the buffers back to the pool in when stopping to
not mess with the GstBufferPool accounting.
The OMX buffers will be freed when those won't be in charge of the
pool in the chained up call to 'stop'.
Fixes segfaults on finalize and pool not being properly deactivated.

https://bugzilla.gnome.org/show_bug.cgi?id=726337
2014-03-24 18:20:51 +00:00
Christian König
651e67e32d omxvideodec: add missing unlock in the error path
Signed-off-by: Christian König <christian.koenig@amd.com>

https://bugzilla.gnome.org/show_bug.cgi?id=726958
2014-03-24 11:11:39 +00:00
Michal Lazo
c832b03b3b fix filemode 2014-03-19 08:53:02 +01:00
Julien Isorce
e8ca74c6f8 omxbufferpool: fix memory leak if used on output port
When using GstOMXBufferPool on an output port, it internally uses
a GPtrArray to manage the GstBuffers instead of the default queue
from the GstBufferPool base class.

In this case GstBufferPool::default_free_buffer is not called when
the pool is stopped. Because the queue is empty. So explicitely
call gst_omx_buffer_pool_free_buffer on each buffer contained in
the GPtrArray.

https://bugzilla.gnome.org/show_bug.cgi?id=726337
2014-03-17 18:02:51 +00:00
Sebastian Dröge
922d036ae7 omxh264enc: Fix compiler warnings 2014-03-16 17:32:05 +01:00
Michal Lazo
e55bf0a4c5 omxh264enc: IDR interval, SPS and PPS headers for rpi
https://bugzilla.gnome.org/show_bug.cgi?id=720031
2014-03-16 17:31:01 +01:00
Christian König
8a860bd024 omxvideo: fix debug category initialisation
https://bugzilla.gnome.org/show_bug.cgi?id=726024
2014-03-15 12:42:03 +01:00
Christian König
0ea0eb1579 omxbufferpool: add proper type definitions
https://bugzilla.gnome.org/show_bug.cgi?id=726325
2014-03-15 11:26:36 +01:00
Christian König
0700d6875f omx: consolidate message waiting code
Add a wait_message helper function and remove all those duplicated code.

https://bugzilla.gnome.org/show_bug.cgi?id=725493
2014-03-12 14:04:57 +01:00
Sebastian Dröge
6b28cf0378 omx: Copy old copyright notice into the new file 2014-03-12 12:48:12 +01:00
Sebastian Dröge
a04ef276e5 omx: Rename function from _4_ to _for_ for clarity 2014-03-12 12:47:34 +01:00
Christian König
6bf4d9a498 omxvideo: start sharing more code between video decoder and encoder
Identical functionality spread of two different components.
We can't use a common base class because of different inheritance,
but let's try to share the code anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=726024
2014-03-12 12:47:09 +01:00
Sebastian Dröge
e9b7dc230b omxbufferpool: Fix header include guard 2014-03-12 12:42:23 +01:00
Christian König
325c90f99d omxvideodec: separate the buffer pool from the decoder
https://bugzilla.gnome.org/show_bug.cgi?id=726025
2014-03-12 12:42:03 +01:00
Christian König
de5f940186 omx: simplify tunnel functions
Specifying the component is error prone and unnecessary.

https://bugzilla.gnome.org/show_bug.cgi?id=726021
2014-03-12 08:48:46 +01:00
Christian König
14a0da437f omxvideodec: fix memory leak in gst_omx_video_dec_allocate_output_buffers
https://bugzilla.gnome.org/show_bug.cgi?id=725907
2014-03-08 15:23:59 +01:00
Christian König
5ac0fe2108 omxvideodec: fix memory leak gst_omx_video_dec_negotiate
https://bugzilla.gnome.org/show_bug.cgi?id=725907
2014-03-08 15:22:15 +01:00
Christian König
20cfcda4db omxvideoenc: fix a memory leak in gst_omx_video_enc_getcaps
https://bugzilla.gnome.org/show_bug.cgi?id=725826
2014-03-06 20:37:02 +01:00
Christian König
85db124673 omxvideoenc: simplify _find_nearest_frame
Just the same as we did with the decoder. Also give the
function a gst_omx_video_enc prefix to distinct it from
the decoder function.

https://bugzilla.gnome.org/show_bug.cgi?id=724236
2014-03-03 20:12:58 +01:00
Christian König
2cfe70ed5d omxvideodec: simplify _find_nearest_frame
No need to make it more complicated and error prone than
necessary. Also give the function a gst_omx_video_dec prefix
to distinct it from the encoder function.

https://bugzilla.gnome.org/show_bug.cgi?id=724236
2014-03-03 20:12:51 +01:00
Christian König
bf0d2614c3 omxvideodec: remove dead code
This code doesn't seems to be used for quite a while,
remove it before it starts to rot.

https://bugzilla.gnome.org/show_bug.cgi?id=724236
2014-03-03 20:12:35 +01:00
Christian König
8b06b07f6f omx: fix two serious message handling bugs
Waiting for the next message if we already got one
is nonsense and can lead to lockups.

https://bugzilla.gnome.org/show_bug.cgi?id=725468
2014-03-02 12:09:59 +01:00
Christian König
4e4f093319 omxvideoenc: fix startup race condition
The reset function shouldn't start the src pad
loop if it wasn't started before.

Signed-off-by: Christian König <christian.koenig@amd.com>
2014-03-02 12:08:09 +01:00
Christian König
0a8cfcde87 omxvideodec: fix startup race condition
The reset function shouldn't start the src pad
loop if it wasn't started before.

Signed-off-by: Christian König <christian.koenig@amd.com>
2014-03-02 12:08:09 +01:00
Sebastian Dröge
1bf4edf721 omx: Don't handle FLUSHING and NOT_LINKED as errors
Also don't stop the task on NOT_LINKED. We're not a demuxer.
2014-01-25 17:44:57 +01:00
Tim-Philipp Müller
498b74ab6a omx: don't use the 'z' modifier to print size_t
gcc will warn in some cases even if the size of the type
is exactly that of size_t on the platform.

https://bugzilla.gnome.org/show_bug.cgi?id=699008
2013-08-20 16:00:07 +01:00
Roman Arutyunyan
5ba55b6c9a gstomxvideoenc: Set bitrate in setcaps
Otherwise it gets lost whenever we configure new caps

https://bugzilla.gnome.org/show_bug.cgi?id=698049
2013-07-01 15:48:47 +02:00
Josep Torra
f3f9330332 omx: Take lock on EOS to update the flow return value
Fixes "GThread-ERROR **: file gthread-posix.c: line 171
(g_mutex_free_posix_impl): error 'Device or resource busy' during
'pthread_mutex_destroy ((pthread_mutex_t *) mutex)'" in _finalize.
2013-05-20 12:06:34 +02:00