aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* vaapi: fix destruction with --hwdec=haapi-copyGravatar wm42014-05-28
| | | | | | | This is incomplete; the video chain will still hold some vaapi objects after destroying the decoder and thus the vaapi context. This is very bad. Fixing it would require something like refcounting the vaapi context, but I don't really want to.
* video: warn if an emulated hwdec API is usedGravatar wm42014-05-28
| | | | | | | | | | | | | | | | mpv supports two hardware decoding APIs on Linux: vdpau and vaapi. Each of these has emulation wrappers. The wrappers are usually slower and have fewer features than their native opposites. In particular the libva vdpau driver is practically unmaintained. Check the vendor string and print a warning if emulation is detected. Checking vendor strings is a very stupid thing to do, but I find the thought of people using an emulated API for no reason worse. Also, make --hwdec=auto never use an API that is detected as emulated. This doesn't work quite right yet, because once one API is loaded, vo_opengl doesn't unload it, so no hardware decoding will be used if the first probed API (usually vdpau) is rejected. But good enough.
* vo_vaapi: cleanup error handling on initGravatar wm42014-05-28
| | | | Close the X connection if initializing vaapi fails.
* osc: correct calculation of slider positionGravatar ChrisK22014-05-28
| | | | | calculation the mouse position on the slider relied on how the hitbox is positioned, change it according to new hitbox size.
* osc: extend hitbox of seekbars to include gapGravatar ChrisK22014-05-27
| | | | | | should make usage a bit easy Fixes #810
* stream: unbreak writeable streamsGravatar wm42014-05-27
| | | | | | | | | So, basically this worked only with streams that were not local files, because stream_dvd.c "intercepts" local files to check whether they point to DVD images. This means if a stream is not writeable, we have to try the next stream implementation. Unbreaks 2-pass encoding.
* video: better handling for (very) broken timestampsGravatar wm42014-05-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Sometimes, Matroska files store monotonic PTS for h264 tracks with b-frames, which means the decoder actually returns non-monotonic PTS. Handle this with an evil trick: if DTS is missing, set it to the PTS. Then the existing logic, which deals with falling back to DTS if PTS is broken. Actually, this trick is not so evil at all, because usually, PTS has no errors, and DTS is either always set, or always unset. So this _should_ provoke no regressions (famous last words). libavformat actually does something similar: it derives DTS from PTS in ways unknown to me. The result is very broken, but it causes the DTS fallback to become active, and thus happens to work. Also, prevent the heuristic from being active if PTS is merely monotonic instead of strictly-monotonic. Non-unique PTS is broken, but we can't fallback to DTS anyway in these cases. The specific mkv file that is fixed with this commit had the following fields set: Muxing application: libebml v1.3.0 + libmatroska v1.4.1 Writing application: mkvmerge v6.7.0 ('Back to the Ground') [...] But I know that this should also fix playback of mencoder produced mkv files.
* manpage: document write_watch_later_config commandGravatar wm42014-05-27
|
* idet.sh: An alternative to ildetect.sh.Gravatar Rudolf Polzer2014-05-27
| | | | | This script uses ffmpeg's "idet" filter for interlace detection. In the long run this should replace ildetect.sh+ildetect.sh.
* lua: slightly nicer diagnostics outputGravatar wm42014-05-27
| | | | | | | | | | | | | When Lua itself prints errors such as: Error: [string "mp.defaults"]:387: syntax error near 'function' It's unclear why the location is prefixed with "string ". And for some reason, it disappears if you prefix the name with '@'. I suppose this is done for the sake of luaL_loadstring. With the '@' prefix added, the output is now: Error: mp.defaults:387: syntax error near 'function'
* gl_common: minor cosmetic changesGravatar wm42014-05-26
| | | | Why are you reading this message.
* gl_common: correct a typeGravatar wm42014-05-26
| | | | | | | We pass a pointer to a GLint to sscanf, using the %d format. That format _always_ takes int, and not GLint (whatever the heck that is). If GLint is always int, then it doesn't make a difference, but is still better because it doesn't play russian roulette with pointers.
* gl_w32: remove some non-senseGravatar wm42014-05-26
| | | | Really now...
* vo_opengl: always dynamically load OpenGL symbolsGravatar wm42014-05-26
| | | | | | | | | | | | | | Don't emit "hard" references to OpenGL functions. Always use the platform specific function to lookup OpenGL functions, such as glXGetProcAddress() with GLX (x11). This actually fixes the build if only Wayland is enabled (e.g. using --disable-gl-x11 on Linux). Note that some sources claim that wglGetProcAddress() (win32) does not return function pointers for OpenGL 1.1 functions (even if they are valid and necessary in OpenGL 3.0). But if that happens, the fallback employed in gl_w32.c/w32gpa() should catch this.
* x11: fix restoring position when leaving fullscreenGravatar wm42014-05-26
| | | | Accidentally broken in commit 7163bf7d by inverting the condition.
* x11: fix datatype for _NET_WM_PIDGravatar wm42014-05-26
| | | | | | | | | | Setting this property was added 12 years ago, and the code was always incorrect. The underlying data type is "long", not "pid_t". It's well possible that the data types are different, and the pointer to the pid variable is directly passed to XChangeProperty, possibly invoking undefined behavior. It's funny, because in theory using pid_t for PIDs sounds more correct.
* input: make combined commands repeatableGravatar wm42014-05-26
| | | | | | | | Binding multiple commands at once where always considered not repeatable, because the MP_CMD_COMMAND_LIST wasn't considered repeatable. Fixes #807 (probably).
* lua: add missing include filesGravatar wm42014-05-26
| | | | | | These are actually already included in osdep/io.h, but I think it's cleaner to repeat them in the file where they are actually needed. (osdep/io.h needs to have them for other reasons.)
* lua: fix compilation with lua 5.2Gravatar wm42014-05-26
| | | | | | | | | | | Commit e2e450f9 started making use of luaL_register(), but OF COURSE this function disappeared in Lua 5.2, and was replaced with a 5.2-only alternative, slightly different mechanism. So just NIH our own function. This is actually slightly more correct, since it forces the user to call "require" to actually make the module visible for builtin C-only modules other than "mp". Fix autoload.lua accordingly.
* command: add write_watch_later_config commandGravatar Martin2014-05-26
| | | | | | Closes #808. Signed-off-by: wm4 <wm4@nowhere>
* autoload.lua: fix autoloading of files to prependGravatar wm42014-05-25
| | | | This used the wrong index variable, and thus didn't work.
* DOCS/coding-style: add a hint that new features should be documentedGravatar wm42014-05-25
|
* TOOLS: add a Lua script to autoload playlist entriesGravatar wm42014-05-25
| | | | | | This will load other files in the same directory when a single file is played. It's an often requested feature, but we definitely don't want it in the core.
* lua: add some filesystem utility functionsGravatar wm42014-05-25
| | | | | | | | | | | We need this only because Lua's stdlib is so scarce. Lua doesn't intend to include a complete stdlib - they confine themselves to standard C, both for portability reasons and to keep the code minimal. But standard C does not provide much either. It would be possible to use Lua POSIX wrapper libraries, but that would be a messy (and unobvious) dependency. It's better to implement the missing functions ourselves, as long as they're small in number.
* manpage: lua: cosmetic changes to mp.options sectionGravatar wm42014-05-25
|
* playlist: fix playlist_move on itselfGravatar wm42014-05-25
| | | | | | | A playlist_move command that moves an entry onto itself (both arguments have the same index) should do nothing, but it did something broken. The underlying reason is that it checks the prev pointer of the entry which is temporarily removed for moving.
* vf_vdpaupp: cosmetics: rename functionGravatar wm42014-05-25
|
* osxbundle: fix recursion terminationGravatar Tsukasa OMOTO2014-05-25
| | | | Prevents the binary from being copied over to the lib directory.
* osc: fix chapter list displayGravatar ChrisK22014-05-24
| | | | also fix small typo in DOCS
* build: disable cdda and vcd by defaultGravatar wm42014-05-24
| | | | | Let's see if anyone complains. cdda is relatively inoffensive, but the vcd code is the definition of ifdef-hell.
* stream_cdda: fix compilationGravatar wm42014-05-24
| | | | See previous commit. Sigh...
* stream_smb: fix compilationGravatar wm42014-05-24
| | | | Accidentally forgotten in commit a4d487.
* client API: fix mpv_observe_property with MP_FORMAT_NONEGravatar wm42014-05-24
| | | | | It returned only 1 change event (after registration), and then went silent. This was accidentally broken some time ago.
* video: add --video-rotate option for controlling auto-rotationGravatar wm42014-05-24
|
* stream_file: readjust some windows ifdefferyGravatar wm42014-05-24
| | | | | | | | | | Also sneak in some cosmetics. setmode() exists on Windows/msvcrt only, so there's no need for a config test. I couldn't reproduce the problem with seekable pipes on wine, so axe it. (I'm aware that it still could be an issue on real Windows.)
* stream: remove chaos related to writeable streamsGravatar wm42014-05-24
| | | | | | | | | | For some reason, we support writeable streams. (Only encoding uses that, and the use of it looks messy enough that I want to replace it with FILE or avio today.) It's a chaos: most streams do not actually check the mode parameter like they should. Simplify it, and let streams signal availability of write mode by setting a flag in the stream info struct.
* stream_lavf: remove redundant message prefixesGravatar wm42014-05-24
|
* stream: don't use end_posGravatar wm42014-05-24
| | | | | | | | | | | | | | | | | | | Stop using it in most places, and prefer STREAM_CTRL_GET_SIZE. The advantage is that always the correct size will be used. There can be no doubt anymore whether the end_pos value is outdated (as it happens often with files that are being downloaded). Some streams still use end_pos. They don't change size, and it's easier to emulate STREAM_CTRL_GET_SIZE using end_pos, instead of adding a STREAM_CTRL_GET_SIZE implementation to these streams. Make sure int64_t is always used for STREAM_CTRL_GET_SIZE (it was uint64_t before). Remove the seek flags mess, and replace them with a seekable flag. Every stream must set it consistently now, and an assertion in stream.c checks this. Don't distinguish between streams that can only be forward or backwards seeked, since we have no such stream types.
* stream: kill start_pos, remove --sb optionGravatar wm42014-05-24
| | | | | | | | | | | | | | | | | | | | stream.start_pos was needed for optical media only, and (apparently) not for very good reasons. Just get rid of it. For stream_dvd, we don't need to do anything. Byte seeking was already removed from it earlier. For stream_cdda and stream_vcd, emulate the start_pos by offsetting the stream pos as seen by the rest of mpv. The bits in discnav.c and loadfile.c were for dealing with the code seeking back to the start in demux.c. Handle this differently by assuming the demuxer is always initialized with the stream at start position, and instead seek back if initializing the demuxer fails. Remove the --sb option, which worked by modifying stream.start_pos. If someone really wants this option, it could be added back by creating a "slice" stream (actually ffmpeg already has such a thing).
* player: don't init/uninit terminal at runtimeGravatar wm42014-05-24
| | | | This seems like an unnecessary complication.
* timer: remove unneeded time_t overflow checkGravatar wm42014-05-24
| | | | | | | This is mostly covered by the OSX workaround, if the timeout is very high. It also means that with systems using 32 bit time_t, the time will overflow 2036 already, instead of 2037, but we don't consider this a problem.
* manpage: update references to renamed optionsGravatar Alessandro Ghedini2014-05-23
|
* x11: un-inline GNOME layer stuffGravatar wm42014-05-23
| | | | | | Having it as separate function is not useful. Also remove the useless vo_window parameter.
* x11: prefer NetWM hints over _WIN_LAYER for --ontopGravatar wm42014-05-23
| | | | | | | _WIN_LAYER is apparently an old GNOME thing (also explains why there is a function vo_x11_get_gnome_layer() involved in this code). Prefer the NetWM hints over this. This just moves the NetWM case if-body over the _WIN_LAYER one.
* x11: rename identifiers using reserved namespaceGravatar wm42014-05-23
| | | | | | | You can't use identifiers starting with "_" and an uppercase letter in application programs. They are reserved by the C standard. Unrelated change: drop unused/misleading vo_wm_NETWM define.
* x11: fix NetWM ontop settingGravatar wm42014-05-23
| | | | | | | I can only assume the old code was wrong. EWMH does not document anything with _WIN_LAYER. Instead, you have to toggle the state using a client message. We also remove these weird non-sense fallbacks, like using _NET_WM_STATE_BELOW - what the hell?
* x11: add a generic function for NetWM state settingGravatar wm42014-05-23
| | | | And use it for fullscreening. It will also be used for fixing --ontop.
* old-build: fix building with libquvi4Gravatar wm42014-05-23
|
* old-makefile: add options.luaGravatar wm42014-05-23
| | | | Also, make use of generic rules.
* lua/osc: forgot some changed files in previous commitGravatar ChrisK22014-05-23
|