summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2012-11-04 18:16:36 +0100
committerwm4 <wm4@nowhere>2013-01-13 17:39:31 +0100
commit23ab098969f5182585578ee01c3a47d42dea031f (patch)
tree3f9003095a8f8bb92ab61e8df9c51e109f4d4ffb /core
parentcfa1f9e082f3da83adb5161be140e477b38bc5c7 (diff)
downloadmpv-23ab098969f5182585578ee01c3a47d42dea031f.tar.bz2
mpv-23ab098969f5182585578ee01c3a47d42dea031f.tar.xz
video: remove slice based filtering and video output
Slices allowed filtering or drawing video in horizontal bands or blocks. This allowed working on the video in smaller units. In theory, this could bring a performance win by lowering cache pressure, as you didn't have to keep the whole video frame in cache while filtering, only the slice. In practice, the slice code path was barely used for the following reasons: - Multithreaded decoding with ffmpeg didn't use slices. The ffmpeg slice callback was disabled, because it can be called from another thread, and the mplayer video chain is not thread-safe. - There was nothing that would turn "full" images into appropriate slices, so slices were rarely used. - Most filters didn't actually support slices. On the other hand, supporting slices lead to code duplication and more complex code in general. I made some experiments and didn't find any actual measurable performance improvements when using slices. Even ffmpeg removed slices based filtering from libavfilter in favor of simpler code. The most broken thing about the slices code path is that slices can't be queued, like it is done for images in vo.c.
Diffstat (limited to 'core')
-rw-r--r--core/cfg-mplayer.h2
-rw-r--r--core/options.h1
2 files changed, 0 insertions, 3 deletions
diff --git a/core/cfg-mplayer.h b/core/cfg-mplayer.h
index cbe705ebc4..a13eae243f 100644
--- a/core/cfg-mplayer.h
+++ b/core/cfg-mplayer.h
@@ -482,8 +482,6 @@ const m_option_t common_opts[] = {
OPT_FLAG_CONSTANTS("flip", flip, 0, -1, 1),
- // draw by slices or whole frame (useful with libmpeg2/libavcodec)
- OPT_MAKE_FLAGS("slices", vd_use_slices, 0),
// use (probably completely broken) decoder direct rendering
OPT_MAKE_FLAGS("dr1", vd_use_dr1, 0),
{"field-dominance", &field_dominance, CONF_TYPE_CHOICE, 0,
diff --git a/core/options.h b/core/options.h
index fbeb94c042..d6bac625df 100644
--- a/core/options.h
+++ b/core/options.h
@@ -108,7 +108,6 @@ typedef struct MPOpts {
float movie_aspect;
float screen_size_xy;
int flip;
- int vd_use_slices;
int vd_use_dr1;
char **sub_name;
char **sub_paths;