Commit graph

779 commits

Author SHA1 Message Date
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
Sebastian Dröge
825d435d7d omx: Only prevent setting a higher state if the component is in an error state 2011-08-08 12:12:58 +02:00
Sebastian Dröge
5319d33ca1 basevideodecoder: Use the cached video frame size instead of recalculating it 2011-08-03 16:02:01 +02:00
Sebastian Dröge
2c4dcf418a omx: Improve debugging in param/config getter/setter wrappers 2011-08-03 15:35:01 +02:00
Sebastian Dröge
febc2d99cb omxvideodec: Don't abort if the color format is not supported but give a useful error message 2011-08-03 13:10:33 +02:00
Sebastian Dröge
714ba59b11 omxvideoenc: Don't fail if setting the bitrate or profile is not supported by the component
Also always set/get the profile, even if there are no peer caps.
2011-08-02 15:14:37 +02:00
Sebastian Dröge
624c2b4fdb basevideoencoder: Make access to the list of frames threadsafe 2011-08-02 15:14:24 +02:00
Sebastian Dröge
aced7478ab omx: Add a hacks flag for the Qualcomm 7x30 OMX_FillThisBuffer() race and make it optional 2011-08-01 13:22:05 +02:00
Sebastian Dröge
cba41896a6 omx: Add workaround for QCOM 7x30 race condition 2011-07-29 13:56:59 +02:00
Sebastian Dröge
b085e11c37 omxh263enc: Add H.263 encoder element 2011-07-29 12:06:21 +02:00
Sebastian Dröge
73cde0af8a omxmpeg4videoenc: Add support for setting profile/level via caps 2011-07-29 11:26:39 +02:00
Sebastian Dröge
27a0cb4c91 omxh264enc: Add support for setting profile/level via caps 2011-07-28 14:14:45 +02:00
Sebastian Dröge
4329821a0b omxvideoenc: Add support for forcing the next frame to be a keyframe 2011-07-28 12:58:25 +02:00
Sebastian Dröge
e7b421c131 omxvideoenc: Add support for setting bitrate/quantization related parameters 2011-07-28 12:52:24 +02:00
Sebastian Dröge
f2b456e2e6 omx: Add wrapper functions for OMX_[GS]et{Config,Parameter} 2011-07-28 12:16:43 +02:00
Sebastian Dröge
35850e7233 omx: Add macro to initialize OpenMAX structures 2011-07-28 12:16:43 +02:00
Sebastian Dröge
decf765502 omxvideoenc: Don't output 0-byte buffers 2011-07-28 12:16:38 +02:00
Sebastian Dröge
1fa3b2662e omx: Ensure that the pAppPrivate pointer in OMX buffers is set correctly 2011-07-25 15:05:08 +02:00
Sebastian Dröge
8ac445abd8 omxvideo{enc,dec}: Only set/unset flushing state on ports if they were created already 2011-07-25 13:19:06 +02:00
Sebastian Dröge
8977906f4b omxwmvdec: Add WMV video decoder element 2011-07-25 12:01:05 +02:00
Sebastian Dröge
4a110e129c omxh263dec: Add H.263 decoder element 2011-07-25 11:44:56 +02:00
Sebastian Dröge
e01eb8c35c omxh264enc: Add H.264 encoder element 2011-07-25 11:32:51 +02:00
Sebastian Dröge
87587dd6d2 omxvideodec: Try harder to deallocate the buffers after errors happened 2011-07-25 10:48:58 +02:00
Sebastian Dröge
ae7ed44e6b omxvideoenc: Try harder to deallocate the buffers after errors happened 2011-07-25 10:47:28 +02:00
Sebastian Dröge
9e1cfa300b omx: Deallocate port buffers before freeing the component
They should be deallocated by the caller before reaching the
Loaded state but to be on the safe side we will make sure
they're really deallocated here.
2011-07-25 10:46:49 +02:00