aboutsummaryrefslogtreecommitdiffhomepage
path: root/video
Commit message (Collapse)AuthorAge
* input: move files drag and drop to a new event.c fileGravatar Stefano Pigozzi2014-01-04
| | | | | event.c will be used to feed the input queue with 'global' events that don't mesh well with the usual check_events path in mpv.
* wayland/egl: misc fixes and cleanupsGravatar Alexander Preisinger2014-01-04
|
* wayland/egl: use redraw callbackGravatar Alexander Preisinger2014-01-04
| | | | | | | This solves the issue where we would not receive any frame events. The difference to my earlier tests is that now it looks like eglSwapBuffers uses it's own event queue or something similiar along the lines. Becaues the performance is the same as without any redraw callback.
* wayland/egl: add egl_context to the wayland stateGravatar Alexander Preisinger2014-01-04
| | | | | | | | | | | At the moment there are visual glitches when we resize the window. This happens because in wayland there a special function for resizing EGL windows. To prevent the glitches move the egl_context to the wayland state in wayland_common.h and add a new control function to gl_wayland.c to wrap the vo_wayland_control function to check for resize events. With the new control wrapper the glitches are gone and the resizing is fluid.
* wayland: Remove nonsense comment and add warningGravatar Alexander Preisinger2014-01-04
| | | | | | | | | The reason a segmentation happend here was because we couldn't get the requested minor version. The major version is enough for differentiating between OpenGL 3 and OpenGL 2. If it fails there is still a fallback to any version available. Also add a warning if we use the fallback.
* wayland: move workaround to fullscreen codeGravatar Alexander Preisinger2014-01-04
| | | | | Because of this workaround there was a bug in the wayland vo. Now it works on both vos (opengl and shm) as it should.
* wayland: implement dropping files on the VO windowGravatar Alexander Preisinger2014-01-04
| | | | Needs some proper testing.
* vo: dropping subtitle files on the VO window adds them as subtitle filesGravatar wm42014-01-04
| | | | | | | Note that we don't try to be clever about detecting the files as subtitles: we just check the file extension. We could go all the way and check the files by opening them with a demuxer, but that would probably do more bad than good.
* x11: implement dropping files on the VO windowGravatar wm42014-01-04
| | | | | | | | | | | | | | | | | | | | Drag and drop is pretty complicated (just note how the number of Atoms in use almost doubles), so I'm not sure whether this works everywhere. This has been written by looking at the specification [1] or what looks like the specification, and some external example code [2]. (The latter one has no code license, but we didn't copy any code.) We completely ignore the "requirement" of the spec. that the filename "must" include username and hostname, e.g. "file://user@host/path/file". In theory, this is required because X is network transparent, but at this point the so called network transparency is a complete joke, and Konqueror for one didn't include hostnames in "file://" URIs. Tested with konqueror as drop source. [1] http://www.newplanetsoftware.com/xdnd/ [2] http://www.edwardrosten.com/code/dist/x_clipboard-1.1/paste.cc
* vo: add vo_drop_files()Gravatar wm42014-01-04
| | | | Intended to be used for GUI drag & drop.
* vda: fix build on OS X 10.7Gravatar Stefano Pigozzi2014-01-02
| | | | | Looks like on 10.8 OpenGL.h recursively includes CGLIOSurface.h. That is not the case for 10.7 so the build was broken on that version of OS X.
* wayland/opengl: fix garbage bordersGravatar Alexander Preisinger2014-01-02
| | | | | It seems mpv draws garbage in those regions. Now we calculate the aspect and let weston draw the black borders.
* wayland/shm: only commit new framesGravatar Alexander Preisinger2014-01-02
| | | | | Only attach and commit new buffers. This also increases performance when paused.
* wayland: don't change set fullscreen twiceGravatar Alexander Preisinger2014-01-02
| | | | | Newest weston chrashes if we call set_fullscreen twice. This is a major bug I which I should probably report.
* video: fix --brightness etc. optionsGravatar wm42013-12-29
| | | | They were set before the VO was intitialized, which silently failed.
* vd_lavc: by default, output all frames, even corrupted onesGravatar wm42013-12-29
| | | | | | | | | | | | | | | | Set the flag CODEC_FLAG_OUTPUT_CORRUPT by default. Note that there is also CODEC_FLAG2_SHOW_ALL, which is older, but this seems to be ffmpeg only. Note that whether you want this enabled depends on the user. Some might prefer that only good frames are output, while others want the decoder to try as hard as possible to output _anything_. Since mplayer/mpv is rather the kind of player that tries hard instead of being "clever", set the new default to override libavcodec's default. A nice way to test this is switching video tracks. Since mpv doesn't wait for the next key frame, it'll start feeding the decoder with a packet from the middle of the stream.
* vo/x11_common: do not select motion events when --no-mouse-movements is setGravatar ahodesuka2013-12-28
|
* Revert "x11: don't set global error handler"Gravatar wm42013-12-27
| | | | | | | | | | | | | This reverts commit 877303aaa9111fc56a8e5edbeb439699acfe44c0. The OpenGL 2.1 fallback for vo_opengl didn't work. Two things come together: 1. trying to create an OpenGL 3.0 context will fail with a GLXBadFBConfig error, and 2. X errors are fatal by default. Since the reverted commit removed the X error handler, the mpv process was killed, instead of continuing for the fallback. (Note that this commit is not an exact inverse commit, since mp_msg changed, but it does about the same thing.)
* Revert "cocoa: unlock on uninit"Gravatar Stefano Pigozzi2013-12-26
| | | | | | Not sure why but this doesn't seem to be needed anymore. This reverts commit 6ead6aa005f1c78a117bde58e48f106cfd1e9806.
* corevideo: fix video initialization when not using VDAGravatar Stefano Pigozzi2013-12-26
| | | | | | | query_format was setting state even if wasn't the correct thing to do. Somehow it worked by pure luck (until commit e6e6b88b6da). Fix the initialization by setting state inside of reconfig.
* build: fix shm detection on OpenBSDGravatar Stefano Pigozzi2013-12-26
| | | | Fixes #427
* cocoa: sanitize window title string and guard against NULLGravatar Stefano Pigozzi2013-12-25
| | | | | | | | | | | If the utf8 string used to create the NSString for title was invalid utf8, -stringWithUTF8String returned nil and triggered an assertion in Cocoa's framework code. Sanitize the utf8 string and if the sanitation wasn't enough just avoid crashing by not setting a title. Fixes #406
* vo_x11/vo_xv: fix build when using --disable-xextGravatar Stefano Pigozzi2013-12-25
|
* vaapi: fix initialization error code pathGravatar wm42013-12-23
| | | | "res" can be uninitialized in the error case.
* vo_vdpau: fix unintended truncation of 64 bit timestamps to 32 bitGravatar wm42013-12-22
| | | | | | | | How embarrassing... This code is inactive for all VOs other than vo_vdpau. For vo_vdpau, this caused various issues, such as stuttering after about an hour of running mpv; see github issue #403.
* vo_vdpau: add some debugging messages for frame timingGravatar wm42013-12-22
| | | | | | Note that this will print a difference even with perfect sync, because the code queues the frames _between_ vsync, probably for error margin (though I don't understand why it uses the exact values chosen).
* gl_lcms: actually acquire mutexGravatar wm42013-12-22
| | | | Prevents race conditions (which can happen only in theory anyway).
* vda: attempt to fix build (2)Gravatar wm42013-12-22
| | | | Still no OSX here.
* msg: remove global stateGravatar wm42013-12-21
|
* msg: rename mp_msg_log -> mp_msgGravatar wm42013-12-21
| | | | Same for companion functions.
* msg: convert defines to enumGravatar wm42013-12-21
| | | | Also get rid of MSGL_HINT and the many MSGL_DBG* levels.
* vo_opengl_old: remove leftoversGravatar wm42013-12-21
|
* path lookup functions: mp_msg conversionsGravatar wm42013-12-21
| | | | | | | | | | | | | | | | | There's a single mp_msg() in path.c, but all path lookup functions seem to depend on it, so we get a rat-tail of stuff we have to change. This is probably a good thing though, because we can have the path lookup functions also access options, so we could allow overriding the default config path, or ignore the MPV_HOME environment variable, and such things. Also take the chance to consistently add talloc_ctx parameters to the path lookup functions. Also, this change causes a big mess on configfiles.c. It's the same issue: everything suddenly needs a (different) context argument. Make it less wild by providing a mp_load_auto_profiles() function, which isolates most of it to configfiles.c.
* stream: mp_msg conversionsGravatar wm42013-12-21
| | | | We also drop some slave mode stuff from stream_vcd.
* x11: mp_msg conversion for fstype help outputGravatar wm42013-12-21
|
* m_option: add mp_log context to sub-module print_help callbackGravatar wm42013-12-21
|
* m_option: add mp_log callback to OPT_STRING_VALIDATE optionsGravatar wm42013-12-21
| | | | | And also convert a bunch of other code, especially ao_wasapi and ao_portaudio.
* m_option, m_config: mp_msg conversionsGravatar wm42013-12-21
| | | | | | | | Always pass around mp_log contexts in the option parser code. This of course affects all users of this API as well. In stream.c, pass a mp_null_log, because we can't do it properly yet. This will be fixed later.
* input: rework how input sources are addedGravatar wm42013-12-21
| | | | | | | | | | | | | | Until now, there were two functions to add input sources (stuff like stdin input, slave mode, lirc, joystick). Unify them to a single function (mp_input_add_fd()), and make sure the associated callbacks always have a context parameter. Change the lirc and joystick code such that they take store their state in a context struct (probably worthless), and use the new mp_msg replacements (the point of this refactoring). Additionally, get rid of the ugly USE_FD0_CMD_SELECT etc. ifdeffery in the terminal handling code.
* codecs: mp_msg conversionGravatar wm42013-12-21
|
* img_format: drop message about unknown pixel formatsGravatar wm42013-12-21
| | | | Too bad.
* bitmap_packer: use printf() for fatal messageGravatar wm42013-12-21
| | | | | | This is printed right before abort(), which is bad style anyway. Converting this to mp_msg will help nobody, and passing through a mp_log is effort.
* vaapi: mp_msg conversionsGravatar wm42013-12-21
| | | | | | This ended up a little bit messy. In order to get a mp_log everywhere, mostly make use of the fact that va_surface already references global state anyway.
* vdpau: mp_msg conversionsGravatar wm42013-12-21
|
* video/fmt-conversion.c: remove unknown pixel format messagesGravatar wm42013-12-21
| | | | | | | | | | | This removes the messages printed on unknown pixel format messages. Passing a mp_log to them would be too messy. Actually, this is a good change, because in the past we often had trouble with these messages printed too often (causing terminal spam etc.), and printing warnings or error messages on the caller sides is much cleaner. vd_lavc.c had a change earlier to print an error message if a decoder outputs an unsupported pixel format.
* image_writer: mp_msg conversionsGravatar wm42013-12-21
| | | | Adds an awkward mp_log argument for error messages.
* sws_utils: mp_msg conversionsGravatar wm42013-12-21
| | | | | | This requires the caller to provide a mp_log in order to see error messages. Unfortunately we don't do this in most places, but I guess we have to live with it.
* gl_lcms: use global lock to deal with crappy lcms2 message callbackGravatar wm42013-12-21
| | | | | | | | | lcms2 has a global message callback for error reporting. If you don't set this, these error messages are silently thrown away. I think we still want the error messages, so we have to do dumb stuff to avoid clashes. This doesn't handle the case if another library in the same process sets the message callback, but at least this should exclude possible memory errors when running multiple instances of mpv.
* video/out: pass along global contextGravatar wm42013-12-21
| | | | Will be needed for other parts (especially in gl_lcms.c).
* video/decode: mp_msg conversionsGravatar wm42013-12-21
| | | | Doesn't cover vdpau/vaapi parts yet, because these are a bit messier.