Commit Graph

830 Commits

Author SHA1 Message Date
Marton Balint
e341cb1102 ffplay: fix compute_target_delay to better handle frames with long durations
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-06-01 12:50:45 +02:00
Marton Balint
5b492720ad ffplay: if playing only audio or video only, show the master clock diff in status line
Showing A-V diff has no use if there is no audio and video stream, but showing
the audio or video clock difference to the master clock can be useful.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-06-01 12:50:45 +02:00
Marton Balint
f2175a628b ffplay: factorize clock functions
There should be no change in functionality.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-06-01 12:50:45 +02:00
Marton Balint
b764b53aae ffplay: decrease video picture queue size to 3
It was raised to 4 because of a theoretical issue, if we ensure that we do not
return from the display function without popping one picture from the queue,
then its OK to use the old size.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-06-01 12:50:45 +02:00
Michael Niedermayer
840ee5e1a1 ffplay: dont forget passing lowres to private options
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-28 00:09:34 +02:00
Michael Niedermayer
5fd254c4f6 Merge commit '26a44143efb513a602542fb59aee87b1fc62af51'
* commit '26a44143efb513a602542fb59aee87b1fc62af51':
  avplay: remove a warning

Conflicts:
	ffplay.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-28 12:03:41 +02:00
Michael Niedermayer
047716bbd8 ffplay: check av_samples_get_buffer_size() return
Fixes CID1005310
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-21 18:56:18 +02:00
Marton Balint
b8facbeecb ffplay: only do early frame drop if video queue is not empty
Fixes ticket #2446.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-04-20 18:32:09 +02:00
Marton Balint
d148339d19 ffplay: use AV_NOPTS_VALUE video frame pts instead of using 0
Assuming 0 pts may lead to bad framedrop decisions...

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-04-20 18:32:09 +02:00
Marton Balint
40693ba3ac ffplay: simplify aspect ratio calculation
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-04-20 18:32:09 +02:00
Clément Bœsch
9db6aaeb2c ffplay: use format title metadata to set window caption. 2013-04-17 11:08:49 +02:00
Michael Niedermayer
e87c1cdbb5 ffplay: replace opaque/params for buffersinks
This fixes a regression caused by droping opaque.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-12 20:39:07 +02:00
Michael Niedermayer
835cc0f2e7 Merge commit 'fa2a34cd40d124161c748bb0f430dc63c94dd0da'
* commit 'fa2a34cd40d124161c748bb0f430dc63c94dd0da':
  lavfi: change the filter registering system to match the other libraries

Conflicts:
	cmdutils.c
	ffplay.c
	libavfilter/avfilter.c
	libavfilter/avfilter.h

This removes the ability to put AVFilters in read only memory and having
them shareable.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-12 15:08:40 +02:00
Michael Niedermayer
231fd4411f Merge commit '38f0c0781a6e099f11c0acec07f9b8be742190c4'
* commit '38f0c0781a6e099f11c0acec07f9b8be742190c4':
  lavfi: merge avfiltergraph.h into avfilter.h

Conflicts:
	doc/APIchanges
	ffmpeg_filter.c
	libavfilter/avfilter.h
	libavfilter/avfiltergraph.h
	libavfilter/version.h
	tools/graph2dot.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-11 23:50:39 +02:00
