1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-19 13:21:13 +00:00
mpv/player
Aman Gupta b67d2ede67 video: do not buffer extra frames with VO_CAP_NORETAIN outputs
This fixes playback stalls on some mediacodec hardware decoders,
which expect that frame buffers will be rendered and returned back
to the decoder as soon as possible.

Specifically, the issue was observed on an NVidia SHIELD Android TV,
only when playing an H264 sample which switched between interlaced
and non-interlaced frames. On an interlacing change, the decoder
expects all outstanding frames would be returned to it before it
would emit any new frames. Since a single extra frame always remained
buffered by mpv, playback would stall. After this commit, no extra
frames are buffered by mpv when using vo_mediacodec_embed.
2018-02-17 23:01:47 -08:00
..
javascript js: implement mp.msg.trace() 2017-12-16 02:25:24 -08:00
lua ytdl_hook: add ytdl:// prefix again for non-youtube playlists 2018-02-11 23:27:37 -08:00
audio.c audio: move back PTS jump detection to before filter chain 2018-02-13 17:45:29 -08:00
client.c cocoa-cb: initial implementation via opengl-cb API 2018-02-12 04:49:15 -08:00
client.h cocoa-cb: initial implementation via opengl-cb API 2018-02-12 04:49:15 -08:00
command.c command: simplify mp_property_filter_metadata 2018-02-16 22:04:15 -08:00
command.h player: update duration based on highest timestamp demuxed 2017-12-24 21:49:12 +01:00
configfiles.c player: silence config file loading message on resuming 2018-01-13 03:26:45 -08:00
core.h audio: move back PTS jump detection to before filter chain 2018-02-13 17:45:29 -08:00
external_files.c player: make track language matching case insensitive 2017-12-23 15:14:13 -07:00
external_files.h external_files: change license to LGPL 2017-06-20 14:22:10 +02:00
javascript.c lua+js: Implement utils.getpid() 2018-02-13 20:16:01 -08:00
loadfile.c player: correctly set track information on adding external files 2018-02-10 06:50:32 -08:00
lua.c lua+js: Implement utils.getpid() 2018-02-13 20:16:01 -08:00
main.c audio: move to decoder wrapper 2018-01-30 03:10:27 -08:00
misc.c options: move most subtitle and OSD rendering options to sub structs 2018-01-02 14:27:37 -08:00
osd.c video: make decoder wrapper a filter 2018-01-30 03:10:27 -08:00
playloop.c audio: move to decoder wrapper 2018-01-30 03:10:27 -08:00
screenshot.c vo_gpu: make screenshots use the GL renderer 2018-02-11 17:45:51 -08:00
screenshot.h player: make screenshot commands honor the async flag 2017-04-01 20:47:23 +02:00
scripting.c msg: reinterpret a bunch of message levels 2017-12-15 22:28:47 -08:00
sub.c video: make decoder wrapper a filter 2018-01-30 03:10:27 -08:00
video.c video: do not buffer extra frames with VO_CAP_NORETAIN outputs 2018-02-17 23:01:47 -08:00