summaryrefslogtreecommitdiffstats
path: root/mplayer.c
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'vdpau' into buildUoti Urpala2009-09-191-14/+13
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 ...
| * core/VO: Allow VO drivers to add/modify framesUoti Urpala2009-09-181-14/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge svn changes up to r29684Uoti Urpala2009-09-161-0/+7
|\ \
| * | Merge two Windows-specific #if sections to simplify the condition.reimar2009-09-161-2/+2
| | | | | | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29684 b3059339-0415-0410-9bf9-f77b7e298cf2
| * | Hack: set DEP/NX on Windows via SetProcessDEPPolicy.reimar2009-09-161-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | This should really be done via the NXCOMPAT PE flag, but looks like binutils will not get support for it any time soon and not having this security feature enabled is just ridiculous. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29683 b3059339-0415-0410-9bf9-f77b7e298cf2
* | | Merge svn changes up to r29644Uoti Urpala2009-09-041-15/+45
|\| | | |/ |/|
| * 10l, fix misplaced check in r29613, for loop detection we must comparereimar2009-09-021-1/+1
| | | | | | | | | | | | | | | | current file name against full name to be added, not current file name against new base path. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29637 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Limit amount of data allocated on stack, strlen(filename) is not a good idea forreimar2009-09-021-2/+6
| | | | | | | | | | | | | | file name strings that might come from arbitrary playlists, use PATH_MAX instead. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29636 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Add support for directory-specific mplayer.conf configuration file.reimar2009-09-021-3/+11
| | | | | | | | | | | | | | Patch by Christian P. Schmidt "schmidt digadd de" git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29634 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Make the loop detection for mov reference files less aggressive, fixesreimar2009-09-011-1/+5
| | | | | | | | | | | | | | playback of http://stream.qtv.apple.com/qtv/wgbh/http/nova_eu/nova_eu_3012c01_mp4_ref.mov git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29613 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Fix per-file config file loading for DOS paths (i.e. where \ and : canreimar2009-08-311-1/+10
| | | | | | | | | | | | | | also separate path and file name). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29604 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Factor out code to try and load a config file only if it exists.reimar2009-08-311-11/+16
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29603 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r29532Uoti Urpala2009-08-181-9/+1
|\|
| * Only #include stream/dvbin.h when DVB is enabled.diego2009-08-031-0/+2
| | | | | | | | | | | | | | | | dvbin.h #includes some system DVB headers that may be unavailable. Fixes compilation with DVB disabled. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29474 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Remove pointless #ifdefs around harmless internal header #includes.diego2009-08-021-14/+0
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29471 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Change type names to match upstream libassGrigori Goronzy2009-08-071-1/+1
| |
* | Remove internal libass treeUoti Urpala2009-07-261-4/+1
| | | | | | | | | | Remove the libass/ directory and use the newest standalone version of the library instead.
* | Replace libavutil internal header #includes with MPlayer copiesUoti Urpala2009-07-261-1/+1
| | | | | | | | | | | | Change #include lines for libavutil/intreadwrite.h, libavutil/bswap.h and libavutil/x86_cpu.h to use the MPlayer file under ffmpeg_files/ instead.
* | Remove the internal GUIAnton Khirnov2009-07-071-268/+5
| | | | | | | | | | | | | | | | | | The GUI is badly designed and too closely coupled to the internal details of other code. The GUI code is in bad shape and unmaintained for years. There is no indication that anyone would maintain it in the future either. Even if someone did volunteer to implement a better integrated GUI having the current code in the tree probably wouldn't help much. So get rid of it.
* | Merge svn changes up to r29412Uoti Urpala2009-07-071-2/+3
|\|
| * Make ID_SEEKABLE depend on both the stream and the demuxer being seekable,reimar2009-05-311-1/+2
| | | | | | | | | | | | | | | | | | instead of only depending on the stream. This makes the value correctly 0 e.g. for AVI files without index. Patch by Jason Tackaberry [tack urandom ca] git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29331 b3059339-0415-0410-9bf9-f77b7e298cf2
| * 100l, demuxer info tags are _not_ case sensitive, so use strcasecmp.reimar2009-05-301-1/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29329 b3059339-0415-0410-9bf9-f77b7e298cf2
| * whitespace cosmetics: Remove all trailing whitespace.diego2009-05-131-91/+91
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29305 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Remove trailing whitespace from most filesUoti Urpala2009-07-071-84/+84
| |
* | Translation system changes part 2: replace macros by stringsAmar Takhar2009-07-071-70/+116
| | | | | | | | | | Replace all MSGTR_ macros in the source by the corresponding English string.
* | Translation system changes part 1: wrap translated stringsAmar Takhar2009-07-071-70/+70
| | | | | | | | | | Replace mp_msg() calls which have a translated string as the format argument with mp_tmsg and add _() around all other translated strings.
* | Fix ordered chapter pruning of redundant timeline partsUoti Urpala2009-05-221-5/+8
| | | | | | | | | | | | | | | | | | Code that was supposed to merge two timeline parts if the second one started exactly where the first one stopped didn't work because it mixed timestamps in different units (I had changed the units of some variables after originally writing that code but forgotten to update it). As a result of the bug there were unnecessary part switches, but it was unlikely to cause any serious problems.
* | Merge svn changes up to r29277Uoti Urpala2009-05-081-4/+4
|\|
| * sane verbosity levels for menu initializationdiego2009-04-251-4/+4
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29231 b3059339-0415-0410-9bf9-f77b7e298cf2
* | core: Set mpctx->chapters to NULL at uninitUoti Urpala2009-05-031-0/+1
| | | | | | | | | | | | | | The uninit code called talloc_free(mpctx->chapters) but didn't clear the pointer. As a result playing a file with ordered chapters and one without almost certainly triggered an abort when closing the second file. Fix by setting the pointer to NULL after freeing.
* | core: Handle missing timestamp errors a bit betterUoti Urpala2009-04-241-0/+2
| | | | | | | | | | | | | | | | | | | | | | If there is no timestamp available for a video frame at all, use timestamp from the previous frame (if any) instead of leaving it as MP_NOPTS_VALUE. The main practical difference for playback is that MP_NOPTS_VALUE caused timing to be reset, moving current video position immediately to time of the next frame that had a timestamp and thus likely advancing the video too fast. Now the next frame with a timestamp will be shown at its proper position relative to the previous timestamp.
* | Merge svn changes up to r29154Uoti Urpala2009-04-091-1/+1
|\| | | | | | | | | Synchronizes runtime CPU detection handling in the build system with latest FFmpeg.
| * Rename RUNTIME_CPUDETECT to CONFIG_RUNTIME_CPUDETECT and always define it.ramiro2009-04-081-1/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29154 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge branch 'ordered_chapters'Uoti Urpala2009-04-081-55/+410
|\ \
| * | Add option -noordered-chapters.Uoti Urpala2009-04-081-0/+6
| | |
| * | Support chapter seeking with ordered chaptersUoti Urpala2009-04-021-3/+52
| | |
| * | Change demuxer_seek_chapter() parametersUoti Urpala2009-04-021-2/+2
| | | | | | | | | | | | | | | | | | Remove the "num_chapters" and "mode" parameters that aren't needed by any callers. Change "float *seek_pts" to "double *". Allocate the string returned via "chapter_name" with talloc.
| * | VO: Don't reset pause status in VO config() functionsUoti Urpala2009-04-021-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | Many VOs kept track of pause status, but reset the value when their config() function was called. However it can be called while playback stays in pause mode. Modify the VOs to not change anything in config(). Also send the VO either VOCTRL_PAUSE or VOCTRL_RESUME when the playback of a new file is starting to make sure they have the right status.
| * | Initial ordered chapters supportUoti Urpala2009-04-021-19/+311
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add basic support for Matroska ordered chapters. The switching between segments is implemented as a general edit timeline that could also be used for other purposes. Some things still need improvement. In particular the current code does not try to do any proper mapping between audio/video/subtitle streams of different files and there should be options for better control of how MPlayer searches other files for the required content.
| * | core: Clean up OSD seek info logicUoti Urpala2009-03-311-26/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clean up the code and make the behavior more consistent. Before bits of the OSD information were triggered in different places, and various property commands that affect playback position only showed the seek bar while the main seek command also triggered showing the percentage in OSD text. Now only the seek and chapter commands trigger all information and others nothing (which is consistent with most property behavior).
| * | options: Move osd_level and osd_duration to options structUoti Urpala2009-03-311-10/+13
| | |
| * | Add improved relative seek modeUoti Urpala2009-03-241-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the new mode is active relative seeks are converted to absolute ones (current video pts + relative seek amount) and forward/backward flag before being sent to the demuxer. This mode is used if the demuxer has set the accurate_seek field in the demuxer struct and there is a video stream. At the moment the mkv and lavf demuxers enable the flag. This change is useful for later Matroska ordered chapter support (and for more general timelime editing), but also fixes problems in existing functionality. The main problem with the old mode, where relative seeks are passed directly to the demuxer, is that the user wants to seek relative to the currently displayed position but the demuxer does not know what that position is. There can be an arbitrary amount of buffering between the demuxer read position and what is displayed on the screen. In some situations this makes small seeks fail to move backward at all (especially visible at high playback speed, when audio needs to be demuxed and decoded further ahead to fill the output buffers after resampling). Some container formats that can be used with the lavf demuxer do not always have reliable timestamps that could be used for unambiguous absolute seeking. However I made the demuxer always enable the new mode because it already converted all seeks to absolute ones before sending them to libavformat, so cases without reliable absolute seeks were failing already and this should only improve the working cases.
* | | Merge svn changes up to r29117Uoti Urpala2009-04-011-1/+4
|\ \ \ | |/ / |/| / | |/
| * Set the forced_subs_only value correctly whenever a new spudec is created.reimar2009-03-301-1/+4
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29108 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Make pausing_keep_force the default for the set_mouse_pos and key_down_event -reimar2009-03-071-2/+1
| | | | | | | | | | | | | | | | | | different behaviour is unlikely to make sense but it is better to handle this in input.c instead of adding special cases to mplayer.c and being able to override the default behaviour at least should not hurt. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28870 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Fix video stream switch code typoUoti Urpala2009-03-201-1/+1
| | | | | | | | | | | | | | Restore accidentally dropped '!' to fixed-vo test in reinit_video_chain(). It could have caused some issues when switching video streams. Probably nobody noticed because files with multiple video streams are rare.
* | Merge svn changes up to r28712Uoti Urpala2009-02-231-1/+2
|\|
| * Print the version string after the command line has been parsed.diego2009-02-211-1/+2
| | | | | | | | | | | | | | | | This allows printing the CPU information when verbose mode is triggered on the command line. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28691 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r28537Uoti Urpala2009-02-121-13/+8
|\|
| * Add priority support for OS/2 and factorize the Windows priority support.diego2009-02-101-13/+6
| | | | | | | | | | | | | |