Marton Balint
85b9bf5693 ffplay: simplify video pts calculation
Also use frame->pts instead of a standalone variable

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-04-08 22:21:45 +02:00
Marton Balint
5dacf7b1ab ffplay: fix indentation
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-04-08 22:21:45 +02:00
Marton Balint
0b24e341ed ffplay: handle audio buffersink output properly with buffering filters
Fixes cases when the audio filter generates less or more frames than the input.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-04-08 22:21:45 +02:00
Marton Balint
325846aac0 ffplay: set time_base of audio filter buffer src
Fixes ticket #2408.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-04-08 22:21:45 +02:00
Michael Niedermayer
7f4b588fdf ffplay: use seek per time for ogg by default
Fixes Ticket2383

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-02 01:36:45 +02:00
Marton Balint
1c2ac44947 ffplay: always queue attachment pictures after flushing the video packet queue
Requeue them after seeking and also after opening a video stream. Also don't
fill the video queue in case of an attached picture video stream since there
will be no more than one packet from that stream.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-03-30 16:44:19 +01:00
Marton Balint
de81d8da47 ffplay: fix early frame dropped pts serial
Fixes early frame drop which was kind of broken since
26c208cf0f.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-03-30 16:44:19 +01:00
Michael Niedermayer
612d9cdbe9 ffplay: use av_guess_frame_rate()
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-30 13:30:37 +01:00
Marton Balint
c46a8c613e ffplay: avoid frame data leak on early frame drop
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-03-23 02:25:33 +01:00
Paul B Mahol
4d16ba2dd8 ffplay: silence warning of mixed enumeration types
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-03-19 09:39:28 +00:00
Stefano Sabatini
5fe542d7e1 ffplay: remove options skiploop, skipidct, skipframe
The corresponding codec options (skip_loop, skip_idct, skip_frame) can be
set in a more flexible way.

This technically causes a user interface break, but since the options
were not even documented and we just released a major version that should
not be a serious issue.
2013-03-17 13:05:44 +01:00
Stefano Sabatini
f7d1a18c90 ffplay: remove unused variable "codec"
Fix warning:
ffplay.c: In function ‘video_thread’:
ffplay.c:1890:21: warning: unused variable ‘codec’ [-Wunused-variable]
2013-03-17 13:05:44 +01:00
Marton Balint
e96175ad7b ffplay: add -af option
Based on a patch by Stefano Sabatini <stefasab@gmail.com>:
http://ffmpeg.org/pipermail/ffmpeg-devel/2013-February/138452.html

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-03-17 03:43:36 +01:00
Marton Balint
738487f8db ffplay: use refcounted frames for audio
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-03-17 03:31:37 +01:00
Marton Balint
9eafdd518c ffplay: use frame->pts if available for setting the audio clock
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-03-17 03:31:37 +01:00
Marton Balint
1822519d2a ffplay: restructure audio stream opening code
Preparation for -af support.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-03-17 03:31:37 +01:00
Michael Niedermayer
b94df21a51 Merge commit '2eaa3663fda750dac66d41fe8541a8744d5563a4'
* commit '2eaa3663fda750dac66d41fe8541a8744d5563a4':
  avplay: enable only when SDL 1.2 is found

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-13 01:31:46 +01:00
Nicolas George
ceac5c54dd Remove references to the "ff" variant of buffersink. 2013-03-12 23:31:07 +01:00
Michael Niedermayer
32fdfdfbda Merge commit '354468fc12dcf93e7fb4af552e18906771913273'
* commit '354468fc12dcf93e7fb4af552e18906771913273':
  avplay: switch to new refcounted frames API
  avconv: convert to new refcounted AVFrame API

Conflicts:
	cmdutils.c
	ffmpeg.c
	ffmpeg.h
	ffplay.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-12 14:16:02 +01:00
