summaryrefslogtreecommitdiffstats
path: root/mencoder.c
Commit message (Collapse)AuthorAgeFilesLines
* cfg-common*: Replace common options template by a common options arraydiego2010-11-021-0/+1
| | | | | | | | | This solution works just as well, but avoids a separate template file that needs to be #included from multiple places. The end result is simpler since common options and those of MPlayer and MEncoder are now in only one file each. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31434 b3059339-0415-0410-9bf9-f77b7e298cf2
* libass: match font attachments based on extensionGrigori Goronzy2010-06-011-4/+1
| | | | | | | 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.
* options: move -alang and -slang to option structUoti Urpala2010-05-221-9/+7
| | | | | | | 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.
* Merge svn changes up to r30967Uoti Urpala2010-04-261-9/+3
|\
| * Mark add_subtitles() as static, it is not used outside the file, fixes:diego2010-03-241-1/+1
| | | | | | | | | | | | | | 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
| * Rename SetCodecPath() --> set_codec_path().diego2010-03-211-1/+1
| | | | | | | | | | | | | | 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
| * Rename get_path.[ch] --> path.[ch].diego2010-03-201-1/+1
| | | | | | | | | | | | | | 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
| * Move SetCodecPath() from loader to get_path.c and make it unconditional.diego2010-03-201-3/+0
| | | | | | | | | | | | | | | | 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
| * Remove unnecessary #ifdefs around harmless loader/codecpath.h #include.diego2010-03-181-4/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30931 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Split codec path related code into a separate file to fix Windows build.reimar2010-03-181-1/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30930 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r30917Uoti Urpala2010-04-261-72/+32
|\|
| * Follow a more proper way to support -codecpath.komh2010-03-171-0/+4
| | | | | | | | | | | | | | | | | | | | 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
| * Remove some commented-out debugging and similar cruft.diego2010-03-161-45/+0
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30910 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Remove unnecessary forward declarations for a bunch of functions.diego2010-03-161-21/+10
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30909 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn change r30908Uoti Urpala2010-04-261-156/+156
|\|
| * cosmetics: Move all functions before main().diego2010-03-161-149/+161
| | | | | | | | | | | | | | This will help avoid some forward declarations. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30908 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r30907Uoti Urpala2010-04-261-25/+5
|\|
| * Remove disabled flip_upside_down function; it has been unused for ages.diego2010-03-161-23/+0
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30907 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Remove unnecessary forward declaration of print_wave_header().diego2010-03-161-2/+0
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30906 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Add -codecpath option.komh2010-03-151-0/+5
| | | | | | | | | | | | | | | | 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
* | options: move -chapter values to option structUoti Urpala2010-04-251-4/+4
| | | | | | | | | | | | | | | | | | | | | | -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.
* | Delete things related to old translation systemUoti Urpala2010-03-101-1/+0
| | | | | | | | | | Remove the help/ subdirectory, configure code to create toplevel help_mp.h, and all the '#include "help_mp.h"' lines from .c files.
* | Merge svn changes up to r30876Uoti Urpala2010-03-101-20/+109
|\|
| * Enable ASS/SSA subtitle support in mencodergreg2010-03-051-20/+109
| | | | | | | | | | | | | | | | | | | | | | 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
* | Merge svn changes up to r30798Uoti Urpala2010-03-101-3/+3
|\|
| * Use the KEYFRAME define instead of some magic number.reimar2010-02-281-3/+3
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30789 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r30732Uoti Urpala2010-03-101-2/+2
|\|
| * Add #includes for mp_input_check_interrupt() and mplayer_put_key(), fixes:diego2010-02-231-2/+2
| | | | | | | | | | | | | | | | 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
* | Merge svn changes up to r30643Uoti Urpala2010-03-101-2/+1
|\|
| * Add header for AVI print functions; avoids many forward declarations.diego2010-02-181-2/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30631 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r30475Uoti Urpala2010-03-091-0/+18
|\|
| * Add license header to all top-level files missing them.diego2010-01-301-0/+18
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30471 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Move the resync-related code into more consistent places instead of having itreimar2010-01-241-1/+0
| | | | | | | | | | | | | | 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
| * Remove more direct includes of libass/ass.hreimar2009-12-241-1/+0
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30105 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Restore collapsed whitespace in output messagesUoti Urpala2010-03-071-4/+4
| | | | | | | | | | | | | | | | | | For some reason commit e306174952d42e1cd6cc5efc50ae6bb0410501bc, 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.
* | audio: Remove fixed decode_audio() return size limit (MAX_OUTBURST)Uoti Urpala2009-12-291-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | vf_vo: Use vo_seek_reset() instead of vo_control()Uoti Urpala2009-12-021-0/+1
| | | | | | | | | | | | | | | | | | 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.
* | Merge svn changes up to r29912Uoti Urpala2009-11-161-0/+8
|\|
| * Add -tsprog support for lavf to mencoder, similar to what SVN r29846 did for ↵reimar2009-11-131-0/+8
| | | | | | | | | | | | mplayer. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29910 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge branch 'vdpau'Uoti Urpala2009-11-161-1/+1
|\ \
| * | Implement vsync-aware frame timing for VDPAUUoti Urpala2009-11-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | av_log callback handling overhaulUoti Urpala2009-10-311-0/+2
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge svn changes up to r29752Uoti Urpala2009-10-061-5/+11
|\| | | | | | | | | | | | | | | | | 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.
| * Make -nosub work to disable subtitles even if -slang and dvd streams are used.reimar2009-09-291-2/+2
| | | | | | | | | | | | | | 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
| * Add a -nosub option that allows disabling auto-selected subtitles as e.g. thereimar2009-09-281-3/+3
| | | | | | | | | | | | | | mkv demuxer supports. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29730 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Add support for displaying subtitles on the command-line when playingreimar2009-09-231-0/+6
| | | | | | | | | | | | | | audio-only files. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29712 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Make update_subtitles work without sh_video for text subtitles.reimar2009-09-231-1/+1
| | | | | | | | | | | | | | | | | | 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
* | core/VO: Allow VO drivers to add/modify framesUoti Urpala2009-09-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* |