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 678530 - asfdemux: incorrect length for truncated dancer.asf
asfdemux: incorrect length for truncated dancer.asf
Status: RESOLVED DUPLICATE of bug 678531
Product: GStreamer
Classification: Platform
Component: gst-plugins-ugly
git master
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2012-06-21 11:19 UTC by Bastien Nocera
Modified: 2018-05-12 06:27 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Bastien Nocera 2012-06-21 11:19:06 UTC
Trying to load a file like:
http://samples.mplayerhq.hu/asf-wmv/asf_errors/dogma.asf
results in errors in totem-video-thumbnailer and lacks errors in totem itself.

The length is reported as more than an hour, seeking further than the actual length of the file work, but:
- totem-video-thumbnailer will fail to read frames and exit:
** (totem-video-thumbnailer:4766): WARNING **: Could not take screenshot: failed to retrieve or convert video frame
- Totem will hang, and not go forward anymore causing the file never to finish
Comment 1 Tim-Philipp Müller 2012-11-26 19:05:47 UTC
First, fix a little crash at the end:


commit 7c89a7298a1c7e6f411bfdd18db057e87045a47e
Author: Tim-Philipp Müller <tim@centricular.net>
Date:   Mon Nov 26 18:41:07 2012 +0000

    streamsynchronizer: don't send gap events with huge bogus durations when advancing EOS streams
    
    When the input buffers for a stream don't have a duration set,
    timestamp_end might still be GST_CLOCK_TIME_NONE. When advancing
    EOSed streams via GAP events (with other streams not yet EOS), we
    would then use the invalid timestamp_end to calculate the duration
    of the gap. This in turn would make baseaudiosink abort, because it
    would try to allocate memory for a trizillion samples.
    
    So if buffers don't have a duration set, assume a duration of
    one second for stream catch-up purposes, just so we can still
    continue to catch up in those cases. And make sure that
    timestamp_end is valid before doing calculations with it.
    
    http://bugzilla.gnome.org/show_bug.cgi?id=678530
Comment 2 Vineeth 2015-07-13 08:25:59 UTC
This issue happens in the latest master as well
The main issue here is because of the corrupted header of the file.
Play Duration value from the header is not proper. It is coming as more than an hour when the actual file duration is far less than that. Hence there is problem while trying to seek more than the actual duration.

If we really need to make these kind of corrupted streams work, then we might have to estimate the duration similar to how we do in baseparse. But not sure if it is needed.

678534 is also similar to this.
Comment 3 Tim-Philipp Müller 2015-07-13 08:41:20 UTC
Also bug #678531 (with patch).
Comment 4 Edward Hervey 2018-05-12 06:27:29 UTC

*** This bug has been marked as a duplicate of bug 678531 ***