1
0
mirror of https://github.com/mpv-player/mpv synced 2025-03-22 11:18:32 +00:00
Commit Graph

1451 Commits

Author SHA1 Message Date
Uoti Urpala
5234c72e28 Restore collapsed whitespace in output messages
For some reason commit e306174952, which
replaced translation macro names with the corresponding English
strings, also collapsed multiple consecutive space characters into
one. Change most of these back. In a couple of cases the amount of
whitespace is important for alignment, and for the rest it at least
keeps the strings closer to the existing translations.
2010-03-07 21:34:54 +02:00
Uoti Urpala
2569c2e2bc Make help text translatable
Translate help_text and also make all CONF_TYPE_PRINT option output
translatable (though no translations exist yet for anything other than
the main help text).
2010-03-07 21:34:40 +02:00
Uoti Urpala
e187de88a1 vo_vdpau: make queuing future frame flips adjustable
Add -vo vdpau suboptions "queuetime_windowed" and "queuetime_fs" to
specify the maximum number of milliseconds how far into the future a
frame flip can be queued using the VDPAU presentation queue
functionality. The intended main use of these options is to allow
disabling use of the queuing feature on systems where using it causes
choppiness in other graphics behavior (this is an NVIDIA driver issue;
the video itself isn't affected).
2010-02-05 20:20:31 +02:00
Grigori Goronzy
42a87fc611 Disable libass fallbacks for fontconfig < 2.4.2
libass doesn't support fontconfig < 2.4.2 so fallbacks for these
ancient versions aren't needed anymore. Also update the man page
(English, German) to reflect the change. Additionally note that
-embeddedfonts controls the use of ASS script embedded fonts too.

-embeddedfonts is now always enabled by default. Fonts are never
extracted into a directory anymore but passed to libass via memory.
2010-01-27 12:46:59 +02:00
Uoti Urpala
e28e4a1b15 Merge svn changes up to r30419 2010-01-25 15:59:53 +02:00
reimar
4e28b4bc9e Change code to allow playing a stream even if enabling the cache failed
while still handling it when the user aborts the cache fill.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30402 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-01-23 12:13:28 +00:00
Uoti Urpala
1f126fc60c Avoid misleading error "ASS: cannot add video filter"
When using libass with a VO that has direct EOSD support the vf_ass
video filter is unnecessary and is not added automatically, but the
code that adds the filter when it is needed produced misleading output
messages in this case. The following two messages were printed at
MSGL_ERR level, making it look like an error condition:
Couldn't open video filter 'ass'.
ASS: cannot add video filter

Add a version of vf_open_plugin() called vf_open_plugin_noerr() that
does not itself print an error message if opening a vf fails and that
returns the exact status code returned by the vf open() function. Make
vf_ass return a different status code depending on whether there was
an actual error or if it determined a filter would be redundant. Use
the _noerr function in the code adding the filter to avoid the first
message and check the status code to avoid the second.
2010-01-16 20:37:13 +02:00
Uoti Urpala
43c3a07f58 subtitles: avoid running subreader.c parser when using libass
When loading external subtitle files, the code always tried parsing
the file with subreader.c sub_read_file() first, even if libass was
then used to parse and render the file (the results of the first
parsing would be ignored in that case). This could cause problems like
unnecessary error messages. Change the code to try libass parsing
first if enabled, and skip subreader.c parsing if that succeeds.
2010-01-16 19:40:45 +02:00
Uoti Urpala
ee98209ab8 translations: add infrastructure for translated OSD messages
Add function set_osd_tmsg() which is a version of set_osd_msg that
translates its format argument. Pass OSD message strings in the
command.c property_osd_display table through mp_gtext before they're
used.
2010-01-12 12:16:00 +02:00
Uoti Urpala
b390b9b28f Merge svn changes up to r30185 2010-01-08 01:36:05 +02:00
reimar
5e1b88a019 At startup and while seeking avoid to introduce pointless sleeps and possibly
desync due to codec delay.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30218 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-01-04 21:38:45 +00:00
reimar
e57a8e1040 Also reset time_frame and next_frame_time on reset, it makes no sense to
process the sleep before playing the frame seeked to and can be annoying
when the user tries to escape a series of "stuck" frames with a huge duration.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30217 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-01-04 21:27:08 +00:00
reimar
c23a01e260 Fixup SDL configure check:
- Make it work without sdl-config which adds at least useless or even hurtful
  cflags and also does not work for cross-compiling
- If using sdl-config, make it use the CFLAGS we actually use for compiling
  instead of something else. Thus #undef main is needed in the test program.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30178 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-01-03 11:33:33 +00:00
Uoti Urpala
d46b86bc7c Merge svn changes up to r30136
Ignore another broken correct-pts change in 30134.
2009-12-30 00:56:10 +02:00
Uoti Urpala
57ce95b96a audio: Remove fixed decode_audio() return size limit (MAX_OUTBURST)
A couple of months ago MPlayer's ALSA driver started rounding the
amount of input data it was willing to accept in one call down to an
integer multiple of the value it set in ao_data.outburst. In some
configurations it was possible for this value to exceed the 64 KiB
limit on the amount MPlayer was willing to write in a single call to
the AO. As a result ao_alsa accepted 0 bytes in each play() call and
audio playback failed. Fix this by removing the fixed 64 KiB limit on
the amount of audio sent to AO at once; the limit was mostly a remnant
of older code anyway.
2009-12-29 15:51:59 +02:00
reimar
3241bdffd6 Set some freed pointers to NULL.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30118 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-12-26 12:07:14 +00:00
reimar
487ddca70c Free playtree_iter upon exiting MPlayer
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30117 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-12-26 12:04:48 +00:00
reimar
2908957147 Remove more direct includes of libass/ass.h
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30105 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-12-24 10:26:29 +00:00
Uoti Urpala
1598302be6 Fix printf format strings with invalid '%lf' conversion
Some code used an invalid '%lf' conversion specification for double
arguments. Maybe they were written that way due to confusion with
scanf where doubles are indicated by '%lf'; however it is not a valid
printf format specifier. Change those cases to use '%f'.
2009-12-15 15:27:30 +02:00
Uoti Urpala
8e77ab12b8 -identify output: use ordered chapters length for ID_LENGTH
Print the overall timeline length as ID_LENGTH instead of the length
of the main file. This may help external GUIs handle ordered chapters
somewhat better.
2009-12-13 00:51:11 +02:00
reimar
1057181fd7 Add braces to avoid ambiguous else.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29979 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-12-07 23:11:40 +00:00
Uoti Urpala
9afcdab694 options: Move ass_enabled to options struct 2009-12-02 17:37:39 +02:00
Uoti Urpala
6da77386e9 core: Fix timeline state at start of playback
A timeline starting in the middle of a source file resulted in initial
playback state not being set up properly. Fix this by forcing an
absolute seek to initialize timeline state before playback starts.
2009-12-02 13:47:48 +02:00
Uoti Urpala
4ef079f279 mplayer.c: Remove unneeded blit_frame arguments
The video updating functions no longer need to separately track
whether a frame is available for flipping. That information is
now available in video_out->frame_loaded, and all the separate
tracking did was present opportunities for things to go out of sync.
2009-12-02 13:01:36 +02:00
Uoti Urpala
de11a44bba core: Fix ordered chapter timeline building memory corruption
Two arrays were allocated one element too small, causing writes beyond
the allocated area. The bug was triggered when playing a Matroska file
with ordered chapters where each chapter came from a different source
and none of the sources was the original file.

Noticed by Daniel Dawson <ddawson@icehouse.net>
2009-12-02 12:38:13 +02:00
Uoti Urpala
ed333bb31d Merge svn changes up to r29971 2009-11-29 06:11:02 +02:00
reimar
731e9490b2 Readjust the global number of subs when switching dvdnav track to take
into account any change in the number of DVD subtitles available.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29964 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-24 06:59:21 +00:00
Uoti Urpala
d3a1fa98f4 core: Fix rare corner cases in video frame generation
Check that frames added by filters reach the screen and are not just
buffered by the VO, and give filters a chance to output added frames
if previous frame at EOF was buffered by VO. It's unlikely that anyone
ever noticed practical problems caused by these issues.
2009-11-23 04:38:32 +02:00
Uoti Urpala
e43926d6d1 core: Handle VO-added frames even with correct-pts disabled
At least show the extra frames even if correct-pts mode is disabled.
They cannot be timed properly though; the most practical way to fix
that is to just move to correct-pts mode instead.
2009-11-23 04:31:15 +02:00
Uoti Urpala
5995bc175a Merge svn changes up to r29962 2009-11-23 01:56:21 +02:00
Uoti Urpala
4c552b2e42 core: Do OSD/subtitle updates at a more accurate point
OSD contents such as video position and non-libass subtitles were
updated just before feeding a video frame through filters. The updates
were done at that point mainly for the benefit of vf_expand OSD
rendering functionality, which draws the OSD contents when the frame
passes through that filter. However this gave the wrong results for
VO-drawn OSD if the filter chain or VO had any delay or timestamp
manipulation: the OSD contents should reflect the most recent contents
that were _output_ after any filtering, not the last frame that was
fed _into_ the filtering machinery. This issue became more important
after vo_vdpau started buffering frames by default.

Move the OSD updates to be done just before the OSD is drawn, using
the most accurate available information. This fixes the common case
but worsens vf_expand OSD behavior (adding extra latency). A special
case could be added to fall back to the previous behavior when
vf_expand OSD is being used; however I don't consider that a high
priority at the moment especially when other problems with vf_expand
OSD would still remain.

This has little effect on libass-rendered subtitles either way,
because both vf_ass and VO libass rendering use timestamps from the
filter chain and do not rely on separate position updates.
2009-11-22 14:15:12 +02:00
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
reimar
98ab90d2ca Remove useless check for valid fd with -dumpstream, the code does not
necessarily need it.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29927 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-17 18:28:43 +00:00
Uoti Urpala
34279a8ce3 cosmetics: remove some unused variables 2009-11-17 06:56:29 +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
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
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
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
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
36a0a35598 Use switch_program property from mplayer.c to set ts_prog.
This seems to leave the ts demuxer unaffected, but fixes -tsprog with
the lavf demuxer.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29846 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-07 11:12:56 +00:00
reimar
b963af59f1 Whitespace cosmetics: reindent reinit_audio_chain function
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29843 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-06 16:16:22 +00:00
reimar
89c9b3b769 Remove some useless comments/commented-out code.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29842 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-06 16:11:58 +00:00
reimar
477057dbb5 Split assignment from error value check to avoid overcomplicated if () condition.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29841 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-06 16:10:19 +00:00
reimar
e83addcbfa Reuse the init_error exit path also for init_best_audio_codec errors.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29840 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-06 16:08:00 +00:00
reimar
bf80f35958 Simplify: use &= instead of a = b & a;
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29839 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-06 16:06:33 +00:00