summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Rename to "mpv"wm42012-10-1257-1598/+323
| | | | | | | | | | | | | | | | | | This changes the name of this project to mpv. Most user-visible mentions of "MPlayer" and "mplayer" are changed to "mpv". The binary name and the default config file location are changed as well. The new default config file location is: ~/.mpv/ Remove etc/mplayer.desktop. Apparently this was for the MPlayer GUI, which has been removed from mplayer2 ages ago. We don't have a logo, and the MS Windows resource files sort-of require one, so leave etc/mplayer.ico/.xpm as-is. Remove the debian and rpm packaging scripts. These contained outdated dependencies and likely were more harmful than useful. (Patches which add working and well-tested packaging are welcome.)
* manpage: remove old manpagewm42012-10-121-8099/+0
|
* encoding_example_profiles: add the better AAC encodersRudolf Polzer2012-10-121-1/+1
| | | | | ffmpeg also does libvo_aacenc (libfaac level) and libfdk_aac (supposedly great).
* gl_common: allow compilation on Mac OS 10.6Stefano Pigozzi2012-10-072-1/+18
| | | | | Define just enough constants to allow compilation on OS X Snow Leopard. mpv's OpenGL autodetection features should make the rest.
* build: fix ao_dsound config checkswm42012-10-053-6/+30
| | | | | | | | | | | | ao_dsound.c depended on the same configure check as vo_directx.c, which was removed in commit 0e2c48a3ce19. This accidentally disabled inclusion of ao_dsound. Fix it by adding a new check. Also, move it below ao_portaudio on the auto-select list, as ao_dsound is considered deprecated. Unrelated to that, move ao_lavc below ao_null to prevent it from being auto-selected.
* vo_opengl: don't try to map an empty bufferwm42012-10-031-1/+1
| | | | | | | | The change detection signalled a full re-upload on initialization, but no texture reallocation. Binding the uninitialized buffer caused an OpenGL error. Fixes error messages on start with "opengl-hq".
* vo_opengl: change default FBO formatwm42012-10-032-3/+3
| | | | | | | | | GL_RGB16 doesn't seem to work universally (e.g. Intel). Use GL_RGB by default, and use GL_RGB16 for "opengl-hq" only. This may require users of Intel GPUs to manually experiment with the fbo-format suboption when using "opengl-hq", as GL_RGB16 doesn't seem to work there in some cases (black screen).
* vo_opengl: use PBOs by default with opengl-hqwm42012-10-032-2/+2
| | | | | | | | | | It's not really known whether PBO use causes problems of any kind (most likely not). They should slightly increase performance. Use them by default with "opengl-hq". Even though PBOs don't have anything to do with rendering quality, "opengl-hq" provides a test bed for features that should be enabled by default, but aren't out of fear for regressions.
* vo_opengl: use low quality default settings, add opengl-hq aliaswm42012-10-033-17/+50
| | | | | | | | Change the default settings for vo_opengl to highest performance and compatibility, but lowest quality. Use bilinear as default scaler. Add "opengl-hq" as alias for high quality settings. This alias uses exactly the same settings as vo_opengl did before this commit.
* VO: add mechanism to replace old VO names, use it with "gl" and "gl3"wm42012-10-032-37/+24
| | | | | Rather than duplicating the VO driver structs to add aliases, replace them textually when searching for the VO on initialization.
* bstr: add bstr_equals/bstr_equals0 utility functionwm42012-10-031-0/+10
|
* vo_opengl: always check GL errors in first 5 frameswm42012-10-031-1/+5
| | | | | | | | | | | | Normally, we don't want to call glGetError() all the time, because this supposedly causes slowdowns. (I could not measure any on Linux with nVidia binary drivers; maybe it's due to the fact that we have only a few, expensive calls per frame.) However, having to ask users to add the "debug" suboption when trying to diagnose problems is very annoying. Since most errors happen during initialization only, enabling it for the first 5 frames only is an interesting compromise.
* VO: actually rename VOs gl -> opengl-old, gl3 -> openglwm42012-10-037-249/+248
| | | | | | | | | | | | | This renames vo_gl3 to vo_opengl, and makes it the default. The old vo_gl is still available under "opengl-old". We keep "gl3" as alias to "opengl" for short-term compatibility. For OSX/Cocoa, the autoprobe order changes (prefer the "opengl" over "opengl-old"). Remove "gl_nosw". This was a compatibility alias for "opengl-old", and there's no point in keeping it.
* VO: rename file: vo_gl3_shaders.glsl -> vo_opengl_shaders.glslwm42012-10-034-6/+6
|
* VO: rename file: vo_gl3.c -> vo_opengl.cwm42012-10-032-2/+2
|
* VO: rename file: vo_gl.c -> vo_opengl_old.cwm42012-10-032-2/+2
|
* gl_common: require GLX 1.3 for vo_gl, remove old pre-1.3 codewm42012-10-031-123/+91
| | | | | | Now both GL3 (for vo_gl3) and legacy context context creation (for vo_gl) use the same code to create the X window. Only actual GL context creation is different.
* vo_gl3: make it work on OpenGL 2.1wm42012-10-038-650/+966
| | | | | | | | | | | | | | | | | | | | Now vo_gl3 should work with standard OpenGL 2.1, as long as the GL_ARB_texture_rg extension is available. Optional features, which require features that are always in OpenGL 3.0, but are available as extensions only in OpenGL 2.1, are automatically disabled. The force-gl2 suboption, which was an unreliable hack to run vo_gl3 in an OpenGL 2.1 context, is removed. Significant changes are done to the extension loader to make it easier to identify optional OpenGL features. Context creation is a bit changed to simplify the code and to handle the fallback better if OpenGL 3 context creation fails, and creating an OpenGL legacy context is attempted. Based on the initial work by Rudolf Polzer <divverent@xonotic.org>, which included making the shader GLSL 1.20 compatible, and more.
* mplayer: fix crash when muted and audio codec failswm42012-10-032-2/+5
| | | | | | | | | | | | | | When audio codec initialization fails, reinit_audio_chain() will call uninit_player() to close the AO. mpctx->ao is set, but mpctx->mixer.ao is still NULL. uninit_player() assumes both variables are always the same, and calls mixer_uninit(), even though mpctx->mixer.ao is NULL. That function tries to access the ao without NULL check if mute was enabled. Fix this in mplayer.c by not relying on the assumption that mpctx->ao == mpctx->mixer.ao. Also, add a check for NULL to mixer.c (function muxer_uninit()). One of the checks is redundant and only one of them is needed, but we add both for general robustness.
* Remove useless video filterswm42012-10-0354-16996/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most of these have very limited actual use, or are even entirely useless. They only serve to bloat the codebase and to make life harder. Drowning users in tons of barely useful filters isn't exactly helpful either. Some of these filters were redundant or marked as obsolete. The dlopen and lua (to be added soon) video filters provide ways to add custom filters. Detailed listing for each filter with reasons (with contributions from divVerent and lachs0r): 1bpp: Replaced by "scale". 2xsai: Pixel art scaling algorithm, useless with lossy video. blackframe: Not very useful. Apparently one use is combining it with scripts, that pass the bmovl: Weirdly complex and insane (using FIFO commands), questionable use. cropdetect: Only sort-of useful when used with scripts, and then it will be very fragile. It's probably better to use the dlopen rectangle filter, or to implement the common use-case in a better way. decimate: Not needed/useful with modern video codecs, is an encoding-only filter. denoise3d: "hqdn3d" is better. detc: Some of the worse deteleciners. dint: Useless, actually crashes. (On an assert in vf.c that is disabled by default in mplayer-svn.) dvbscale: Not even practical, and the same effect can be achieved through other means. eq: Worse/older version of eq2. field: Limited use, available as dlopen filter. fil: Quoting the manpage: This filter is very similar to the il filter but much faster, the main disadvantage is that it does not always work. Especially if combined with other filters it may produce randomly messed up images, so be happy if it works but do not complain if it does not for your combination of filters. filmdint: Kind of redundant with pullup, and slightly worse. fixpts: Never useful. (Most if not all filters have been fixed for PTS.) framestep: Questionable use. For things like creating thumbnails, ffmpeg or --sstep should be used. geq: Limited use, will be redundant with the "lua" filter. halfpack: Useless, probably redundant with "scale". harddup: Useless. hue: Most VOs support this. il: Useless. ivtc: Another of the worse deteleciners. kerndeint: A bad deinterlacer. lavc: For DVB output devices. We removed that support. lavcdeint: A bad deinterlacer, was already deprecated. Still available as --vf=pp=fd. mcdeint: A broken deinterlacer that uses lavc internals. ow: Very slow, barely any quality benefit over "hqdn3d". palette: Done by "scale". perspective: Files with incorrect perspective are extremely rare. About the only real-world use for this is keystone correction, which is usually done in hardware by the projector or by graphics drivers/compositors. pp7: Another useless postprocessing filter with bad and complicated code. Use libpostprocess with "pp" instead. qp: Useless. remove-logo: Redundant with delogo, which is better and more practical. rgbtest: Useless. sab, smartblur, boxblur: Blur filters, redundant to "unsharp". softskip: Does nothing. spp, fspp, uspp: Useless postprocessing filters. "spp" needs ffmpeg internals. "fspp" is the optimized version of the "spp" filter (???), while "uspp" is the slow version (????). Use libpostprocess with "pp" instead. telecine: Evil and useless. Available as dlopen filter for testing purposes. test: Useless. tfields: Useless, probably. tile: Questionable use. Available as dlopen filter. tinterlace: Evil and useless. yuvcsp: Probably useless. yvu9: Redundant with "scale". Also remove the following left-over files: vd_null.c, vqf.h
* Fix string.format compatibility with Python 2.6Kovensky2012-10-011-3/+3
|
* encode: remove dependency on current ffmpegRudolf Polzer2012-10-012-235/+240
| | | | | | | | | | | | | Apparently, libav doesn't have the change for the new way to create a libavformat context merged yet. So, we can't use that... Rather, this commit fixes format specific avoptions another way. On the downside, invalid format options are now detected very late, and any attempt to set an option value to +something or -something will append to the previously set option value (this logic can no longer be specific to options of bitflag type, as finding out the option type is what we simply cannot do with this interface).
* .gitignore: ignore .exe filesKovensky2012-09-301-0/+1
|
* windows support: set -mwin32 when building on CygwinKovensky2012-09-301-0/+4
| | | | | This makes cygwin define _WIN32 / WIN32, which it doesn't otherwise define.
* windows support: include io.h when building on CygwinKovensky2012-09-301-0/+4
|
* windows support: define WINVER to 0x0500Kovensky2012-09-301-1/+1
| | | | This means that we require Windows 2000 or later.
* vf_lavc: fix compilation with latest libavAnton Khirnov2012-09-291-5/+0
| | | | | | | | | | Remove a pointless and broken check for avctx->codec->encode. 1) The check does not test for anything useful. 2) AVCodecContext.encode is a private field and is not supposed to be accessed from outside of lavc. 2a) AVCodecContext.encode does not exist anymore in latest libavcodec, so this block fails to build.
* build: use "python" instead of "python3" as interpreter namewm42012-09-294-5/+5
| | | | | This works regardless whether "python" starts a Python 2 or Python 3 interpreter.
* build: make Python scripts compatible with Python 2.xwm42012-09-292-1/+7
| | | | | They were originally written for Python 3.x. Changing them to work on Python 2.x as well is trivial. Tested with Python 2.7.3 and 3.2.3.
* encode: add options --ovfirst and --oafirstRudolf Polzer2012-09-298-35/+77
| | | | | | This allows to define which stream is to be used as first output stream. This is useful because dvdauthor refuses VOB files where the audio stream is the first stream.
* encode: update to current ffmpeg APIRudolf Polzer2012-09-291-28/+8
| | | | This gets rid of some quite ugly code.
* encode: fix -ocopyts with certain DVD imagesRudolf Polzer2012-09-292-78/+94
| | | | | | When timestamps jump by more than 30 seconds, assume an unexpected discontinuity. Fixes encoding aborts (i.e. no more frames written) at DVD cell switches.
* TOOLS: fix first frame pts for dlopen/telecine.soRudolf Polzer2012-09-281-6/+13
| | | | | | | | | | | | | | | When the first frame of a telecine pattern did not generate an output frame (because it is a 0 or a 1), this could lead to the first two output frames getting equal pts values. When the first frame of a telecine pattern generates exactly one output frame (i.e. when the telecine pattern starts with 2 or 3), then the output was correct before this comment, and still is unchanged. When the first frame of a telecine pattern generates more than one output frame (i.e. when it starts with 4 to 9), then output pts are still broken. This is not really solvable without knowing the frame duration, or delaying output by one frame.
* encoding examples: refuse upscaling when the target is an iPhoneRudolf Polzer2012-09-241-7/+7
| | | | | | This is ok, because the iPhone can handle any resolution. So there is no need to waste space on upscaling the iPhone can do at playback time as well.
* vf_scale: do the upscale detection AFTER calculating dimensionsRudolf Polzer2012-09-241-7/+8
| | | | | | Otherwise it heavily violates the manpage's description, and describing what it did before in the documentation is something too complicated to describe in the English language.
* mp_msg: make MSGL_STATUS use the same color as MSGL_INFOwm42012-09-231-1/+1
| | | | The green status line is annoying.
* demuxer: fix crash with demux_rawvideowm42012-09-231-2/+6
| | | | | | | | | | | | | | | rawvideo is a rather primitive demuxer that doesn't implement track switching. The problem was that during track switching the demuxer implementations normally set the stream IDs in order to do the switch, and since rawvideo obviously didn't do that, so the current stream in ds->sh / demuxer->video->sh was set to NULL. (The frontend always assumes track switching is successful, which is a reasonable assumption - failing due to missing video codecs etc. is in separate codepaths.) Later, demux_rawvideo_fill_buffer() in demux_rawvideo.c tried to dereference the NULL stream and crashed. Other trivial single-stream demuxers worked fine, because they didn't try to access ds->sh.
* options: handle alias options differentlywm42012-09-232-10/+9
| | | | | | | | | | | When setting an alias option, its value is not saved in the file-local options case. The ensure_backup function in m_config.c exits if it encounters an aliased option, because it should not be saved additionally to the original option. However, the original option is likely never saved in this case. Change it so that ensure_backup always accesses the original option. The original option is the one that first appears in the option list.
* options: simplify somewhat by introducing a union for option valueswm42012-09-233-20/+30
| | | | | | | | The m_option_value union is supposed to contain a field for each possible option type (as long as it actually stores data). This helps avoiding silly temporary memory alocations. Using a pointer to an union and to a field of the union interchangeably should be allowed by standard C.
* options: accept "yes" and "no" only for flagswm42012-09-235-33/+25
| | | | | | | | | | This removes the alternative values like "off", "0", "false" etc., and also the non-English versions of these. This is done for general consistency. It's better to have a single way of doing things when multiple ways don't add singificant value. Also update some choices for consistency.
* commands: fix parsing bugwm42012-09-231-1/+1
| | | | | When tabs are used as whitespace between command and the first string parameter, the string is not correctly terminated.
* ao_pulse: extend maximum settable volume beyond 100%wm42012-09-231-7/+8
| | | | | | The old maximum is 100%. Raise it to PA_VOLUME_UI_MAX, which is about 150%. PA_VOLUME_UI_MAX is the PulseAudio recommended UI-settable maximum volume, so it seems to be a good idea to use that.
* softvol, ao_pulse: prefer ao_pulse volume control by defaultwm42012-09-237-7/+35
| | | | | | | | | | | | | | | | | | --softvol is enabled by default. For most audio outputs, this is a good thing, as they have either their own (bad) soft volume implementation, or control the system mixer. With ao_pulse, the situation is a bit different: it supports per-application volume (i.e. volume control is not really global). More importantly, ao_pulse uses a rather large audio buffer, and changing the volume with mplayer's volume filter has a large delay. With the native ao_pulse volume control, it's instant, because PulseAudio's audio filtering happens at a later stage in its processing pipeline (inaccessible for mplayer). This means native volume control should really be allowed for ao_pulse, while it's the reverse for other audio outputs. Make --softvol a choice option, and add a new "auto" choice. This is default and will use PA's volume control with ao_pulse, and mplayer's volume filter otherwise (i.e. the old softvol behavior).
* configure: make --enable-openal use auto detectionwm42012-09-231-1/+1
| | | | | | | | | | | OpenAL is disabled by default, because it supposedly inteferes with some other configure tests and makes them fail silently. Previously, --enable-openal followed configure's utterly braindead semantics and disabled auto detection. However, since OpenAL was disabled by default, there was no easy way to enable OpenAL at all, even if it was explicitly requested. Solve this by making --enable-openal use auto detection.
* options: make cache option always per-filewm42012-09-233-6/+12
| | | | | | | | | | | When playing a network stream, the cache is automatically enabled. We don't want the cache to stay enabled when playback ends. (For example, the next file to be played could be a local file, and even if that is relatively contrieved, we want to do the right thing.) Introduced the flag M_OPT_LOCAL to force an option to be always file local. This allows enabling the old mplayer semantics on a per option basis.
* mplayer: fix abort command handlingwm42012-09-231-14/+10
| | | | | | | | | | Now it actually aborts, even if the abort command is not the first command. Make a policy change: commands before the abort command are silently thrown away. Previously, normal commands were run after the abort command finished (so they were run out of order). I'm not sure which way is the best, all things considered, but the new way is simpler.
* getch2: request at least 1 byte of input each readRudolf Polzer2012-09-191-1/+1
| | | | | | | | fixes issue with | less, where mplayer broke less's terminal expectations and made less quit Note this means that read() will be blocking again. Should be ok, as we always check via select() before reading.
* mp_msg: use stdout for all output except status; put status on stderrRudolf Polzer2012-09-191-2/+2
| | | | improves interaction with | less, | grep, ...
* mp_msg: enable --msgcolor by default; force it off if stdout is no ttyRudolf Polzer2012-09-191-7/+14
|
* mplayer: unbreak OSD with CONFIG_ENCODING undefinedwm42012-09-182-12/+1
| | | | | | | | | | | | | | Basically, the encoding code path wanted to set osdlevel=0 as default, while normal playback needs osdlevel=1. For this purpose, osdlevel was set to -1 (i.e. invalid) initially to detect whether the --osdlevel option was explicitly set. When encoding was not configured (CONFIG_ENCODING undefined), the osdlevel value was not set from -1 to 1 properly, and the OSD remained invisible by default. Fix this by getting rid of this logic. It shouldn't be needed, since osdlevel=1 never shows any OSD messages without user interaction. Should this ever change, we could still check whether encoding is in progress, or add another option to allow OSD rendering during encoding.
* options: rename noconfig to no-config, nocache to no-cachewm42012-09-181-2/+2
| | | | This how it's supposed to be. The manpage has the correct names.
* cocoa_common: make fullscreen menubar/dock hiding conditionalStefano Pigozzi2012-09-181-1/+9
| | | | | | | | | | cocoa_common was hiding the dock and menubar unconditionally when going fullscreen. This means they were hidden even if they weren't on the screen mplayer2 was going fullscreen on, resulting in poor user experience. Change the fullscreen function in the cocoa backend to check that mplayer2 is on the same screen as the menubar/dock before hiding them.
* encode: video encoding now supported using mencoder-like optionsRudolf Polzer2012-09-1826-33/+3208
|
* TOOLS: add a new file identifier toolRudolf Polzer2012-09-181-0/+165
| | | | | It can provide properties of a file to the user on stdout, or when sourced by a script, put them into its variables.
* commands: allow printing raw propertieswm42012-09-181-4/+9
| | | | | |