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 570619 - [qtmux] with faststart disabled doesnt write moov atom when output is an appsink
[qtmux] with faststart disabled doesnt write moov atom when output is an appsink
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other All
: Normal minor
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2009-02-05 12:24 UTC by Miguel Angel Cabrera Moya
Modified: 2013-08-14 08:32 UTC
See Also:
GNOME target: ---
GNOME version: 2.23/2.24



Description Miguel Angel Cabrera Moya 2009-02-05 12:24:59 UTC
either report that qtmux cannot be used with an appsink or make it capable of working with an appsink.

Other information:
with faststart enabled works fine.

also using a filesink works fine.
Comment 1 Edward Hervey 2009-02-25 07:49:24 UTC
FWIW, you'll have the same problem with virtually all non-streaming formats, because they require writing the headers AFTER having outputted/processed the contents (aka: It's not a problem with GStreamer but with the format you're trying to use).

Using fast-start is just a 'hack' for what you should really be doing:
* Outputting to a file,
* Reading from that file afterwards (once it's written the headers).

Either:
* use fast-start (which will internally use a temporary file and not outputting anything before it's processed the *WHOLE* input), BIG LATENCY.
* use filesink. And read the file afterwards.
* Or finally use a streaming format (like ogg or mpeg-ts).
Comment 2 Tim-Philipp Müller 2009-02-25 14:37:01 UTC
Be that as it may, I think all such muxers should output at least a warning, if not an error, in this case. Writing broken files and not even telling the user about it isn't cool.

We should be able to detect whether downstream supports 'seeking' or not, either via a SEEKING query on start-up and/or at the end when we push the newsegment event before rewriting the header (if the push fails because we're shutting down posting an error should be fine as well, since we can probably assume it will be dropped as the bus is flushing)
Comment 3 Mark Nauwelaerts 2009-06-08 06:52:42 UTC
I might be missing a point/code/API, but it seems that a (base)sink (so also appsink) typically gracefully accepts a newsegment event in any case, so no way to know something went wrong there.  Any (downstream) QUERY_SEEKING handling seems not in place either.
Comment 4 Tim-Philipp Müller 2009-06-08 08:16:33 UTC
You're right. I thought we added the query at least to filesink at some point, but it seems not. Still, I think we *should* be able to query this one way or another, so we can do the right thing.
Comment 5 Thiago Sousa Santos 2009-12-02 21:51:17 UTC
What are the suggested options here? Forward the query/event in basesink and let the implementing class decide?
Comment 6 Wim Taymans 2010-07-06 13:16:18 UTC
I guess appsink should have a seek-data signal so that application can do the right thing. 

Again, using appsink for these things is not the right thing to do. You would be better off writing a gstreamer plugin to handle all cases correctly.
Comment 7 Sebastian Dröge (slomo) 2011-05-19 17:24:34 UTC
So there are multiple things to fix here:
a) seek signal in appsink
b) SEEKING query handling in basesink
c) NEWSEGMENT event handling basesink

Anybody going to work on this? :)
Comment 8 Stefan Sauer (gstreamer, gtkdoc dev) 2011-07-25 10:03:49 UTC
It sounds liek a corner case. Could qtmux atleast throw an error for now?
Comment 9 Tim-Philipp Müller 2012-03-10 18:43:25 UTC
SEEKING query is now implemented in many sinks, and I believe qtmux defaults to streamable=TRUE now if downstream is not seekable (and logging a warning into the debug log).
Comment 10 Tim-Philipp Müller 2012-10-26 18:50:07 UTC
Can this be closed ? If not, what's left to do?
Comment 11 Edward Hervey 2013-08-14 08:09:27 UTC
Sebastian, can we close this now ?
Comment 12 Sebastian Dröge (slomo) 2013-08-14 08:32:39 UTC
I think so