<div dir="ltr"><div><div>Dear,</div><div><br></div><div>My problem is NOT related to this specific patch of "modules/access/mms/mmsh.c" and "modules/demux/asf/asf.c" but based on intensive nightly build test...<br></div><div><br>The last to work is: vlc-2.2.0-git-20131104-1009-win32.exe OK with 3V+24A</div><div>The first to fail is: vlc-2.2.0-git-20131209-0039-win32.exe KO no audio on switching language</div><div><br></div><div>I can not provide more granularity without intermediate (nightly) build.<br><br><div>What I notice in the debug Messages from failling versions are the following messages:</div><div><br></div><div>core debug: control type=18 // This is the audio switching time</div><div>...</div><div>core debug: discarded audio buffer // I go a lot of those after the first language switch (an no more sound after that switch, and no such message in previous version)<br></div></div><br></div>All my test have been done with the following procedure<br>* installing+starting vlc (cleaning any previous preference)<br><div><div>* go Tools/Preference (CTRL+P)</div><div>* Show settings ALL (Advanced Preferences)</div><div>* Input / Codecs + Access modules + MMS =></div><div>* Click on "Force selection of all streams" ( this is the equivalent to the option --mms-all that is still required at that point of the developpement )</div><div>* go Tools/Messages (CTRL+M)</div><div>* set verbosity to 2 (debug)</div><div>* go Media/Open Network Stream (CTRL+N)</div><div>* paste this URL: mms://<a href="http://vodwms.europarl.europa.eu/wmv/nas/nasvod02/cod1502/wm_pad/Channel05/VODChapter_20150203_09075600_11100500_Ch05_1138bb4a14b495db8e37342.wmv?wmcache=0">vodwms.europarl.europa.eu/wmv/nas/nasvod02/cod1502/wm_pad/Channel05/VODChapter_20150203_09075600_11100500_Ch05_1138bb4a14b495db8e37342.wmv?wmcache=0</a></div><div>* Wait for the 3 video to start and the audio to play</div><div>* Switch the language to French and listen if audio is present... wait... wait (just in case the audio come latter)<br></div><div>* Switch audio again and again, try to seek, discover that now it is really muted<br></div><div><br></div>My next possible steps are:<br><div>1) Trying to get some "blame" output between 20131104 on 20131209 the following files: "modules/access/mms/mmsh.c" and "modules/demux/asf/asf.c"<br></div><div>2) Compare network trace of before/after to see for any significant change in behaviour (I believe this will fail, but I need to try).<br></div><div><br></div><div>Any help would be welcome such as:<br></div><div>* Where to find intermediate nightly build I could test?<br></div><div>* What could explain this "discarded audio buffer" message?<br></div><div>* Suggesting other possible culprit files where to search for changes?<br></div><div><br></div>Thanks<div><br></div><div>David Glaude</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-02-15 22:53 GMT+01:00 David Glaude <span dir="ltr"><<a href="mailto:david.glaude@gmail.com" target="_blank">david.glaude@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Dear,</div><div><br></div><div>The problem seems to be not totally related to this specific patch: <a href="http://www.m2x.nl/videolan/vlc/commits/2a310e14227b7cab441ee5128757a27b57f0b9a7/modules/access/mms/mmsh.c" style="font-size:12.8000001907349px" target="_blank">http://www.m2x.nl/videolan/vlc/commits/2a310e14227b7cab441ee5128757a27b57f0b9a7/modules/access/mms/mmsh.c</a></div><span style="font-size:12.8000001907349px">"demux: asf: do ES audio selection for mms (fix #8797, #3400, #3797)"</span><div><br></div><div>I tested vlc-2.2.0-git-20131209-0039-win32 (with --mms-all option) that is the latest night build before that patch has been applied. And I get no sound when switching audio track (I get sound on the initial track, but not comming back to it).</div><div><br></div><div>So things may have been broken before that.</div><div><br></div><div>Any hint on how to best pick nightly build before that (based on previous change to "modules/access/mms/mmsh.c" or "modules/demux/asf/asf.c").</div><div><br></div><div>Thanks.</div><div><br></div><div>David Glaude</div><div><br></div><div><div>Here are the VOD stream I used for testing.</div><div><br></div><div>I tryed with this 3V+24A stream: mms://<a href="http://vodwms.europarl.europa.eu/wmv/nas/nasvod02/cod1502/wm_pad/Channel05/VODChapter_20150203_09075600_11100500_Ch05_1138bb4a14b495db8e37342.wmv?wmcache=0" target="_blank">vodwms.europarl.europa.eu/wmv/nas/nasvod02/cod1502/wm_pad/Channel05/VODChapter_20150203_09075600_11100500_Ch05_1138bb4a14b495db8e37342.wmv?wmcache=0</a></div><div><br></div><div><div>I tryed with this 3V+4A stream: mms://<a href="http://vodwms.europarl.europa.eu/wmv/nas/nasvod02/cod1502/wm_pad/Channel01/VODChapter_20150212_17114500_17403100_Ch01_1138bb4a14b7c14553a-1582.wmv?wmcache=0" target="_blank">vodwms.europarl.europa.eu/wmv/nas/nasvod02/cod1502/wm_pad/Channel01/VODChapter_20150212_17114500_17403100_Ch01_1138bb4a14b7c14553a-1582.wmv?wmcache=0</a></div></div></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">2015-02-15 17:51 GMT+01:00 David Glaude <span dir="ltr"><<a href="mailto:david.glaude@gmail.com" target="_blank">david.glaude@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Dear, (sorry for previous message)<div><br></div><div><span style="font-size:12.8000001907349px">I am afraid this or some other change in </span><span style="font-size:12.8000001907349px">modules/access/mms/mmsh.c or</span><span style="font-size:12.8000001907349px"> modules/demux/asf/asf.c is breaking the access to the European Parliament LIVE and VOD stream (they are multilingual and multi-bitrate).</span><br></div><div><span style="font-size:12.8000001907349px"><br></span></div><div>With 2.1.5 and similar release, the work arround to see all the available language (and video track) is to use --mms-all.</div><div>It has uggly side effect such as opening 3 video windows and requesting from the streamer all the track (with a lot of unecessary bandwidth consumed... but it kind of work).</div><div><br></div><div>With 2.2.0 rc2 (I tested the lattest nightly build) --mms-all is not required anymore. By default, it only request one video track and one audio track (this might be due to another patch) but it display all the available audio and play one V+A combo.</div><div><br></div><div>The problem is when changing audio track it either fail (silence) or freeze (no sound and no video at all).</div><div><br></div><div>Here is a reproduction steps with an easy stream (3V+4A where the audio are DE+EN+FR+ZU):</div><div><div>1) Open the network stream and paste the URL: mms://<a href="http://vodwms.europarl.europa.eu/wmv/nas/nasvod02/cod1502/wm_pad/Channel01/VODChapter_20150212_17114500_17403100_Ch01_1138bb4a14b7c14553a-1582.wmv?wmcache=0" target="_blank">vodwms.europarl.europa.eu/wmv/nas/nasvod02/cod1502/wm_pad/Channel01/VODChapter_20150212_17114500_17403100_Ch01_1138bb4a14b7c14553a-1582.wmv?wmcache=0</a></div><div>2) Wait for the video to start, audio is DE and the language selection UI display 1-DE, 2-EN, 3-FR, 4-ZU</div><div>3) Switch to English from the UI. $BUG$ no sound it playing but the video "continue"</div><div>4) Switch to French from the UI. OK the video continue and french can be heard</div><div>5) Switch to Zulu. $BUG$ VLC freeze, the video stop and no audio</div></div><div><br></div><div>Actually, switching between DE and FR always work, switching to EN seems to always give silence and switch to ZU always "freeze".</div><div><br></div><div>I will try with some 3.0.0 nightly build and then try to find the nightly build of 2.2.0 just before and just after this patch to see if it really is the culprit.</div><div><br></div><div>It is obviously a step in the right direction (to display the list of language and let us pick in streaming mode) but it currently make 2.2.0 a bit unusable for EP content.</div><span><font color="#888888"><div><br><div>David Glaude</div></div></font></span></div><div class="gmail_extra"><br><div class="gmail_quote"><span>2013-12-03 19:05 GMT+01:00 Francois Cartegnie <span dir="ltr"><<a href="mailto:fcvlcdev@free.fr" target="_blank">fcvlcdev@free.fr</a>></span>:<br></span><div><div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">---<br>
 modules/access/mms/mmsh.c | 20 ++++++++++++++++++++<br>
 modules/demux/asf/asf.c   | 34 ++++++++++++++++++++++++++--------<br>
 2 files changed, 46 insertions(+), 8 deletions(-)<br>
