Sebastian Dröge
9a6cea5af3
omxvideoenc: Fix deadlock between srcpad stream lock and ::reset()
2011-11-07 11:05:29 +01:00
Sebastian Dröge
a80ca97ec3
omxvideoenc: Free all pending frames after draining the component
2011-11-07 10:58:44 +01:00
Sebastian Dröge
3a17d11109
omxvideoenc: Only drain the component a single time and only after processing started
2011-11-04 09:44:04 +01:00
Sebastian Dröge
ef67a43702
omxvideoenc: Better handling of encoder parameters
...
Only set them if necessary and allow to use the component
defaults.
2011-11-02 13:50:14 +01:00
Sebastian Dröge
08fabd6a07
omxvideoenc: Make unsupported bitrate/quantizer settings less fatal
2011-11-02 13:22:50 +01:00
Sebastian Dröge
7ebef2941b
omxvideoenc: If no stride was set for the OMX input port assume GStreamer stride
...
This is not really correct but there's nothing else we could do.
2011-11-02 10:39:10 +01:00
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
21faf556ff
omxvideoenc: Forward downstream flow returns to upstream
2011-11-01 15:10:01 +01: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
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
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
d5452a53b0
omxvideoenc: Add some more checks for correct OMX buffer sizes
2011-09-23 17:04:14 +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
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
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
8e422b7cc2
omxvideoenc: Set the state back to StateLoaded even if an error happened
2011-08-10 09:56:30 +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
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
decf765502
omxvideoenc: Don't output 0-byte buffers
2011-07-28 12:16:38 +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
ae7ed44e6b
omxvideoenc: Try harder to deallocate the buffers after errors happened
2011-07-25 10:47:28 +02:00
Sebastian Dröge
7350dcc8cd
omxvideoenc: Add initial support for stride conversion
2011-07-21 11:15:14 +02:00
Sebastian Dröge
644fa35789
omxvideoenc: Add support for setting codec_data on the srcpad caps
2011-07-21 07:53:25 +02:00
Sebastian Dröge
182a488f49
omxvideoenc: Free/drop GstVideoFrames that resulted in an empty buffer
2011-07-21 07:44:34 +02:00
Sebastian Dröge
c0d304f819
omxvideoenc: Remove obsolete TODO comment
2011-07-21 07:31:05 +02:00
Sebastian Dröge
2343decb3c
omxvideoenc: Add video encoder base class and MPEG4 video encoder
...
Unfortunately requires lots of hacks again to work properly with
Bellagio.
2011-07-20 11:08:18 +02:00