diff options
author | wm4 <wm4@nowhere> | 2015-06-27 21:47:18 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-06-27 21:47:18 +0200 |
commit | a8711001c5c14ba6b06fddcccb46a78d815d1edf (patch) | |
tree | 07fb8031cc48da0e8538ed4d6af9f28e74518bda /demux | |
parent | dde2a5f0e8b3e23e407fe06c585adb54f12fae0a (diff) | |
download | mpv-a8711001c5c14ba6b06fddcccb46a78d815d1edf.tar.bz2 mpv-a8711001c5c14ba6b06fddcccb46a78d815d1edf.tar.xz |
demux_mkv: ignore deprecated FrameRate, do not assume PAL
The "FrameRate" element is probably deprecated (it's greyed out in the
"spec", and described as "Informational only" in bold). Normally files
use DefaultDuration. In fact, the FrameRate field was preferred over
DefaultDuration for determining framerate if present. Do not do this and
rely on DefaultDuration only.
Also, if no framerate is set, do not assume PAL (25 FPS). Such a
fallback makes little sense and will cause more problems than it solves.
Diffstat (limited to 'demux')
-rw-r--r-- | demux/demux_mkv.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c index 51f7d2efa3..cadb1a3a7f 100644 --- a/demux/demux_mkv.c +++ b/demux/demux_mkv.c @@ -507,10 +507,7 @@ static void parse_trackvideo(struct demuxer *demuxer, struct mkv_track *track, struct ebml_video *video) { if (video->n_frame_rate) { - track->v_frate = video->frame_rate; - MP_VERBOSE(demuxer, "| + Frame rate: %f\n", track->v_frate); - if (track->v_frate > 0) - track->default_duration = 1 / track->v_frate; + MP_VERBOSE(demuxer, "| + Frame rate: %f (ignored)\n", video->frame_rate); } if (video->n_display_width) { track->v_dwidth = video->display_width; @@ -639,8 +636,7 @@ static void parse_trackentry(struct demuxer *demuxer, if (entry->default_duration == 0) { MP_VERBOSE(demuxer, "| + Default duration: 0"); } else { - if (!track->v_frate) - track->v_frate = 1e9 / entry->default_duration; + track->v_frate = 1e9 / entry->default_duration; MP_VERBOSE(demuxer, "| + Default duration: %.3fms ( = %.3f fps)\n", entry->default_duration / 1000000.0, track->v_frate); } @@ -1320,8 +1316,6 @@ static int demux_mkv_open_video(demuxer_t *demuxer, mkv_track_t *track) "CodecPrivate data (track %u).\n", track->codec_id, track->tnum); } - if (track->v_frate == 0.0) - track->v_frate = 25.0; sh_v->fps = track->v_frate; sh_v->disp_w = track->v_width; sh_v->disp_h = track->v_height; |