| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
|\| |
|
| |
| |
| |
| | |
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30208 b3059339-0415-0410-9bf9-f77b7e298cf2
|
|\|
| |
| |
| | |
Ignore another broken correct-pts change in 30134.
|
| |
| |
| |
| |
| |
| | |
constants there.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30125 b3059339-0415-0410-9bf9-f77b7e298cf2
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Convert vo_x11_border (used in vo_gl/gl2 though the vo_gl_border
macro) to use a wrapper macro in old-style VOs which do not provide a
VO object argument. Before this function had an explicit global_vo
argument in vo_gl/gl2. New vo_vdpau uses it too so use the same
mechanism as most other functions.
|
|\| |
|
| |
| |
| |
| | |
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28547 b3059339-0415-0410-9bf9-f77b7e298cf2
|
|\| |
|
| |
| |
| |
| | |
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28481 b3059339-0415-0410-9bf9-f77b7e298cf2
|
|\|
| |
| |
| |
| |
| |
| |
| | |
The libdvdread4 and libdvdnav directories, which are externals in the
svn repository, are at least for now not included in any form. I added
configure checks to automatically disable internal libdvdread and
libdvdnav if the corresponding directories are not present; if they're
added manually then things work the same as in svn.
|
| |
| |
| |
| | |
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28285 b3059339-0415-0410-9bf9-f77b7e298cf2
|
| |
| |
| |
| |
| | |
The VOs no longer access vo_mouse_autohide directly so the #define is
not needed.
|
|\|
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
common.mak
libvo/vo_xv.c
libvo/x11_common.c
libvo/x11_common.h
stream/cache2.c
|
| |
| |
| |
| |
| |
| |
| | |
boiler-plate code with them, just with different bugs.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27924 b3059339-0415-0410-9bf9-f77b7e298cf2
|
| |
| |
| |
| | |
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27920 b3059339-0415-0410-9bf9-f77b7e298cf2
|
| |
| |
| |
| |
| |
| |
| | |
vo_x11_update_geometry function.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27919 b3059339-0415-0410-9bf9-f77b7e298cf2
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
cfg-common-opts.h
libmpcodecs/dec_video.c
libmpcodecs/vd.c
libvo/x11_common.h
mplayer.c
stream/cache2.c
|
| |
| |
| |
| |
| |
| |
| | |
config.h should only contain option definitions, no logic.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27784 b3059339-0415-0410-9bf9-f77b7e298cf2
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
Makefile
configure
libvo/x11_common.c
|
| |
| |
| |
| |
| | |
Declare mp_input_register_options in input.h and
xscreensaver_heartbeat in x11_common.h.
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
cfg-common-opts.h
command.c
configure
input/input.c
libmpcodecs/dec_video.c
libmpcodecs/vd.c
libmpdemux/stheader.h
libvo/sub.c
libvo/video_out.c
libvo/vo_xv.c
libvo/vosub_vidix.c
libvo/x11_common.c
libvo/x11_common.h
mp_core.h
mplayer.c
stream/stream.h
|
| |
| |
| |
| |
| |
| |
| | |
Switch from a HAVE_ prefix to a CONFIG_ prefix.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27409 b3059339-0415-0410-9bf9-f77b7e298cf2
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
libvo/x11_common.c
libvo/x11_common.h
Rename the vo_gl macro "vo_border()" to "vo_gl_border" as it conflicts
with the global variable "vo_border"; done in the merge commit because
uses of the macro needed changes anyway to resolve conflicts.
|
| |
| |
| |
| | |
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27338 b3059339-0415-0410-9bf9-f77b7e298cf2
|
| |
| |
| |
| | |
Allocate the struct in the init function and free in uninit.
|
| |
| |
| |
| |
| | |
Store data in an allocated context and take it as an argument instead
of using static variables.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Will be used for common data between X11 VOs. The main reasons for
making it a separate struct rather than extra fields in the main VO
struct are that some field definitions need X headers and that the code
keeps basic X state such as the display connection over opening and
closing of individual VOs.
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
| |
Add a 'struct vo *vo' argument to the x11_common.c functions that
access the variable so it's available as vo->opts->vo_ontop. To keep
VOs using the old API working create a global vo variable that is set
to the currently used old vo. "vo_ontop" will be #defined to
"global_vo->opts->vo_ontop", and x11_common.h will add defines like
the following when it is included by old VOs:
#define vo_x11_ontop() vo_x11_ontop(global_vo)
so that they will call the function according to the new declaration.
|
|
|
|
| |
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26061 b3059339-0415-0410-9bf9-f77b7e298cf2
|
|
|
|
| |
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26039 b3059339-0415-0410-9bf9-f77b7e298cf2
|
|
|
|
| |
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25563 b3059339-0415-0410-9bf9-f77b7e298cf2
|
|
|
|
|
|
|
|
|
| |
consistent by introducing a new function that handles most of the
ugly things. Changes of behaviour with some vos is unavoidable, bug reports
welcome.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23675 b3059339-0415-0410-9bf9-f77b7e298cf2
|
|
|
|
|
|
|
| |
patch from Stefan Huehner, stefan huehner org
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22904 b3059339-0415-0410-9bf9-f77b7e298cf2
|
|
|
|
|
|
|
|
| |
remove the variable itself. Convert code in x11_common.c and OSD timing
that depended on the variable to use real time instead.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18288 b3059339-0415-0410-9bf9-f77b7e298cf2
|
|
|
|
| |
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18175 b3059339-0415-0410-9bf9-f77b7e298cf2
|
|
|
|
| |
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18117 b3059339-0415-0410-9bf9-f77b7e298cf2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
patch replaces '()' for the correct '(void)' in function
declarations/prototypes which have no parameters. The '()' syntax tell
thats there is a variable list of arguments, so that the compiler cannot
check this. The extra CFLAG '-Wstrict-declarations' shows those cases.
Comments about a similar patch applied to ffmpeg:
That in C++ these mean the same, but in ANSI C the semantics are
different; function() is an (obsolete) K&R C style forward declaration,
it basically means that the function can have any number and any types
of parameters, effectively completely preventing the compiler from doing
any sort of type checking. -- Erik Slagter
Defining functions with unspecified arguments is allowed but bad.
With arguments unspecified the compiler can't report an error/warning
if the function is called with incorrect arguments. -- Måns Rullgård
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17567 b3059339-0415-0410-9bf9-f77b7e298cf2
|
|
|
|
| |
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16959 b3059339-0415-0410-9bf9-f77b7e298cf2
|
|
|
|
| |
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16281 b3059339-0415-0410-9bf9-f77b7e298cf2
|
|
|
|
| |
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15865 b3059339-0415-0410-9bf9-f77b7e298cf2
|
|
|
|
|
|
|
| |
(using panscan makes x,y negative, so it is very bad idea they to be unsigned)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15101 b3059339-0415-0410-9bf9-f77b7e298cf2
|
|
|
|
| |
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14885 b3059339-0415-0410-9bf9-f77b7e298cf2
|
|
|
|
|
|
|
|
|
|
|
|
| |
Made the code also more flexible.
Colorkey drawing is now by default done as
proposed by Marko Macek.
Patch also approved by iive.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14743 b3059339-0415-0410-9bf9-f77b7e298cf2
|
|
|
|
|
|
|
| |
it is not really beautiful that their are included here in the first place)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14664 b3059339-0415-0410-9bf9-f77b7e298cf2
|