Commit Graph

936 Commits

Author SHA1 Message Date
Vittorio Gambaletta (VittGam)
4590811fc2 ffplay: update docs after previous changes in ffplay mouse behaviour
Signed-off-by: Vittorio Gambaletta <ffmpeg-dev@vittgam.net>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-01-20 21:23:03 +01:00
Vittorio Gambaletta (VittGam)
acd37069ae ffplay: toggle full screen when double-clicking the video window with the left mouse button
Now that the seek only happens with the right mouse button, it makes
sense to toggle full screen when double-clicking with the left mouse
button, like other video players do.

Signed-off-by: Vittorio Gambaletta <ffmpeg-dev@vittgam.net>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-01-19 23:15:30 +01:00
Vittorio Gambaletta (VittGam)
cde4b99f47 ffplay: seek only when pressing the right mouse button on the video window
Seeking by clicking on the video window can be annoying, because
the user might click on it accidentally while eg. trying to get
focus on it, and ffplay seeks instead.

This commit changes that behaviour to seek only when the right
mouse button is used to click and drag on the window.

Signed-off-by: Vittorio Gambaletta <ffmpeg-dev@vittgam.net>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-01-19 23:15:23 +01:00
Michael Niedermayer
3c6781b48a Revert "ffplay: Fix auto insertion point of rotation filter"
Revert requested by Balint Marton <cus@passwd.hu>

See: [FFmpeg-devel] ffplay: insertion point of the auto rotation filter - Github ticket #141

This reverts commit 9cc1e644f3.
2015-12-28 03:44:31 +01:00
Ganesh Ajjanagadde
f16e4a0857 ffplay: replace rint by lrint
avoids the float to integer cast, and is slightly superior in terms of
rounding ("Dutch/Gauss rounding").

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-25 13:11:09 -08:00
wanzhang
9cc1e644f3 ffplay: Fix auto insertion point of rotation filter
Fixes watermark rotation for videos using auto rotation

Closes #141
2015-12-25 02:10:48 +01:00
Marton Balint
c413d9e635 ffplay: remove existing AVPicture usage
It is deprecated.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-12-19 14:09:26 +01:00
Ganesh Ajjanagadde
65440916c1 ffplay: use hypot()
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-06 08:11:47 -05:00
Hendrik Leppkes
c2f861ca42 Replace remaining occurances of av_free_packet with av_packet_unref 2015-10-27 14:35:30 +01:00
Hendrik Leppkes
856b19d593 Merge commit 'a5d42043093a39636a1f4021a37dd9c612479f6f'
* commit 'a5d42043093a39636a1f4021a37dd9c612479f6f':
  avformat: Always return ref-counted AVPacket

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-27 14:12:27 +01:00
Marton Balint
03037a4aad ffplay: use a separate struct for the rescaled YUVA AVSubtitle rectangles
Current code segfaults since the deprecation of AVSubtitleRect.pict because it
freed/realloced AVSubtitleRect.pict.data by itself.

The new code stores the generated YUVA AVSubtitle rectangles in their own
struct and keeps the original AVSubtitle structure untouched, because
overwriting it is considered invalid API usage.

Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-24 16:12:25 +02:00
Marton Balint
148418a2bc ffplay: eliminate stream_component_close forward declaration
No change in fuctionality.

Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-12 00:07:38 +02:00
Marton Balint
4ce75387cd ffplay: close streams and AVFormatContext in the main thread
To avoid race conditions.

Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-12 00:07:38 +02:00
Ganesh Ajjanagadde
4c2bfabc3a ffplay: use correct context for av_log
Recent commits c3e8de1c24 and
8dc6e92c3d used av_log incorrectly.
This fixes such usage.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-05 22:28:17 +02:00
Ganesh Ajjanagadde
b67c1ab58c ffplay: more robust condition variable creation
SDL_CreateCond can fail:
https://wiki.libsdl.org/SDL_CreateCond.
This patch makes creation more robust in one instance.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-05 22:25:51 +02:00
Ganesh Ajjanagadde
4802b8368a ffplay: log SDL error messages
This logs the SDL error messages on failure of creation of SDL_CreateMutex,
SDL_CreateCond, and SDL_CreateThread.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-05 22:21:20 +02:00
Ganesh Ajjanagadde
7c6dd90eed ffplay: more robust mutex creation
SDL_CreateMutex can fail:
https://wiki.libsdl.org/SDL_CreateMutex.
This patch makes creation more robust in one instance.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-05 00:16:42 +02:00
Ganesh Ajjanagadde
c3e8de1c24 ffplay: more robust thread creation
SDL_CreateThread can fail:
https://wiki.libsdl.org/SDL_CreateThread.
This patch makes thread creation more robust in one instance.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-04 17:40:30 +02:00
Ganesh Ajjanagadde
8dc6e92c3d ffplay: more robust mutex, condition variable handling
SDL_CreateMutex and SDL_CreateCond can fail:
https://wiki.libsdl.org/SDL_CreateMutex.
This patch makes handling more robust in one instance.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-03 17:43:24 +02:00
Ganesh Ajjanagadde
fd44892073 doc/ffplay, ffplay: add information regarding volume control
ffplay now supports dynamic volume control. This documents the supported
behavior.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-09-27 23:04:54 +02:00
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