summaryrefslogtreecommitdiffstats
path: root/libvo/video_out.c
Commit message (Collapse)AuthorAgeFilesLines
* Merge svn change r31315Uoti Urpala2010-06-051-0/+1
|\
| * Force window placement also if -xineramascreen was set >= 0,reimar2010-06-041-0/+1
| | | | | | | | | | | | | | not only if -geometry was given. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31315 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r31284Uoti Urpala2010-06-021-3/+3
|\|
| * Prefer -vo sdl over "probably software" OpenGL.reimar2010-05-301-3/+3
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31283 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Add missing input.h #include, fixes the warnings:diego2010-04-271-1/+1
| | | | | | | | | | | | | | | | libvo/video_out.c:461: warning: implicit declaration of function 'mp_input_queue_cmd' libvo/video_out.c:461: warning: implicit declaration of function 'mp_input_parse_cmd' git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31101 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r31097Uoti Urpala2010-04-261-1/+18
|\|
| * Avoid duplicating mouse-movement command-generation code.reimar2010-04-251-0/+15
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31091 b3059339-0415-0410-9bf9-f77b7e298cf2
| * rename 'struct keymap' -> 'struct mp_keymap'siretart2010-04-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | This avoids the compilation failure on kFreeBSD (at least amd64): In file included from libvo/vo_directfb2.c:44: libvo/video_out.h:267: error: redefinition of 'struct keymap' This is because libvo/vo_directfb2.c #includes sys/kd.h, which in turn includes sys/kbio.h, which defines another 'struct keymap'. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31059 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Add const to some video_out extern declarations to match their definitions.reimar2010-03-271-45/+45
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30968 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Delete things related to old translation systemUoti Urpala2010-03-101-1/+0
| | | | | | | | | | Remove the help/ subdirectory, configure code to create toplevel help_mp.h, and all the '#include "help_mp.h"' lines from .c files.
* | Merge svn changes up to r30798Uoti Urpala2010-03-101-2/+4
|\|
| * Only prefer -vo gl over -vo x11 if hardware acceleration is available.reimar2010-02-271-2/+4
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30761 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r30748Uoti Urpala2010-03-101-5/+7
|\|
| * Do not cast the results of malloc/calloc/realloc.diego2010-02-261-1/+1
| | | | | | | | | | | | | | | | These functions return void*, which is compatible with any pointer, so there is no need for casts. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30744 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Reorder vos: prioritize -vo gl above -vo x11 and -vo matrixview down with ↵reimar2010-02-251-4/+6
| | | | | | | | | | | | aa, caca etc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30741 b3059339-0415-0410-9bf9-f77b7e298cf2
| * cosmetics: Remove pointless empty lines at EOF.diego2010-02-201-1/+0
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30675 b3059339-0415-0410-9bf9-f77b7e298cf2
* | VO: remove directfb from autoselected VOsUoti Urpala2010-01-311-3/+4
| | | | | | | | | | | | | | | | | | | | | | VO_directfb can call exit() if initialization fails. This makes MPlayer exit without cleanup if autoselection tries it. This can be seen for example by running something like this in an X terminal: DISPLAY=foo mplayer file.mkv The easiest fix for this is to remove directdb from the list of autoselected VOs. The console VOs have enough problems that people who want to use them should know what they're doing anyway.
* | Merge svn changes up to r30236Uoti Urpala2010-01-081-1/+1
|\|
| * vo_png now depends on libavcodec, not libpng.diego2010-01-051-1/+1
| | | | | | | | | | | | | | patch by Emanuele Giaquinta, emanuele.giaquinta gmail com git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30225 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r30185Uoti Urpala2010-01-081-0/+4
|\|
| * Finally add matrixview vo.reimar2010-01-031-0/+4
| | | | | | | | | | | | | | | | Heavily cleaned up/fixed etc. by me, improvements are still possible though. Patch originally by Pigeon <pigeon at pigeond.net> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30182 b3059339-0415-0410-9bf9-f77b7e298cf2
* | vf_vo: Use vo_seek_reset() instead of vo_control()Uoti Urpala2009-12-021-2/+0
| | | | | | | | | | | | | | | | | | Change the vo_control(vo, VOCTRL_RESET, NULL) call done when the vf_vo filter is uninited to vo_seek_reset(vo). The latter also sets vo->frame_loaded to false. Remove the vo->config_ok check from vo_seek_reset(). The reset call should be doable even if config failed.
* | Merge svn changes up to r29912Uoti Urpala2009-11-161-0/+5
|\|
| * Added -name, -title and -use-filename-title options and implementation in ↵ptt2009-11-121-0/+5
| | | | | | | | | | | | X11 vos git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29904 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Implement vsync-aware frame timing for VDPAUUoti Urpala2009-11-151-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | vo_vdpau: Modify frame buffering codeUoti Urpala2009-11-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge branch 'vdpau' into buildUoti Urpala2009-09-191-4/+47
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * vdpau: (22 commits) VO: Prefer vo_vdpau over vo_xv again vo_vdpau: Fix X event handling bugs vo_vdpau: Fix memory corruption bug with MP_IMGTYPE_NUMBERED core/VO: Allow VO drivers to add/modify frames video_out.h: Cosmetics VO interface: Remove obsolete draw_frame() from new interface vo_vdpau: Support recovering from VDPAU display preemption vo_vdpau: Support updating OSD while paused vo_vdpau.c: Reindent control() switch statement vo_vdpau: Allocate one large surface for EOSD content vo_vdpau.c: cosmetics vo_vdpau: reindent after GUI code removal vo_vpdau: Clean up uninit logic vo_vdpau: Make CHECK_ST macro safer vo_vdpau: Move all remaining static/global variables to context vo_vdpau: Move things to context struct vo_vdpau: Make info struct const vo_vdpau: Replace global function table with context variable vo_vdpau: Move VDPAU interface pointers into one struct vo_vdpau: Add template file for VDPAU functions ...
| * | VO: Prefer vo_vdpau over vo_xv againUoti Urpala2009-09-191-3/+3
| | | | | | | | | | | | | | | vo_vdpau should now be fixed enough that it's a clearly better choice than vo_xv.
| * | core/VO: Allow VO drivers to add/modify framesUoti Urpala2009-09-181-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add interfaces to allow VO drivers to add or remove frames from the video stream and to alter timestamps. Currently this functionality only works with in correct-pts mode. Use the new functionality in vo_vdpau to properly support frame-adding deinterlace modes. Frames added by the VDPAU deinterlacing code are now properly timed. Before every second frame was always shown immediately (probably next monitor refresh) after the previous one, even if you were watching things in slow motion, and framestepping didn't stop at them at all. When seeking the deinterlace algorithm is no longer fed a mix of frames from old and new positions. As a side effect of the changes a problem with resize events was also fixed. Resizing calls video_to_output_surface() to render the frame at the new resolution, but before this function also changed the list of history frames, so resizing could give an image different from the original one, and also corrupt next frames due to them seeing the wrong history. Now the function has no such side effects. There are more resize-related problems though that will be fixed in a later commit. The deint_mpi[] list of reserved frames is increased from 2 to 3 entries for reasons related to the above. Having 2 entries is enough when you initially get a new frame in draw_image() because then you'll have those two entries plus the new one for a total of 3 (the code relied on the oldest mpi implicitly staying reserved for the duration of the call even after usage count was decreased). However if you want to be able to reproduce the rendering outside draw_image(), relying on the explicitly reserved list only, then it needs to store 3 entries.
| * | VO interface: Remove obsolete draw_frame() from new interfaceUoti Urpala2009-09-171-1/+4
| | |
* | | Merge svn changes up to r29644Uoti Urpala2009-09-041-3/+3
|\ \ \ | |/ / |/| / | |/
| * Enable calc_src_dst_rects for windowed aspect and panscan.reimar2009-08-271-3/+3
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29569 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Remove trailing whitespace from most filesUoti Urpala2009-07-071-1/+0
| |
* | Translation system changes part 2: replace macros by stringsAmar Takhar2009-07-071-3/+3
| | | | | | | | | | Replace all MSGTR_ macros in the source by the corresponding English string.
* | Translation system changes part 1: wrap translated stringsAmar Takhar2009-07-071-3/+3
| | | | | | | | | | Replace mp_msg() calls which have a translated string as the format argument with mp_tmsg and add _() around all other translated strings.
* | video_out.c: Fix a minor memory leakUoti Urpala2009-05-091-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | The code that loops over possible video output drivers and tries to find a working one does not free and reallocate the 'struct vo' if a driver's preinit() call fails, but just overwrites the same struct instead. This means that any memory the failing driver allocated as a talloc subcontext will not be freed immediately. This is not even a real leak as the memory will be freed once the VO is closed, but it's still nicer to free things immediately. Add talloc_free_children() to free any such talloc subcontexts that were created during the failing preinit().
* | Merge svn changes up to r29277Uoti Urpala2009-05-081-2/+2
|\|
| * Rename macosx video output driver to corevideo.diego2009-05-041-2/+2
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29252 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Make VO xv preferred over vdpau againUoti Urpala2009-04-021-3/+3
| | | | | | | | | | I can still reproduce bugs easily with vo vdpau, and there's no pause update support for it yet.
* | Merge svn changes up to r29134Uoti Urpala2009-04-021-3/+3
|\|
| * Prefer vo vdpau over vo xv where available.cehoyos2009-03-311-3/+3
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29118 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r28951Uoti Urpala2009-03-141-0/+4
|\|
| * KVA vo driver for OS/2, patch by KO Myung-Hun, komh chollian netdiego2009-03-141-0/+4
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28950 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r28862Uoti Urpala2009-03-071-1/+1
|\|
| * Make WinID a 64 bit integer, this should avoid issues with valid Windowreimar2009-03-021-1/+1
| | | | | | | | | | | | | | handles on windows being interpreted as "no wid set". git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28795 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r28690Uoti Urpala2009-02-211-3/+3
|\|
| * 100l, place vdpau below xv, it should not normally be preferred for ↵reimar2009-02-211-3/+3
| | | | | | | | | | | | auto-selection (yet). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28688 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r28641Uoti Urpala2009-02-181-1/+17
|\| | | | | | | | | | | | | | | 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.
| * Extend calc_src_dst_rects to also calculate the border values needed forreimar2009-02-171-1/+11
| | | | | | | | | | | | | | correctly placed dvdnav highlights, and fix direct3d and vdpau accordingly. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28633 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Cropping parameter to calc_src_dst_rects is constreimar2009-02-171-1/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28626 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Fix compilation without VDPAUuau2009-02-171-1/+1
| | | | | | | | | | | | | | | | | | | |