1
0
mirror of https://github.com/mpv-player/mpv synced 2025-04-01 14:50:07 +00:00
Commit Graph

3200 Commits

Author SHA1 Message Date
Uoti Urpala
ce77a7ab39 vo_xv: Support yuv colorspace changes on ATI cards
Use the "XV_COLORSPACE" xv attribute if it exists, in addition to
previously supported "XV_ITURBT_709" (which works on NVIDIA cards).
2009-11-17 01:17:45 +02:00
Uoti Urpala
287b62163e Merge svn changes up to r29912 2009-11-16 07:01:46 +02:00
Uoti Urpala
b8861ce8e2 Support VDPAU MPEG4 hardware decoding
Original patch by NVIDIA.
2009-11-16 02:46:33 +02:00
Uoti Urpala
19b4d70e01 vo_vdpau: Remove custom help message
Remove the help text explaining -vo vdpau suboptions that was printed
in case of parsing errors. It did perhaps have some value, but there
are also reasons to remove it: it was printed in an ugly manner in the
middle of output, most other MPlayer options do not have such internal
help texts either, and it was detailed enough that it required
maintaining documentation about the options in two separate places
(the man page and the help message).
2009-11-16 00:50:01 +02:00
Uoti Urpala
14bb3416c7 vo_vdpau: Add support for high-quality scaling feature
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.
2009-11-15 18:39:48 +02:00
Uoti Urpala
82ee2e217f vo_vdpau: add support for VFCAP_FLIP
Patch by Carl Eugen Hoyos.
2009-11-15 17:05:29 +02:00
Uoti Urpala
7038c57a0c vo_vdpau: Free buffers allocated by FFmpeg on uninit 2009-11-15 17:05:29 +02:00
Uoti Urpala
98ee8dd159 Add yuv_colorspace property, implemented in vo_vdpau and vo_xv
Add a property to select YUV colorspace. Currently implemented only in
vo_vdpau and vo_xv. Allows switching between BT.601, BT.709 and
SMPTE-240M (vdpau only).

The xv support uses the "XV_ITURBT_709" attribute. At least my NVIDIA
card supports that; I don't know whether other xv implementations do.

Bind the colorspace switch to the 'c' key by default. 'c' is currently
used by vo_sdl for some fullscreen mode change thing, but at the moment
that does not conflict and if it will in the future then vo_sdl can
change.

VDPAU part based on a patch from Lauri Mylläri <lauri.myllari@gmail.com>
2009-11-15 17:03:41 +02:00
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
ptt
ab4bdb64e1 Added -name, -title and -use-filename-title options and implementation in X11 vos
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29904 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-12 09:21:53 +00:00
cehoyos
153cac185c Do not dynamically load libvdpau.so.1, but link at compile time.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29903 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-11 22:26:38 +00:00
cehoyos
2b93a48ac8 Support VDPAU hardware accelerated decoding of MPEG-4 ASP on capable
hardware.

Original patch by NVIDIA corporation.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29885 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-10 19:11:13 +00:00
cehoyos
78290719a6 100: Fix function parameters when calling create_vdp_decoder() from query_format().
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29872 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-10 10:40:34 +00:00
cehoyos
88d80c2361 Cosmetics: Fix indentation after last commit.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29871 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-10 10:05:10 +00:00
cehoyos
3865c166c9 Fail in query_format() if a VDPAU decoder is not available.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29870 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-10 10:04:32 +00:00
cehoyos
7c774fd5ce Add a default to switch(image_format), suppresses a warning after a future patch.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29869 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-10 09:52:43 +00:00
reimar
4b55351e28 Fix compilation of teletext code without freetype support
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29864 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-09 15:17:06 +00:00
reimar
509475ec2c Change type of teletext color specification from unsigned char
to static const uint8_t


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29863 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-09 15:11:54 +00:00
cehoyos
2a5611473c Remove CONFIG_TV_TELETEXT.
DVB teletext support is nearly finished, it will be possible to read
teletext from file, it will not be depending on reception any more.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29851 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-07 16:40:42 +00:00
cehoyos
a10b3f08bf Add new VDPAU feature high-quality-scaling (and require newer library).
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29823 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-04 15:30:13 +00:00
reynaldo
11cc4bcadb Remove unneeded initialization
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29818 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-03 20:46:54 +00:00
corey
0746f99a0a Slightly change behavior of "none" if fstype specification.
In a list of enabled fstypes, "none" now clears the list rather than
disabling all fstypes and interrupting the parser. To enable only one
(or more) fstypes, list the types to enable after "none".

