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
Sebastian Dröge
b673e37546
basevideoencoder: Proxy the width/height/framerate/PAR constraints of downstream caps to upstream
...
This allows to specify constraints on the compressed downstream caps
by muxers or capsfilters, which will then be forwarded to upstream
and allows video converters to fulfill the constraints.
Code based on Mark Nauwelaerts audio encoder base class.
2011-08-12 12:30:07 +02:00
Sebastian Dröge
9ea8ecc191
basevideoencoder: Remove old ::getcaps() comment
2011-08-12 12:30:07 +02:00
Sebastian Dröge
f91a4e53db
basevideoencoder: Remove ::get_caps() vfunc
...
Subclasses can set the caps more efficiently and this only
caused additional indirections.
2011-08-12 12:30:07 +02:00
Sebastian Dröge
75c843670f
omxvideoenc: Use "video/x-raw-yuv" as sink template caps instead of strict I420 caps
2011-08-10 10:24:48 +02:00
Sebastian Dröge
274b3b3526
omxmpeg4videodec: Don't require width/height on sink pad caps
2011-08-10 10:23:39 +02:00
Sebastian Dröge
7a09447406
omxvideodec: Use "video/x-raw-yuv" as src template caps instead of strict I420 caps
2011-08-10 10:21:15 +02:00
Sebastian Dröge
8e422b7cc2
omxvideoenc: Set the state back to StateLoaded even if an error happened
2011-08-10 09:56:30 +02:00
Sebastian Dröge
9dcaf5c2bb
omx: Don't hold any locks while calling OMX_SendCommand()
...
It might call into one of the callbacks and lead to deadlocks, e.g.
with the Qualcomm OMX implementation.
2011-08-10 09:49:57 +02:00
Sebastian Dröge
0bb345a16d
omx: Move some code
2011-08-10 09:32:01 +02:00
Sebastian Dröge
e413b8403c
omx: Reset pending reconfigure output ports when changing the state from Executing to any lower state
2011-08-10 09:23:10 +02:00
Sebastian Dröge
25fd0594f5
omx: Fix crash when setting last error after the ports were freed
2011-08-10 09:08:00 +02:00
Sebastian Dröge
9678efdf88
omx: Free component structure
2011-08-10 09:03:52 +02:00
Sebastian Dröge
52a422f637
omx: Make component destruction safer
2011-08-10 09:02:52 +02:00
Sebastian Dröge
8fd4eaae69
omx: Set pAppPrivate of buffers to NULL when deallocating buffers
...
This prevents usage of freed memory later if the OMX component
has weird behaviour.
2011-08-10 08:55:18 +02:00
Sebastian Dröge
2ea5bdf553
omxvideodec: Set the state back to StateLoaded even if an error happened
2011-08-10 08:52:25 +02:00
Sebastian Dröge
cb001aa85f
omx: Add some assertions to check if the buffer pAppPrivate is still correct
2011-08-10 08:51:54 +02:00
Sebastian Dröge
8791be3f95
omx: Add parenthesis at correct places in the struct init macro
2011-08-08 13:04:30 +02:00