Commit Graph

925 Commits

Author SHA1 Message Date
Stefano Sabatini
5e1c57f5cb ffplay: do not call avcodec_register_all() explicitly
avcodec_register_all() is implicitly called by av_register_all().
2013-11-25 00:03:20 +01:00
Michael Niedermayer
ccdfa3e271 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Add missing #includes for *INT64_MAX and *INT64_C

Conflicts:
	ffmpeg.c
	ffmpeg_filter.c
	ffplay.c
	libavformat/assdec.c
	libavformat/avidec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-24 05:21:19 +01:00
Michael Niedermayer
0ee905e243 Merge commit '5b9c3b4505206143d85398c1410949319fa1180f'
* commit '5b9c3b4505206143d85398c1410949319fa1180f':
  Replace all instances of avcodec_alloc_frame() with av_frame_alloc().

Conflicts:
	doc/examples/decoding_encoding.c
	doc/examples/muxing.c
	ffmpeg.c
	libavcodec/alacenc.c
	libavcodec/libopenjpegenc.c
	libavcodec/libvpxenc.c
	libavcodec/pcm.c
	libavcodec/xbmenc.c
	libavcodec/xwdenc.c
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-16 23:54:10 +01:00
Marton Balint
2803140457 ffplay: calculate last frame duration from vp->pts instead of frame_last_pts
Also do not update current pts on dropped frames, it is no longer necessary.

Fixes regression part of ticket #2507.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-16 14:55:08 +01:00
Marton Balint
02b76aa377 ffplay: simplify early frame drop code
Also never early frame drop the first frame after a flush.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-16 14:55:08 +01:00
Marton Balint
5ecfcc7dff ffplay: add smarter method for determining video picture duration
- consider it an invalid PTS when the next PTS value is the same as the current one
- in case of invalid or unknown PTS, return vp->duration

This fixes ffplay part of ticket #3005.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-05 21:27:07 +01:00
Marton Balint
61dd319770 ffplay: add frame duration estimated from frame rate to VideoPicture
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-05 21:27:07 +01:00
Marton Balint
105d4748cf ffplay: avoid code duplication in AVFILTER enabled and disabled case
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-05 21:27:06 +01:00
Marton Balint
44758b4d17 ffplay: add support for libswresample options
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-10-26 12:23:54 +02:00
Marton Balint
04de0e04c5 ffplay: use av_frame_get_pkt_pos instead directly accessing pkt pos
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-10-26 12:23:54 +02:00
Marton Balint
2d059d8de1 ffplay: factor out picture freeing code
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-10-26 12:23:54 +02:00
Marton Balint
060c42bc3d ffplay: update and extend documentation for channel and stream switching
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-10-26 12:23:54 +02:00
Marton Balint
3130416aec ffplay: add support for changing the channel by the C key
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-10-13 12:46:14 +02:00
Marton Balint
543d81a707 ffplay: cycle through the streams of the current program, and not every stream
When changing the audio, video or subtitle stream, from now on, ffplay will
cycle through the streams of the current program.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-10-13 12:31:52 +02:00
Marton Balint
0258e4dc8b ffplay: add null packet after attached pics packet
Fixes ticket #2904.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-10-13 12:31:52 +02:00
Marton Balint
b118d3e24d ffplay: factor out putting null packet into the queue
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-10-13 12:31:52 +02:00
Michael Niedermayer
c7fe2a3733 ffplay: avoid direct access to lowres use av_codec_g/set_lowres()
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-03 22:38:54 +02:00
Michael Niedermayer
b72040daad ffplay: avoid direct access to max_lowres use av_codec_get_max_lowres()
This avoids future ABI issues when the field is moved to the end of the
struct.

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-03 22:38:23 +02:00
Michael Niedermayer
5c6a58746b ffplay: make next_nb_channels[] static const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-24 19:53:11 +02:00
Marton Balint
18be3fac1d ffplay: check for filter EOF return codes
Fixes ticket #2800.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-08-09 00:16:13 +02:00
Marton Balint
e84ca8d38a ffplay: ensure the decoder is flushed before exiting or looping
Also make sure that we only exit or restart the video if it is not paused and
if the picture queue is empty.

There is still room for improvement (filters may also buffer some frames), but
the patch fixes the most common use cases and ticket #2783 as well.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-08-09 00:16:13 +02:00
Marton Balint
608989f6bf ffplay: fix memleak of non-bitmap subtitles
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-08-09 00:16:13 +02:00
Marton Balint
9f120e034f ffplay: free subtitle pictures on exit
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-08-09 00:16:13 +02:00
Michael Niedermayer
46ad2d9e44 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  miscellaneous typo fixes

Conflicts:
	configure
	libavformat/avisynth.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-26 11:12:11 +02:00
Stefano Sabatini
f9f7f4c9bb ffplay: improve error message in case of failure, mention filtergraph configuration 2013-07-21 19:20:46 +02:00
Marton Balint
b198e33ad8 ffplay: fix build with disabled avfilter
Got broken in b383498e.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-07-21 12:00:22 +02:00
Marton Balint
73b2043d72 ffplay: use start_time as next audio pts on flush when seeking is not supported
Theoretically using start_time should also work if seeking is available and we
could determine that the next packet after a flush packet is the first packet
of a stream, but I could not think of an easy and clean way to do that, that is
why I sticked to the no seeking available condition for now.

