Ganesh Ajjanagadde
f1a9583305
ffplay: add support for interactive volume control
...
This is a feature heavily inspired by the mpv player. At the moment, methods
for adjusting volume in ffplay are rather clumsy: either one needs to set it
system-wide, or one needs to set it via the volume filter.
This patch adds key bindings identical to the mpv defaults for muting/unmuting
and increasing/decreasing the volume interactively without any introduction of
external dependencies.
TODO: doc update, possible mouse button bindings (mpv has this).
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-09-27 23:04:53 +02:00
Ganesh Ajjanagadde
23acb982a3
ffplay: dynamically allocate filename buffer
...
filename was set to an arbitrary 1024 characters. ffplay would thus be unable to
play files whose name exceeds that arbitrary threshold.
This patch dynamically allocates and frees the filename buffer to remove such
limitations.
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-09-27 01:38:46 +02:00
Ganesh Ajjanagadde
265b106b92
ffplay: introduce key repeats
...
Key repeats have been introduced simply because they improve usability in my
experience for volume, brightness, and other such controls by speeding up the
time taken to go from 0 to max intensity. As a side benefit, this enables rapid
seeking through a file via left/right keys.
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-09-27 00:54:29 +02:00
Hendrik Leppkes
144fb06806
Remove left-over FF_API_AVFILTERBUFFER cruft
2015-09-05 16:27:19 +02:00
Ronald S. Bultje
2fb593dcb9
Put remaining pieces of CODEC_FLAG_EMU_EDGE under FF_API_EMU_EDGE.
...
The amv one probably looks suspicious, but since it's an intra-only
codec, I couldn't possibly imagine what it would use the edge for,
and the vsynth fate result doesn't change, so it's probably OK.
2015-08-28 14:40:59 -04:00
Zhang Rui
92d378067e
ffplay: remove unused include libavutil/colorspace.h
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-28 00:09:42 +02:00
Marton Balint
8628b06b31
ffplay: increase MIN_FRAMES to 25
...
FFplay was using a 5 frame packet buffer, this is not much (e.g. 200 ms for
25fps video), when HLS is requesting a new segment via HTTP, it may take longer
for the request to complete.
Should fix ticket #4720 .
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-08-09 23:58:03 +02:00
Marton Balint
0166d329c3
ffplay: add specific constants for buffer fullness settings when using external clock
...
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-08-09 23:57:51 +02:00
Michael Niedermayer
5edab1d207
cmdutils: remove sws_opts usage, simplify code
...
It has become unused as all code was switched to AVDictionary
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-08 16:51:25 +02:00
Michael Niedermayer
e755954a84
ffplay: pass all sws options to the filter graph
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-08 13:25:12 +02:00
Marton Balint
b1f78632c6
ffplay: do not block audio thread on WIN32
...
The windows SDL audio driver plays the old data in the buffer in a loop if it
is not updated in time. So instead of waiting for data and blocking the the
audio thread, return silence if no data is available.
Should fix ticket #2289 .
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-08-05 21:09:30 +02:00
Michael Niedermayer
d64ba25a4d
ffplay: Use sws_scale to scale subtitles
...
Fixes some files from Ticket679
This also changes subtitles to 4:2:0 matching the output format and thus
simplifying the blend code.
This restricts placement to the chroma sample resolution though, speak up
if you consider this a problem, say so, the code could be changed to use
YUV444 for subtitles and scaling them down while blending, this would be
slower though.
The current code only uses a single swscale context and reinitializes it
as needed, this could be changed as well if needed
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-29 16:18:20 +02:00
Michael Niedermayer
444e9874a7
Merge commit 'def97856de6021965db86c25a732d78689bd6bb0'
...
* commit 'def97856de6021965db86c25a732d78689bd6bb0':
lavc: AV-prefix all codec capabilities
Conflicts:
cmdutils.c
ffmpeg.c
ffplay.c
libavcodec/8svx.c
libavcodec/aacenc.c
libavcodec/ac3dec.c
libavcodec/adpcm.c
libavcodec/alac.c
libavcodec/atrac3plusdec.c
libavcodec/bink.c
libavcodec/dnxhddec.c
libavcodec/dvdec.c
libavcodec/dvenc.c
libavcodec/ffv1dec.c
libavcodec/ffv1enc.c
libavcodec/fic.c
libavcodec/flacdec.c
libavcodec/flacenc.c
libavcodec/flvdec.c
libavcodec/fraps.c
libavcodec/frwu.c
libavcodec/gifdec.c
libavcodec/h261dec.c
libavcodec/hevc.c
libavcodec/iff.c
libavcodec/imc.c
libavcodec/libopenjpegdec.c
libavcodec/libvo-aacenc.c
libavcodec/libvorbisenc.c
libavcodec/libvpxdec.c
libavcodec/libvpxenc.c
libavcodec/libx264.c
libavcodec/mjpegbdec.c
libavcodec/mjpegdec.c
libavcodec/mpegaudiodec_float.c
libavcodec/msmpeg4dec.c
libavcodec/mxpegdec.c
libavcodec/nvenc_h264.c
libavcodec/nvenc_hevc.c
libavcodec/pngdec.c
libavcodec/qpeg.c
libavcodec/ra288.c
libavcodec/rv10.c
libavcodec/s302m.c
libavcodec/sp5xdec.c
libavcodec/takdec.c
libavcodec/tiff.c
libavcodec/tta.c
libavcodec/utils.c
libavcodec/v210dec.c
libavcodec/vp6.c
libavcodec/vp9.c
libavcodec/wavpack.c
libavcodec/yop.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 22:50:18 +02:00
Michael Niedermayer
94d68a41fa
Merge commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615'
...
* commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615':
lavc: AV-prefix all codec flags
Conflicts:
doc/examples/muxing.c
ffmpeg.c
ffmpeg_opt.c
ffplay.c
libavcodec/aacdec.c
libavcodec/aacenc.c
libavcodec/ac3dec.c
libavcodec/ac3enc_float.c
libavcodec/atrac1.c
libavcodec/atrac3.c
libavcodec/atrac3plusdec.c
libavcodec/dcadec.c
libavcodec/ffv1enc.c
libavcodec/h264.c
libavcodec/h264_loopfilter.c
libavcodec/h264_mb.c
libavcodec/imc.c
libavcodec/libmp3lame.c
libavcodec/libtheoraenc.c
libavcodec/libtwolame.c
libavcodec/libvpxenc.c
libavcodec/libxavs.c
libavcodec/libxvid.c
libavcodec/mpeg12dec.c
libavcodec/mpeg12enc.c
libavcodec/mpegaudiodec_template.c
libavcodec/mpegvideo.c
libavcodec/mpegvideo_enc.c
libavcodec/mpegvideo_motion.c
libavcodec/nellymoserdec.c
libavcodec/nellymoserenc.c
libavcodec/nvenc.c
libavcodec/on2avc.c
libavcodec/options_table.h
libavcodec/opus_celt.c
libavcodec/pngenc.c
libavcodec/ra288.c
libavcodec/ratecontrol.c
libavcodec/twinvq.c
libavcodec/vc1_block.c
libavcodec/vc1_loopfilter.c
libavcodec/vc1_mc.c
libavcodec/vc1dec.c
libavcodec/vorbisdec.c
libavcodec/vp3.c
libavcodec/wma.c
libavcodec/wmaprodec.c
libavcodec/x86/hpeldsp_init.c
libavcodec/x86/me_cmp_init.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 22:10:35 +02:00
Clément Bœsch
0f6118c581
ffplay: use av_clip() instead of nested min & max
...
Note: {wanted,min,max}_samples are int variables.
2015-06-06 13:18:28 +02:00
Michael Niedermayer
4351c288b9
ffplay&cmdutils:Factor get_rotation() code out
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-03 23:49:16 +02:00
Michael Niedermayer
f9e802018e
ffplay: unify displaymatrix based rotation code
...
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-03 22:39:39 +02:00
Michael Niedermayer
deedf3e590
Merge commit 'e2d50fc2f5f3600e13055acf1a10fec35e941f37'
...
* commit 'e2d50fc2f5f3600e13055acf1a10fec35e941f37':
avplay: Add support for rotated video
Conflicts:
configure
doc/ffplay.texi
ffplay.c
See: 08c51e12b1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-02 22:31:20 +02:00
Michael Niedermayer
e874772f70
Merge commit '21180b73239c6360aa28496d4879713b7ba4a8e5'
...
* commit '21180b73239c6360aa28496d4879713b7ba4a8e5':
avplay: Factorize code for adding filters to the filter pipeline
Conflicts:
ffplay.c
See: 08c51e12b1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-02 22:08:11 +02:00
Michael Niedermayer
7ad528cf23
Merge commit '06f4b1e37a08f3fd269ecbfeb0181129e5bfc86e'
...
* commit '06f4b1e37a08f3fd269ecbfeb0181129e5bfc86e':
avplay: Do not print a possibly uninitialized value
Conflicts:
ffplay.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-30 22:23:29 +02:00
Michael Niedermayer
eb8756e4b7
Merge commit '336d2f0979b43a39bd11a047d798b7990d8b07c6'
...
* commit '336d2f0979b43a39bd11a047d798b7990d8b07c6':
avplay: Free frame and graph when memory allocation fails
Conflicts:
ffplay.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 12:12:03 +02:00
Michael Niedermayer
40d552dae6
Merge commit '1a3eb042c704dea190c644def5b32c9cee8832b8'
...
* commit '1a3eb042c704dea190c644def5b32c9cee8832b8':
Replace av_dlog with normal av_log at trace level
Conflicts:
ffplay.c
libavdevice/fbdev_dec.c
libavfilter/avfilter.c
libavfilter/internal.h
libavfilter/setpts.c
libavfilter/src_movie.c
libavfilter/vf_crop.c
libavfilter/vf_drawtext.c
libavfilter/vf_fieldorder.c
libavformat/assdec.c
libavformat/avidec.c
libavformat/flvdec.c
libavformat/http.c
libavformat/ipmovie.c
libavformat/isom.c
libavformat/mov.c
libavformat/mpegenc.c
libavformat/mpegts.c
libavformat/mpegtsenc.c
libavformat/mux.c
libavformat/mxfdec.c
libavformat/nsvdec.c
libavformat/oggdec.c
libavformat/r3d.c
libavformat/rtspdec.c
libavformat/utils.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 03:19:47 +02:00
Michael Niedermayer
a821617b5a
Merge commit 'd450cb07d91ef39ad1d39bd7ca0cfce4bd7b13e7'
...
* commit 'd450cb07d91ef39ad1d39bd7ca0cfce4bd7b13e7':
avplay: Check memory allocation
Conflicts:
ffplay.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-22 03:51:49 +01:00
Michael Niedermayer
7da7d269b8
ffplay: Switch to show waves mode if allocation/init of RDFT fails
...
Fixes null pointer dereference
Found-by: Paweł <pantrombka@gmail.com>
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-04 03:04:04 +01:00
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