Commit Graph

892 Commits

Author SHA1 Message Date
Michael Niedermayer
79216a189b Merge commit '733f4b05f0e120ddd0393b23f2b6d9106cf922e4'
* commit '733f4b05f0e120ddd0393b23f2b6d9106cf922e4':
  avplay: Check format allocation inside decode_thread()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-17 21:16:34 +01:00
Michael Niedermayer
32b2b7bd8c Merge commit '266f241193b2fa8c99bb8b1f007c66bedd3b7d97'
* commit '266f241193b2fa8c99bb8b1f007c66bedd3b7d97':
  avplay: Check frame allocation inside video_thread()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-17 21:09:11 +01:00
Marton Balint
ef1ccea945 ffplay: factorize thread starting and stopping code into decoder
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-02-10 20:50:48 +01:00
Marton Balint
d6910c4b5e ffplay: make eof part of videostate and signal it when opening a stream
Otherwise we may not flush a decoder when a new stream is opened during an
already eof condition.

Signed-off-by: Marton Balint <cus@passwd.hu>
2015-02-10 20:50:48 +01:00
Marton Balint
68850090b6 ffplay: update frame timer based on last updated clock time when toggling pause
It is better than using simply video clock, because video clock may be NAN.

Signed-off-by: Marton Balint <cus@passwd.hu>
2015-02-10 20:50:48 +01:00
Michael Niedermayer
17d87571c8 ffplay: Fallback to dts if pts is unavailable in pkt_in_play_range calculation
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-02 02:50:33 +01:00
Marton Balint
46aa75eea1 ffplay: dump format before selecting streams
This helps the user to see the available streams just before the error message
if the stream specifiers do not match.

Signed-off-by: Marton Balint <cus@passwd.hu>
2015-01-01 14:38:12 +01:00
Marton Balint
5e7dcb0491 ffplay: add support for stream specifiers in -ast, -vst, -sst options
Also fix the outdated documentation of these options.

Signed-off-by: Marton Balint <cus@passwd.hu>
2015-01-01 14:38:12 +01:00
Marton Balint
82928656b1 ffplay: remove unused no_background from videostate
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-01-01 14:38:12 +01:00
Marton Balint
8c1f5fb0ae ffplay: remove flushed state from decoder context
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-01-01 14:38:11 +01:00
Benoit Fouet
90c9b49405 ffplay: fix mem leak when opening input or parsing options fail.
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-22 15:55:07 +01:00
Marton Balint
eaf4ab9802 ffplay: signal the frame queue before closing audio
Fixed regression caused by 631ac655c0 when ffplay
does not quit if the audio thread is blocked.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-11-11 23:02:00 +01:00
Carl Eugen Hoyos
e971eef8c0 Set -scan_all_pmts 1 in ffmpeg, ffplay and ffprobe if not set by user.
Fixes ticket #3762.
2014-11-09 18:28:29 +01:00
Marton Balint
7ba7277775 ffplay: only output null packet once on EOF
The generic decoder properly flushes the codecs with one null packet as well.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-11-09 13:48:18 +01:00
Marton Balint
cc4741888d ffplay: fix indentation after last commit
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-11-09 13:48:18 +01:00
Marton Balint
631ac655c0 ffplay: implement separete audio decoder thread
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-11-09 13:48:18 +01:00
Marton Balint
0edf3e7a28 ffplay: remove manual bug option handling code
It is supported as a codec option, and those are already parsed.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-10-17 23:44:04 +02:00
Marton Balint
9dac7977a9 ffplay: remove delays when paused from video and subtitle thread
Once the frame queue is full, we will wait anyway.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-10-17 23:44:04 +02:00
Michael Niedermayer
ee73a69020 Merge commit 'e58a140cf91d1a9cdfa3115d73c923dab0e9e7dc'
* commit 'e58a140cf91d1a9cdfa3115d73c923dab0e9e7dc':
  avplay: Always free opts

Conflicts:
	ffplay.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 13:28:50 +02:00
Michael Niedermayer
019ff7a0c3 Merge commit 'cf83c0173917a44b89a25ea2b435429bbf9ee767'
* commit 'cf83c0173917a44b89a25ea2b435429bbf9ee767':
  avplay: Always free find_stream_info options

Conflicts:
	ffplay.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 13:17:05 +02:00
Marton Balint
ce928d7d2b ffplay: dont leave swresampler in half initialized state
On init failure, let's just free it, so next time it will be recreated from
start.

Also fixes Coverity CID 1241515.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-10-09 23:18:37 +02:00
Michael Niedermayer
2ec4a84dca ffplay: Separate AVFrame from AVSubtitle
This is more robust and should avoid false positives in coverity
That is if the type is ever mixed up, after this patch that would
just be a null pointer dereference instead of a random possibly
out of array access

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-27 03:54:36 +02:00
Michael Niedermayer
266b3d4fe4 ffplay: use av_codec_get_pkt_timebase()
Reviewed-by: Benoit Fouet <benoit.fouet@free.fr>
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-24 13:44:56 +02:00
Marton Balint
1f5a3cf688 ffplay: move pts calculating code to generic decoder
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-09-23 21:08:40 +02:00
Marton Balint
9e0d1c00b5 ffplay: factorize decoder functions to generic decoder
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-09-23 21:08:40 +02:00
Marton Balint
32f1a288e2 ffplay: handle fullscreen status on resize event
In some cases resize events can happen even during fullscreen, so let's pass
the proper flag to SDL_SetVideoMode.

Fixes ticket #3964.

