diff options
author | wm4 <wm4@nowhere> | 2016-08-18 20:37:25 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2016-08-18 20:37:25 +0200 |
commit | 7bba97b301c732fb1eb4dad891d00c947d2f6363 (patch) | |
tree | 8089058d22204d8009259142d8564b7684467ab7 /video/filter/vf.h | |
parent | 0a0967f48b23a20dce393ec5983b46bb6b361971 (diff) | |
download | mpv-7bba97b301c732fb1eb4dad891d00c947d2f6363.tar.bz2 mpv-7bba97b301c732fb1eb4dad891d00c947d2f6363.tar.xz |
video: don't discard video frames after endpts
Instead of letting it keep decoding by trying to find a new frame,
"plug" the frame queue by not removing it. (Or actually, by putting
it back instead of discarding it.)
Matters for seamless looping (following commits), and possibly some
other corner cases.
The added function vf_unread_output_frame() is a bit of a sin, but still
reasonable, since its implementation is trivial.
Diffstat (limited to 'video/filter/vf.h')
-rw-r--r-- | video/filter/vf.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/video/filter/vf.h b/video/filter/vf.h index 49296fb9b2..901ccead95 100644 --- a/video/filter/vf.h +++ b/video/filter/vf.h @@ -157,6 +157,7 @@ int vf_filter_frame(struct vf_chain *c, struct mp_image *img); int vf_output_frame(struct vf_chain *c, bool eof); int vf_needs_input(struct vf_chain *c); struct mp_image *vf_read_output_frame(struct vf_chain *c); +void vf_unread_output_frame(struct vf_chain *c, struct mp_image *img); void vf_seek_reset(struct vf_chain *c); struct vf_instance *vf_append_filter(struct vf_chain *c, const char *name, char **args); |