vlc | branch: master | Romain Vimont <[email protected]> | Thu May 3 16:13:27 2018 +0200| [3a0eeebc59ee682fdb71fdeceeb9b19e34aa4b0b] | committer: Jean-Baptiste Kempf
mkv: among forced tracks, select the default When several tracks of the same kind were flagged "forced", it selected the last one. Instead, select the default one if any. Fixes #18883 Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3a0eeebc59ee682fdb71fdeceeb9b19e34aa4b0b --- modules/demux/mkv/matroska_segment.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/modules/demux/mkv/matroska_segment.cpp b/modules/demux/mkv/matroska_segment.cpp index 267c43e616..d2aefec6eb 100644 --- a/modules/demux/mkv/matroska_segment.cpp +++ b/modules/demux/mkv/matroska_segment.cpp @@ -1090,6 +1090,7 @@ bool matroska_segment_c::ESCreate() /* add all es */ msg_Dbg( &sys.demuxer, "found %d es", static_cast<int>( tracks.size() ) ); + mkv_track_t *default_tracks[ES_CATEGORY_COUNT] = {}; for( tracks_map_t::iterator it = tracks.begin(); it != tracks.end(); ++it ) { tracks_map_t::key_type track_id = it->first; @@ -1112,8 +1113,17 @@ bool matroska_segment_c::ESCreate() */ if( track.b_default || track.b_forced ) { - es_out_Control( sys.demuxer.out, ES_OUT_SET_ES_DEFAULT, track.p_es ); + mkv_track_t *&default_track = default_tracks[track.fmt.i_cat]; + if( !default_track || track.b_default ) + default_track = &track; } + + } + + for( mkv_track_t *track : default_tracks ) + { + if( track ) + es_out_Control( sys.demuxer.out, ES_OUT_SET_ES_DEFAULT, track->p_es ); } return true; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
