diff options
author | Marton Balint <cus@passwd.hu> | 2012-10-13 21:33:32 +0200 |
---|---|---|
committer | Marton Balint <cus@passwd.hu> | 2012-10-21 17:18:12 +0200 |
commit | fca16a15712b789179dfc2131506fa4762795775 (patch) | |
tree | b894dc11888eaff4450dbbaa6dcc3bc127199c00 /ffplay.c | |
parent | b2a8850969b89151677253be4d99e0ba29212749 (diff) | |
download | ffmpeg-fca16a15712b789179dfc2131506fa4762795775.tar.gz |
ffplay: add get_master_sync_type function
The real av_sync_type may be different to VideoState->av_sync_type, because the
required audio or video stream for audio or video clock may not be available.
We will use a function to query the real av_sync_type which is used for
determining the master clock.
Signed-off-by: Marton Balint <cus@passwd.hu>
Diffstat (limited to 'ffplay.c')
-rw-r--r-- | ffplay.c | 34 |
1 files changed, 24 insertions, 10 deletions
@@ -1066,23 +1066,37 @@ static double get_external_clock(VideoState *is) } } -/* get the current master clock value */ -static double get_master_clock(VideoState *is) -{ - double val; - +static int get_master_sync_type(VideoState *is) { if (is->av_sync_type == AV_SYNC_VIDEO_MASTER) { if (is->video_st) - val = get_video_clock(is); + return AV_SYNC_VIDEO_MASTER; else - val = get_audio_clock(is); + return AV_SYNC_AUDIO_MASTER; } else if (is->av_sync_type == AV_SYNC_AUDIO_MASTER) { if (is->audio_st) - val = get_audio_clock(is); + return AV_SYNC_AUDIO_MASTER; else - val = get_video_clock(is); + return AV_SYNC_VIDEO_MASTER; } else { - val = get_external_clock(is); + return AV_SYNC_EXTERNAL_CLOCK; + } +} + +/* get the current master clock value */ +static double get_master_clock(VideoState *is) +{ + double val; + + switch (get_master_sync_type(is)) { + case AV_SYNC_VIDEO_MASTER: + val = get_video_clock(is); + break; + case AV_SYNC_AUDIO_MASTER: + val = get_audio_clock(is); + break; + default: + val = get_external_clock(is); + break; } return val; } |