summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/common.h18
-rw-r--r--options/options.c18
-rw-r--r--options/options.h2
-rw-r--r--player/audio.c2
-rw-r--r--player/core.h18
-rw-r--r--player/video.c6
6 files changed, 32 insertions, 32 deletions
diff --git a/common/common.h b/common/common.h
index af01e38e10..124a0e4956 100644
--- a/common/common.h
+++ b/common/common.h
@@ -68,6 +68,24 @@ enum stream_type {
STREAM_TYPE_COUNT,
};
+enum video_sync {
+ VS_DEFAULT = 0,
+ VS_DISP_RESAMPLE,
+ VS_DISP_RESAMPLE_VDROP,
+ VS_DISP_RESAMPLE_NONE,
+ VS_DISP_ADROP,
+ VS_DISP_VDROP,
+ VS_DISP_NONE,
+ VS_NONE,
+};
+
+#define VS_IS_DISP(x) ((x) == VS_DISP_RESAMPLE || \
+ (x) == VS_DISP_RESAMPLE_VDROP || \
+ (x) == VS_DISP_RESAMPLE_NONE || \
+ (x) == VS_DISP_ADROP || \
+ (x) == VS_DISP_VDROP || \
+ (x) == VS_DISP_NONE)
+
extern const char mpv_version[];
extern const char mpv_builddate[];
extern const char mpv_copyright[];
diff --git a/options/options.c b/options/options.c
index a8463e29c0..e996eb8026 100644
--- a/options/options.c
+++ b/options/options.c
@@ -162,6 +162,15 @@ static const m_option_t mp_vo_opt_list[] = {
{"override-display-fps", OPT_DOUBLE(override_display_fps),
M_RANGE(0, DBL_MAX)},
{"video-timing-offset", OPT_DOUBLE(timing_offset), M_RANGE(0.0, 1.0)},
+ {"video-sync", OPT_CHOICE(video_sync,
+ {"audio", VS_DEFAULT},
+ {"display-resample", VS_DISP_RESAMPLE},
+ {"display-resample-vdrop", VS_DISP_RESAMPLE_VDROP},
+ {"display-resample-desync", VS_DISP_RESAMPLE_NONE},
+ {"display-adrop", VS_DISP_ADROP},
+ {"display-vdrop", VS_DISP_VDROP},
+ {"display-desync", VS_DISP_NONE},
+ {"desync", VS_NONE})},
#if HAVE_X11
{"x11-netwm", OPT_CHOICE(x11_netwm, {"auto", 0}, {"no", -1}, {"yes", 1})},
{"x11-bypass-compositor", OPT_CHOICE(x11_bypass_compositor,
@@ -719,15 +728,6 @@ static const m_option_t mp_opts[] = {
// a-v sync stuff:
{"initial-audio-sync", OPT_FLAG(initial_audio_sync)},
- {"video-sync", OPT_CHOICE(video_sync,
- {"audio", VS_DEFAULT},
- {"display-resample", VS_DISP_RESAMPLE},
- {"display-resample-vdrop", VS_DISP_RESAMPLE_VDROP},
- {"display-resample-desync", VS_DISP_RESAMPLE_NONE},
- {"display-adrop", VS_DISP_ADROP},
- {"display-vdrop", VS_DISP_VDROP},
- {"display-desync", VS_DISP_NONE},
- {"desync", VS_NONE})},
{"video-sync-max-video-change", OPT_DOUBLE(sync_max_video_change),
M_RANGE(0, DBL_MAX)},
{"video-sync-max-audio-change", OPT_DOUBLE(sync_max_audio_change),
diff --git a/options/options.h b/options/options.h
index fd04ebdfa0..b32dc06519 100644
--- a/options/options.h
+++ b/options/options.h
@@ -61,6 +61,7 @@ typedef struct mp_vo_opts {
double override_display_fps;
double timing_offset;
+ int video_sync;
// vo_drm
struct drm_opts *drm_opts;
@@ -215,7 +216,6 @@ typedef struct MPOpts {
int hls_bitrate;
int edition_id;
int initial_audio_sync;
- int video_sync;
double sync_max_video_change;
double sync_max_audio_change;
int sync_max_factor;
diff --git a/player/audio.c b/player/audio.c
index 0c9d878496..06ea1262a6 100644
--- a/player/audio.c
+++ b/player/audio.c
@@ -64,7 +64,7 @@ static void update_speed_filters(struct MPContext *mpctx)
speed = 1.0;
}
- if (mpctx->display_sync_active && mpctx->opts->video_sync == VS_DISP_ADROP) {
+ if (mpctx->display_sync_active && mpctx->video_out->opts->video_sync == VS_DISP_ADROP) {
drop *= speed * resample;
resample = speed = 1.0;
}
diff --git a/player/core.h b/player/core.h
index b59713721e..71595ef4f6 100644
--- a/player/core.h
+++ b/player/core.h
@@ -92,24 +92,6 @@ struct seek_params {
unsigned flags; // MPSEEK_FLAG_*
};
-enum video_sync {
- VS_DEFAULT = 0,
- VS_DISP_RESAMPLE,
- VS_DISP_RESAMPLE_VDROP,
- VS_DISP_RESAMPLE_NONE,
- VS_DISP_ADROP,
- VS_DISP_VDROP,
- VS_DISP_NONE,
- VS_NONE,
-};
-
-#define VS_IS_DISP(x) ((x) == VS_DISP_RESAMPLE || \
- (x) == VS_DISP_RESAMPLE_VDROP || \
- (x) == VS_DISP_RESAMPLE_NONE || \
- (x) == VS_DISP_ADROP || \
- (x) == VS_DISP_VDROP || \
- (x) == VS_DISP_NONE)
-
// Information about past video frames that have been sent to the VO.
struct frame_info {
double pts;
diff --git a/player/video.c b/player/video.c
index cae23df1c8..6400979438 100644
--- a/player/video.c
+++ b/player/video.c
@@ -583,7 +583,7 @@ static void update_avsync_before_frame(struct MPContext *mpctx)
if (mpctx->video_status < STATUS_READY) {
mpctx->time_frame = 0;
- } else if (mpctx->display_sync_active || opts->video_sync == VS_NONE) {
+ } else if (mpctx->display_sync_active || vo->opts->video_sync == VS_NONE) {
// don't touch the timing
} else if (mpctx->audio_status == STATUS_PLAYING &&
mpctx->video_status == STATUS_PLAYING &&
@@ -737,7 +737,7 @@ static double compute_audio_drift(struct MPContext *mpctx, double vsync)
static void adjust_audio_resample_speed(struct MPContext *mpctx, double vsync)
{
struct MPOpts *opts = mpctx->opts;
- int mode = opts->video_sync;
+ int mode = mpctx->video_out->opts->video_sync;
if (mode != VS_DISP_RESAMPLE || mpctx->audio_status != STATUS_PLAYING) {
mpctx->speed_factor_a = mpctx->speed_factor_v;
@@ -797,7 +797,7 @@ static void handle_display_sync_frame(struct MPContext *mpctx,
{
struct MPOpts *opts = mpctx->opts;
struct vo *vo = mpctx->video_out;
- int mode = opts->video_sync;
+ int mode = vo->opts->video_sync;
if (!mpctx->display_sync_active) {
mpctx->display_sync_error = 0.0;