Fixes ticket #2647.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-07-20 02:32:43 +02:00
Marton Balint
b383498ea8 ffplay: estimate audio frame pts from the previous frame pts values
Previously we estimated the audio packet pts instead of the frame pts,
therefore it only worked within a single packet (containing multiple frames).

The new method works accross seperate audio packets as well and also handles
better the case if a decoder buffers several packets before outputting a
decoded frame.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-07-20 02:32:43 +02:00
Marton Balint
782e06e292 ffplay: simplify audio decoding
Also use negative stream_index for signaling obsolete audio packets. Using the
size alone is not enough, because size is 0 for null packets as well.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-07-20 02:32:43 +02:00
Michael Niedermayer
786b0968dd ffplay: remove explicit idct option
this allows named idct options to be used

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-13 15:01:05 +02:00
Marton Balint
f07cb53ab9 ffplay: assume 0 stream start time if start time is unset in duration check
Fixes ticket #2103 and #2743.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-07-09 20:19:54 +02:00
Marton Balint
3886572a83 ffplay: do not update audio clock with old audio pts if current frame is AV_NOPTS_VALUE
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-07-09 20:19:54 +02:00
Stefano Sabatini
838bd73139 lavfi: create Libav-API compatibility layer for avfilter_graph_parse() at the next bump
Add function avfilter_graph_parse_ptr() and favor it in place of
avfilter_graph_parse(), which will be restored with the old/Libav
signature at the next bump.

If HAVE_INCOMPATIBLE_LIBAV_API is enabled it will use the
Libav-compatible signature for avfilter_graph_parse().

At the next major bump the current implementation of
avfilter_graph_parse() should be dropped in favor of the Libav/old
implementation.

Should address trac ticket #2672.
2013-07-03 13:21:42 +02:00
Marton Balint
02fc61a5a6 ffplay: always send zero packets to flush audio decoders
Zero packets are needed not for codecs with CODEC_CAP_DELAY but for
multithreaded decoders as well.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-07-01 00:24:03 +02:00
Marton Balint
447d2e31d1 ffplay: use frame->pkt_pts instead of pkt->pts in audio pts calculation
Fixes ticket #2717.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-07-01 00:24:03 +02:00
Marton Balint
9fac752afa ffplay: simplify and fix flushing out old subtitles on seeking
Fixes the additional issue reported in ticket #2666.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-06-26 22:30:16 +02:00
Marton Balint
96b33ddbd0 ffplay: remove remains of the old audio and video clock VideoState variables
The unified clock state holds this information now.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-06-17 01:18:07 +02:00
Marton Balint
05f0d53170 ffplay: fix missed conversion of video_current_pts to vidclk.pts in subtitles
Fixes regression with subtitles introduced in f2175a6.
Fixes ticket #2666.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-06-17 01:18:07 +02:00
Marton Balint
f73d6d2af7 ffplay: cast vp->height to int64 in buffer size check
Fixes Coverity CID 1026769 and 1026756.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-06-17 01:18:07 +02:00
Carl Eugen Hoyos
3b491c5a50 Use av_log() instead of fprintf() in ffplay.
Fixes ticket #2630.

Reviewed-by: Marton Balint
2013-06-04 19:47:56 +02:00
Marton Balint
30d724bdfd ffplay: detect when the created overlay buffers are not valid for the wanted overlay height
Fixes cases when the picture height was bigger than the maximum supported
overlay height...

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-06-01 12:50:46 +02:00
Marton Balint
87917a3283 ffplay: do not allow wider window than 16383
SDL surface pitch is 16bit, to avoid possible overflows, we limit the window
width to 16383. Fixes ticket #2428.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-06-01 12:50:46 +02:00
Marton Balint
3b6f1526c6 ffplay: use 0 frame delay if redisplaying an already displayed frame
With the previous patches this finally fixes ticket #1707.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-06-01 12:50:46 +02:00
Marton Balint
97e42551e4 ffplay: use more sane frame timer resetting logic
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-06-01 12:50:46 +02:00
Marton Balint
35b2f30fd1 ffplay: only update pts if not redisplaying a frame
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-06-01 12:50:46 +02:00
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
Marton Balint
eaa91ed863 ffplay: fix nosync threshold check in synchronize_audio
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-10-21 17:18:12 +02:00
Marton Balint
da56955621 ffplay: use framedrop by default when sync is not done to video
When using external sync, framedrop is perfectly fine.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-10-21 17:18:12 +02:00
Michael Niedermayer
a63d7213b3 ffplay: Prevent 0/0 aspect from being passed on to lavfi
0/0 fails to be parsed

Fixes Ticket1814
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 23:40:14 +02:00
Michael Niedermayer
d0707677fa ffplay: use audio parameters from the decoded frame instead of AVCodecContext
Based on commit by Justin Ruggles (the changed code is too different to apply as is)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 16:47:50 +02:00
Michael Niedermayer
b4ca1b159f Merge commit 'bc4620e5d61a4dd9a1f654fadd281a172aab04be'
* commit 'bc4620e5d61a4dd9a1f654fadd281a172aab04be':
  Remove libmpeg2 #define remnants
  De-doxygenize some top-level files

Conflicts:
	ffmpeg.c
	ffmpeg.h
	ffmpeg_filter.c
	ffplay.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 15:01:39 +02:00