]> git.sesse.net Git - vlc/blobdiff - modules/demux/mkv.cpp
MKV USF subtitles support and other Subtitles improvements.
[vlc] / modules / demux / mkv.cpp
index d9c479171742e593cac920461d369e68ddff90b9..3e81018a81107894f7a19424a94e2def340e4e3f 100644 (file)
@@ -2489,6 +2489,17 @@ bool matroska_segment_c::Select( mtime_t i_start_time )
             tracks[i_track]->fmt.i_codec = VLC_FOURCC( 's', 'u', 'b', 't' );
             tracks[i_track]->fmt.subs.psz_encoding = strdup( "UTF-8" );
         }
+        else if( !strcmp( tracks[i_track]->psz_codec, "S_TEXT/USF" ) )
+        {
+            tracks[i_track]->fmt.i_codec = VLC_FOURCC( 'u', 's', 'f', ' ' );
+            tracks[i_track]->fmt.subs.psz_encoding = strdup( "UTF-8" );
+            if( tracks[i_track]->i_extra_data )
+            {
+                tracks[i_track]->fmt.i_extra = tracks[i_track]->i_extra_data;
+                tracks[i_track]->fmt.p_extra = malloc( tracks[i_track]->i_extra_data );
+                memcpy( tracks[i_track]->fmt.p_extra, tracks[i_track]->p_extra_data, tracks[i_track]->i_extra_data );
+            }
+        }
         else if( !strcmp( tracks[i_track]->psz_codec, "S_TEXT/SSA" ) ||
                  !strcmp( tracks[i_track]->psz_codec, "S_TEXT/ASS" ) ||
                  !strcmp( tracks[i_track]->psz_codec, "S_SSA" ) ||