Commit graph

770 commits

Author SHA1 Message Date
Sebastian Dröge
8eaf25c10e omxvideoenc: Implement draining of the component and use it
This makes sure that all buffers are encoded and pushed downstream
before flushing the ports and losing some buffers.
2011-11-01 16:41:46 +01:00
Sebastian Dröge
e4b7ffcc1b omxvideodec: Implement draining of the component and use it
This makes sure that all buffers are decoded and pushed downstream
before flushing the ports and losing some buffers.
2011-11-01 16:23:22 +01:00
Sebastian Dröge
2f2c17a1b5 omxvideodec: Fix deadlock if ::reset is called before finding the corresponding frame of a decoded buffer 2011-11-01 16:23:22 +01:00
Sebastian Dröge
f93a45fb66 omxaudioenc: Forward downstream flow returns to upstream 2011-11-01 15:10:12 +01:00
Sebastian Dröge
21faf556ff omxvideoenc: Forward downstream flow returns to upstream 2011-11-01 15:10:01 +01:00
Sebastian Dröge
3b4260e54f omxvideodec: Forward downstream flow returns to upstream 2011-11-01 13:58:38 +01:00
Sebastian Dröge
f631097284 omx: Add minimal README file 2011-10-25 14:24:59 +02:00
Sebastian Dröge
10a5680692 omxvideodec: Fix deadlock caused by calling reset while the loop function does something with the base video codec stream lock 2011-10-20 15:21:07 +02:00
Sebastian Dröge
6689faa661 omxvideoenc: Fix deadlock caused by calling reset while the loop function does something with the base video codec stream lock 2011-10-20 15:20:47 +02:00
Sebastian Dröge
cf6f14d03c omxvideodec: Move locking at the correct place 2011-10-20 14:30:38 +02:00
Sebastian Dröge
72fa93956b omx: Remove QCOM hack to reset nOffset in EmptyBufferDone
This is now done in a generic way that does not require any
hacks because it will work without any side effects on any
OMX implementation.
2011-10-14 10:27:47 +02:00
Sebastian Dröge
2750a8869b omx: Reset nOffset to 0 in EmptyBufferDone if nFilledLen is 0
Some OMX implementations don't reset nOffset when the complete
buffer is emptied but instead only reset nFilledLen. We reset
nOffset to 0 if nFilledLen == 0, which is safe to do because
the offset *must* be 0 if the buffer is not filled at all.

Seen in QCOM's OMX implementation.
2011-10-14 10:26:21 +02:00
Sebastian Dröge
ac8085dce9 omxvideoenc: If one parameter/configuration is not supported don't skip the next 2011-10-10 10:38:29 +02:00
Sebastian Dröge
37967b4316 omxh264dec: Require stream-format=byte-stream
Other stream-formats are unlikely to be supported by OMX components.
2011-10-03 09:13:29 +02:00
Sebastian Dröge
bb1dd8aaba omxvideodec: Add API for subclasses to prepare/convert frames 2011-09-29 10:44:20 +02:00
Sebastian Dröge
febb83ec54 omxaudioenc: Switch to Idle first and wait before switching to Loaded and deallocating buffers
Allocating buffers before the Idle state is reached can lead to crashes.
2011-09-28 10:35:38 +02:00
Sebastian Dröge
e364088596 omxvideoenc: Switch to Idle first and wait before switching to Loaded and deallocating buffers
Allocating buffers before the Idle state is reached can lead to crashes.
2011-09-28 10:35:37 +02:00
Sebastian Dröge
ab9ce7db7d omxvideodec: Switch to Idle first and wait before switching to Loaded and deallocating buffers
Allocating buffers before the Idle state is reached can lead to crashes.
2011-09-28 10:35:37 +02:00
Sebastian Dröge
792cdb7d1f omxvideodec: New hack for QCOM to recreate the component instead of reconfiguring it on caps changes 2011-09-28 10:35:31 +02:00
Sebastian Dröge
a7f77e22a4 omx: Change a g_assert() into a GST_WARNING_OBJECT() 2011-09-27 12:28:22 +02:00
Sebastian Dröge
837fc4ca66 omx: Add hack for Qualcomm's OMX implementation to manually reset nOffset in EmptyBufferDone 2011-09-26 13:05:23 +02:00
Sebastian Dröge
7dbf68a232 omxaudioenc: Add a check to prevent a zero-sized OMX buffer 2011-09-23 17:04:15 +02:00
Sebastian Dröge
d5452a53b0 omxvideoenc: Add some more checks for correct OMX buffer sizes 2011-09-23 17:04:14 +02:00
Sebastian Dröge
5659bd3b4f omxvideodec: Add some more checks for OMX buffer sizes 2011-09-23 16:40:30 +02:00
Sebastian Dröge
f0fe1148b7 omx: Wait until the Executing state is reached before calling OMX_FillThisBuffer()
This correctly works around the QCOM race condition that happens when calling
FTB after setting the new state and before reaching it.
2011-09-14 10:16:41 +02:00
Sebastian Dröge
3ba45aa0af omxvideodec: Negotiate video format with downstream and what the component claims to support 2011-09-02 14:43:43 +02:00
Vincent Penquerc'h
fa2dff1ad6 basevideoencoder: fix element leak
and this concludes an hour of yelling at the bloody test failing,
only to track down the problem not being in the test.