For example:
"-fstype none" is the same as before: all disabled
"-fstype none,fullscreen" enables only the fullscreen type


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29805 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-30 22:18:29 +00:00
cehoyos
a9474b0b39 Move teletext specific code from stream into libmpcodecs.
Patch by Francesco Lavra, francescolavra interfree it


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29801 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-29 22:13:04 +00:00
cehoyos
7800998a95 Cosmetics: Reindent after last commit.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29799 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-27 08:29:07 +00:00
cehoyos
29c937fe80 Allow image format BGRA when using vo vdpau.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29798 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-27 08:28:08 +00:00
diego
3d264d7b55 Move some variable initializations to the beginning of vo_x11_fullscreen().
Fixes the warnings:
libvo/x11_common.c:1344: warning: 'h' may be used uninitialized in this function
libvo/x11_common.c:1344: warning: 'w' may be used uninitialized in this function
libvo/x11_common.c:1344: warning: 'y' may be used uninitialized in this function
libvo/x11_common.c:1344: warning: 'x' may be used uninitialized in this function


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29795 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-24 12:35:18 +00:00
cehoyos
fbf26ecb14 Implement VFCAP_FLIP for vo_vdpau.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29794 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-23 18:26:42 +00:00
cehoyos
4a8b396b31 Free memory allocated in ff_vdpau_add_data_chunk() on uninit.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29793 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-22 18:44:39 +00: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
diego
59d4f35fc3 Fix aspect test program linking.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29785 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-19 10:09:58 +00:00
cehoyos
c34564f2f6 Try to recover from VDPAU display pre-emptions.
Original patch by Uoti.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29777 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-17 15:15:07 +00:00
cehoyos
14c5e64fd9 Support SMPTE-240M colourspace in vo_vdpau.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29771 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-12 21:17:38 +00:00
cehoyos
83fe8c63c5 Add colorspace option to vo_vdpau.
Allows to use ITU-R BT.709 instead of the default ITU-R BT.601.

Patch by Lauri Mylläri, lauri D myllari gmail


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29769 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-10 20:53:42 +00:00
diego
50f563f927 cosmetics: Remove some pointless parentheses from return calls.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29759 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-08 11:25:01 +00:00
diego
77bc2b34b7 cosmetics: Break two more lines.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29758 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-08 10:48:12 +00:00
diego
95e061d93b K&R coding style and whitespace cosmetics
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29755 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-06 08:45:20 +00:00
adrian
28f36c3656 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
Patch by Aaro Koskinen, aaro D koskinen A iki D fi


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29754 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-06 08:21:52 +00: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
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
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
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
cehoyos
4c86e46cca Fix teletext font autoscaling.
Patch by Francesco Lavra, francescolavra interfree it


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29702 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-22 22:06:51 +00:00
adrian
7bc4102a08 Fix vo_corevideo with shared buffer after r29606: Only do GUI dependent display config if shared buffer is not enabled.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29699 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-20 19:07:57 +00:00
Uoti Urpala
3f215c9f8e Merge branch 'vdpau' into build
* 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
  ...
2009-09-19 00:28:17 +03:00
Uoti Urpala
c2d0a9c8a7 VO: Prefer vo_vdpau over vo_xv again
vo_vdpau should now be fixed enough that it's a clearly better choice
than vo_xv.
2009-09-19 00:25:36 +03:00
Uoti Urpala
3c70c5dc95 vo_vdpau: Fix X event handling bugs
check_events() first checked for a RESIZE event and called resize() if
needed, and then queued a frame to be reshown if in pause state and
the event was either RESIZE or EXPOSE. The most obvious problems with
the code were:
   - resize() already called flip_page() internally, so the code in
     check_events could lead to _two_ frames being queued.
   - The call in resize() didn't depend on pause status, so the
     behavior was inconsistent.
   - The code in check_events() actually queued the wrong output
     surface. It showed the same surface as flip_page() would show
     _next_, while it should have shown the previously shown one. This
     typically led to the screen contents changing to a previous
     state, as the new surface had not been initialized and had
     contents from a previous use.

Fix the double update. Make resize() also only immediately update the
video if paused (this also affects changing to/from fullscreen) and
otherwise leave the old window contents be until the next frame. Queue
the right frame in check_events(). Also make resize() a bit more
careful to only show contents if they were successfully updated
(though a case where we're paused without content to show shouldn't
normally happen).
2009-09-19 00:00:42 +03:00
reimar
bf52efc804 Re-add some ifdefs, partially reverting r29688, since mDisplay and
mScreen are undefined during a Windows build without X11 support.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29690 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-18 18:46:12 +00:00