Commit graph

116 commits

Author SHA1 Message Date
Graham Leggett 703bab6885 omxvideoenc: Add keyframe support for the Rpi, using OMX_IndexConfigBrcmVideoRequestIFrame
https://bugzilla.gnome.org/show_bug.cgi?id=753085
2015-08-27 11:15:29 +03:00
Michal Lazo bfeab29a39 omxvideoenc: Setup aspect ratio on RPi
Needs firmware from yesterday or newer to work with all possible
aspect ratios. Before that it only supported a fixed list.

https://bugzilla.gnome.org/show_bug.cgi?id=732533
2014-09-01 12:18:58 +03:00
Peng Liu d3d0a82ba4 omxvideoenc: Implement the hack flag GST_OMX_HACK_NO_COMPONENT_RECONFIGURE
Fix a video encoder stall problem on RPi when changing the aspect ratio.

https://bugzilla.gnome.org/show_bug.cgi?id=732533
2014-08-28 10:45:11 +03:00
Sebastian Dröge d75334456d omx: Let base classes handle EOS
https://bugzilla.gnome.org//show_bug.cgi?id=734774
2014-08-14 17:36:11 +03:00
Sebastian Dröge 0a60770a28 omxvideoenc: Implement flush() instead of the deprecated reset() 2014-06-29 19:04:54 +02:00
Sebastian Dröge 34577a965d omxvideoenc: Don't forget to unref codec state
CID 1214603
2014-05-19 09:10:07 +02:00
Sebastian Dröge 40869afea7 omxvideoenc: Implement hack for not disabling the output port after set_format until the output format is known
Needed on some OMX implementations, e.g. the one from Atmel. It does
not send the settings-changed event on the output port if it is
disabled.
2014-05-15 13:21:07 +02:00
Sebastian Dröge bc2990169a omxvideoenc: Set nTickCount to the whole duration of the buffer instead of a wrong calculation 2014-05-10 22:47:21 +02:00
Sebastian Dröge a04ef276e5 omx: Rename function from _4_ to _for_ for clarity 2014-03-12 12:47:34 +01:00
Christian König 6bf4d9a498 omxvideo: start sharing more code between video decoder and encoder
Identical functionality spread of two different components.
We can't use a common base class because of different inheritance,
but let's try to share the code anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=726024
2014-03-12 12:47:09 +01:00
Christian König 20cfcda4db omxvideoenc: fix a memory leak in gst_omx_video_enc_getcaps
https://bugzilla.gnome.org/show_bug.cgi?id=725826
2014-03-06 20:37:02 +01:00
Christian König 85db124673 omxvideoenc: simplify _find_nearest_frame
Just the same as we did with the decoder. Also give the
function a gst_omx_video_enc prefix to distinct it from
the decoder function.

https://bugzilla.gnome.org/show_bug.cgi?id=724236
2014-03-03 20:12:58 +01:00
Christian König 4e4f093319 omxvideoenc: fix startup race condition
The reset function shouldn't start the src pad
loop if it wasn't started before.

Signed-off-by: Christian König <christian.koenig@amd.com>
2014-03-02 12:08:09 +01:00
Sebastian Dröge 1bf4edf721 omx: Don't handle FLUSHING and NOT_LINKED as errors
Also don't stop the task on NOT_LINKED. We're not a demuxer.
2014-01-25 17:44:57 +01:00
Roman Arutyunyan 5ba55b6c9a gstomxvideoenc: Set bitrate in setcaps
Otherwise it gets lost whenever we configure new caps

https://bugzilla.gnome.org/show_bug.cgi?id=698049
2013-07-01 15:48:47 +02:00
Josep Torra f3f9330332 omx: Take lock on EOS to update the flow return value
Fixes "GThread-ERROR **: file gthread-posix.c: line 171
(g_mutex_free_posix_impl): error 'Device or resource busy' during
'pthread_mutex_destroy ((pthread_mutex_t *) mutex)'" in _finalize.
2013-05-20 12:06:34 +02:00
jitendra 715b44ea66 omx: Add pads based on element type
This allows to later add sources and sink that only have a srcpad
or sinkpad.

