]> git.sesse.net Git - vlc/commitdiff
setid: do not clobber format
authorRémi Denis-Courmont <remi@remlab.net>
Sat, 21 Feb 2015 09:50:13 +0000 (11:50 +0200)
committerRémi Denis-Courmont <remi@remlab.net>
Sat, 21 Feb 2015 10:19:14 +0000 (12:19 +0200)
modules/stream_out/setid.c

index 1e8fae4031f530f13b76d0b739848696692e6e6f..e42640e605dbe1ac72fb9928d7c0bbe25e0b7a9a 100644 (file)
@@ -188,30 +188,38 @@ static void Close( vlc_object_t * p_this )
 static sout_stream_id_sys_t * AddId( sout_stream_t *p_stream, es_format_t *p_fmt )
 {
     sout_stream_sys_t *p_sys = (sout_stream_sys_t *)p_stream->p_sys;
+    es_format_t fmt;
 
     if ( p_fmt->i_id == p_sys->i_id )
     {
-        msg_Dbg( p_stream, "turning ID %d to %d",
-                 p_sys->i_id, p_sys->i_new_id );
-        p_fmt->i_id = p_sys->i_new_id;
+        msg_Dbg( p_stream, "turning ID %d to %d", p_sys->i_id,
+                 p_sys->i_new_id );
+
+        fmt = *p_fmt;
+        fmt.i_id = p_sys->i_new_id;
+        p_fmt = &fmt;
     }
 
-    return p_stream->p_next->pf_add( p_stream->p_next, p_fmt );
+    return sout_StreamIdAdd( p_stream->p_next, p_fmt );
 }
 
 static sout_stream_id_sys_t * AddLang( sout_stream_t *p_stream, es_format_t *p_fmt )
 {
     sout_stream_sys_t *p_sys = (sout_stream_sys_t *)p_stream->p_sys;
+    es_format_t fmt;
 
     if ( p_fmt->i_id == p_sys->i_id )
     {
         msg_Dbg( p_stream, "turning language %s of ID %d to %s",
                  p_fmt->psz_language ? p_fmt->psz_language : "unk",
                  p_sys->i_id, p_sys->psz_language );
-        p_fmt->psz_language = strdup( p_sys->psz_language );
+
+        fmt = *p_fmt;
+        fmt.psz_language = p_sys->psz_language;
+        p_fmt = &fmt;
     }
 
-    return p_stream->p_next->pf_add( p_stream->p_next, p_fmt );
+    return sout_StreamIdAdd( p_stream->p_next, p_fmt );
 }
 
 static void Del( sout_stream_t *p_stream, sout_stream_id_sys_t *id )