Edward Hervey
f022d980f0
Automatic update of common submodule
...
From 1fab359 to 03a0e57
2012-06-06 18:20:18 +02:00
Edward Hervey
e2f52910e9
Automatic update of common submodule
...
From f1b5a96 to 1fab359
2012-06-01 10:30:27 +02:00
Sebastian Dröge
4cdd3331ea
Automatic update of common submodule
...
From 92b7266 to f1b5a96
2012-05-31 13:10:33 +02:00
Sebastian Dröge
a9d1e89865
Automatic update of common submodule
...
From ec1c4a8 to 92b7266
2012-05-30 12:47:59 +02:00
Sebastian Dröge
f46c8b2efa
Automatic update of common submodule
...
From 3429ba6 to ec1c4a8
2012-05-30 11:26:30 +02:00
Sebastian Dröge
200d9719a9
Automatic update of common submodule
...
From dc70203 to 3429ba6
2012-05-13 15:58:10 +02:00
George Kiagiadakis
7b3dac67af
omx: Fix spelling mistake found by lintian: s/Seperate/Separate/
2012-05-08 16:16:00 +03:00
George Kiagiadakis
158775f497
Implement a new custom recursive mutex type and fix locking in callbacks so that in-context calls are allowed.
...
According to the OMX specification, implementations are allowed to call
callbacks in the context of their function calls. However, our callbacks
take locks and this causes deadlocks if the unerlying OMX implementation
uses this kind of in-context calls.
A solution to the problem would be a recursive mutex. However, a normal
recursive mutex does not fix the problem because it is not guaranteed
that the callbacks are called from the same thread. What we see in Broadcom's
implementation for example is:
- OMX_Foo is called
- OMX_Foo waits on a condition
- A callback is executed in a different thread
- When the callback returns, its calling function
signals the condition that OMX_Foo waits on
- OMX_Foo wakes up and returns
The solution I came up with here is to take a second lock inside the callback,
but only if recursion is expected to happen. Therefore, all calls to OMX
functions are guarded by calls to gst_omx_rec_mutex_begin_recursion() / _end_recursion(),
which effectively tells the mutex that at this point we want to allow calls
to _recursive_lock() to succeed, although we are still holding the master lock.
2012-05-07 17:01:16 +03:00
George Kiagiadakis
5c15caef8e
omx: Add hack to disable setting roles to components.
...
Conflicts:
omx/gstomx.c
2012-05-03 13:21:18 +02:00
George Kiagiadakis
7ca067be28
omxvideodec: Implement no-empty-eos-buffer hack, as in omxvideoenc.
...
Conflicts:
omx/gstomxvideodec.c
2012-05-03 12:24:43 +02:00
George Kiagiadakis
4aa3fa8a0d
omxvideodec: Fix coding style in the drain-may-not-return hack code
2012-05-03 12:20:05 +02:00
Arun Raghavan
34a83c184e
omx: Fix trivial debug print bug
2012-04-26 09:42:54 +05:30
Arun Raghavan
9e4cddee7e
omxvideodec: Add hack for Ducati components not returning from drain
...
This happens on the Galaxy Nexus, and causes the pipeline to hang waiting
endlessly for a drain. The hack replaces the wait with a wait + 500ms timeout.
2012-04-26 09:42:52 +05:30
Arun Raghavan
036cd16756
omx: Fix deadlock between ending a flush and the event handler
...
gst_omx_port_set_flushing() calls OMX_FillThisBuffer at the end of a flush
without releasing the port lock, and this can cause a deadlock with the
EventHandler. This patches fixes this by dropping the lock for the duration of
the fill buffer call.
2012-04-26 09:42:50 +05:30
Sebastian Dröge
d99fa5e3b3
omx: Update video encoder/decoder base classes from gst-plugins-bad
2012-04-24 15:41:38 +02:00
Sebastian Dröge
2aff72a0b0
configure: Modernize autotools setup a bit
...
Also we now only create tar.bz2 and tar.xz tarballs.
2012-04-16 09:16:10 +02:00
Sebastian Dröge
3024d6f7b0
Automatic update of common submodule
2012-04-16 09:12:37 +02:00
Sebastian Dröge
3523724970
omxaudioenc: Use gst_buffer_extract() to copy the input buffer data to the OpenMAX buffer
2012-04-16 08:35:33 +02:00
Alessandro Decina
e6e3f05948
Fix relative/absolute path glitch
...
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
2012-04-13 17:16:42 -04:00
Olivier Crête
ff2603a727
Port to Gst 0.11
2012-04-13 12:16:34 -04:00
Reynaldo H. Verdejo Pinochet
766dc7c541
Enable building with Android's buildsystem
...
This change adds prelimary buildsystem hooks to
build gst-omx with the Android buildsystem. Like
the rest of GStreamer's Android hooks, the process
relies on the availability of androgenizer. A tool
developed by Collabora to automatically generate
Android.mk files from within the auto* setup.
Androgenizer is currently available at:
http://cgit.collabora.com/git/user/derek/androgenizer.git/
2012-01-19 14:08:12 -03:00
Sebastian Dröge
4fd185be6f
basevideocodec: Don't use G_TYPE_REGISTER_BOXED() yet
...
This would require GLib 2.26.
2011-12-14 21:15:29 +01:00
Jonas Larsson
887d43c290
omxaudioenc: Add hack for encoder components that don't allow empty EOS buffers
2011-12-14 10:09:34 +01:00
Jonas Larsson
2cab5b5db5
omxvideoenc: Fix deadlock when using the EOS hack
2011-12-14 10:07:29 +01:00
Sebastian Dröge
3db75118dd
omxvideoenc: Remove workaround for basevideocodec bug
2011-12-12 14:26:48 +01:00
Sebastian Dröge
4c225f9cdd
omxvideodec: Remove workaround for basevideocodec bug
2011-12-12 14:26:34 +01:00
Matej Knopp
30005be2e5
basevideo: Make GstVideoFrame a reference counted boxed object
...
...and also clear all existing frames when resetting the decoder or encoder.
2011-12-12 14:24:47 +01:00
Sebastian Dröge
9e6665e8f8
omx: Add hack for encoder components that don't allow empty EOS buffers
2011-12-09 12:24:01 +01:00
Dake Gu
b8b64ac746
omxaacenc: Generate and set codec_data on the caps for raw AAC
2011-12-09 10:21:47 +01:00
Alessandro Decina
247e410df0
basevideoencoder: handle failures in start() and stop()
2011-12-08 11:56:58 +01:00
Vincent Penquerc'h
f27ca88ecc
basevideoenc: do not try to calculate latency from an unknown framerate
...
It'll divide by zero, and latency is unknown for an unknown framerate.
Fixes an assert in the schroenc test.
https://bugzilla.gnome.org/show_bug.cgi?id=657419
2011-12-08 11:55:03 +01:00
Sebastian Dröge
8e662fffb0
basevideoencoder: Only make the header buffer metadata writable, not the buffer
2011-12-08 11:50:49 +01:00
Sebastian Dröge
9ea6e7d2f2
basevideoencoder: Fix handling of force-keyunit events
2011-12-08 10:18:36 +01:00
Sebastian Dröge
766f5bd161
omxaudioenc: Don't forward EOS events immediately but let all other events be handled by the base class
...
Previously this logic was inversed, which did not make any sense at all.
2011-12-06 13:28:41 +01:00
Sebastian Dröge
064e4c628c
omxaudioenc: Use correct timestamp, duration and filled length for the EOS buffers
2011-12-06 12:47:25 +01:00
Sebastian Dröge
05ad3343bf
omxvideodec: Use correct timestamp, duration and filled length for the EOS buffers
2011-12-06 12:47:12 +01:00
Sebastian Dröge
bd60f141e9
omxvideoenc: Use correct timestamp, duration and filled length for the EOS buffers
2011-12-06 12:46:51 +01:00
Sebastian Dröge
0cb32a4ebd
omx: Improve debugging of buffer handling
2011-12-05 13:18:09 +01:00
Sebastian Dröge
781e61d569
omxvideoenc: Drop EOS events in ::finish()
...
The event will be forwarded downstream from the srcpad
loop function after the last buffer was generated by the
component. Forwarding it after ::finish() will use the
sinkpad streaming thread and does not guarantee that
the encoder is completely drained.
2011-12-05 08:12:48 +01:00
Sebastian Dröge
b4e632cefe
omxvideodec: Properly drop frames due to QoS
...
Instead of finishing them they should be passed to drop(), which
will then send QoS messages.
2011-12-01 16:20:36 +01:00
Jonas Larsson
9c4b926c41
omxh264enc: Add support for resending headers after a forced-keyframe
2011-11-29 12:21:32 +01:00
Sebastian Dröge
458199abfb
basevideoencoder: Pass the all-headers field of the force-key-unit event to the subclass
2011-11-29 12:20:09 +01:00
Sebastian Dröge
3cb4bbe97e
basevideoencoder: Implement full support for the new force-key-unit event
...
Including support for the running-time and count fields.
2011-11-29 12:20:09 +01:00
Sebastian Dröge
11b2dea82d
basevideoencoder: Use new force-keyunit event API from gst-plugins-base
2011-11-29 12:20:09 +01:00
Sebastian Dröge
77db7e5780
basevideoencoder: Adjusting padding is not required for -bad libraries
2011-11-29 12:20:09 +01:00
Sebastian Dröge
db756fb190
basevideoencoder: Move some fields to the private part of the instance struct
2011-11-29 12:20:09 +01:00
Sebastian Dröge
050700d561
basevideoencoder: Make headers metadata writable before pushing downstream
...
The timestamp, duration, etc of the headers has to be changed.
2011-11-29 12:20:09 +01:00
Sebastian Dröge
1f3f8c9dc5
basevideoencoder: Push the downstream force-keyframe event after the next keyframe
...
Even if the corresponding GstVideoFrame doesn't have the is_sync_point
flag set.
2011-11-29 12:20:09 +01:00
Sebastian Dröge
38b3f1ac00
basevideoencoder: Don't push an upstream force-keyunit event downstream
2011-11-29 12:20:09 +01:00
Jonas Larsson
36d2a21aa3
basevideoencoder: Add initial support for the all-headers field of the force-keyframe event
...
See bug #607742 .
2011-11-29 12:20:09 +01:00