Reported-by: Jeff Dwork <jeff@reggie.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-09-23 21:08:35 +02:00
Michael Niedermayer
9ffa705edd ffplay: try to fix build failure on apple
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-17 04:43:51 +02:00
Marton Balint
164376483f ffplay: use frame queue to determine last used pos
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-09-16 22:22:09 +02:00
Marton Balint
5a5128bab9 ffplay: factorize frame queue operations
Create a generic frame and a frame queue struct to handle video picture queues
and subtitle picture queues with common code. Also add the possibility to queue
AVFrames, however at the moment we only use SDL_Overlay buffers for video and
AVSubtitles for subtitles.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-09-16 22:22:09 +02:00
Carl Eugen Hoyos
552ce6874c Revert the default for ffplay to -noautoexit.
Reviewed-by: Marton Balint
2014-09-08 17:51:12 +02:00
Michael Niedermayer
5732b21884 ffplay: make autoexit the default
See: f9bc65e399
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-06 20:24:59 +02:00
Michael Niedermayer
e96109f93c ffplay: use av_malloc_array()
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-26 00:41:09 +02:00
Reimar Döffinger
a0941c8a2b Use new av_dict_set_int helper function.
Get rid of the many, slightly differing, implementations
of basically the same thing.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-16 14:31:41 +02:00
Michael Niedermayer
81a663f49e Drop remaining unneeded != NULL
Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 22:47:45 +02:00
Michael Niedermayer
fb33bff990 Merge commit 'f929ab0569ff31ed5a59b0b0adb7ce09df3fca39'
* commit 'f929ab0569ff31ed5a59b0b0adb7ce09df3fca39':
  cosmetics: Write NULL pointer equality checks more compactly

Conflicts:
	cmdutils.c
	ffmpeg_opt.c
	ffplay.c
	libavcodec/dvbsub.c
	libavcodec/dvdsubdec.c
	libavcodec/dvdsubenc.c
	libavcodec/dxa.c
	libavcodec/libxvid_rc.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c
	libavcodec/rv10.c
	libavcodec/tiffenc.c
	libavcodec/utils.c
	libavcodec/vc1dec.c
	libavcodec/zmbv.c
	libavdevice/v4l2.c
	libavformat/matroskadec.c
	libavformat/movenc.c
	libavformat/sdp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 21:00:50 +02:00
James Almer
d34ec64a22 replace calls to url_feof() with avio_feof()
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-08 00:48:38 +02:00
Michael Niedermayer
e5eff191e4 ffplay: increase subtitle que size
Fixes part of Ticket2516 with ffplay

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-12 16:29:03 +02:00
Marton Balint
e281671e21 ffplay: decrease audio_diff_threshold
Since audio clock calculations are more accurate now, it is safe to decrease
the sync treshold to compensate the larger buffers caused by less frequent
audio callbacks.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-06-24 21:59:21 +02:00
Marton Balint
371f02388c ffplay: decrease max audio callbacks per second
Too many audio callbacks per second can cause buffer underruns especially under
load. As now we take into accound the elapsed time after an audio callback when
determining current audio clock, it is not that important to use small buffer
sizes and frequent audio callbacks, so lets remove the comment.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-06-24 21:59:21 +02:00
Marton Balint
1ca5c1784b ffplay: calculate SDL audio buffer size based on sample rate
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-06-24 21:59:21 +02:00
Marton Balint
ba800defa7 ffplay: pass simple integers to calculate_display_rect and set_default_window_size
No change in functionality.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-06-24 21:59:21 +02:00
Marton Balint
9dd97aa3d3 ffplay: eliminate pictq_prev_picture
Instead of directly rolling back the frame queue, keep the last displayed
picture in the queue and use a boolean variable to keep track if it is
displayed or not. This makes the code cleaner because it removes the
complicated logic in pictq_prev_picture.

There should be no change in functionality.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-06-24 21:59:20 +02:00
Michael Niedermayer
a50c6f99b4 ffplay: remove -ec handling code
Its handled by the generic option code

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-17 17:31:29 +02:00
Clément Bœsch
08c51e12b1 ffplay: support rotated video.
with -f lavfi -i testsrc=s=hd1080 as source:
  rotate=90*PI/180  vs transpose=clock:   42fps -> 64fps
  rotate=180*PI/180 vs vflip,hflip:       75fps -> 77fps
  rotate=270*PI/180 vs transpose=cclock:  43fps -> 63fps
2014-05-23 23:30:21 +02:00
Olivier Langlois
0ca0b4c29c ffplay: Use av_gettime_relative()
Whenever av_gettime() is used to measure relative period of time,
av_gettime_relative() is prefered as it guarantee monotonic time
on supported platforms.

Signed-off-by: Olivier Langlois <olivier@trillion01.com>
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-17 20:28:16 +02:00
Marton Balint
a583e2bebe ffplay: add support for toggling between multiple video filters with the w key
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-05-17 13:18:29 +02:00
Marton Balint
0c8d8c0c80 ffplay: try multiple sample rates if audio open fails
Should fix ticket #3509.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-05-17 13:18:29 +02:00
John Peebles
e11697759d cmdutils: replace usages of "#ifdef __MINGW32__" with "#ifdef _WIN32" because MSVC only defines _WIN32
With the previous patch, this should fix ticket #3580 as well.

Signed-off-by: John Peebles <johnpeeb@gmail.com>
2014-05-17 13:18:29 +02:00
Marton Balint
1fab67b685 ffplay: fix compilation with Visual Studio
Based on a patch by achristensen from trac.ffmpeg.org.

Partially fixes ticket #3580.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-05-17 13:18:28 +02:00
Marton Balint
ae6fe159f2 ffplay: increase AV_SYNC_THRESHOLD_MIN to 0.04
Less than 0.04 sec delays should not be noticable, and it helps us with 50fps
content where some timing errors can cause a frame dup where it is not really
necessary.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-05-17 13:18:28 +02:00