https://bugzilla.gnome.org/show_bug.cgi?id=657368
2011-08-26 10:27:16 +02:00
Sebastian Dröge
9eb39ceef2 omxvideoenc: Release basevideocodec stream lock while waiting for a buffer
This prevents deadlocks if no empty input buffers are available and
releasing input buffers requires the loop function to handle some
output buffers first.
2011-08-19 09:23:58 +02:00
Sebastian Dröge
e583c48222 omxvideodec: Release basevideocodec stream lock while waiting for a buffer
This prevents deadlocks if no empty input buffers are available and
releasing input buffers requires the loop function to handle some
output buffers first.
2011-08-19 09:23:54 +02:00
Sebastian Dröge
e494792ca4 basevideodecoder: Fix deadlock 2011-08-18 10:24:40 +02:00
Sebastian Dröge
024f61e75a baseaudiodecoder: Don't take the stream lock in the seek handler
This will lead to deadlocks
2011-08-18 10:03:20 +02:00
Sebastian Dröge
58104f9ce5 basevideo: Fix locking, especially if both pads have different streaming threads 2011-08-18 10:02:50 +02:00
Sebastian Dröge
d439d8c337 basevideo: Don't call g_type_class_peek_parent() in class_init
This is already done by the GObject boilerplate macro
2011-08-18 09:42:02 +02:00
Sebastian Dröge
6991638d72 baseaudiodecoder: Don't call g_type_class_peek_parent() in class_init
This is already done by the boilerplate macro
2011-08-18 09:40:46 +02:00
Sebastian Dröge
affd6e2eb9 baseaudiodecoder: Fix thread safety issues if both pads have different streaming threads 2011-08-18 09:34:38 +02:00
Sebastian Dröge
fc511eb45d baseaudiodecoder: Delay sending of serialized events to finish_frame() 2011-08-18 09:17:04 +02:00
Sebastian Dröge
c5360dfae8 omxaudioenc: Always require at least OMX_MIN_PCMPAYLOAD_MSEC per input buffer 2011-08-17 14:33:31 +02:00
Sebastian Dröge
d42390efd9 baseaudioencoder: Add support for requesting a minimum and maximum number of samples per frame
This extends the special case of a fixed number of samples per frame
that was supported before already.
2011-08-17 14:28:44 +02:00
Sebastian Dröge
1daa53e554 omxaudioenc: Handle inbuf==NULL properly in ::handle_frame() 2011-08-17 14:17:18 +02:00
Sebastian Dröge
0928205ed4 omxaacenc: Implement ::get_num_samples() vfunc 2011-08-17 13:04:19 +02:00
Sebastian Dröge
d1e1980e01 omxaudioenc: Add vfunc to get the number of samples inside a buffer 2011-08-17 13:03:50 +02:00
Sebastian Dröge
92545e554c omxaudioenc: Release baseaudioencoder stream lock while waiting for a buffer in ::handle_frame()
This prevents deadlocks if no empty input buffers are available and
releasing input buffers requires the loop function to handle some
output buffers first.
2011-08-17 11:34:31 +02:00
Sebastian Dröge
60a1e0e967 baseaudioencoder: Fix thread safety issues if both pads have different streaming threads 2011-08-17 11:34:04 +02:00
Sebastian Dröge
ebc740ea06 baseaudioencoder: Taking the OBJECT lock in reset() is not needed 2011-08-17 09:58:01 +02:00
Sebastian Dröge
c24533c8be omxaudioenc: Remove hack that only applies to the video encoder class 2011-08-16 11:03:24 +02:00
Sebastian Dröge
422ca1796b omxaacenc: Add initial version of OpenMAX AAC encoder element 2011-08-16 10:49:21 +02:00
Sebastian Dröge
3f33a577a9 omxaudioenc: Add initial version of audio encoder base class 2011-08-16 10:48:36 +02:00
Sebastian Dröge
c0202cc283 baseaudioencoder: Delay sending of serialized events to finish_frame() 2011-08-15 14:14:11 +02:00
Sebastian Dröge
0a44778d61 audio: Integrate audio base classes into the build system and fixup 2011-08-15 13:06:51 +02:00
Sebastian Dröge
0d07b52760 audio: Add audio decoder/encoder base classes
Taken from http://cgit.collabora.com/git/user/manauw/gst-plugins-bad.git/log/?h=baseaudio
2011-08-15 12:56:00 +02:00