summaryrefslogtreecommitdiffstats
path: root/TOOLS
Commit message (Collapse)AuthorAgeFilesLines
* vo_vdpau: Add support for high-quality scaling featureUoti Urpala2009-11-151-0/+1
| | | | | | | Part of the code is currently under #ifdef to allow compilation with older VDPAU library versions; that can be removed later. Partially based on a patch by Carl Eugen Hoyos.
* Implement vsync-aware frame timing for VDPAUUoti Urpala2009-11-151-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Merge branch 'vdpau' into buildUoti Urpala2009-09-191-0/+58
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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_vdpau: Support recovering from VDPAU display preemptionUoti Urpala2009-09-071-0/+1
| | | | | | | | | | | | | | Add code to reinitialize all VDPAU objects if a display preemption condition occurs. Reinitializing them in the middle of playback will cause video corruption at least until the next keyframe when using hardware decoding, but decoding does seem to recover after a keyframe.
| * vo_vdpau: Allocate one large surface for EOSD contentUoti Urpala2009-09-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Create a single large bitmap surface for EOSD objects and pack all the bitmap rectangles inside that. The old code created a separate bitmap surface for every bitmap and then resized the cached surfaces when drawing later frames. The number of surfaces could be large (at least about 2000 for one sample subtitle script) so this was very inefficient. The old code also used a very simple strategy for pairing existing surfaces to new bitmaps; it could resize tiny surfaces to hold large glyphs while using existing large surfaces to hold tiny glyphs and as a result allocate arbitrarily much more total surface area than was necessary. The new code only supports using a single surface, freeing it and allocating a larger one if necessary. It would be possible to support multiple surfaces in case of hitting the maximum bitmap surface size, but I'll wait to see if that is actually needed before implementing it. NVIDIA seems to support bitmap surface sizes up to 8192x8192, so it would take either a really pathological subtitle script rendered at a high resolution or an implementation with lower limits before multiple surfaces would be necessary. The packing algorithm should successfully pack the bitmaps into a surface of size w*h as long as the total area of the bitmaps does not exceed 16/17 (w-max_bitmap_width)*(h-max_bitmap_height), so there should be no totally catastrophic failure cases. The 16/17 factor comes from approximate sorting used in the algorithm. On average performance should be better than this minimum guaranteed level.
| * Merge branch 'vdpau_old' into vdpauUoti Urpala2009-08-311-0/+56
| |\
| | * vo_vdpau: Add template file for VDPAU functionsUoti Urpala2009-08-291-0/+56
| | | | | | | | | | | | | | | | | | | | | | | | Add a template file that contains a single listing of various information needed about the VDPAU interface functions, and is then included multiple times to create required declarations and tables. Previously some of the information needed to be duplicated for each of those uses.
* | | Merge svn changes up to r29684Uoti Urpala2009-09-162-5/+5
|\ \ \ | |/ / |/| |
| * | Convert to UTF-8.diego2009-09-101-1/+1
| | | | | | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29670 b3059339-0415-0410-9bf9-f77b7e298cf2
| * | Fix bashism: Use '$(( ))' syntax instead of '(( ))' for arithmetic expressions.diego2009-09-101-2/+2
| | | | | | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29669 b3059339-0415-0410-9bf9-f77b7e298cf2
| * | Avoid bash-specific 'let' syntax in shell scripts.diego2009-09-071-2/+2
| | | | | | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29653 b3059339-0415-0410-9bf9-f77b7e298cf2
| * | whitespace cosmetics: Remove all trailing whitespace.diego2009-05-1323-128/+128
| |/ | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29305 b3059339-0415-0410-9bf9-f77b7e298cf2
* / Remove trailing whitespace from most filesUoti Urpala2009-07-0726-138/+128
|/
* commit remaining binary_codecs.sh changes from debian.siretart2009-04-231-7/+30
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29228 b3059339-0415-0410-9bf9-f77b7e298cf2
* check for missing libstdc++siretart2009-04-231-0/+13
| | | | | | | | | this version of the check assumes that we run on a system with apt-get installed and configured. We should probably check that this is actually true. Or more ideally add support for yum for fedora systems. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29227 b3059339-0415-0410-9bf9-f77b7e298cf2
* more cosmeticssiretart2009-04-231-5/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29226 b3059339-0415-0410-9bf9-f77b7e298cf2
* whitespace cosmeticsdiego2009-04-231-8/+8
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29225 b3059339-0415-0410-9bf9-f77b7e298cf2
* Part 3 of syncing binary_codecs.sh with Debiansiretart2009-04-231-7/+7
| | | | | | | | This patch contains no functional changes again, only whitespace fixes that has been misse from Part 1 have been included. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29223 b3059339-0415-0410-9bf9-f77b7e298cf2
* Part 2 of syncing binary_codecs.sh with Debiansiretart2009-04-231-6/+16
| | | | | | | This patch contains the OKed parts of Diego's review from 23. Apr 2009 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29222 b3059339-0415-0410-9bf9-f77b7e298cf2
* Part 1 of syncing binary_codecs.sh with Debiansiretart2009-04-221-12/+12
| | | | | | | | This patch contains no functional changes, only whitespace fixes from Debian. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29220 b3059339-0415-0410-9bf9-f77b7e298cf2
* Replace duplicated code by a macro.diego2009-03-121-45/+16
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28938 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix and restructure fastmemcpybench. It is now one binary that runs alldiego2009-03-102-26/+137
| | | | | | | available memcpy variants and prints benchmark results about them. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28929 b3059339-0415-0410-9bf9-f77b7e298cf2
* Make fastmemcpybench almost working - only thing missing is a way toreimar2009-03-091-1/+2
| | | | | | | override HAVE_MMX etc. from config.h. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28906 b3059339-0415-0410-9bf9-f77b7e298cf2
* comment/output cosmeticsdiego2009-03-091-9/+9
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28904 b3059339-0415-0410-9bf9-f77b7e298cf2
* whitespace cosmetics:diego2009-03-091-74/+75
| | | | | | | | | - Remove all tabs and trailing whitespace. - Indent with 4 spaces. - K&R-ify and prettyprint some parts. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28903 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add test for C memcpy()michael2009-03-081-0/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28894 b3059339-0415-0410-9bf9-f77b7e298cf2
* Resurrect script needed for easy use of fastmemcpybench.c.michael2009-03-081-0/+19
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28893 b3059339-0415-0410-9bf9-f77b7e298cf2
* Revert michael2009-03-081-2/+2
| | | | | | | | | r3082 | michael | 2001-11-23 13:00:40 +0100 (Fri, 23 Nov 2001) | 2 lines missaligned arrays, as nick requested Reason: idiotic idea git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28890 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove now unnecessary linking hacks.diego2009-03-011-5/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28781 b3059339-0415-0410-9bf9-f77b7e298cf2
* HAVE_WINSOCK2_H is now a 0/1 definition.diego2009-02-011-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28443 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add missing 'void' keyword to parameterless function declarations.diego2009-01-0510-39/+42
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28267 b3059339-0415-0410-9bf9-f77b7e298cf2
* Relicense to GPLv2 or later with the author's permission.diego2009-01-029-45/+171
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28230 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix reference to wrong DLL filename in header comment.diego2009-01-021-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28229 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix confused references to DLL filenames.diego2009-01-018-8/+8
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28228 b3059339-0415-0410-9bf9-f77b7e298cf2
* Replace all occurrences of '__volatile__' and '__volatile' by plain 'volatile'.diego2008-10-161-1/+1
| | | | | | | | We were using an inconsistent mix of the three variants and 'volatile' should be the most correct and portable variant. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27791 b3059339-0415-0410-9bf9-f77b7e298cf2
* Change all occurrences of asm and __asm to __asm__, same as was done for FFmpeg.diego2008-10-161-1/+1
| | | | | | | Neither variant is valid C99 syntax, but __asm__ is the most portable variant. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27788 b3059339-0415-0410-9bf9-f77b7e298cf2
* Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make itdiego2008-10-161-1/+1
| | | | | | | clearer that netstream.h belongs to stream_netstream.c. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27779 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove MinGW cruft.diego2008-10-031-5/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27695 b3059339-0415-0410-9bf9-f77b7e298cf2
* cosmetics: prettyprintingdiego2008-09-281-149/+167
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27668 b3059339-0415-0410-9bf9-f77b7e298cf2
* Upgrade license of LGPL 2 or later files to LGPL 2.1 or later.diego2008-09-151-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27614 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove encode2mpeglight, it is only an outdated stripped-down version of thediego2008-09-072-2016/+0
| | | | | | | tool maintained externally at http://encode2mpeg.sf.net/. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27537 b3059339-0415-0410-9bf9-f77b7e298cf2
* license header cosmeticsdiego2008-09-061-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27536 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix incorrect FSF address in license header.diego2008-09-061-3/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27535 b3059339-0415-0410-9bf9-f77b7e298cf2
* Rename HAVE_WINSOCK preprocessor condition to HAVE_WINSOCK_H.diego2008-08-291-1/+1
| | | | | | | | | This is what it is called in FFmpeg and more consistent with other names for similar conditionals. This fixes a potential compilation failure on MinGW, as described in Bugzilla #1262. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27493 b3059339-0415-0410-9bf9-f77b7e298cf2
* Change a bunch of video-output-specific preprocessor directives from a HAVE_diego2008-08-021-2/+2
| | | | | | | prefix to a CONFIG_ prefix. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27397 b3059339-0415-0410-9bf9-f77b7e298cf2
* Rename binary-codecs.sh to binary_codecs.sh as it is called in Debian.diego2008-07-312-3/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27384 b3059339-0415-0410-9bf9-f77b7e298cf2
* Revert previous broken rename of binary-codecs.sh that had random changes.diego2008-07-312-67/+23
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27383 b3059339-0415-0410-9bf9-f77b7e298cf2
* Rename binary-codecs.sh once more to binary_codecs.sh as it is called in Debian.diego2008-07-312-23/+67
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27382 b3059339-0415-0410-9bf9-f77b7e298cf2
* Rename install-w32codecs.sh --> binary-codecs.sh.diego2008-07-312-3/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27381 b3059339-0415-0410-9bf9-f77b7e298cf2
* Run bash-specific shell scripts with bash, not sh.diego2008-07-074-4/+4
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27231 b3059339-0415-0410-9bf9-f77b7e298cf2
* Give all shell scripts a .sh suffix for consistency.diego2008-07-077-27/+27
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27230 b3059339-0415-0410-9bf9-f77b7e298cf2
* Replace bash-specific [[]] construct by proper a proper [] test.diego2008-07-071-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27229 b3059339-0415-0410-9bf9-f77b7e298cf2
* Replace == in []/test constructs with =, == is a bashism.diego2008-07-074-35/+35
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27228 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove unnecessary function keyword from shell script function declarations,diego2008-07-073-5/+5
| | | | | | | it is a bashism. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27227 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix the linking of TOOLS/netstream and TOOLS/vivodump.diego2008-06-062-53/+17
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26995 b3059339-0415-0410-9bf9-f77b7e298cf2
* cosmetics: Remove useless parentheses from return statements.diego2008-05-162-23/+23
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26791 b3059339-0415-0410-9bf9-f77b7e298cf2
* Use standard license headers with standard formatting.diego2008-05-142-33/+30
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26775 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove loader/wine/avifmt.h #include, the AVI types declared there conflictdiego2008-04-301-1/+0
| | | | | | | with the ones from libmpdemux/aviheader.h, which is #included below. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26612 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add missing string.h #include to fix a bunch of implicit declaration warnings.diego2008-04-301-0/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26611 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove unused fast_memcpy() function and link against the object thatdiego2008-04-301-6/+0
| | | | | | | contains fast_memcpy() instead. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26610 b3059339-0415-0410-9bf9-f77b7e298cf2
* Disable unused function.diego2008-04-301-0/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26608 b3059339-0415-0410-9bf9-f77b7e298cf2
* Mark all functions that are only used within the file as static.diego2008-04-308-18/+18
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26607 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove useless 0 flag from s printf conversion specifier, fixes the warning:diego2008-04-231-1/+1
| | | | | | | TOOLS/movinfo.c:332: warning: '0' flag used with '%s' printf format git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26506 b3059339-0415-0410-9bf9-f77b7e298cf2