1
0
mirror of https://github.com/mpv-player/mpv synced 2025-03-25 04:38:01 +00:00
Commit Graph

30096 Commits

Author SHA1 Message Date
Uoti Urpala
201bef7ee1 Implement vsync-aware frame timing for VDPAU
Main things added are custom frame dropping for VDPAU to work around
the display FPS limit, frame timing adjustment to avoid jitter when
video frame times keep falling near vsyncs, and use of VDPAU's timing
feature to keep one future frame queued in advance.

NVIDIA's VDPAU implementation refuses to change the displayed frame
more than once per vsync. This set a limit on how much video could be
sped up, and caused problems for nearly all videos on low-FPS video
projectors (playing 24 FPS video on a 24 FPS projector would not work
reliably as MPlayer may need to slightly speed up the video for AV
sync). This commit adds a framedrop mechanism that drops some frames
so that no more than one is sent for display per vsync. The code
tries to select the dropped frames smartly, selecting the best one to
show for each vsync. Because of the timing features needed the drop
functionality currently does not work if the correct-pts option is
disabled.

The code also adjusts frame timing slightly to avoid jitter. If you
for example play 24 FPS video content on a 72 FPS display then
normally a frame would be shown for 3 vsyncs, but if the frame times
happen to fall near vsyncs and change between just before and just
after then there could be frames alternating between 2 and 4
vsyncs. The code changes frame timing by up to one quarter vsync
interval to avoid this.

The above functionality depends on having reliable vsync timing
information available. The display refresh rate is not directly
provided by the VDPAU API. The current code uses information from the
XF86VidMode extension if available; I'm not sure how common cases
where that is inaccurate are. The refresh rate can be specified
manually if necessary.

After the changes in this commit MPlayer now always tries to keep one
frame queued for future display using VDPAU's internal timing
mechanism (however no more than 50 ms to the future). This should make
video playback somewhat more robust against timing inaccuracies caused
by system load.
2009-11-15 12:45:58 +02:00
Uoti Urpala
b87ce8bc96 vo_vdpau: Modify frame buffering code
Clean up code related to frame buffering and generate pts information
also for the next frame in the output queue. The timing information
will be used in a following framedrop patch.

