summaryrefslogtreecommitdiffstats
path: root/video/filter/vf_vo.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-12-10 19:24:58 +0100
committerwm4 <wm4@nowhere>2013-12-10 20:07:39 +0100
commite6e6b88b6da6c50bd7d7b03df583085d19427986 (patch)
treeea7d4c0ac37ff0aba518816a64f8e261bf7b2646 /video/filter/vf_vo.c
parent2f46b23d51684eef7cfa2bd5fa5e2892772ca816 (diff)
downloadmpv-e6e6b88b6da6c50bd7d7b03df583085d19427986.tar.bz2
mpv-e6e6b88b6da6c50bd7d7b03df583085d19427986.tar.xz
video: move VO reinit from filter chain to player
This gets rid of the vf_vo pseudo-filter. It ends the idea of MPlayer's architecture that the VO is just a (terminating) video filter. It didn't really work for us with respect to video timing (the "end" of the video chain isn't really made for video timing, and making it do so would be awkward), and now we're removing it entirely. We will be able to fix some things, such as properly draining video on reconfiguration.
Diffstat (limited to 'video/filter/vf_vo.c')
-rw-r--r--video/filter/vf_vo.c96
1 files changed, 0 insertions, 96 deletions
diff --git a/video/filter/vf_vo.c b/video/filter/vf_vo.c
deleted file mode 100644
index 4f90f6ab3e..0000000000
--- a/video/filter/vf_vo.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * This file is part of MPlayer.
- *
- * MPlayer 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.
- *
- * MPlayer 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 MPlayer; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdbool.h>
-
-#include "config.h"
-#include "mpvcore/mp_msg.h"
-#include "mpvcore/options.h"
-
-#include "video/mp_image.h"
-#include "vf.h"
-
-#include "video/out/vo.h"
-
-struct vf_priv_s {
- struct vo *vo;
-};
-#define video_out (vf->priv->vo)
-
-static int reconfig(struct vf_instance *vf, struct mp_image_params *in,
- struct mp_image_params *out)
-{
- if (!video_out)
- return -1;
-
- struct mp_image_params *p = in;
- *out = *in;
-
- if (p->w <= 0 || p->h <= 0 || p->d_w <= 0 || p->d_h <= 0) {
- mp_msg(MSGT_CPLAYER, MSGL_ERR, "VO: invalid dimensions!\n");
- return -1;
- }
-
- const struct vo_driver *info = video_out->driver;
- mp_msg(MSGT_CPLAYER, MSGL_INFO, "VO: [%s] %dx%d => %dx%d %s\n",
- info->name,
- p->w, p->h, p->d_w, p->d_h,
- vo_format_name(p->imgfmt));
- mp_msg(MSGT_CPLAYER, MSGL_V, "VO: Description: %s\n", info->description);
-
- return vo_reconfig(video_out, p, 0);
-}
-
-static int control(struct vf_instance *vf, int request, void *data)
-{
- if (request == VFCTRL_SET_VO) {
- video_out = data;
- return CONTROL_OK;
- }
- return CONTROL_UNKNOWN;
-}
-
-static int query_format(struct vf_instance *vf, unsigned int fmt)
-{
- if (!video_out)
- return 0;
- return video_out->driver->query_format(video_out, fmt);
-}
-
-static void uninit(struct vf_instance *vf)
-{
-}
-
-static int vf_open(vf_instance_t *vf)
-{
- vf->reconfig = reconfig;
- vf->control = control;
- vf->query_format = query_format;
- vf->uninit = uninit;
- return 1;
-}
-
-const vf_info_t vf_info_vo = {
- .description = "libvo wrapper",
- .name = "vo",
- .open = vf_open,
- .priv_size = sizeof(struct vf_priv_s),
-};