<br>
diff --git a/modules/access/mms/mmsh.c b/modules/access/mms/mmsh.c<br>
index d354d28..414dfd4 100644<br>
--- a/modules/access/mms/mmsh.c<br>
+++ b/modules/access/mms/mmsh.c<br>
@@ -261,6 +261,26 @@ static int Control( access_t *p_access, int i_query, va_list args )<br>
             *pb_bool =  p_sys->asfh.stream[i_int].i_selected ? true : false;<br>
             break;<br>
<br>
+        case ACCESS_SET_PRIVATE_ID_STATE:<br>
+            i_int = (int)va_arg( args, int );<br>
+            b_bool = (bool)va_arg( args, int );<br>
+            if( (i_int < 0) || (i_int > 127) )<br>
+                return VLC_EGENERIC;<br>
+            else<br>
+            {<br>
+                int i_cat = p_sys->asfh.stream[i_int].i_cat;<br>
+                for ( int i=0; i< 128; i++ )<br>
+                {<br>
+                    /* First unselect all streams from the same cat */<br>
+                    if ( i_cat == p_sys->asfh.stream[i].i_cat )<br>
+                        p_sys->asfh.stream[i].i_selected = false;<br>
+                }<br>
+                p_sys->asfh.stream[i_int].i_selected = true;<br>
+                Stop( p_access );<br>
+                Seek( p_access, p_access->info.i_pos );<br>
+                return VLC_SUCCESS;<br>
+            }<br>
+<br>
         case ACCESS_SET_PAUSE_STATE:<br>
             b_bool = (bool)va_arg( args, int );<br>
             if( b_bool )<br>
