Commit Graph

523 Commits

Author SHA1 Message Date
Grigori Goronzy b784346e78 libass: match font attachments based on extension
Instead of only relying on the MIME type, use the file extension as a
fallback for deciding which attachments are fonts and should be fed to
libass.
This also refactors the check into a separate function in mpcommon.
2010-06-01 23:15:41 +02:00
Uoti Urpala b3a688d45f options: move -alang and -slang to option struct
The option field corresponding to -slang is now called "sub_lang"
instead of the old misleading global name "dvdsub_lang". The code
handling -slang in subreader.c looks rather broken; disable it instead
of converting it to use the option field.
2010-05-22 10:11:15 +03:00
Uoti Urpala 4785c2617e Merge svn changes up to r30967 2010-04-26 17:42:20 +03:00
Uoti Urpala 95fba94860 Merge svn changes up to r30917 2010-04-26 17:11:04 +03:00
Uoti Urpala 3c2d6d9a8e Merge svn change r30908 2010-04-26 17:00:52 +03:00
Uoti Urpala ff559b8e90 Merge svn changes up to r30907 2010-04-26 16:57:25 +03:00
Uoti Urpala a2133d7684 options: move -chapter values to option struct
-chapter can optionally take a range with a start and an end. Add a
new option type which supports such values and use that instead of a
custom per-option function.

This commit also fixes a build configuration bug: before the
availability of the -chapter option depended on DVD functionality
being enabled in the binary, even though the option works with other
sources too.
2010-04-25 22:48:10 +03:00
diego a630204d0a Mark add_subtitles() as static, it is not used outside the file, fixes:
mencoder.c:337: warning: no previous prototype for 'add_subtitles'


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30956 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-24 20:43:41 +00:00
diego d84999d480 Rename SetCodecPath() --> set_codec_path().
This keeps the naming of all path-related functions consistent.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30944 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-21 08:34:09 +00:00
diego 70c66c0476 Rename get_path.[ch] --> path.[ch].
These files now contain different functions related to path handling.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30943 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-20 23:38:27 +00:00
diego a06a3d476d Move SetCodecPath() from loader to get_path.c and make it unconditional.
This fixes compilation with the Win32 loader disabled but other binary
codec loaders enabled.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30942 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-20 23:27:07 +00:00
diego 77b8678bec Remove unnecessary #ifdefs around harmless loader/codecpath.h #include.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30931 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-18 20:57:49 +00:00
reimar a743c0a738 Split codec path related code into a separate file to fix Windows build.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30930 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-18 20:44:01 +00:00
komh 11eeaf5005 Follow a more proper way to support -codecpath.
1. Include loader/drv.h for SetCodecPath() instead of a declaration of it.

    2. Move codec_path from get_path.h to mpcommon.h and mpcommon.c.



git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30914 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-17 09:12:51 +00:00
diego c19c71be2b Remove some commented-out debugging and similar cruft.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30910 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-16 12:38:29 +00:00
diego 0e8f7d0e58 Remove unnecessary forward declarations for a bunch of functions.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30909 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-16 12:24:18 +00:00
diego 2c099abea9 cosmetics: Move all functions before main().
This will help avoid some forward declarations.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30908 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-16 12:14:57 +00:00
diego b864ff1b8d Remove disabled flip_upside_down function; it has been unused for ages.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30907 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-16 12:11:14 +00:00
diego b05bbdd097 Remove unnecessary forward declaration of print_wave_header().
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30906 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-16 11:57:52 +00:00
komh 8686b281f8 Add -codecpath option.
It allows to search binary codecs in non-standard directories.



git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30897 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-15 08:30:06 +00:00
Uoti Urpala 00323c06e2 Delete things related to old translation system
Remove the help/ subdirectory, configure code to create toplevel
help_mp.h, and all the '#include "help_mp.h"' lines from .c files.
2010-03-10 03:47:14 +02:00
Uoti Urpala 0269d22d32 Merge svn changes up to r30876 2010-03-10 03:18:42 +02:00
Uoti Urpala bc1d0ca37d Merge svn changes up to r30798 2010-03-10 02:35:02 +02:00
Uoti Urpala acdce0176a Merge svn changes up to r30732 2010-03-10 01:25:15 +02:00
Uoti Urpala c37f09693d Merge svn changes up to r30643 2010-03-10 00:00:06 +02:00
Uoti Urpala 12d3caebc7 Merge svn changes up to r30475 2010-03-09 19:18:43 +02:00
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
greg ca7cbc0724 Enable ASS/SSA subtitle support in mencoder
Enable ASS/SSA rendering through libass in mencoder. This duplicates a
bit of code (to parse font attachments, for example). Additionally, add
a filter "fixpts" that generates PTS, simulating fixed fps. PTS
generated by this filter are then used for subtitle timing.

