# HG changeset patch # User mosu # Date 1052162302 0 # Node ID 4c4c2761643ce665a0839f3fd7f9fb0aa46e04c0 # Parent fa013cb6632563dce0d31b5c61f47a0903cccc2b Proper key frame reporting. Proper handling of "no subtitles wanted". diff -r fa013cb66325 -r 4c4c2761643c libmpdemux/demux_mkv.cpp --- a/libmpdemux/demux_mkv.cpp Mon May 05 12:37:09 2003 +0000 +++ b/libmpdemux/demux_mkv.cpp Mon May 05 19:18:22 2003 +0000 @@ -1520,10 +1520,11 @@ // DO NOT automatically select a subtitle track and behave like DVD // playback: only show subtitles if the user explicitely wants them. - if (dvdsub_lang != NULL) + track = NULL; + if (demuxer->sub->id >= 0) + track = find_track_by_num(mkv_d, demuxer->sub->id, NULL); + else if (dvdsub_lang != NULL) track = find_track_by_language(mkv_d, dvdsub_lang, NULL); - else if (demuxer->sub->id >= 0) - track = find_track_by_num(mkv_d, demuxer->sub->id, NULL); if (track) { if (strcmp(track->codec_id, MKV_S_TEXTASCII) && strcmp(track->codec_id, MKV_S_TEXTUTF8)) @@ -1704,7 +1705,7 @@ dp = new_demux_packet(data.Size()); memcpy(dp->buffer, data.Buffer(), data.Size()); dp->pts = mkv_d->last_pts; - dp->flags = 0; + dp->flags = (elements_found & 4) == 0 ? 1 : 0; // keyframe ds_add_packet(ds, dp); found_data++; }