Commit d30c6925 authored by Marton Balint's avatar Marton Balint

ffplay: use get_master_sync_type where necessary

We should make decisions based on the real sync type. This also simplifies
the code.
Signed-off-by: 's avatarMarton Balint <cus@passwd.hu>
parent fca16a15
...@@ -1146,8 +1146,7 @@ static double compute_target_delay(double delay, VideoState *is) ...@@ -1146,8 +1146,7 @@ static double compute_target_delay(double delay, VideoState *is)
double sync_threshold, diff; double sync_threshold, diff;
/* update delay to follow master synchronisation source */ /* update delay to follow master synchronisation source */
if (((is->av_sync_type == AV_SYNC_AUDIO_MASTER && is->audio_st) || if (get_master_sync_type(is) != AV_SYNC_VIDEO_MASTER) {
is->av_sync_type == AV_SYNC_EXTERNAL_CLOCK)) {
/* if video is slave, we try to correct big delays by /* if video is slave, we try to correct big delays by
duplicating or deleting a frame */ duplicating or deleting a frame */
diff = get_video_clock(is) - get_master_clock(is); diff = get_video_clock(is) - get_master_clock(is);
...@@ -1264,7 +1263,7 @@ retry: ...@@ -1264,7 +1263,7 @@ retry:
if (is->pictq_size > 1) { if (is->pictq_size > 1) {
VideoPicture *nextvp = &is->pictq[(is->pictq_rindex + 1) % VIDEO_PICTURE_QUEUE_SIZE]; VideoPicture *nextvp = &is->pictq[(is->pictq_rindex + 1) % VIDEO_PICTURE_QUEUE_SIZE];
duration = nextvp->pts - vp->pts; duration = nextvp->pts - vp->pts;
if((framedrop>0 || (framedrop && is->av_sync_type != AV_SYNC_VIDEO_MASTER)) && time > is->frame_timer + duration){ if((framedrop>0 || (framedrop && get_master_sync_type(is) != AV_SYNC_VIDEO_MASTER)) && time > is->frame_timer + duration){
is->frame_drops_late++; is->frame_drops_late++;
pictq_next_picture(is); pictq_next_picture(is);
goto retry; goto retry;
...@@ -1582,8 +1581,7 @@ static int get_video_frame(VideoState *is, AVFrame *frame, int64_t *pts, AVPacke ...@@ -1582,8 +1581,7 @@ static int get_video_frame(VideoState *is, AVFrame *frame, int64_t *pts, AVPacke
*pts = 0; *pts = 0;
} }
if (((is->av_sync_type == AV_SYNC_AUDIO_MASTER && is->audio_st) || is->av_sync_type == AV_SYNC_EXTERNAL_CLOCK) && if (framedrop>0 || (framedrop && get_master_sync_type(is) != AV_SYNC_VIDEO_MASTER)) {
(framedrop>0 || (framedrop && is->av_sync_type != AV_SYNC_VIDEO_MASTER))) {
SDL_LockMutex(is->pictq_mutex); SDL_LockMutex(is->pictq_mutex);
if (is->frame_last_pts != AV_NOPTS_VALUE && *pts) { if (is->frame_last_pts != AV_NOPTS_VALUE && *pts) {
double clockdiff = get_video_clock(is) - get_master_clock(is); double clockdiff = get_video_clock(is) - get_master_clock(is);
...@@ -1941,8 +1939,7 @@ static int synchronize_audio(VideoState *is, int nb_samples) ...@@ -1941,8 +1939,7 @@ static int synchronize_audio(VideoState *is, int nb_samples)
int wanted_nb_samples = nb_samples; int wanted_nb_samples = nb_samples;
/* if not master, then we try to remove or add samples to correct the clock */ /* if not master, then we try to remove or add samples to correct the clock */
if (((is->av_sync_type == AV_SYNC_VIDEO_MASTER && is->video_st) || if (get_master_sync_type(is) != AV_SYNC_AUDIO_MASTER) {
is->av_sync_type == AV_SYNC_EXTERNAL_CLOCK)) {
double diff, avg_diff; double diff, avg_diff;
int min_nb_samples, max_nb_samples; int min_nb_samples, max_nb_samples;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment