[Bug 745251] glvideomixer: corrupt video frames
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Sun Mar 1 18:15:50 PST 2015
https://bugzilla.gnome.org/show_bug.cgi?id=745251
--- Comment #9 from Vasilis Liaskovitis <vliaskov at gmail.com> ---
Created attachment 298244
--> https://bugzilla.gnome.org/attachment.cgi?id=298244&action=edit
test app
I am attaching a C test app (originally provided by Centricular, here
considerably narrowed down for video only) that also exhibits the problem. The
app plays video files back to back, connecting a per-file uridecodebin pipeline
into glvideomixer:
./playout file1 file2
(or ./playout -s 2000 file1 file2 to force switching to file2 after 2000msecs
of file1 playback)
The corrupt frames only happen when switching to the second file. When the
switch happens, gst_video_decoder_allocate_output_frame() sends an allocation
query to glvideomixer, and gst_gl_mixer_propose_allocation() is called,
creating a bufferpool.
- should an allocation query be sent to glvideomixer from avdec? This query is
not sent for the first file. This allocation query is also sent in the playbin
pipeline from the initial problem description, but I believe it is not sent
from e.g. a "gst-launch-1.0 uridecodebin ! glvideomixer ! xvimagesink"
pipeline.
- can there be a race between GLUpload's call to _upload_find_method() and the
call to gst_gl_mixer_propose_allocation()/ gst_gl_buffer_pool_new()? In some
cases (e.g. several runs where the app uses a glimagesink instead of an
xvimagesink) the propose_allocation has already been called before
upload_find_method(), and the frames look ok. When the corrupt frames appear,
the bufferpool/allocation proposal happens always after _upload_find_method()
is called.
Sorry if these are not helpful, i am only getting familiar with the code. I
hope something provides a hint. I can also provide logs/backtraces from the
above app or from playbin/gst-launch-1.0 runs.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list