GNOME Bugzilla – Bug 673504
gst-discoverer tags missing between two different runs
Last modified: 2012-05-10 20:15:07 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;
Attachment creation failed (possibly too large?) File uploaded to http://www.autom.teithe.gr/~vivia/mewmew-vorbis-ssa.mkv
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.
FWIW for tag events, they all arrive before buffers in my testing but sometimes after async-done.
Happens probably because the subtitle stream sinks are async=false
Created attachment 213837 [details] [review] Fix Attaching the fix
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.