Commit Graph
30274 Commits
Author SHA1 Message Date
Uoti Urpala 74b7dcc5f4 core: Add support for decoder reordering of pts values
Add a mode where libavcodec's reordered_opaque feature is used to
associate container packet timestamps with decoded frames. This should
improve behavior at least for MPEG files with interlaced h264; the
previous code does not cope well with the libavformat demuxer
producing two field packets with separate timestamps but the
libavcodec h264 decoder only producing a single output frame for those
two packets (so half the timestamps have no associated output frame).

The current libavformat mpeg demuxer seems to finally work with
interlaced h264 files and produce valid timestamps which are useful
with a mode like this.

By default MPlayer now selects between this new mode and the old one
automatically based on the number of timestamp problems they cause; by
default the new mode is used if both seem to work. The new option
-pts-association-mode can be used to force a particular mode. If
correct-pts mode is disabled this has no effect on timing.

Also remove the "EXPERIMENTAL" marker from the manpage description of
-correct-pts.
2009-11-21 20:53:10 +02:00
Uoti Urpala 4aff125b35 VO: Keep aspect by adding black bars in window mode too if necessary
By default (without -nokeepaspect) MPlayer tries to maintain video
aspect ratio by using window manager hints to keep output window
aspect when resizing. Before this commit it would however scale the
video to completely fill the window even if the window manager did not
respect those hints. Change the behavior to add black bars like in
fullscreen mode instead in this case.
2009-11-20 23:15:11 +02:00
Uoti Urpala e5bcd70bc5 vo_vdpau: Check return value when setting video mixer features 2009-11-17 23:22:48 +02:00
Uoti Urpala 34279a8ce3 cosmetics: remove some unused variables 2009-11-17 06:56:29 +02:00
Uoti Urpala 53ecafadc8 vo_vdpau: Check return value when setting video attributes
Check the return value when setting any video mixer attribute and
print an error message if the operation failed. Also simplify code by
changing update_csc_matrix() to use the utility function added for
this.
2009-11-17 06:25:15 +02:00
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 a1af75d83e mplayer.c: Fix compilation with dvdnav enabled
I had forgotten to check dvdnav-specific code after last merge of svn
changes.
2009-11-16 15:10:35 +02:00
Uoti Urpala 287b62163e Merge svn changes up to r29912 2009-11-16 07:01:46 +02:00
Uoti Urpala 507f4fe6c7 Merge branch 'vdpau' 2009-11-16 04:18:13 +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
cehoyos b411278fbb Show OSD message when enabling/disabling de-interlacing.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29912 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-14 12:46:14 +00:00
ptt c6bb4950bd cosmetics and grammar fixes
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29911 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-13 15:26:16 +00:00
reimar 2acbece5fb Add -tsprog support for lavf to mencoder, similar to what SVN r29846 did for mplayer.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29910 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-13 14:36:38 +00:00
jrash 1de7fb056b sync with en/mplayer.1 r29905
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29909 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-13 14:12:25 +00:00
reimar fd35beaf0a Check that mpctx->audio_out is not NULL when trying to uninit it.
Make audio uninit consistent with e.g. the demuxer uninit code and
also avoids a possible crash.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29908 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-13 13:21:59 +00:00
ptt 327414a214 synced with r29905
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29907 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-13 07:54:30 +00:00
ptt cbda7a7bf4 synced with r29885
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29906 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-12 17:04:41 +00:00
ptt 4147bee3e9 cosmetic fixes as pointed out by diego
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29905 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-12 10:39:52 +00: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
tack 629eee5817 Replace dead link explaining why not to use HTML on the mailing lists.
New link is http://efn.no/html-bad.html


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29902 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-11 15:15:46 +00:00
reimar 30ffc2dea4 Fix declarations in mp_taglists.h and include it in mp_taglists.c to
make such mismatches impossible in the future.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29901 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-11 11:52:36 +00:00
reimar c62952a9ac Add a "tips and tricks" section to the slave mode documentation.
Hopefully will help in using some of its rather obscure features.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29900 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-11 11:38:41 +00:00
reimar a63f28b99a Whitespace cosmetics: fix pause_loop indentation/remove inconsistently used tabs.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29899 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-11 11:35:28 +00:00
reimar 376aa9416f Do not call resume on unpausing if we have already reached eof while
being paused (e.g. because of a "pausing_keep_force pt_step 1").


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29898 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-11 11:31:36 +00:00
reimar 254b4855b1 Remember which subtitle was auto-selected for dvdnav due to -slang
and if it is unchanged re-apply -slang on stream reset.
This makes -slang work when used with menu navigation or in general
when the subtitle is not available for parts of the playback or the
subtitle stream ID changes during playback.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29897 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-11 11:22:12 +00:00
reimar d1e5bdf365 Factor out code that decides which subtitle to play.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29896 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-11 11:19:50 +00:00
reimar 05721f9672 Avoid modifying dvdsub_id in command.c where possible.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29895 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-11 11:09:36 +00:00
reimar 7694e9074d Move headers related to setting dvd speed to dvd_common.
This makes -dvd-speed work again.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29894 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-11 09:28:21 +00:00
reimar 2bf260398b Set the EOF flag when dvdnav reached the end of the requested title.
Otherwise it would just hang, either at the menu or trying to play the
last played frame as a still frame.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29893 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-11 09:09:08 +00:00
reimar 92ac5a8c20 Support the range syntax (like dvd://2-5) also for dvdnav.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29892 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-11 09:03:39 +00:00
cehoyos 977c12c628 10l: Fix compilation without VDPAU.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29891 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-11 00:30:54 +00:00
reimar 0d40667c8c Move dvd_speed and dvd_set_speed to dvd_common and implement -dvd-speed
support for dvdnav.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29890 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-10 23:20:05 +00:00
reimar 36ec821836 Move arrays used by both dvd and dvdnav to dvd_common.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29889 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-10 23:15:48 +00:00
reimar 80217b4240 Remove unused extern declarations.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29888 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-10 23:12:01 +00:00
reimar 8f164e07a0 Share dvd_device extern declaration between dvd and dvdnav.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29887 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-10 23:10:57 +00:00
reimar 6e8f1e844f Remove an unused variable.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29886 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-10 23:03:52 +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
diego a63e8dce21 Map AV_LOG_VERBOSE to MSGL_V in order to avoid spurious log output.
based on a patch by On2


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29884 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-10 18:10:16 +00:00
tack c61f1c20c2 Update man page to reflect support for up to 8 channels.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29883 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-10 18:01:10 +00:00
reimar 085f35f4b4 Allow lavf demuxer to also probe and play files < 32 kB (full probe buffer size).
Based on patch by On2.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29882 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-10 16:49:00 +00:00
reimar 5fd17a2c07 Calculate length of ASF files with more than 1 second precision.
Based on patch by On2.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29881 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-10 16:24:16 +00:00
reimar 48938efe63 Fix length calculation for ASF, preroll is in ms, play time in 100 ns.
Based on patch by On2


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29880 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-10 16:19:44 +00:00