| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Will be needed to implement GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT.
https://bugzilla.gnome.org/show_bug.cgi?id=796918
|
|
|
|
|
|
| |
Will use it for refcounting.
https://bugzilla.gnome.org/show_bug.cgi?id=796918
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
not shared
For the history, the parallel disable port has been introduced by:
"00be69f omxvideodec: Disable output port when setting a new format"
and then replicated to videoenc, audiodec and audioenc.
This is only required to do 'parallel' if buffers are shared between ports.
But for decoders and encoders the input and output buffer are of different
nature by definition (bitstream vs images). So they cannot be shared.
Also starting from IL 1.2.0 it is written in the spec that the parallel
disable is not allowed and will return an error. Except when buffers are
shared.
Again here we know in advance that they are not shared so let's always
do a sequential disable.
Tested on Desktop, rpi and zynqultrascaleplus.
https://bugzilla.gnome.org/show_bug.cgi?id=786348
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=784967
|
|
|
|
|
|
|
|
|
| |
gst_omx_audio_enc_open will only update GstOMXAudioEnc->port->port_def.
Note that the component is reopen only if the flag
GST_OMX_HACK_NO_COMPONENT_RECONFIGURE is set.
https://bugzilla.gnome.org/show_bug.cgi?id=782418
|
| |
|
|
|
|
|
|
|
| |
To allow user to use GstPreset to quickly save and load a set of
parameters.
https://bugzilla.gnome.org/show_bug.cgi?id=767907
|
|
|
|
|
|
|
| |
Also add generic support for OMX_SKIP64BIT to gst-omx, in case other
implementations also #define that for whatever reason.
https://bugzilla.gnome.org/show_bug.cgi?id=766475
|
|
|
|
|
|
|
| |
Without this commit the decoder streaming thread stops without ever attending
the drain request, leaving the decoder input thread waiting forever.
https://bugzilla.gnome.org/show_bug.cgi?id=758274
|
|
|
|
|
|
|
| |
ret is set to GST_STATE_CHANGE_SUCCESS and never touched, so it is impossible
for it to be anything else at the if check. Remove the if check.
CID #1287053
|
| |
|
|
|
|
| |
ourselves
|
|
|
|
| |
https://bugzilla.gnome.org//show_bug.cgi?id=734774
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
Also don't stop the task on NOT_LINKED. We're not a demuxer.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
This allows to later add sources and sink that only have a srcpad
or sinkpad.
https://bugzilla.gnome.org/show_bug.cgi?id=699754
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=698109
|
|
|
|
|
| |
OMX_U32 is typedefed to an unsigned long,
OMX_TICKS to a 64-bit integer.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
separate function
|
| |
|
| |
|
| |
|
|
|
|
| |
or buffers allocated elsewhere
|
| |
|
| |
|
| |
|
|
|
|
| |
separate function
|
| |
|
| |
|
|
|
|
|
|
| |
for it
This allows to do anything necessary after sending the command to actually let it finish
|
| |
|
|
|
|
|
|
|
|
|
|
| |
No mutex is locked while calling any OpenMAX functions anymore
and everything from the OpenMAX callbacks is inserted into a message
queue and handled from outside the callbacks.
Also there's only a single mutex and condition variable per component
now for handling anything from OpenMAX callbacks and a single mutex
for keeping our component/port state sane.
|
| |
|
|
|
|
| |
It will be started properly after the caps are set.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that in-context calls are allowed.
According to the OMX specification, implementations are allowed to call
callbacks in the context of their function calls. However, our callbacks
take locks and this causes deadlocks if the unerlying OMX implementation
uses this kind of in-context calls.
A solution to the problem would be a recursive mutex. However, a normal
recursive mutex does not fix the problem because it is not guaranteed
that the callbacks are called from the same thread. What we see in Broadcom's
implementation for example is:
- OMX_Foo is called
- OMX_Foo waits on a condition
- A callback is executed in a different thread
- When the callback returns, its calling function
signals the condition that OMX_Foo waits on
- OMX_Foo wakes up and returns
The solution I came up with here is to take a second lock inside the callback,
but only if recursion is expected to happen. Therefore, all calls to OMX
functions are guarded by calls to gst_omx_rec_mutex_begin_recursion() / _end_recursion(),
which effectively tells the mutex that at this point we want to allow calls
to _recursive_lock() to succeed, although we are still holding the master lock.
|
|
|
|
| |
OpenMAX buffer
|