https://bugzilla.gnome.org/show_bug.cgi?id=699754
2013-05-06 16:20:20 +02:00
Tim-Philipp Müller 2cbbab3128 omx: more printf format fixes
Fix printf formats again, so that gst-omx compiles warning-
free on the Raspberry Pi as well. Unfortunately OMX_UINT32
maybe be typedefed to uint32_t or unsigned long, which
doesn't work well with our debugging printf format strings,
so just use %u for those and cast to guint.
2013-04-18 23:10:13 +01:00
jitendra 960590f92f omx: Disable output port before transition to idle state
https://bugzilla.gnome.org/show_bug.cgi?id=698109
2013-04-16 12:46:48 +02:00
Tim-Philipp Müller 0c08d375f4 omx: fix printf formats in debug messages
OMX_U32 is typedefed to an unsigned long,
OMX_TICKS to a 64-bit integer.
2013-04-08 17:02:32 +01:00
Josep Torra a5778efe16 omx: Clarify that loop task is also paused in EOS 2013-03-16 10:00:24 +01:00
Josep Torra e16207f3dd omxvideoenec: Don't forget propagate flow return value upstream 2013-03-16 09:59:01 +01:00
Sebastian Dröge e1f94660f7 omx: Stop output port task after draining 2013-03-15 11:46:34 +01:00
Sebastian Dröge 22dce51dd4 omx: Handle the OMX_EventBufferFlag to detect EOS too 2013-03-14 12:51:54 +01:00
Sebastian Dröge b9af5f4f31 omxvideoenc: Properly check the nVersion field 2013-03-13 10:21:49 +01:00
Sebastian Dröge 68c8196912 omxvideoenc: RPi returns garbage for OMX_IndexParamVideoBitrate, work around that 2013-03-13 09:38:07 +01:00
Sebastian Dröge 3c13502b75 omxvideoenc: Always allocate output buffers from the loop function 2013-03-11 13:45:04 +01:00
Sebastian Dröge 79a1fed0e0 omxvideoenc: Wait until the Executing state is reached before passing buffers to the component 2013-03-11 11:52:57 +01:00
Sebastian Dröge f518ce5ed9 omxvideoenc: Disable output port when setting a new format 2013-03-11 10:29:30 +01:00
Sebastian Dröge 65174bbd7f omx: Catch errors when releasing buffers to a port and handle them 2013-03-11 10:04:10 +01:00
Sebastian Dröge eac2078056 omxvideoenc: Use the correct video codec state when filling an input buffer 2013-03-10 12:09:23 +01:00
Sebastian Dröge 98cf9f6fe2 omxvideoenc: Store correct input state 2013-03-10 12:05:50 +01:00
Sebastian Dröge fb3b213b3e omxvideoenc: Allocate output buffers as early as possible 2013-03-10 11:31:55 +01:00
Josep Torra bd071327da omx: Fix deadlock in encoders and add explainatory comments. 2013-03-09 14:14:40 +01:00
Sebastian Dröge c014b1c9a3 omx: Flush and stop srcpad when configuring new caps 2013-03-08 15:50:20 +01:00
Sebastian Dröge 7a1eaec3b9 omx: Add timeout to the flush operation and move buffer populating to a separate function 2013-03-07 13:57:00 +01:00
Sebastian Dröge 60861f3990 omx: Do number of buffers configuration explicitely 2013-03-07 13:56:44 +01:00
Sebastian Dröge 42937eaea0 omxvideoenc: gst_omx_port_update_port_definition() returns a OMX_ERRORTYPE, not a gboolean 2013-03-01 11:49:53 +01:00
Sebastian Dröge 687a188dad omxvideo{dec,enc}: Don't use the input state if it wasn't set yet 2013-03-01 11:44:17 +01:00
Sebastian Dröge a53c5638e2 omxvideoenc: Only enable the output port after we know the output format 2013-03-01 11:24:56 +01:00
Sebastian Dröge 1a906da409 omx: Add API for allocating a specific number of buffers and using EGLImages or buffers allocated elsewhere 2013-02-28 11:20:52 +01:00
Sebastian Dröge e42faae652 omx: Refactor code flow a bit if output port settings have changed 2013-02-27 16:56:02 +01:00
Sebastian Dröge b12610efd7 omx: Clean up port settings change handling 2013-02-27 15:50:20 +01:00
Josep Torra b85358aff7 omxvideoenc: prevent a NULL pointer access 2013-02-27 10:21:39 +01:00
Sebastian Dröge 5b45cb0810 omx: Auto-detect the port indizes if possible 2013-02-25 12:42:05 +01:00
Sebastian Dröge 3e090dd83b omx: Refactor querying of component supported caps into its own function 2013-02-25 11:42:38 +01:00
Sebastian Dröge 70368c31cd omx: Refactor waiting for buffers to be released by the component to a separate function 2013-02-25 10:41:12 +01:00
Sebastian Dröge 92c7944499 omxvideoenc: Rename component variable 2013-02-25 09:19:08 +01:00
Josep Torra 71b4573a34 omxvideoenc: remove duplicated line 2013-02-22 16:27:33 +01:00
Sebastian Dröge 219a93bbaf omx: Some minor refactoring and cleanup 2013-02-12 11:49:21 +01:00