summaryrefslogtreecommitdiffstats
path: root/video/out/gl_video.h
diff options
context:
space:
mode:
authorNiklas Haas <git@nand.wakku.to>2015-03-13 19:30:31 +0100
committerNiklas Haas <git@nand.wakku.to>2015-03-15 18:01:39 +0100
commit44a78a2be20ef3affac7e6f3aa98c0742cf019a9 (patch)
tree845c5e4351cad7a864fee41e80385be926024249 /video/out/gl_video.h
parent6f3292813f27c420e1e2a2382aaaf2193ca8491e (diff)
downloadmpv-44a78a2be20ef3affac7e6f3aa98c0742cf019a9.tar.bz2
mpv-44a78a2be20ef3affac7e6f3aa98c0742cf019a9.tar.xz
vo_opengl: refactor smoothmotion -> interpolation
This replaces the old smoothmotion code by a more flexible tscale option, which essentially allows any scaler to be used for interpolating frames. (The actual "smoothmotion" scaler which behaves identical to the old code does not currently exist, but it will be re-added in a later commit) The only odd thing is that larger filters require a larger queue size offset, which is currently set dynamically as it introduces some issues when pausing or framestepping. Filters with a lower radius are not affected as much, so this is identical to the old smoothmotion if the smoothmotion interpolator is used.
Diffstat (limited to 'video/out/gl_video.h')
-rw-r--r--video/out/gl_video.h14
1 files changed, 7 insertions, 7 deletions
diff --git a/video/out/gl_video.h b/video/out/gl_video.h
index 9c70e9ba82..8ec59895a1 100644
--- a/video/out/gl_video.h
+++ b/video/out/gl_video.h
@@ -29,15 +29,15 @@ struct lut3d {
};
struct gl_video_opts {
- char *scalers[2];
+ char *scalers[3];
char *dscaler;
float gamma;
int gamma_auto;
int target_prim;
int target_trc;
- float scaler_params[2][2];
- float scaler_radius[2];
- float scaler_antiring[2];
+ float scaler_params[3][2];
+ float scaler_radius[3];
+ float scaler_antiring[3];
int linear_scaling;
int fancy_downscaling;
int sigmoid_upscaling;
@@ -55,8 +55,7 @@ struct gl_video_opts {
int chroma_location;
int use_rectangle;
struct m_color background;
- int smoothmotion;
- float smoothmotion_threshold;
+ int interpolation;
};
extern const struct m_sub_options gl_video_conf;
@@ -67,7 +66,8 @@ struct gl_video;
struct gl_video *gl_video_init(GL *gl, struct mp_log *log, struct osd_state *osd);
void gl_video_uninit(struct gl_video *p);
-void gl_video_set_options(struct gl_video *p, struct gl_video_opts *opts);
+void gl_video_set_options(struct gl_video *p, struct gl_video_opts *opts,
+ int *queue_size);
bool gl_video_check_format(struct gl_video *p, int mp_format);
void gl_video_config(struct gl_video *p, struct mp_image_params *params);
void gl_video_set_output_depth(struct gl_video *p, int r, int g, int b);