aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar wm4 <wm4@nowhere>2015-04-16 22:16:04 +0200
committerGravatar wm4 <wm4@nowhere>2015-04-16 22:16:04 +0200
commitf4292ebf52fb2e58a1ddbefb06bccd47a38bdc99 (patch)
tree822df368c66d24f292750910e22b942b7fa4db97
parent547976633f41c245b9accd6906166bb450e13557 (diff)
vf_screenshot: remove this filter
It's entirely useless, especially now that vo.c handles screenshots in a generic way, and requires no special VO support. There are some potential weird use-cases, but actually I've never seen it being used.
-rw-r--r--DOCS/man/mpv.rst7
-rw-r--r--DOCS/man/vf.rst6
-rw-r--r--old-makefile1
-rw-r--r--player/screenshot.c7
-rw-r--r--video/filter/vf.c3
-rw-r--r--video/filter/vf.h1
-rw-r--r--video/filter/vf_screenshot.c74
-rw-r--r--wscript_build.py1
8 files changed, 3 insertions, 97 deletions
diff --git a/DOCS/man/mpv.rst b/DOCS/man/mpv.rst
index a530725548..f8db13c336 100644
--- a/DOCS/man/mpv.rst
+++ b/DOCS/man/mpv.rst
@@ -475,11 +475,8 @@ A screenshot will usually contain the unscaled video contents at the end of the
video filter chain and subtitles. By default, ``S`` takes screenshots without
subtitles, while ``s`` includes subtitles.
-The ``screenshot`` video filter is not required when using a recommended GUI
-video output driver. It should normally not be added to the config file, as
-taking screenshots is handled by the VOs, and adding the screenshot filter will
-break hardware decoding. (The filter may still be useful for taking screenshots
-at a certain point within the video chain when using multiple video filters.)
+Unlike with MPlayer, the ``screenshot`` video filter is not required. This
+filter was never required in mpv, and has been removed.
TERMINAL STATUS LINE
====================
diff --git a/DOCS/man/vf.rst b/DOCS/man/vf.rst
index be7daee09e..3739716340 100644
--- a/DOCS/man/vf.rst
+++ b/DOCS/man/vf.rst
@@ -561,12 +561,6 @@ Available filters are:
``show``
Draw a rectangle showing the area defined by x/y/w/h.
-``screenshot``
- Optional filter for screenshot support. This is only needed if the video
- output does not provide working direct screenshot support. Note that it is
- not always safe to insert this filter by default. See `TAKING SCREENSHOTS`_
- for details.
-
``sub=[=bottom-margin:top-margin]``
Moves subtitle rendering to an arbitrary point in the filter chain, or force
subtitle rendering in the video filter as opposed to using video output OSD
diff --git a/old-makefile b/old-makefile
index 876c1fe0d7..7adc45d712 100644
--- a/old-makefile
+++ b/old-makefile
@@ -263,7 +263,6 @@ SOURCES = audio/audio.c \
video/filter/vf_mirror.c \
video/filter/vf_noformat.c \
video/filter/vf_scale.c \
- video/filter/vf_screenshot.c \
video/filter/vf_stereo3d.c \
video/filter/vf_sub.c \
video/out/bitmap_packer.c \
diff --git a/player/screenshot.c b/player/screenshot.c
index 3a1a41a4ca..f722b9561f 100644
--- a/player/screenshot.c
+++ b/player/screenshot.c
@@ -32,7 +32,6 @@
#include "options/path.h"
#include "video/mp_image.h"
#include "video/decode/dec_video.h"
-#include "video/filter/vf.h"
#include "video/out/vo.h"
#include "video/image_writer.h"
#include "sub/osd.h"
@@ -330,11 +329,7 @@ static struct mp_image *screenshot_get(struct MPContext *mpctx, int mode)
if (mode == MODE_SUBTITLES && osd_get_render_subs_in_filter(mpctx->osd))
mode = 0;
- // vf_screenshot
- if (mpctx->d_video && mpctx->d_video->vfilter)
- vf_control_any(mpctx->d_video->vfilter, VFCTRL_SCREENSHOT, &image);
-
- if (!image && mpctx->video_out && mpctx->video_out->config_ok) {
+ if (mpctx->video_out && mpctx->video_out->config_ok) {
vo_wait_frame(mpctx->video_out); // important for each-frame mode
if (mode != MODE_FULL_WINDOW)
diff --git a/video/filter/vf.c b/video/filter/vf.c
index 888e937fa5..9bbe126823 100644
--- a/video/filter/vf.c
+++ b/video/filter/vf.c
@@ -54,7 +54,6 @@ extern const vf_info_t vf_info_hqdn3d;
extern const vf_info_t vf_info_dsize;
extern const vf_info_t vf_info_pullup;
extern const vf_info_t vf_info_delogo;
-extern const vf_info_t vf_info_screenshot;
extern const vf_info_t vf_info_sub;
extern const vf_info_t vf_info_yadif;
extern const vf_info_t vf_info_stereo3d;
@@ -88,8 +87,6 @@ static const vf_info_t *const filter_list[] = {
&vf_info_yadif,
#endif
- &vf_info_screenshot,
-
&vf_info_eq,
&vf_info_dsize,
&vf_info_sub,
diff --git a/video/filter/vf.h b/video/filter/vf.h
index f7ee9d011b..76835528b5 100644
--- a/video/filter/vf.h
+++ b/video/filter/vf.h
@@ -144,7 +144,6 @@ enum vf_ctrl {
VFCTRL_SEEK_RESET = 1, // reset on picture and PTS discontinuities
VFCTRL_SET_EQUALIZER, // set color options (brightness,contrast etc)
VFCTRL_GET_EQUALIZER, // get color options (brightness,contrast etc)
- VFCTRL_SCREENSHOT, // Take screenshot, arg is mp_image**
VFCTRL_INIT_OSD, // Filter OSD renderer present?
VFCTRL_SET_DEINTERLACE, // Set deinterlacing status
VFCTRL_GET_DEINTERLACE, // Get deinterlacing status
diff --git a/video/filter/vf_screenshot.c b/video/filter/vf_screenshot.c
deleted file mode 100644
index 57cd9fbb0b..0000000000
--- a/video/filter/vf_screenshot.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * This file is part of mpv.
- *
- * mpv is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * mpv is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with mpv. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <inttypes.h>
-
-#include "talloc.h"
-
-#include "video/img_format.h"
-#include "video/mp_image.h"
-#include "video/sws_utils.h"
-#include "video/out/vo.h"
-
-#include "vf.h"
-
-struct vf_priv_s {
- struct mp_image *current;
-};
-
-static struct mp_image *filter(struct vf_instance *vf, struct mp_image *mpi)
-{
- mp_image_unrefp(&vf->priv->current);
- vf->priv->current = talloc_steal(vf, mp_image_new_ref(mpi));
- return mpi;
-}
-
-static int control (vf_instance_t *vf, int request, void *data)
-{
- if (request == VFCTRL_SCREENSHOT && vf->priv->current) {
- *(struct mp_image **)data = mp_image_new_ref(vf->priv->current);
- return CONTROL_TRUE;
- }
- return CONTROL_UNKNOWN;
-}
-
-static int query_format(struct vf_instance *vf, unsigned int fmt)
-{
- if (mp_sws_supported_format(fmt))
- return vf_next_query_format(vf, fmt);
- return 0;
-}
-
-static int vf_open(vf_instance_t *vf)
-{
- vf->control = control;
- vf->filter = filter;
- vf->query_format = query_format;
- vf->priv = talloc_zero(vf, struct vf_priv_s);
- return 1;
-}
-
-const vf_info_t vf_info_screenshot = {
- .description = "screenshot to file",
- .name = "screenshot",
- .open = vf_open,
-};
diff --git a/wscript_build.py b/wscript_build.py
index 7f65125ef5..280e6a62ae 100644
--- a/wscript_build.py
+++ b/wscript_build.py
@@ -311,7 +311,6 @@ def build(ctx):
( "video/filter/vf_pullup.c", "libavfilter"),
( "video/filter/vf_rotate.c", "libavfilter"),
( "video/filter/vf_scale.c" ),
- ( "video/filter/vf_screenshot.c" ),
( "video/filter/vf_stereo3d.c" ),
( "video/filter/vf_sub.c" ),
( "video/filter/vf_unsharp.c", "libavfilter"),