video: do not show decoder framedrops if they're not requested

libavcodec makes it impossible to distinguish dropped frames (requested
with AVCodecContext.skip_frame), and cases when the decoder simply does
not return a frame by default (such as with VP9, which has invisible
reference frames).

This confuses users when decoding VP9 video. It's basically a cosmetic
issue, so just paint it over by ignoring them if framedropping is
disabled.
This commit is contained in:
wm4 2015-04-16 21:55:10 +02:00
parent 9cabef3974
commit 533b0c70e1
2 changed files with 5 additions and 5 deletions

View File

@ -517,10 +517,9 @@ listed.
rendering is too slow. Also can be incremented on "hiccups" and when the video
frame couldn't be displayed on time. (``vo-drop-frame-count`` property.)
If the decoder drops frames, the number of decoder-dropped frames is appended
to the display as well, e.g.: ``Dropped: 4/34``. This should almost never
happen, unless decoder-framedropping is enabled with one of the
``--framedrop`` options, the stream contains errors, or a weird codec is in
use. (``drop-frame-count`` property.)
to the display as well, e.g.: ``Dropped: 4/34``. This happens only if
decoder-framedropping is enabled with the ``--framedrop`` options.
(``drop-frame-count`` property.)
- Cache state, e.g. ``Cache: 2s+134KB``. Visible if the stream cache is enabled.
The first value shows the amount of video buffered in the demuxer in seconds,
the second value shows *additional* data buffered in the stream cache in

View File

@ -405,7 +405,8 @@ static int decode_image(struct MPContext *mpctx)
talloc_free(pkt);
if (had_packet && !d_video->waiting_decoded_mpi &&
mpctx->video_status == STATUS_PLAYING)
mpctx->video_status == STATUS_PLAYING &&
(mpctx->opts->frame_dropping & 2))
{
mpctx->dropped_frames_total++;
mpctx->dropped_frames++;