summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ao_jack: use new option APIwm42013-07-222-73/+35
|
* ao_oss: switch to new option APIwm42013-07-211-31/+30
|
* options: remove --mixer and --mixer-channel, turn them into alsa/oss suboptswm42013-07-217-59/+33
| | | | | | These two options were supported by ALSA and OSS only. Further, their values were specific to the respective audio systems, so it doesn't make sense to keep them as top-level options.
* ao_rsound: use new option APIwm42013-07-211-27/+17
| | | | | Untested. I don't even know if this compiles. I have no clue what rsound even is.
* ao_sdl: use new option APIwm42013-07-211-29/+19
|
* ao_openal: use new option APIwm42013-07-211-42/+29
|
* ao_pulse: use new option APIwm42013-07-211-17/+14
| | | | Untested, but should be fine.
* options: hide encoding AO/VO in help outputwm42013-07-214-2/+8
| | | | | These can't be used manually. Encoding is enabled with -o instead, and the encoding AO/VO is selected using internal mechanisms.
* ao_alsa: use new option API (changes syntax)wm42013-07-212-69/+35
| | | | | | | | | | | | This changes how device names are handled. Before this commit, device names were mangled in strange ways to avoid clashing with the option parser syntax. "." was replaced with ",", and "=" with ":" (the user had to do the inverse to get the correct device name). The "new" option parser has multiple ways to escape option strings, so we don't need this confusing hack anymore. Add an explicit note to the manpage as well.
* ao_pcm: use new option APIwm42013-07-211-16/+12
|
* ao_portaudio: use new option APIwm42013-07-211-32/+35
| | | | | This basically serves as example. All other AOs should be ported as well.
* options: use new option code for --aowm42013-07-215-106/+96
| | | | This requires completely refactoring the AO creation code too.
* mplayer: simplify AO creationwm42013-07-211-13/+22
| | | | | | The AO creation part was split into two separate parts (one calling ao_create and one calling ao_init). This didn't really have good reasons, and obfuscates how AO creation works. Put them together.
* options: use new code for parsing --vowm42013-07-216-151/+84
| | | | | | | | | Nothing should change from user perspective. mpv --vo=opengl:help now works. Remove the vo_opengl inline help text. The new code can list option names for you, but that's it. Refer to the manpage if you have trouble.
* options: add some features to video filter parserwm42013-07-212-9/+80
| | | | | | | | | | | | | | | | | | This is in preparation of making VOs and AOs use the parser which originally was for video filters only. The --vo and --ao options have several very annoying features, which are added here: - They can skip unknown video outputs (might be useful if a config file is supposed to work on several systems, where not all VOs/AOs are available everywhere) - The trailing "," in "-vo a,b," was significant, and meant that if "a" and "b" don't work, try the normal autoprobe order as fallback - There were deprecated VO names (like "gl3" and "gl"), which have to be handled with the option parser - Separating VO/VF names and options is different ("-vf foo=opts" vs. "-vo foo:opts") - vo_opengl.c provides opengl-hq as opengl + preset options
* m_option: fix memory leak on error pathwm42013-07-211-2/+4
|
* m_config: improve option list output a bitwm42013-07-212-19/+27
| | | | | | | | This is printed with --list-options or e.g. --vf=lavfi=help. Note that in theory, the options should be able to print their own help, and we shouldn't special case certain types (like m_option_type_choice in the commit). But that is too hairy for now, so we don't do it.
* options: use m_config for options instead of m_structwm42013-07-2120-349/+342
| | | | | | | | | | | | | | | | | | For some reason, both m_config and m_struct are somewhat similar, except that m_config is much more powerful. m_config is used for VOs and some other things, so to unify them. We plan to kick out m_struct and use m_config for everything. (Unfortunately, m_config is also a bit more bloated, so this commit isn't all that great, but it will allow to reduce the option parser mess somewhat.) This commit also switches all video filters to use the option macros. One reason is that m_struct and m_config, even though they both use m_option, store the offsets of the option fields differently (sigh...), meaning the options defined for either are incompatible. It's easier to switch everything in one go. This commit will allow using the -vf option parser for other things, like VOs and AOs.
* manpage: fix typowm42013-07-211-1/+1
|
* vf: remove unnecessary indirectionwm42013-07-212-26/+5
|
* cocoa_common: fix regression in draggable state computationStefano Pigozzi2013-07-211-0/+1
| | | | Regression introduced in 8fb064de5. Prevented the OSC from working correctly.
* cocoa_common: fix styleStefano Pigozzi2013-07-211-2/+2
|
* cocoa_common: move tracking area setup to updateTrackingAreasStefano Pigozzi2013-07-211-14/+13
| | | | This makes the tracking area work when going in and out of fullscreen.
* x11: add key modifiers to mouse button eventswm42013-07-211-13/+19
|
* command: fix switching tracks backwards if there's only one trackwm42013-07-211-1/+2
| | | | This remained stuck at no selection.
* input.rst: update examplewm42013-07-211-1/+1
| | | | Option was renamed.
* w32_common: show the cursor in the window borderJames Ross-Gowan2013-07-212-6/+22
| | | | | | | | | | | | | | | | | | When the cursor was in the window border, it could be hidden but it wouldn't appear again, since mpv doesn't process mouse input there. The code used ShowCursor, which is a horrid stateful API designed for mouseless Win16 systems that incremented or decremented a global counter to keep track of how many applications needed to display a special cursor (like a busy cursor.) Replace that with a simple flag, handle WM_SETCURSOR and use SetCursor(NULL) to hide the mouse cursor, but only when the mouse is in the client area. DefWindowProc will set the correct cursor on the border as long as it isn't hidden with ShowCursor. PowerPoint also uses SetCursor(NULL) to hide the cursor when showing a presentation, so it's probably safe. See http://blogs.msdn.com/b/oldnewthing/archive/2009/12/17/9937972.aspx
* cocoa_common: handle keyboard modifiers for mouse eventsStefano Pigozzi2013-07-214-60/+75
|
* input: Ignore spurious mouse movesDiogo Franco (Kovensky)2013-07-211-0/+4
| | | | | | | | | | | | Windows generates WM_MOUSEMOVE messages internally whenever the window manager wants to know where the mouse is[1] and broadcasts that to everyone; w32_common doesn't check whether the position is different and just (indirectly) calls this. Do the check on input.c since it's possible some other VO or frontend also do the same thing. [1]: http://blogs.msdn.com/b/oldnewthing/archive/2003/10/01/55108.aspx
* configure: Add some -Wno-error= flags to ERRORFLAGSDiogo Franco (Kovensky)2013-07-211-2/+2
| | | | | -Wno-error=deprecated-declarations and -Wno-error=unused-function. Lets mpv compile with --extra-cflags=-Werror with gcc 4.8.1.
* Merge remote-tracking branch 'michaelforney/master'Alexander Preisinger2013-07-201-2/+11
|\
| * wayland: Fallback to any GL version if 3.0 is not supportedMichael Forney2013-07-191-2/+11
| | | | | | | | This fixes playback on Wayland with older GPUs.
* | cocoa_common: make the fullscreen transition only when necessaryStefano Pigozzi2013-07-201-5/+16
| | | | | | | | | | This makes the cocoa backend follow more closely the new fullscreen semantics added in c4b08a9a.
* | sd_ass: remove unused variable warningStefano Pigozzi2013-07-201-1/+1
| | | | | | | | The `track` variable is used only if `LIBASS_VERSION >= 0x01020000`.
* | cocoa_common: use a tracking area to handle mouse eventsStefano Pigozzi2013-07-201-33/+52
| | | | | | | | | | | | | | | | | | This change which also flipse the coordinate system of the view, greatly simplifies the mouse event handling code. There are still some uglities mostly related to the cursor visibility code. For instance the core doesn't show the cursor when it receives a mouse leave event.
* | cocoa_common: fix typo in commentStefano Pigozzi2013-07-201-1/+1
| | | | | | | | Surely it's copy pasta's fault.
* | cocoa_common: implement MP_MOUSE_LEAVE notificationsStefano Pigozzi2013-07-201-0/+2
| | | | | | | | | | This is needed for the OSC. At the moment I'm sending a notification for any mouse movement outside of the video surface. This might be overkill.
* | cocoa_common: implement conditional video draggingStefano Pigozzi2013-07-201-14/+30
| | | | | | | | | | | | This was more roundabout than expected, since it looks like the framework caches isMovabileByWindowBackground so in mpv's case it's needed to set it with setMovableByWindowBackground.
* | ao_wasapi0: Don't starve the WASAPI thread on seeksDiogo Franco (Kovensky)2013-07-201-6/+11
| | | | | | | | | | | | | | | | | | | | Seeking calls thread_reset, but doesn't call thread_play. thread_reset would disable WASAPI events, but they would never get re-enabled unless the user paused and then unpaused. Keep track of whether the stream is paused or not (there already was a field for that, but it was apparently unused), and if it's not paused, call thread_play after thread_reset. Fixes mpv freezing after seeks.
* | ao_wasapi0: Don't release WASAPI buffer twiceDiogo Franco (Kovensky)2013-07-201-0/+1
| | | | | | | | Would cause bogus AUDCLNT_E_OUT_OF_ORDER errors.
* | ao_wasapi0: Make it compile on cygwin64Diogo Franco (Kovensky)2013-07-201-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes format specifies that assume windows TYPEDEFS are as long as they look like they are. Remove calls to _beginthreadex and _endthreadex, these are only present on microsoft's C runtimes. Replace by the otherwise identical CreateThread and ExitThread calls. This actually requires fixes to devicetopology.h, but the problem has been (kinda) reported to mingw-w64: <Kovensky> I see that those KSJACK* structs are supposedly declared in devicetopology.h itself, but for some reason (some of?) the decls that use them aren't seeing them? <Kovensky> ok, it seems that it expects ks.h and ksmedia.h to declare those structs, but it doesn't <Kovensky> the included files declare KDATAFORMAT, KSIDENTIFIER and LUID (and the associated pointer typedefs) <Kovensky> but everything else is essentially inside #if 0 <Kovensky> changing the #ifndef _KS_ to only include KDATAFORMAT, KSIDENTIFIER and LUID (and putting the KSJACK stuff outside that #ifndef) makes the header compile <Kovensky> it solves my immediate problem, but if that happened to begin with there's probably something more wrong with the ks headers :S
* | direct3d: Fixes format string that assumed sizeof(LONG) == sizeof(long)Diogo Franco (Kovensky)2013-07-201-1/+2
| |
* | mp_msg: fixes windows code that assumes sizeof(DWORD) == sizeof(long)Diogo Franco (Kovensky)2013-07-201-1/+1
| |
* | m_option: remove unused definitionswm42013-07-201-9/+0
| |
* | cache: fix time check for printing warningwm42013-07-201-1/+1
| | | | | | | | | | This actually waited 2 seconds, because CACHE_WAIT_TIME happened to be 0.5.
* | demux_mkv: fix realaudio timestampswm42013-07-201-2/+2
|/ | | | | | | This fixes the sample RA_missing_timestamps.mkv. Pretty funny how this code got it almost right, but not quite, so it was broken all these years. And then, after everyone stopped caring, someone comes and fixes it. (By the way, I know absolutely nothing about realaudio.)
* wayland: use a unified struct for the stateAlexander Preisinger2013-07-183-297/+283
| | | | | | | | | | This commit removes the pointer to the single different structures for input and window and puts them as anonymous structures inside the wayland_state structure. This has the disadvantage of passing the substructure to the listeners, but the advantage is that we don't have to allocate them and check for NULL pointers. This makes it more reliable and easier to follow.
* wayland: don't resize in gl_wayland.cAlexander Preisinger2013-07-182-7/+1
| | | | | | The vo_wayland_fullscreen handles resizing for the video, because the video could still be in fullscreen mode and resizing it in gl_wayland could make it grow or shrink.
* video: remove fullscreen flags chaoswm42013-07-1815-93/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There was a MPOpts fullscreen field, a mp_vo_opts.fs field, and VOFLAG_FULLSCREEN. Remove all these and introduce a mp_vo_opts.fullscreen flag instead. When VOs receive VOCTRL_FULLSCREEN, they are supposed to set the current fullscreen mode to the state in mp_vo_opts.fullscreen. They also should do this implicitly on config(). VOs which are capable of doing so can update the mp_vo_opts.fullscreen if the actual fullscreen mode changes (e.g. if the user uses the window manager controls). If fullscreen mode switching fails, they can also set mp_vo_opts.fullscreen to the actual state. Note that the X11 backend does almost none of this, and it has a private fs flag to store the fullscreen flag, instead of getting it from the WM. (Possibly because it has to deal with broken WMs.) The fullscreen option has to be checked on config() to deal with the -fs option, especially with something like: mpv --fs file1.mkv --{ --no-fs file2.mkv --} (It should start in fullscreen mode, but go to windowed mode when playing file2.mkv.) Wayland changes by: Alexander Preisinger <alexander.preisinger@gmail.com> Cocoa changes by: Stefano Pigozzi <stefano.pigozzi@gmail.com>
* vo: remove aspdat.asp memberwm42013-07-182-3/+1
| | | | | | This was bad, because it was the only aspdat member updated by vo_get_src_dst_rects() instead of vo_reconfig(). Now it isn't accessed anymore, so remove it.
* gl_video: add support for more rgb formatswm42013-07-182-56/+119
| | | | | | | | | | | | | | | Until now, only formats directly supported by OpenGL were supported. This excludes various permutations of 8-bit RGB[A|0]. But we can simply permutate the color channels in the shader, so do that. This also adds support for all these weird RGB0 formats. Note that we could use libavutil's pixfmt list instead of the mp_packed_formats array, but trying to decrypt the pixfmt info would probably end in pain, so this array with duplicated information is actually better and shorter. Note: I didn't actually test whether the alpha components are reproduced correctly with alpha formats.
* img_format: comment on some pixel formatswm42013-07-181-7/+9
|
* img_format: add a mask for color classwm42013-07-183-4/+5
| | | | | | | Using the term "color class" to avoid confusion with the other colorspace related concepts. Also get rid of MP_IMGFLAG_FMT_MASK, since it was unused.
* sws_utils: make hq swscale flags available with mp_sws_hq_flagswm42013-07-183-7/+8
| | | | No need to duplicate this on the call-site.
* sws_utils: don't recursively include libswscale headerwm42013-07-185-1/+5
| | | | Add libswscale includes where they are actually needed instead.
* sws_utils: remove some old codewm42013-07-182-76/+0
|
* vo_x11: use new swscale wrapperwm42013-07-181-28/+20
|
* mp_image: one utility function to set image parameterswm42013-07-182-0/+14
|
* vf_scale: use new swscale wrapperwm42013-07-182-163/+60
|
* vf: make sure less important image params are set before/after filterswm42013-07-181-14/+21
| | | | | | | | Image parameters like colorspace, color levels, and chroma location are generally less important, and many filters don't set them correctly. Force them instead in the generic VF code, which is probably better and more convenient over all. So we designate this is a proper solution, instead of a dirty hack.
* sws_utils: refactor swscale wrapper codewm42013-07-184-63/+197
| | | | | | | | | | This splits the monolithic mp_image_swscale() function into a bunch of functions and a context struct. This means it's possible to set arbitrary parameters (e.g. even obscure ones without getting in the way), and you don't have to create the context on every call. This code is preparation for removing duplicated libswscale API usage from other parts of the code.
* vf_scale: remove rounding of sizes to 2 with 4:2:0wm42013-07-181-11/+0
| | | | | | | | | libswscale doesn't seem to require this (anymore?), and libavfiltert's vf_scale doesn't do it either. Moreover, this wasn't done for most other subsampled formats, not even very old ones. So just remove it. (It'd be quite easy to align on chroma boundaries with all pixel formats, though.)
* vf_scale: try to support all pixel formatswm42013-07-181-1/+25
| | | | | | | | | Until now, vf_scale only tried formats listed in the outfmt_list array. Extend this and try every pixel format supported by mpv if trying outfmt_list doesn't lead to success. Also add some checks whether swscale really supports a given input or output format. This was implicitly done with outfmt_list before.
* vf_scale: don't byte-swap palette on big endian architectureswm42013-07-181-8/+0
| | | | | | ffmpeg's and the internal palette format used to have different endianess, but that is not the case anymore. This code was forgotten when that change was made.
* vf_scale: uncrustifywm42013-07-181-186/+207
|
* vo_x11: remove weird inactive codewm42013-07-181-15/+0
| | | | | | | | | | | | | | | | | | | | I guess this code was supposed to handle cases like drawing RGBA as ARGB by offsetting it by 1 byte. The code didn't make any sense, though. It used to make sense before mpv switched internal pixel formats from FourCCs to a simple enum. With the FourCCs, "fmt | 128" selected the big endian version of a format. Of course this doesn't work this way with the new pixel formats. It just so happens that there are no formats with whose values match IMGFMT_RGB32|128 or IMGFMT_BGR32|128, so this code was inactive. All involved pixel formats seem to play fine on my setup (though it's little endian only), and the code strictly matches the mpv pixel formats against the format of the X image, so I'm not quite sure why this code was there in the first place. The original commit that added this was b333ae1 (svn 21602): Support for different endianness on client and server with -vo x11
* Use /dev/cd0 as default cdrom device on FreeBSDGrzegorz Blach2013-07-161-1/+1
|
*