summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/man/options.rst5
-rw-r--r--video/decode/vd_lavc.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst
index b778b2bc0f..067cbcdb13 100644
--- a/DOCS/man/options.rst
+++ b/DOCS/man/options.rst
@@ -1388,6 +1388,11 @@ Video
(default: 3). If this is a number, then fallback will be triggered if
N frames fail to decode in a row. 1 is equivalent to ``yes``.
+ Setting this to a higher number might break the playback start fallback: if
+ a fallback happens, parts of the file will be skipped, approximately by to
+ the number of packets that could not be decoded. Values below an unspecified
+ count will not have this problem, because mpv retains the packets.
+
``--vd-lavc-dr=<yes|no>``
Enable direct rendering (default: yes). If this is set to ``yes``, the
video will be decoded directly to GPU video memory (or staging buffers).
diff --git a/video/decode/vd_lavc.c b/video/decode/vd_lavc.c
index fbb0e9c137..92065fde0c 100644
--- a/video/decode/vd_lavc.c
+++ b/video/decode/vd_lavc.c
@@ -993,7 +993,9 @@ static int send_packet(struct mp_filter *vd, struct demux_packet *pkt)
if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF)
return ret;
- if (ctx->hw_probing && ctx->num_sent_packets < 32) {
+ if (ctx->hw_probing && ctx->num_sent_packets < 32 &&
+ ctx->opts->software_fallback <= 32)
+ {
pkt = pkt ? demux_copy_packet(pkt) : NULL;
MP_TARRAY_APPEND(ctx, ctx->sent_packets, ctx->num_sent_packets, pkt);
}