After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 606859 - Get mp4mux request pad during decodebin2's new-decoded-pad event fails.
Get mp4mux request pad during decodebin2's new-decoded-pad event fails.
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
0.10.17
Other Windows
: Normal normal
: 0.10.18
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-01-13 15:08 UTC by Francis Rammeloo
Modified: 2010-01-13 18:43 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Example program that illustrates the failure. (5.14 KB, text/plain)
2010-01-13 15:08 UTC, Francis Rammeloo
Details
Test wmv file (447.45 KB, video/x-ms-wmv)
2010-01-13 15:15 UTC, Francis Rammeloo
Details

Description Francis Rammeloo 2010-01-13 15:08:48 UTC
Created attachment 151343 [details]
Example program that illustrates the failure.

I'm filing this bug by request of Mark Nauwelaerts on the GStreamer mailing list message titled 'Requesting a sink pad from a muxer in the "new-decoded-pad" callback?' (http://sourceforge.net/mailarchive/forum.php?thread_name=de4879e81001130224l19645a9flb9e223fb51b13904@mail.gmail.com&forum_name=gstreamer-devel).

The function gst_element_get_request_pad on an mp4mux element fails if called during the "new-decoded-pad" event.
Comment 1 Francis Rammeloo 2010-01-13 15:15:57 UTC
Created attachment 151344 [details]
Test wmv file

A very simple wmv file containing only one video stream. It is sufficient to illustrate the problem.
Comment 2 Francis Rammeloo 2010-01-13 15:18:26 UTC
Edit: bug report was requested by Thiago Sousa Santos, not Mark.
Comment 3 Mark Nauwelaerts 2010-01-13 18:43:23 UTC
As mentioned, the recommended (and really safe) approach is to ensure the muxer does not reach PAUSED state until all the request pads are properly setup, which  the attached sample program does not do.

On the other hand, there are situations where qtmux might complain more than other muxers and as such also more than is actually convenient (e.g. in case of some basic gst-launch remuxing pipeline).

As such, for sake of more consistency and convenience, following commit relaxes request_new_pad check somewhat.

Note that such relaxing opens the door for 'programming approaches' that may or may not (depending on non-deterministic threading effects) turn out to work, or may happen to work because one is 'protected' by decodebin2 mechanics etc

[though if qtmux happens not to complain in a particular instance/case, it still means one should be ok in that particular run]

commit dbc1f9f2d66fd282e61baca0977361510f457a90
Author: Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Date:   Wed Jan 13 19:30:45 2010 +0100

    qtmux: provide request pads under wider conditions

    Fixes #606859.