This commit adds one frame of buffering delay in vo_vdpau and
increases the number of buffered vdpau video surfaces from 3 to 4. The
delay increase makes it more important to fix remaining code in
MPlayer that doesn't deal well with filter/VO delay; OTOH it should
help any decoding/filtering parallelism in the underlying VDPAU
implementation as now filtering a frame for display can happen while
the next one is being decoded.
2009-11-15 12:45:47 +02:00
Uoti Urpala
37713cb3ec cosmetics: Add two missing "static"
Add missing 'static' to internal functions in vo_xv.c and vo_vdpau.c.
2009-10-22 04:45:31 +03:00
Uoti Urpala
fa7983b236 vf: Remove unused VFCTRL_FLIP_PAGE
Nothing uses it under MPlayer any more, and under MEncoder it never
had any effect.
2009-10-21 07:35:22 +03:00
Uoti Urpala
f43c06930f manpage: Fix typo in -noordered-chapters option name
The manual page said "-noorderedchapters" without a hyphen while the
actual option name is "-noordered-chapters".
2009-10-08 19:42:03 +03:00
Uoti Urpala
0191da3cf4 configure: Disable OpenAL support by default
There's apparently a new OpenAL version which contains some constructor
code that runs at startup if the binary links with OpenAL at all (even
if no OpenAL function is called). This startup code does some
nontrivial interaction with ALSA libraries and as a side effect this
idiocy also breaks test binaries run by configure, causing features to
not be detected. Avoid the problems by disabling OpenAL by default.
It's not a particularly good audio output method anyway and there are
almost certainly fewer users who would benefit from it automatically
being available than users who'd suffer from some kind of breakage
caused by it.
2009-10-06 05:19:14 +03:00
Uoti Urpala
7fd3eb0f74 Merge svn changes up to r29752
As part of merging subtitle-in-terminal changes make
update_subtitles() only clear existing subtitles if called with the
reset argument, and not try to set new ones. Later calls should set
the needed new subtitles, and this change avoids some problems with
trying to set subtitles when mp_property_sub() in command.c gets
called from initialization code before full initialization.
2009-10-06 04:48:00 +03:00
attila
cbbc886820 add a warning to the description of -vf screenshot to add it after
all other filters that should apply to it
(fix PEBCAK as seen on #mplayer)


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29752 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-05 12:40:34 +00:00
cehoyos
94229a8420 Play TrueHD in BluRay with demuxer lavf.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29751 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-05 08:41:45 +00:00
cladisch
59b6e1393d fix calculation of ao_data.bps for sample formats with more than 16 bits
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29750 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-05 07:42:02 +00:00
cehoyos
23235a0ed0 Fix definition of KEY_PAGE_DOWN.
Patch by Aaro Koskinen, aaro D koskinen A iki D fi 


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29749 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-04 21:10:13 +00:00
reimar
a79706df46 Make the ao_alsa play function always process a multiple of ao_data.outburst
except for the last chunk.
Should fix high CPU usage reported e.g. here: http://bugs.gentoo.org/show_bug.cgi?id=286020


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29748 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-02 16:49:41 +00:00
reimar
2946fb53a7 Add EXTERN_ASM define needed by FFmpeg on ARM.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29747 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-02 08:58:29 +00:00
jrash
e259900901 sync with en/mplayer.1 r29731
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29746 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-01 05:41:47 +00:00
compn
5b829ed07a updates
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29745 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-01 00:07:02 +00:00
diego
f806e745e2 Mark some functions that do not need external visibility as static.
patch by Alexander Neumann, alexander bumpern de


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29744 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-30 23:47:00 +00:00
reimar
a04087cd67 Extend EBX_AVAILABLE check in a way that works for both OpenBSD/Haiku
and 64 bit OSX.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29743 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-30 18:45:02 +00:00
diego
4b3525f79f Reduce console output verbosity: Move colorspace information to verbose mode.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29742 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-30 14:55:43 +00:00
reimar
1ad332f8a5 lavf: if seeking in the desired direction failed, also try in the opposite one,
otherwise we might end up at some random position (where lavf last ended
up while trying to build the index).


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29741 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-30 08:19:49 +00:00
reimar
70cdf76c6a Avoid void * arithmetic.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29740 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-30 07:54:04 +00:00
reimar
0b8508274c Simplify aac_get_sample_rate_index
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29739 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-30 07:52:37 +00:00
reimar
640d819512 Check for grow_array allocation failure.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29738 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-30 07:48:01 +00:00
reimar
62a3efebf2 Avoid a possible crash if num_cluster_pos is 0.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29737 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-30 07:45:10 +00:00
reimar
eb5571e57e Check for integer overflow in grow_array.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29736 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-30 07:41:00 +00:00
reimar
aa576e8fc0 Rearrange code of grow_array to make it easier to extend.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29735 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-30 07:35:33 +00:00
reimar
f6f8acc19a Avoid a memleak if realloc fails in grow_array.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29734 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-30 07:33:05 +00:00
reimar
d1b5f6efa1 Change grow_array argument from void ** to void *, this avoids a aliasing
violation (thus making gcc 4.4.x compile the code correctly) and allows to get
rid of some casts at the expense of making the code less clear.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29733 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-30 07:27:43 +00:00
reimar
6fa7e2d867 Make -nosub work to disable subtitles even if -slang and dvd streams are used.
This still needs some additional checking that subtitle selection via dvdnav works.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29732 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-29 06:44:10 +00:00
reimar
55cd87882c Document -nosub option
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29731 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-28 11:33:40 +00:00
reimar
e3625bd232 Add a -nosub option that allows disabling auto-selected subtitles as e.g. the
mkv demuxer supports.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29730 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-28 11:32:27 +00:00
reimar
76cc7886d8 Allow -1 and -2 values for -aid, -vid and -sid (meaning "auto" and "disabled" respectively).
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29729 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-28 11:31:25 +00:00
reimar
f43cc7c3cc Enable loading of external subtitles also for audio-only files.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29728 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-28 11:26:19 +00:00
reimar
95d60aa019 Use a_pos to update subtitle for audio-only files instead of mpctx->sh_audio->pts
which e.g. for mp3 in AVI never has a useful value.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29727 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-28 11:24:13 +00:00
reimar
df0cef80f9 Call set_osd_subtitle also for external subs (i.e. in find_subs).
This does not yet seem to work for audio-only files, subtitles seem
not to be loaded then.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29726 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-28 11:10:11 +00:00
cehoyos
556cda2071 Intel compiler icc 11.1 supports compilation of internal mp3lib and internal liba52.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29725 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-27 21:25:56 +00:00
cehoyos
205a377349 Cosmetics: Fix whitespace.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29724 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-27 19:22:48 +00:00
reimar
a531e51297 Set sensible write frequency/priority values for AllocateMemoryMESA
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29723 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-27 14:33:45 +00:00
reimar
f78f32c864 Print error instead of crashing when mesa-buffer is used on systems
that do not support it.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29722 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-27 14:31:35 +00:00
reimar
fe3b9a88ce Also check GLX client and server strings for extensions
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29721 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-27 14:24:15 +00:00
reimar
a5abf5851c Amend previous commit: both zlib decoder and encoder must be disabled
if zlib is not available.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29720 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-26 21:22:01 +00:00
reimar
08073d325a Disable libavcodec zlib decoder when zlib is not available, fixes compilation
in that case.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29719 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-26 21:09:29 +00:00
Uoti Urpala
ef438b3a6b osx_common.c: Fix compilation
This file should have been fixed when merging it from svn. Broke
compilation with OS X-specific VOs enabled.
2009-09-26 16:22:48 +03:00
reimar
09e4467756 Change libaf control ordering to make the controls unique again, (AF_CONTROL_PAN_BALANCE vs.
AF_CONTROL_PLAYBACK_SPEED), put them in-order again and add a bit of padding in-between.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29718 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-26 06:41:09 +00:00
reimar
ac8b90aec1 Do not override host_arch in x86 vs. x86_64 detection if it was forced via --target.
Patch by Andrew Wason [rectalogic rectalogic com]


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29717 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-25 16:46:39 +00:00
reimar
3f9cacf5d5 Change type to avoid void * arithmetic.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29716 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-25 09:44:41 +00:00
reimar
101d331f62 Set codec_type and codec_id in codec context for lavc encoders.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29715 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-25 09:43:59 +00:00
diego
e3b68c2745 Sync with current FFmpeg HEAD.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29714 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-24 10:09:14 +00:00
diego
76141a5727 sync with FFmpeg build: BUILD_STATIC --> CONFIG_STATIC
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29713 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-24 09:47:36 +00:00
reimar
4b182ff652 Add support for displaying subtitles on the command-line when playing
audio-only files.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29712 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-23 21:48:48 +00:00
reimar
1b92715364 Make function argument name in header match name in .c file.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29711 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-23 21:27:36 +00:00