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 673504 - gst-discoverer tags missing between two different runs
gst-discoverer tags missing between two different runs
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
0.10.x
Other Linux
: Normal normal
: 0.10.37
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2012-04-04 13:37 UTC by Vivia Nikolaidou
Modified: 2012-05-10 20:15 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Fix (6.43 KB, patch)
2012-05-10 20:11 UTC, Vivia Nikolaidou
committed Details | Review

Description Vivia Nikolaidou 2012-04-04 13:37:16 UTC
Hello,

I am running gst-discoverer-0.10 on a file with several subtitle streams (attached). Between two different runs of the same discoverer on the same machine, the container-format tag on subtitle streams is sometimes missing.

I've even seen one language getting detected as NULL and its taglist missing, but I can't reproduce that anymore.

I am pasting the output of three different runs.

$ gst-discoverer-0.10 -v mewmew-vorbis-ssa.mkv |grep -i lang
      Language: sv
        taglist, language-code=(string)sv, container-format=(string)Matroska;
      Language: es
        taglist, language-code=(string)es, container-format=(string)Matroska;
      Language: ru
        taglist, language-code=(string)ru, container-format=(string)Matroska;
      Language: pt
        taglist, language-code=(string)pt, container-format=(string)Matroska;
      Language: pl
        taglist, language-code=(string)pl, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: no
        taglist, language-code=(string)no, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: ja
        taglist, language-code=(string)ja, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: it
        taglist, language-code=(string)it, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: hu
        taglist, language-code=(string)hu, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: he
        taglist, language-code=(string)he, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: de
        taglist, language-code=(string)de, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: fr
        taglist, language-code=(string)fr, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: fi
        taglist, language-code=(string)fi, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: en
        taglist, language-code=(string)en, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: nl
        taglist, language-code=(string)nl, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: en
        taglist, language-code=(string)en, container-format=(string)Matroska;
      Language: ja
        taglist, language-code=(string)ja, container-format=(string)Matroska, encoder=(string)"Xiph.Org\ libVorbis\ I\ 20020717", encoder-version=(uint)0, audio-codec=(string)Vorbis, nominal-bitrate=(uint)112001, bitrate=(uint)112001;

$ gst-discoverer-0.10 -v mewmew-vorbis-ssa.mkv |grep -i lang
      Language: sv
        taglist, language-code=(string)sv, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: es
        taglist, language-code=(string)es, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: ru
        taglist, language-code=(string)ru, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: pt
        taglist, language-code=(string)pt, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: pl
        taglist, language-code=(string)pl, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: no
        taglist, language-code=(string)no, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: ja
        taglist, language-code=(string)ja, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: it
        taglist, language-code=(string)it, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: hu
        taglist, language-code=(string)hu, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: he
        taglist, language-code=(string)he, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: de
        taglist, language-code=(string)de, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: fr
        taglist, language-code=(string)fr, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: fi
        taglist, language-code=(string)fi, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: en
        taglist, language-code=(string)en, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: nl
        taglist, language-code=(string)nl, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: en
        taglist, language-code=(string)en, container-format=(string)Matroska, subtitle-codec=(string)"SubStation\ Alpha";
      Language: ja
        taglist, language-code=(string)ja, container-format=(string)Matroska, encoder=(string)"Xiph.Org\ libVorbis\ I\ 20020717", encoder-version=(uint)0, audio-codec=(string)Vorbis, nominal-bitrate=(uint)112001, bitrate=(uint)112001;

$ gst-discoverer-0.10 -v mewmew-vorbis-ssa.mkv |grep -i lang
      Language: sv
        taglist, language-code=(string)sv, container-format=(string)Matroska;
      Language: es
        taglist, language-code=(string)es, container-format=(string)Matroska;
      Language: ru
        taglist, language-code=(string)ru, container-format=(string)Matroska;
      Language: pt
        taglist, language-code=(string)pt, container-format=(string)Matroska;
      Language: pl
        taglist, language-code=(string)pl, container-format=(string)Matroska;
      Language: no
        taglist, language-code=(string)no, container-format=(string)Matroska;
      Language: ja
        taglist, language-code=(string)ja, container-format=(string)Matroska;
      Language: it
        taglist, language-code=(string)it, container-format=(string)Matroska;
      Language: hu
        taglist, language-code=(string)hu, container-format=(string)Matroska;
      Language: he
        taglist, language-code=(string)he, container-format=(string)Matroska;
      Language: de
        taglist, language-code=(string)de, container-format=(string)Matroska;
      Language: fr
        taglist, language-code=(string)fr, container-format=(string)Matroska;
      Language: fi
        taglist, language-code=(string)fi, container-format=(string)Matroska;
      Language: en
        taglist, language-code=(string)en, container-format=(string)Matroska;
      Language: nl
        taglist, language-code=(string)nl, container-format=(string)Matroska;
      Language: en
        taglist, language-code=(string)en, container-format=(string)Matroska;
      Language: ja
        taglist, language-code=(string)ja, container-format=(string)Matroska, encoder=(string)"Xiph.Org\ libVorbis\ I\ 20020717", encoder-version=(uint)0, audio-codec=(string)Vorbis, nominal-bitrate=(uint)112001, bitrate=(uint)112001;
Comment 1 Vivia Nikolaidou 2012-04-04 13:40:12 UTC
Attachment creation failed (possibly too large?)

File uploaded to http://www.autom.teithe.gr/~vivia/mewmew-vorbis-ssa.mkv
Comment 2 Sebastian Dröge (slomo) 2012-04-12 08:31:04 UTC
This happens because discoverer stops when it receives the async-done message from the pipeline but the tags can be posted on the bus afterwards.
Comment 3 Sebastian Dröge (slomo) 2012-04-12 09:33:29 UTC
FWIW for tag events, they all arrive before buffers in my testing but sometimes after async-done.
Comment 4 Sebastian Dröge (slomo) 2012-04-12 09:34:46 UTC
Happens probably because the subtitle stream sinks are async=false
Comment 5 Vivia Nikolaidou 2012-05-10 20:11:13 UTC
Created attachment 213837 [details] [review]
Fix

Attaching the fix
Comment 6 Sebastian Dröge (slomo) 2012-05-10 20:15:05 UTC
commit 84c271c466235f7cebbfb6d683bfa01198350426
Author: Vivia Nikolaidou <vivia.nikolaidou@collabora.co.uk>
Date:   Thu May 10 23:08:21 2012 +0300

    discoverer: Wait until an update/filler newsegment event or buffer for subtitle streams
    
    This makes sure that we wait until we received all tags for the
    subtitle streams and have all information that is collected by
    the discoverer.
    
    Fixes bug #673504.