Age | Commit message (Collapse) | Author | Files | Lines |
|
It was defaulting to RAW when an unknown layout was received but
the caps template would actually forbid that on the caps query
or accept-caps anyway.
|
|
Instead of the audiodecoder one. The OMX audioo decoders have their
valid input in the template pad, so just check against that to
avoid doing a query downstream.
|
|
Instead of the videodecoder one. The OMX video decoders have their
valid input in the template pad, so just check against that to
avoid doing a query downstream.
|
|
OMX_IndexConfigBrcmVideoRequestIFrame
https://bugzilla.gnome.org/show_bug.cgi?id=753085
|
|
When g_option_context_parse fails, context and error variables are not getting free'd
which results in memory leaks. Free'ing the same.
And replacing g_error_free with g_clear_error, which checks if the error being passed
is not NULL and sets the variable to NULL on free'ing.
https://bugzilla.gnome.org/show_bug.cgi?id=753865
|
|
The omxvideodecoder class only checks some of the caps parameters but if
other fields change such as h264 profile and/or level it wouldn't trigger a
reconfiguration.
https://bugzilla.gnome.org/show_bug.cgi?id=752376
|
|
Otherwise a reference will be leaked for each allocator. It only happens
when target platform is Raspberry Pi and when we have GL support.
https://bugzilla.gnome.org/show_bug.cgi?id=751867
|
|
From f74b2df to 9aed1d7
|
|
From 6015d26 to f74b2df
|
|
From d9a3353 to 6015d26
|
|
From d37af32 to d9a3353
|
|
From 21ba2e5 to d37af32
|
|
From c408583 to 21ba2e5
|
|
From c8fb372 to c408583
|
|
Otherwise the base class will be confused.
See https://bugzilla.gnome.org/show_bug.cgi?id=685730
|
|
This is not needed any longer.
|
|
autotools automatically generate this, and when using different versions
for autogen.sh there will always be changes to a file tracked by git.
|
|
Might come in handy, and these warnings seem to be
fatal in some environments.
You may need to git clean -x -d -f your tree before
git pulling/merging.
|
|
|
|
From bc76a8b to c8fb372
|
|
|
|
This reverts commit a8d26ff27a8b43f589424a59294f9057641b2a46.
|
|
Also consider potential errors in the _get_parameter() in the return of the
update_port_definition function.
CID #1287052
|
|
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
|
|
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 it.
CID #1287054
|
|
|
|
deadlock
There is one rare case where calling handle_messages() more than once can cause a deadlock
in the video decoder element:
- sink pad thread starts the src pad task (gst_omx_video_dec_loop())
- _video_dec_loop() calls gst_omx_port_acquire_buffer() on dec_out_port
- blocks in gst_omx_component_wait_message() releasing comp->lock and comp->messages_lock
(initially, there are no buffers configured on that port, so it waits for OMX_EventPortSettingsChanged)
- the sink pad thread pushes a buffer to the decoder with gst_omx_port_release_buffer()
- _release_buffer() grabs comp->lock and sends the buffer to OMX, which consumes it immediately
- EmptyBufferDone gets called at this point, which signals _wait_message() to unblock
- the message from EmptyBufferDone is processed in gst_omx_component_handle_messages()
called from gst_omx_port_release_buffer()
- gst_omx_port_release_buffer releases comp->lock
- the src pad thread now gets to run, grabbing comp->lock while it exits from _wait_message()
- _acquire_buffer() calls the _handle_messages() on the next line after _wait_message(),
which does nothing (no pending messages)
- then it goes to "retry:" and calls _handle_messages() again, which also does nothing
(still no pending messages)
- scheduler switches to a videocore thread that calls EventHandler, informing us about the
OMX_EventPortSettingsChanged event that just arrived
- EventHandler graps comp->messages_lock, but not comp->lock, so it can run in parallel at
this point just fine.
- scheduler switches back to the src pad thread (which is in the middle of _acquire_buffer())
- the next _handle_messages() which is right before if (g_queue_is_empty (&port->pending_buffers))
processes the OMX_EventPortSettingsChanged
- the buffer queue is still empty, so that thread blocks again in _wait_message()
- the sink pad thread tries to acquire the next input port buffer
- _acquire_buffer() also blocks this thread in:
if (comp->pending_reconfigure_outports) { ... _wait_message() ... }
- DEADLOCK. gstreamer is waiting for omx to do something, omx waits for gstreamer to do something.
By removing those extra _handle_messages() calls, we can ensure that all the checks of
_acquire_buffer() will re-run. In the above case, after the scheduler switches back to
the middle of _acquire_buffer(), the code will enter _wait_message(), which will see that
there are pending messages and will return immediately, going back to "retry:" and
re-doing all the checks properly.
https://bugzilla.gnome.org/show_bug.cgi?id=741854
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=745191
|
|
From f2c6b95 to bc76a8b
|
|
From ef1ffdc to f2c6b95
|
|
From 7bb2bce to ef1ffdc
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=739333
|
|
From 84d06cd to 7bb2bce
|
|
From a8c8939 to 84d06cd
|
|
From 1f5d3c3 to a8c8939
|
|
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=736314
|
|
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
|
|
|
|
ourselves
|
|
Fix a video encoder stall problem on RPi when changing the aspect ratio.
https://bugzilla.gnome.org/show_bug.cgi?id=732533
|
|
https://bugzilla.gnome.org//show_bug.cgi?id=734774
|
|
|
|
|
|
See https://bugzilla.gnome.org/show_bug.cgi?id=732161
|
|
in unprepare()
https://bugzilla.gnome.org/show_bug.cgi?id=733168
|
|
|
|
|
|
|
|
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.
|