Original patch by Nicolas George. (nicolas.george normalesup.org)

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30849 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-05 23:13:08 +00:00
reimar 4d08f30d25 Use the KEYFRAME define instead of some magic number.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30789 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-28 07:45:23 +00:00
diego abc9495e0c Add #includes for mp_input_check_interrupt() and mplayer_put_key(), fixes:
mencoder.c:226: warning: no previous prototype for 'mp_input_check_interrupt'
mencoder.c:232: warning: no previous prototype for 'mplayer_put_key'


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30723 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-23 20:16:30 +00:00
diego 0055441774 Add header for AVI print functions; avoids many forward declarations.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30631 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-18 00:18:50 +00:00
diego 99c1bbca2a Add license header to all top-level files missing them.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30471 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-01-30 23:24:23 +00:00
reimar 71dcc053fe Move the resync-related code into more consistent places instead of having it
scattered all over the place with half of it forgotten in some places.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30420 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-01-24 15:16:39 +00: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 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 7044965988 vf_vo: Use vo_seek_reset() instead of vo_control()
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.
2009-12-02 12:50:56 +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 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
Uoti Urpala 8bbb79c03a av_log callback handling overhaul
Move av_log callback handling from vd_ffmpeg.c to a new file
av_log.c and install the callback immediately when starting the
program. Main functionality improvements of the new code:

 - The old version only installed the callback when opening an FFmpeg
   video decoder. If nothing had triggered that then av_log() messages
   from other sources (libavformat, audio decoding, swscale usage)
   bypassed MPlayer's output system completely. Now the callback is
   always installed.

 - Current av_log message severity levels are handled correctly. The
   old code used MSGL_ERR for some messages that should be MSGL_V.

 - Message type is now set for libavformat contexts
   (MSGT_DEMUXER / MSGT_MUXER).

 - The old code did "mp_msg_test(type, mp_level)" before actually
   determining the type, so that it always used MSGT_FIXME. This led
   to some messages being incorrectly dropped in case the user
   had specified module-specific verbosity levels. The old check in
   question was originally motivated by performance problems when
   there were a lot of callbacks; however it's not clear whether the
   part about it skipping the type determination was intentional (most
   of the performance problems must have come from the way the
   original code used snprintf) and in my tests current FFmpeg
   libraries have not generated unreasonable amounts of callbacks
   anyway.
2009-10-31 23:59:16 +02: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
reimar 6fa7e2d867 Make -nosub work to disable subtitles even if -slang and dvd streams are used.
This still needs some additional checking that subtitle selection via dvdnav works.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29732 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-29 06:44:10 +00:00
reimar e3625bd232 Add a -nosub option that allows disabling auto-selected subtitles as e.g. the
mkv demuxer supports.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29730 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-28 11:32:27 +00:00
reimar 4b182ff652 Add support for displaying subtitles on the command-line when playing
audio-only files.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29712 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-23 21:48:48 +00:00
reimar bf16f6f4f3 Make update_subtitles work without sh_video for text subtitles.
This fixes a crash with e.g. auto-enabled subtitles and -novideo due to
command.c calling update_subtitles even without video and is a step
toward subtitle support for audio-only files.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29710 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-23 21:21:58 +00:00
Uoti Urpala 350fc4f5a2 core/VO: Allow VO drivers to add/modify frames
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.
2009-09-18 17:12:53 +03:00
Uoti Urpala 95da34aa07 Merge svn changes up to r29532 2009-08-18 02:29:37 +03:00
reimar 5d058a67c1 Handle demuxers that never set filepos by using stream_tell.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29528 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-08-17 05:55:40 +00:00
diego 64d5279410 Remove pointless #ifdefs around harmless internal header #includes.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29471 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-08-02 16:00:55 +00:00