summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* encoding-example-profiles: support HP Slate 7's weird aspect.Rudolf Polzer2013-11-021-5/+37
| | | | Also, replace broken noup= by lavfi expressions.
* gl_x11: change error message when GL3 context creation failswm42013-11-021-1/+1
| | | | | | | | | | | | | | On systems that provide legacy OpenGL (up to 2.1), but not GL3 and later, creating a GL3 context will fail. We then revert to legacy GL. Apparently the error message printed when the GL3 context creation fails is confusing. We could just silence it, but there's still a X error ("X11 error: GLXBadFBConfig"), which would be quite hard to filter out. For one, it would require messing with the X11 error handler, which doesn't even carry a context pointer (for application private data), so we don't even want to touch it. Instead, change the error message to inform the user what's actually happening: a fallback to an older version of OpenGL.
* getch2: assume EOF when input file descriptor is invalidwm42013-11-021-2/+5
| | | | | | | | | | | | | | | | When starting mpv with nohup, file descriptor 0 seems to be invalid for some reason. (I'm not quite sure why it should be... /proc/pid/fd/0 seems to indicate it's just /dev/null, and using /dev/null explicitly shows that it works just fine.) select() will always immediately return, and this causes mpv to burn CPU without reason. Fix this by treating it as EOF when read() returns EBADF. Also add EINVAL to this condition, because it seems like a good idea. Conflicts: osdep/getch2.c
* cocoa: apply the more invasive constraining only with cmd+1/2/3Stefano Pigozzi2013-11-021-2/+10
| | | | | Regression from bc49957 Fixes #321
* x11: fix border togglingwm42013-11-022-2/+5
| | | | | | | | | | | | | Trying to toggle the border during fullscreen (with "cycle border") would leave the window stuck without border, and it couldn't be restored. This was because vo_x11_decoration() always excepted to be called when toggling the state, and thus confusing the contents of the olddecor variable. Add got_motif_hints to hopefully prevent this. Also, when changing the border, don't take fs in account. May break on older/broken WMs, but all in all is in fact more robust and simpler, because you do not need to update the border state manually when returning from fullscreen.
* vo_xv: check whether image allocation succeedswm42013-11-021-6/+24
|
* gl_common: suggest --vo=opengl-old if OpenGL 2.1 missingwm42013-11-021-1/+6
| | | | | | | If the caller requests at least OpenGL 2.1 (which --vo=opengl does), but we get OpenGL 1.x, suggest using opengl-old. Based on a patch by pfor on IRC.
* mpvcore: add a note about desync on track switchesBen Boeckel2013-11-021-0/+1
|
* osc: make sure the OSC actually fits into the videoChrisK22013-11-021-1/+7
|
* ao_alsa: don't include alloca.hwm42013-11-022-2/+0
| | | | | | | | It's true that ALSA uses alloca() in some of its API functions, but since this is hidden behind macros in the ALSA headers, we have no reason to include alloca.h ourselves. Might help with portability (FreeBSD).
* README: add a link to the wiki about the FFmpeg vs. Libav issuewm42013-11-021-0/+8
|
* manpage: clarify --heartbeat-interval operationwm42013-11-021-0/+5
|
* x11_common: reduce screensaver heartbeat from 30 to 10 secondswm42013-11-021-1/+1
| | | | | Apparently this fixes issues with Gnome, which has a smaller timeout. See github issue #315.
* cocoa: constraint the window position a little moreStefano Pigozzi2013-11-021-1/+6
| | | | | The intention of this is to not make the window go outside the screen when changing dimensions from 2x to .5x.
* mplayer: make --length relative to actual start of file, instead of 0wm42013-11-021-1/+2
| | | | | We always use the file's timestamps, so the start time can be easily something different from 0. Make the --length option respect this.
* wayland: fix fullscreen transparent border regionsAlexander Preisinger2013-11-022-22/+30
| | | | | | | The default behavior of weston changed some time ago to not fill the surface black for fullscreen windows. Now let mpv draw the whole screen in fullscreen mode.
* cocoa: fix opening quarantined files on 10.9 with the bundle [2]Stefano Pigozzi2013-11-021-2/+2
| | | | Fixup commit for bbc146927
* cocoa: fix opening quarantined files on 10.9 with the bundleStefano Pigozzi2013-11-021-2/+7
| | | | | | | It looks like on Mavericks the Finder is passing different arguments to mpv depending on whether the opened file is quarantined or not. Fixes #285
* cocoa: fix race condition with input context creationStefano Pigozzi2013-11-022-0/+14
| | | | | | | | | | This seems to be a problem only in OS X 10.9. I guess they improved the general speed of the Cocoa startup and suddenly mpv core takes more time than the Cocoa thread to initialize. Fixes #285 (hopefully!)
* gl_video: add RGB10_A2 FBO formatwm42013-11-022-2/+3
| | | | Maybe this can be the default in the future, but I'm not sure yet.
* ao_pcm: big endian AC3 in wav doesn't workwm42013-11-021-1/+0
| | | | | | | | At least not with ffmpeg. Honestly, I have no idea how little endian AC3 works at all, since ao_pcm doesn't do anything special about it, and treats it like s16le. Maybe it's broken and ffmpeg has special logic to detect it.
* mplayer: don't call libquvi for local fileswm42013-11-021-0/+2
| | | | | | | | | | | This is obviously not needed, and just creates potential for bad breakages (e.g. what happens if libquvi tries to open a normal filename as http URL?). Note that for simplicity, we still pass file:// URIs to quvi, and we don't exclude other protocol prefixes either. In general, we don't know what protocols quvi might support, so we don't try to second-guess it. (Even though in practice, it's probably only "http" and "https".)
* cocoa: set and clear gl context inside of sync sectionsStefano Pigozzi2013-11-021-6/+6
| | | | | | | The code did not set and unset the current context inside sync sections. I am not sure if this was an actual problem but this is better since the context is linked to a single thread. In my brief tests this seems to avoid garbage to show up in fullscreen.
* Release 0.2.1v0.2.1wm42013-10-201-1/+1
|
* input: fix --input-ar-rate=0wm42013-10-201-1/+1
| | | | Crashed, instead of disabling auto-repeat.
* wayland: use mp_input_test_draggingAlexander Preisinger2013-10-202-3/+8
| | | | | | Instead of removing dragging we now test if it we should drag the window or not. Because if the OSC shows up we can not drag the window because that would cause mouse events that makes the OSC disappear.
* Revert "wayland: remove moving window by grabbing"Alexander Preisinger2013-10-201-0/+4
| | | | This reverts commit 3308bc2bc919cb8fadddad04e48b94d4e9324a34.
* Revert "wayland: remove outdated comment"Alexander Preisinger2013-10-201-0/+2
| | | | This reverts commit d75cfef49c271e43317666451f17c55e6747e564.
* vdpau_old: restore hardware decoding with old APIwm42013-10-201-0/+1
| | | | --hwdec=vdpau did nothing with older ffmpeg/libav versions. Oops.
* af_lavrresample: actually free resamplerwm42013-10-201-0/+3
| | | | Fixes #304.
* mpv.desktop: add russian translation, sortNikoli2013-10-201-1/+3
|
* sws_utils: work around libswscale crash with --contrast=-100wm42013-10-201-1/+2
|
* vf_scale: fix get/set confusionwm42013-10-201-1/+1
| | | | This caused the equalizer controls to appear stuck.
* spelling fixesAlessandro Ghedini2013-10-203-5/+5
|
* Release 0.2.0v0.2.0wm42013-10-161-0/+1
|
* docs: osc: add short info about lua and how to disable itChrisK22013-10-151-0/+3
|
* changes.rst: add some replaced options, follow conventions betterwm42013-10-151-4/+6
|
* docs: osc: fix table and other errorsChrisK22013-10-151-11/+18
|
* docs: Add osc.rst to mpv.rstChrisK22013-10-152-3/+5
| | | | Also moved OPTIONS headline into options.rst
* osc: fix borked optionsChrisK22013-10-151-13/+13
|
* osc docs: Add documentation for OSC and rename some optionsChrisK22013-10-152-6/+194
| | | | camelCase from some of the option names removed. If you were using those, you'll have to update them in your config.
* x11_common: don't handle mouse enter eventswm42013-10-151-5/+1
| | | | | | | | | | | | | | | | | | | | This could cause the OSC to be displayed without mouse interaction: for example, starting mpv with --fs, and putting the mouse to where the OSC area is beforehand, would cause the OSC to appear and stay visible. We don't want that. The simplest solution is not generating artificial mouse move events from mouse enter events, because they make the OSC think the mouse was actually moved. Also see commit 0c7978c, where handling of mouse enter events was added. This was supposed to fix certain corner cases, but they're not relevant anymore due to changes in OSC behavior. Commit 9777047 fixed this as well (by resetting the mouse state on MOUSE_LEAVE), but all the behavior reverted with this commit as perhaps a bad idea. It wasn't very robust, made it hard to distinguish real events from artificial ones, and finally made the mouse cursor more often visible than needed. (Now switching between workspaces doesn't make the cursor visible again when switching to a fullscreened mpv.)
* tech-overview.txt: reflect talloc/TA changeswm42013-10-151-0/+6
|
* osc: reset mouse position when leaving windowChrisK22013-10-151-4/+9
| | | | and store it freshly on first mouse_move event when entering again
* osc: Don't create a config if none exists.ChrisK22013-10-151-19/+14
| | | | A documentation explaing where and how to create one instead will follow.
* osc: use "info" instead of "warn" for config file creation messagewm42013-10-141-1/+1
| | | | | When the main mpv config file, "info" is used, so this makes things consistent.
* example.conf: add example for disabling the OSCwm42013-10-141-0/+3
|
* parser-cfg: allow putting options with leading "--"wm42013-10-141-0/+3
| | | | | | | | | | | Now you can pretend the config file is quite literally command line values dumped into a file, e.g. --option1=value --option2=value ... although the underlying mechanisms are quite different.
* parser-cfg: use bstr everywhere after parsing stagewm42013-10-143-7/+8
| | | | | | Until now it used both char[] and bstr variants in the same code, which was nasty. For example, the next commit would have additionally required using memmove() to remove the prefix from the char[] string.
* options: enable OSC by defaultwm42013-10-141-0/+1
| | | | Can can disable it with --osc=no.
* mplayer: escape strings if needed when writing watch_later configwm42013-10-141-2/+19
| | | | | | | | | This fixes handling of e.g. "--vf=lavfi=[ noise ]" when used with playback resume functionality. The spaces made it bug out, and there are more cases where it could potentially break. We could always escape for simplicity, but for now make old and new mpv builds somewhat interoperable and use this new escaping only if needed.
* parser-cfg: parse % escapeswm42013-10-141-7/+31
| | | | | | | | | | This parses "%len%string" escapes, where string can contain any characters. This method of escaping has also been used in other parts of mplayer and mpv, so it's not a new idea. (Also, don't confuse with URL encoding.) Needed by the following commit.
* version.sh: don't use git tags for version output (again)wm42013-10-141-5/+10
| | | | | | | | | | | | | | | With the way I've been doing releases in the release/0.1 branch, this proved completely useless. You need to write the VERSION file anyway, and since we use github's automatically generated tarballs (via its release system), the VERSION file needs to be in the git revision of a release anyway. git master on the other hand displayed the v0.1.0 tag, because the tag is within the master branch. This essentially reverts commit b27f65a. Now just print the contents of the VERSION file if it exists, and likewise, we append the git revision if it exists. (Do that even if VERSION exists, because this way we can tell if someone is using the release branch at an in-between point where no new release has been made yet.)
* mplayer: print ffmpeg library versions along with mpv version infowm42013-10-143-16/+33
| | | | | | | | | | Also change what the FFmpeg version info looks like, and additionally dump lavfi/lavr/lswr versions. (Don't bother with libavdevice and libpostproc, they're not important enough.) Unfortunately, there's no "single" FFmpeg/Libav version due to fatal braindeath on the FFmpeg/Libav side. We can't map the versions to releases either (it simply isn't accessible anywhere).
* osc: raise minmousemove default setting to 3 and disable input mouse area ↵ChrisK22013-10-141-6/+11
| | | | | | when OSC not visible The mouse area that covers the OSC is now only activated when the OSC is actually visible, to make sure the mouse still hides if it happens to be parked in the OSC area without making the OSC show up.
* mplayer, vo_image: simplify OSD redrawing, fix vo_image crashwm42013-10-132-11/+1
| | | | | | | | | | | | | | | | | | vo_image didn't handle OSD redrawing correctly anymore after OSD redrawing behavior was changed in commit ed9295c (or maybe it has been a problem for a longer time, and only showed up now). Basically, flip_page was called unexpectedly and when no image was stored, which made it crash trying to access the image. This could happen when for example provoking OSD redrawing by pausing while using --vo=image, or by using this command line: mpv --vo=image '-vf=lavfi="select=not(mod(n\,3))"' Fix by removing the code that pretends vo_image can redraw OSD, and by removing the framestepping fallback, which could make bad things happen if the VO didn't support OSD redrawing. By now, there aren't any real VOs that can't redraw the OSD properly, so this code is not needed and just complicates things like vo_image. This change likely will also be useful for vo_lavc (encoding).
* mplayer: print a warning if libass is not compiledwm42013-10-131-0/+3
| | | | | | Libass is technically an optional dependency, but in practice users tend to disable libass accidentally or for the hell of it to get something "minimal", without being aware of the consequences.
* osc: fix mouse hidingChrisK22013-10-131-2/+2
|
* osc: Once again new Show/Hide handlingChrisK22013-10-131-7/+34
| | | | | | | The deadzone-size is now by default zero, so movement on the entire window will make the OSC show up. To avoid it showing up by randomly moving mice, the option 'minmousemove' controls how many pixels movement (default: 1) between ticks (frames) are necessary to make the OSC show up. The deadzone can be reenabeled by setting the option 'deadzonesize' (default: 0 = no deadzone, 1 = entire area between OSC and opposite window border), to restore the old behavior, set it to ~0.92. The OSC will hide immediately when leaving the window or entering the deadzone (if existing) or after the time specified with 'hidetimeout' (default: 500ms) passed without any new movement. Set to negative value to disabling auto-hide (thus restoring old behavior). The OSC will never hide if hovered by the mouse.
* Copyright, LICENSE: switch to GPL version 2 or laterwm42013-10-136-653/+303
| | | | | | | | | | | | | | | Now that talloc has been removed, the license can be switched back to GPLv2+. Actually, there never was a GPLv2+ licensed MPlayer (fork or not) until now, but removal of some GPLv2-only code makes this possible now. Rewrite the Copyright file to explain the reasons for the licenses MPlayer and forks use. The old Copyright file didn't contain anything interesting anymore, and all information it contained is available at other places in the source tree. The reason for the license change itself is that it should improve interoperability with differently licensed code in general. This essentially reverts commit 1752808.
* Replace tallocwm42013-10-139-1928/+1098
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are multiple reasons to do this. One big reason is the license: talloc is LGPLv3+, which forces mpv to be licensed as GPLv3+. Another one is that our talloc copy contains modifications, which makes it essentially incompatible with upstream talloc (in particular, our version aborts on out of memory conditions - well, it wasn't my idea). Updating from upstream is also a bit involved - the talloc source is not really organized in a way to allow copying it into projects (and this isn't an intended use-case). Finally, talloc is kind of big and bloated. The replacement halves the amount of code - mainly because we didn't use all talloc features. It's even more extreme if you compare upstream talloc (~4700 lines) and the new allocator without talloc compat (~900 lines). The replacement provides all features we need. It also doesn't clash with talloc. (The talloc compatibility wrapper uses macros to avoid introducing linker-level symbols which could clash with libtalloc.) It also tries to lower the overhead (only 4 words opposed to 10 words in talloc for leaf nodes in release mode). Debugging features like leak reporting can be enabled at compile time and add somewhat more overhead. Though I'm not sure whether the overhead reduction was actually successful: allocations with children need an "extra" header, which adds plenty of overhead, and it turns out that almost half of all allocations have children. Maybe the implementation could be simplified and the extra header removed - even then, overhead would be lower than talloc's. Currently, debugging features can be entirely deactivated by defining NDEBUG - I'm not sure if anything defines this directly yet, though. Unlike in talloc, the leak reporting stuff is thread-safe. (That's also why it's far less elegant, and requires extra list pointers.) Comes with a compatibility layer, so no changes to mpv source code are needed. The idea is that we will pretend to be using talloc for a while, so that we can revert to our old talloc implementation at any time for debugging purposes. Some inspiration was taken from Mesa's ralloc: http://cgit.freedesktop.org/mesa/mesa/tree/src/glsl/ralloc.h This is another talloc replacement, but lacks some features we need (getting size of an allocation, debugging features, being able to access children in the dtor). There's some information in ta/README what will happen next and how the transition is expected to progress.
* talloc: change talloc destructor signaturewm42013-10-138-30/+14
| | | | | | | | | | | | | Change talloc destructor so that they can never signal failure, and don't return a status code. This makes our talloc copy even more incompatible to upstream talloc, but on the other hand this is preparation for getting rid of talloc entirely. (The talloc replacement in the next commit won't allow the talloc_free equivalent to fail, and the destructor return value would be useless. But I don't want to change any mpv code either; the idea is that the talloc replacement commit can be reverted for some time in order to test whether the talloc replacement introduced a regression.)
* cocoa: make --ontop also cover dock+menubarStefano Pigozzi2013-10-121-1/+3
| | | | | This only shows any differences when mpv isn't frontmost and is in fullscreen. Cmd+Tab overlay is still at a higher level as to avoid complete usability fail.
* command: preferably show "add"/"cycle"/"set" command errors on OSDwm42013-10-121-10/+10
| | | | | | Before this, they were shown on terminal only. Now they use the OSD mechanism, which shows them on the video window or the terminal, depending on settings and what's available.
* command: don't allow changing volume if no audio initializedwm42013-10-123-0/+12
| | | | | | | | | | | | | | | | | | | | | | | Changing volume when audio is disabled was a feature request (github issue #215), and was introduced with commit 327a779. But trying to fix github issue #280 (volume is not correct in no-audio mode, and if audio is re-enabled, the volume set in no-audio mode isn't set), I concluded that it's not worth the trouble and the current implementation is questionable all around. (For example, you can't change the real volume in no-audio mode, even if the AO is open - this could happen with gapless audio.) It's hard to get right, and the current mixer code is already hilariously overcomplicated. (Virtually all of mixer.c is an amalgamation of various obscure corner cases.) So just remove this feature again. Note that "options/volume" and "options/mute" still can be used in idle mode to adjust the volume used next time, though these properties can't be used during playback and thus not in audio-only mode. Querying the volume still "works" in audio-only mode, though it can return bogus values.
* playlist: check for NULL on caller sitewm42013-10-122-2/