Commit graph

870 commits

Author SHA1 Message Date
Sebastian Dröge
5105daba1a omx: Add hack to load and initialize libbcm_host.so
Needed on the Raspberry Pi. Patch based on a patch by
George Kiagiadakis <george.kiagiadakis@collabora.com>
2012-12-19 11:31:51 +01:00
Sebastian Dröge
7c53535026 configure: Add configure option to pack OpenMAX structures
This is required to set to 4 for the Raspberry Pi for example.
2012-12-19 11:26:36 +01:00
Sebastian Dröge
b8498d6dbc configure: Require GStreamer 1.0.0 2012-12-19 11:26:36 +01:00
George Kiagiadakis
147dd89e21 omx: Initialize structures to version 1.1.2 2012-12-19 11:26:36 +01:00
Sebastian Dröge
31bf1c8bd6 config: Add raspberry-pi configuration in a different directory 2012-12-19 11:26:36 +01:00
George Kiagiadakis
78035a4848 raspberry: Add a gstomx.conf for the Raspberry Pi 2012-12-19 11:07:25 +01:00
Sebastian Dröge
3244201b49 omx: Fix some compilation errors caused by circular includes 2012-12-12 17:45:39 +00:00
Tim-Philipp Müller
828e462c9a Automatic update of common submodule
From 6bb6951 to a72faea
2012-11-19 11:29:44 +00:00
Sebastian Dröge
7fa4616598 omx: Fix refcount problem with frames being dropped because of decoder bugs 2012-11-12 15:14:09 +01:00
Sebastian Dröge
2481ceb8c4 omx: Update to new GLib thread API 2012-11-12 11:29:48 +01:00
Sebastian Dröge
bced70525a omx: Use open/close vfuncs 2012-10-22 14:34:53 +02:00
Sebastian Dröge
9d0e582484 omx: Handle video meta correctly 2012-10-22 14:28:04 +02:00
Sebastian Dröge
5fdb490f1a omx: Port to video base classes from -base 2012-10-22 14:20:41 +02:00
Tim-Philipp Müller
49ba281e8b omx: gst_element_class_set_details_simple() -> set_static_metadata() 2012-10-17 17:57:43 +01:00
Tim-Philipp Müller
1a0ae92a67 Automatic update of common submodule
From 6c0b52c to 6bb6951
2012-10-06 15:01:11 +01:00
Tim-Philipp Müller
148f4f864e Automatic update of common submodule
From 4f962f7 to 6c0b52c
2012-09-22 16:10:38 +01:00
George Kiagiadakis
f93feb2644 omx: fix debug statement 2012-09-03 12:37:02 +03:00
George Kiagiadakis
8a669ee308 omx: use recursive_lock inside set_last_error(), since this function may be called from an event handler 2012-09-03 12:36:53 +03:00
Stefan Sauer
6a7743b37f Automatic update of common submodule
From 668acee to 4f962f7
2012-08-22 13:31:59 +02:00
Tim-Philipp Müller
30c6b20a3d Automatic update of common submodule
From 94ccf4c to 668acee
2012-08-05 16:42:43 +01:00
Tim-Philipp Müller
3f963f87fb omx: fix plugin name for new GST_PLUGIN_DEFINE API 2012-08-03 19:32:13 +01:00
Sebastian Dröge
2171d31d41 Automatic update of common submodule
From 98e386f to 94ccf4c
2012-07-23 08:47:32 +02:00
Sebastian Dröge
48163f60f0 omx: Update for allocation query API changes 2012-07-10 09:57:09 +02:00
Sebastian Dröge
e84fee6488 omx: Fix compilation after gst_pad_start_task() API changes 2012-06-20 11:09:13 +01:00
Edward Hervey
7f63cc1e1c Automatic update of common submodule
From 03a0e57 to 98e386f
2012-06-08 15:06:35 +02:00
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