1
mirror of https://github.com/mpv-player/mpv synced 2024-11-07 01:47:00 +01:00

core: move video refresh function to mplayer.c

This commit is contained in:
wm4 2013-07-16 23:14:55 +02:00
parent 130866e269
commit a98aad61f8
3 changed files with 13 additions and 5 deletions

View File

@ -1909,7 +1909,6 @@ static void change_video_filters(MPContext *mpctx, const char *cmd,
struct m_obj_settings *old_vf_settings = NULL;
bool success = false;
bool need_refresh = false;
double refresh_pts = mpctx->last_vo_pts;
// The option parser is used to modify the filter list itself.
char optname[20];
@ -1931,10 +1930,8 @@ static void change_video_filters(MPContext *mpctx, const char *cmd,
}
m_option_free(type, &old_vf_settings);
// Try to refresh the video by doing a precise seek to the currently
// displayed frame.
if (need_refresh && opts->pause)
queue_seek(mpctx, MPSEEK_ABSOLUTE, refresh_pts, 1);
if (need_refresh)
mp_force_video_refresh(mpctx);
}
void run_command(MPContext *mpctx, mp_cmd_t *cmd)

View File

@ -321,6 +321,7 @@ struct playlist_entry *mp_next_file(struct MPContext *mpctx, int direction);
int mp_get_cache_percent(struct MPContext *mpctx);
void mp_write_watch_later_conf(struct MPContext *mpctx);
void mp_set_playlist_entry(struct MPContext *mpctx, struct playlist_entry *e);
void mp_force_video_refresh(struct MPContext *mpctx);
void mp_print_version(int always);

View File

@ -2379,6 +2379,16 @@ no_video:
return 0;
}
// Try to refresh the video by doing a precise seek to the currently displayed
// frame. This can go wrong in all sorts of ways, so use sparingly.
void mp_force_video_refresh(struct MPContext *mpctx)
{
struct MPOpts *opts = &mpctx->opts;
if (opts->pause && mpctx->last_vo_pts != MP_NOPTS_VALUE)
queue_seek(mpctx, MPSEEK_ABSOLUTE, mpctx->last_vo_pts, 1);
}
static void add_frame_pts(struct MPContext *mpctx, double pts)
{
if (pts == MP_NOPTS_VALUE || mpctx->hrseek_framedrop) {