diff --git a/modules/demux/asf/asf.c b/modules/demux/asf/asf.c<br>
index f169d37..bde94e6 100644<br>
--- a/modules/demux/asf/asf.c<br>
+++ b/modules/demux/asf/asf.c<br>
@@ -354,6 +354,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )<br>
     demux_sys_t *p_sys = p_demux->p_sys;<br>
     vlc_meta_t  *p_meta;<br>
     int64_t     i64, *pi64;<br>
+    int         i;<br>
     double      f, *pf;<br>
<br>
     switch( i_query )<br>
@@ -388,6 +389,20 @@ static int Control( demux_t *p_demux, int i_query, va_list args )<br>
         }<br>
         return SeekPercent( p_demux, i_query, args );<br>
<br>
+    case DEMUX_SET_ES:<br>
+    {<br>
+        i = (int)va_arg( args, int );<br>
+        int i_ret = stream_Control( p_demux->s,<br>
+                                    STREAM_SET_PRIVATE_ID_STATE, i, true );<br>
+        if ( i_ret == VLC_SUCCESS )<br>
+        {<br>
+            SeekPrepare( p_demux );<br>
+            p_sys->i_seek_track = 0;<br>
+            WaitKeyframe( p_demux );<br>
+        }<br>
+        return i_ret;<br>
+    }<br>
+<br>
     case DEMUX_GET_POSITION:<br>
         if( p_sys->i_time < 0 ) return VLC_EGENERIC;<br>
         if( p_sys->i_length > 0 )<br>
@@ -1003,15 +1018,18 @@ static int DemuxInit( demux_t *p_demux )<br>
         tk->p_esp = NULL;<br>
         tk->p_frame = NULL;<br>
<br>
-        /* Check (in case of mms) if this track is selected (ie will receive data) */<br>
-        if( !stream_Control( p_demux->s, STREAM_GET_PRIVATE_ID_STATE,<br>
-                             (int) p_sp->i_stream_number, &b_access_selected ) &&<br>
-            !b_access_selected )<br>
+        if ( strncmp( p_demux->psz_access, "mms", 3 ) )<br>
         {<br>
-            tk->i_cat = UNKNOWN_ES;<br>
-            msg_Dbg( p_demux, "ignoring not selected stream(ID:%u) (by access)",<br>
-                     p_sp->i_stream_number );<br>
-            continue;<br>
+            /* Check (not mms) if this track is selected (ie will receive data) */<br>
+            if( !stream_Control( p_demux->s, STREAM_GET_PRIVATE_ID_STATE,<br>
+                                 (int) p_sp->i_stream_number, &b_access_selected ) &&<br>
+                !b_access_selected )<br>
+            {<br>
+                tk->i_cat = UNKNOWN_ES;<br>
+                msg_Dbg( p_demux, "ignoring not selected stream(ID:%u) (by access)",<br>
+                         p_sp->i_stream_number );<br>
+                continue;<br>
+            }<br>
         }<br>
<br>
         /* Find the associated extended_stream_properties if any */<br>
<span><font color="#888888">--<br>
1.8.3.1<br>
<br>
_______________________________________________<br>
vlc-devel mailing list<br>
To unsubscribe or modify your subscription options:<br>
<a href="https://mailman.videolan.org/listinfo/vlc-devel" target="_blank">https://mailman.videolan.org/listinfo/vlc-devel</a><br>
</font></span></blockquote></div></div></div><br></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>