Michael Niedermayer
ec1d2e2fb0 ffplay: use AVFrame accessor functions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-01 23:22:08 +01:00
Marton Balint
ac37d21f49 ffplay: do not cycle through unavailable show modes
Fixes ticket #2200.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-27 21:34:13 +01:00
Marton Balint
d0c6ed7da0 ffplay: add option to disable subtitling
Fixes ticket #2201.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-27 21:34:13 +01:00
Marton Balint
daece4c674 ffplay: use NAN to signal invalid external clock
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-27 21:34:12 +01:00
Marton Balint
26c208cf0f ffplay: if audio or video clock is invalid return NAN
This helps us not to make bad decision (frame dropping, audio compensation)
right after seeking when we do not know yet the recent audio or video clock.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-27 21:34:12 +01:00
Marton Balint
38f649662c ffplay: allow frame dropping if we redisplay an already displayed frame
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-27 21:34:12 +01:00
Marton Balint
36dc476f83 ffplay: return true for pictq_prev_picture if it was successful
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-27 21:34:12 +01:00
Marton Balint
3070600d9b ffplay: only quit from audio_decode_frame before decoding when paused
This way the audio clock is updated to a proper value even when the video is
paused.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-27 21:34:12 +01:00
Marton Balint
48e43a1999 ffplay: drop remaining frames in current audio avpacket when seeking
Fixes ticket #1928.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-27 21:34:12 +01:00
Marton Balint
4be7d578a3 ffplay: signal seek event to read thread
Improves seek delay.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-27 21:34:12 +01:00
Stefano Sabatini
394130efe3 ffplay: reindent and remove pointless cast in audio_decode_frame() code 2013-02-24 23:29:42 +01:00
Stefano Sabatini
a3fa27e366 ffplay: set type for channel_layout AudioParams field to int64_t
Reflect the type of the corresponding field in lavc/lavfi.
2013-02-24 23:26:43 +01:00
Marton Balint
77ab702a84 ffplay: only display frames if there are no pending events
Otherwise events could just pile up if displaying a frame takes more time than
the duration of the frame.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-15 13:12:10 +01:00
Marton Balint
5534d8f75e ffplay: remove remains of video_clock
We are now using a pts based approach, libavutil/libavcodec should provide the
correct pts-es anyway. This also fixes an issue when seeking to a frame with a
pts set to zero.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-15 00:10:46 +01:00
Marton Balint
b853cfe7ea ffplay: remove refresh thread to achieve more precise frame delay
We use a refresh loop which displays the frames and also does the polling for
pending events in a non-blocking way. If we know the required delay until the
next frame, then exactly that amount of sleeping will be done. After each
handled event we check if we have to display a frame which kind of makes
displaying the frame a high priority event.

This improves greatly the smoothness of the video output especially with 50fps
content.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-15 00:10:46 +01:00
Michael Niedermayer
2c5e4ae291 Revert "Merge commit 'db0a943266be29ff0596872ebb418dfed75d00de'"
This reverts commit d808206553, reversing
changes made to 30085bd43e.

This is not needed

Requested-by: Marton Balint
2013-02-10 14:27:57 +01:00
Michael Niedermayer
d808206553 Merge commit 'db0a943266be29ff0596872ebb418dfed75d00de'
* commit 'db0a943266be29ff0596872ebb418dfed75d00de':
  avplay: apply the stream sample_aspect_ratio to decoded video frames

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-10 12:47:37 +01:00
Stefano Sabatini
212bb6490f ffplay: report video frame changes only in debug mode
In particular, remove distracting message:
"Video frame changed from size:0x0 format:none serial:-1 to ..."
2013-02-06 00:20:37 +01:00
Stefano Sabatini
58c4b0f990 ffplay: extend feedback in case of video changes 2013-02-06 00:20:30 +01:00
Stefano Sabatini
c44281906a ffplay: remove misleading comment from audio_decode_frame() 2013-02-03 17:01:56 +01:00
Stefano Sabatini
02af4e9a97 ffplay: rename audio_decode_frame() variable "pts" to "audio_clock0"
The new name better expresses what the variable is.
2013-02-03 17:01:56 +01:00
Stefano Sabatini
6e32b377bb ffplay: remove pts_ptr argument from audio_decode_frame()
The argument is no longer used outside the function. Simplify.
2013-02-03 17:01:56 +01:00
Stefano Sabatini
c91f1f3f92 ffplay: drop redundant NULL sws_freeContext() check in stream_close()
sws_freeContext() already checks for NULL, simplify.
2013-02-03 11:15:27 +01:00
Michael Niedermayer
4be0b91094 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: step to next frame if paused when seeking
  ffplay: move up pause functions
  ffplay: remember last window dimensions
  ffplay: fix order of setting show_mode
  ffplay: dynamically allocate audio buffer

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-02 16:14:21 +01:00
Stefano Sabatini
6032a1c977 ffplay: extend doxy for audio_decode_frame() 2013-02-02 15:32:34 +01:00
Marton Balint
4ea7fbb2ec ffplay: step to next frame if paused when seeking
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-02 12:38:15 +01:00
Marton Balint
c5eab4bb70 ffplay: move up pause functions
No change in functionality.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-02 12:38:14 +01:00
Marton Balint
5de3f724f1 ffplay: remember last window dimensions
After this change the dimensions of single image videos will be remembered when
coming back from full screen. The issue was mentioned in ticket #2174.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-02 12:38:14 +01:00
Marton Balint
4fd6e5af1e ffplay: fix order of setting show_mode
Without the fix the refresh event may have got called with unset show mode.

Fixes ticket #2174.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-02 12:38:14 +01:00
Marton Balint
571ef42dd4 ffplay: dynamically allocate audio buffer
We simply remove the fixed length VideoState->audio_buf2 and use
the previously unused VideoState->audio_buf1.

Fixes ticket #2191.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-02-02 12:38:14 +01:00
Marton Balint
f65e57124f ffplay: flush video filters on seek
Actually we just re-create the filters, since there is no way to flush them.
Fixes hangup with yadif filter on seeking forward caused by a filtered frame
with a pts before the seek.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-01-19 00:48:06 +01:00
Marton Balint
1427c6842d ffplay: use videoq.serial to detect obsolete frames
Previously VideoPicture->skip was used for that, using videoq.serial enables us
to detect obsolete frames right after pushing flush_pkt to the packet queue, so
we don't have to wait for the decoder thread to pop the flush packet anymore.

This is good because until now a full video picture queue may have blocked the
decoder thread.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-01-19 00:48:06 +01:00
Michael Niedermayer
2d8d63a9a0 ffplay: fix sws_flags
Fixes Ticket45

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-13 22:48:28 +01:00
Stefano Sabatini
e8bab4c6fc ffplay: extend documentation for the -vf option
In particular, make it consistent with the ffmpeg docs.
2013-01-13 16:03:13 +01:00
Clément Bœsch
491ca0e89f Replace references to "que" with the appropriate word.
"que" sounds like a slang word to me. This commit renames a few
variables, fix the comments and the logging messages (sometimes along
with small other typo fixes).
2013-01-03 00:21:47 +01:00
Marton Balint
92b50b71a1 ffplay: fix type of time_diff in waveform display
Fixes time diff overflow visible as showing the same few waveforms in a loop at
the end of file.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-12-28 20:01:01 +01:00
Marton Balint
ec89ea3022 ffplay: always display audio visualization if mode is set
Fixes ticket #1903.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-12-28 20:01:01 +01:00
Marton Balint
ef7f3b0870 ffplay: hide cursor on no mouse movement
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-12-28 20:01:00 +01:00
Marton Balint
0ca4e9f014 ffplay: reset external clock to unknown on start
Fixes a delay and initial frame drops on starting realtime streams with
external clock.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-12-28 20:01:00 +01:00
Marton Balint
4e33d8ebb3 ffplay: only drop frames if not in frame step mode
Fixes ticket #2053.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-12-28 20:00:07 +01:00
Marton Balint
97660b8b13 ffplay: move frame step pause from the video thread to video_refresh
This way we pause the video right after we displayed a new frame. Partially
fixes ticket #2053.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-12-28 19:59:46 +01:00
Marton Balint
cf0c63d99a ffplay: fix greenish line on the right edge with some xv sizes
If the XV image linesize was different from the width, SDL would create an
overlay wider than the actually requested one. This causes a greenish line on
the right, because the rightmost texel is blended with unset data.  This patch
introduces a function which duplicates the rightmost texel to the unset space,
that way the blending will be done with duplicated border texels.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-12-25 13:54:07 +01:00
Michael Niedermayer
3f72dbe462 ffplay: fix another use of context instead of frame parameters
Fixes Ticket2050

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-22 03:41:55 +01:00
Michael Niedermayer
230bef0a89 ffplay: fix handling of resolution changes with h264-mt
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-21 00:50:47 +01:00
Stefano Sabatini
013b700771 ffplay: provide some feedback in case the codec cannot be set 2012-12-16 10:58:02 +01:00
Stefano Sabatini
1cbb11cda7 ffplay: set codec_id in codec context
Set codec id in case another codec is forced on the context (e.g. when
the user specify the codec with -codec).

For example fix:
ffplay -vcodec pgmyuv -i "tests/vsynth1/%02d.pgm"
2012-12-16 10:58:02 +01:00
Stefano Sabatini
cb0f97b59d ffplay: improve robustness of opt_codec(), and add options acodec,vcodec,scodec
Fail with a meaningfull error message in case of bogus input.

Also the new options are more consistent with the rest of the tool
options, since it does not support generic stream specifiers.
2012-12-16 10:57:50 +01:00
Michael Niedermayer
0ecfcf8621 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avplay: Do not use removed av_get_int()
  avconv: fix variable shadowing in configure_input_audio_filter()

Conflicts:
	ffmpeg_filter.c
	ffplay.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 14:22:58 +01:00
Marton Balint
f7eb50f3c0 ffplay: increase maximum frame duration to 1 hour for streams without TS discontinuity
Partially fixes ticket #1707. A-V sync still needs some work after seeking...

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-28 21:39:50 +01:00
Marton Balint
2efd01a32f ffplay: fix updating external clock after seeking
Now it should work for the timestamp based and the byte based case as well.
Also only update the external clock if the seeking was successful.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-28 21:39:50 +01:00
Marton Balint
fc38bbcd6a ffplay: disallow seeking before the start of the file
In timestamp based seeking we update the external clock to the seek target,
therefore we should use sane timestamps even if libavformat could handle
seeking before the start of the file.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-28 21:39:50 +01:00
Marton Balint
747c749d42 ffplay: adjust external clock speed based on buffer fullness for realtime sources
This provides a means to synchronize the player clock to the clock of the
encoder.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-04 18:29:49 +01:00
Marton Balint
fec39d99d6 ffplay: remove redundant !codec check
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-01 15:46:18 +01:00
Marton Balint
fdb933444a ffplay: only initialize codec opts before using it
Fixes Coverity CID 733793.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-01 15:46:18 +01:00
Marton Balint
8cb740245d ffplay: always free buffersink_params in configure_video_filters
Fixes Coverity CID 733792.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-01 15:46:18 +01:00
Marton Balint
09214f494b ffplay: remove uneeded format filter, buffersink format is set
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-01 15:46:18 +01:00
Marton Balint
afd9e705de ffplay: check for buffersink_params allocation success
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-01 15:46:18 +01:00
Marton Balint
abd49a7524 ffplay: always free inputs and outputs in configure_filtergraph
Fixes Coverity CID 733791.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-01 15:46:18 +01:00
Marton Balint
65f6c42a9f ffplay: fill the unused part of the window with black
Should fix ticket #1667.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-01 15:46:18 +01:00
Marton Balint
00b70f8d29 ffplay: add update parameter to fill_rectangle
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-01 15:46:18 +01:00
Marton Balint
3166a6fc37 ffplay: if there is no audio stream, use external clock by default
Otherwise playing the video could be much slower than realtime if the system
can't decode or display the frames fast enough.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-10-21 17:18:12 +02:00
Marton Balint
d30c69251f 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: Marton Balint <cus@passwd.hu>
2012-10-21 17:18:12 +02:00
Marton Balint
fca16a1571 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>
2012-10-21 17:18:12 +02:00
Marton Balint
b2a8850969 ffplay: only check external clock if current frame serial matches the displayed frame serial
This way we avoid updating the external clocks with timestamps beloging to
frames before seek.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-10-21 17:18:12 +02:00
Marton Balint
2a4c7e6540 ffplay: add serial field to PacketQueue entry and populate it
The purpose of the serial field is to accompany the decoded data during the
decoding process to know if the decoded data belongs to the data stream after
the latest packet queue flush.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-10-21 17:18:12 +02:00
Marton Balint
77bd595ad2 ffplay: fix external time sync mode
We now initalize the external clock to 0 and, we use the system clock to
regulate the timings of audio and video in external clock sync mode.  We
recover from external clock sync loss, when the delay to external clock is
bigger than AV_NOSYNC_THRESHOLD.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-10-21 17:18:12 +02:00
Marton Balint
66bb5b1bc9 ffplay: initialize audio and video pts drift
This makes sensible audio and video clock values even before displaying the
first frame.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-10-21 17:18:12 +02:00