summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* gl_video: add RGB10_A2 FBO formatwm42013-10-232-2/+3
| | | | Maybe this can be the default in the future, but I'm not sure yet.
* audio/filter: split af_format into separate filters, rename af_forcewm42013-10-238-536/+395
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | af_format is the old audio conversion filter. It could do all possible conversions supported by the audio chain. However, ever since the addition of af_lavrresample, most conversions are done by libav/swresample, and af_format is used as fallback. Separate out the fallback cases and remove af_format. af_convert24 does 24 bit <-> 32 bit conversions, while af_convertsignendian does sign and endian conversions. Maybe the way the conversions are split sounds a bit odd. But the former changes the size of the audio data, while the latter is fully in-place, so there's at least different buffer management. This requires a quite complicated algorithm to make sure all these "partial" conversion filters can actually get from one format to another. E.g. s24le->s32be always requires convertsignendian and convert24, but af.c has no idea what the intermediate format should be. So I added a graph search (trying every possible format and filter) to determine required format and filter. When I wrote this, it seemed this was still better than messing everything into af_lavrresample, but maybe this is overkill and I'll change my opinion. For now, it seems nice to get rid of af_format though. The AC3->IEC61937 conversion isn't supported anymore, but I don't think this is needed anywhere. Most AOs test all formats explicitly, or use the AF_FORMAT_IS_IEC61937() macro (which includes AC3). One positive consequence of this change is that conversions always include dithering (done by libav/swresample), instead of possibly going through af_format, which doesn't do anything fancy. Rename af_force to af_format. It's essentially compatible with command line uses of af_format. We retain a compatibility alias for af_force.
* audio/format: add some helper functionswm42013-10-222-0/+33
|
* ao_pcm: big endian AC3 in wav doesn't workwm42013-10-221-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-10-201-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-10-201-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.
* 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.
* demux_mkv: use standard C default initialization syntaxwm42013-10-191-17/+17
| | | | | | | | | | gcc and clang happen to allow {} to default-initialize a struct, but strictly speaking, C99 requires at least {0}. In one case, we use {{0}}, but that's only because gcc as well as clang are too damn stupid not to warn about {0}, which is a perfectly valid construct in this case. (Sure is funny, don't warn about the non-standard case, but warn about another standard conform case.)
* demux_mkv: cosmetics: add redundant braces for consistent stylewm42013-10-191-27/+46
| | | | | | | | | | | | | | Leaving these braces away just because the syntax allows them is really obnoxious. It removes the visual cues which help understanding the code at the first look. For the record, if (cond) something(); is ok, as long as there's no else branch, and the if body is one physical line. But everything else should have braces.
* demux_mkv: fill ordered chapters info only if it's presentwm42013-10-191-14/+16
| | | | | | This was probably not a real problem. But it's not entirely clear whether this could actually happen or not, so it's better to be defensive. The code is now also somewhat easier to understand.
* tl_matroska: fix use-after-free with --cachewm42013-10-191-3/+3
| | | | | | | | | | If cache was enabled, using ordered chapters could easily crash. The reason is that enable_cache() reopens the demuxer and closes the old one. The code after that (reading m->ordered_chapters etc.) then accessed freed data. This commit also avoids enabling cache for files which are not used (which would make opening much slower).
* mp_talloc: simplify a bitwm42013-10-191-8/+6
| | | | | | | | | | | | | | Implement MP_GROW_ARRAY using MP_TARRAY_GROW. MP_GROW_ARRAY is basically the earlier version of MP_TARRAY_GROW, and had different semantics. When I added MP_TARRAY_GROW, I didn't dare to change it, but I think all code that relied on the exact semantics of MP_GROW_ARRAY is gone now, or the difference doesn't matter anyway. The semantic change is that now (n+1)*2 elements are preallocated instead of n*2. Also, implement MP_TARRAY_GROW using MP_RESIZE_ARRAY, which saves 1 line of code. In future, these macros should be part of TA.
* vdpau_old: restore hardware decoding with old APIwm42013-10-191-0/+1
| | | | --hwdec=vdpau did nothing with older ffmpeg/libav versions. Oops.
* configure: use pkg-config for libsmbclientwm42013-10-191-10/+5
| | | | Apparently, Samba has .pc files now.
* af_lavrresample: actually free resamplerwm42013-10-191-0/+3
| | | | Fixes #304.
* mp_msg: remove gettext() supportwm42013-10-185-112/+4
| | | | | | | | | Was disabled by default, was never used, internal support was inconsistent and poor, and there has been virtually no interest in creating translations. And I don't even think that a terminal program should be translated. This is something for (hypothetical) GUIs.
* mplayer: mp_msg replacementswm42013-10-181-95/+83
| | | | Not 100% complete; not touching the more complicated cases.
* mpv.desktop: add russian translation, sortNikoli2013-10-181-1/+3
|
* osc: make transparency of background-box configurableChrisK22013-10-182-3/+8
| | | | see boxalpha option
* getch2: remove pointless ifdefferywm42013-10-171-8/+0
| | | | | Apparently this was for MorphOS. If you really want to use that, ask the devs to provide dummy headers and declarations for ioctl() instead.
* tv: simplify ifdefferywm42013-10-171-8/+2
| | | | Too ugly to leave it be.
* Merge Matroska ordered chapter changeswm42013-10-173-114/+349
|\ | | | | | | | | | | | | This adds support for ChapterSegmentEditionUID (pull request #258), and also fixes issue #278 (pull request #292). In fact, this is a straight merge of pr/292, which also contains pr/258.
| * matroska: don't add time for chapters without a sourceBen Boeckel2013-10-151-0/+3
| |
| * matroska: log about where missing time comes fromBen Boeckel2013-10-151-4/+21
| |
| * matroska: only error if at least a millisecond is missingBen Boeckel2013-10-151-1/+4
| |
| * matroska: account for missing information from short sourcesBen Boeckel2013-10-151-2/+31
| | | | | | | | | | If a source is shorter than the requested chapter length, account for the time missing.
| * matroska: modify chapter limits by join_diffBen Boeckel2013-10-151-9/+23
| | | | | | | | | | | | When adding or removing frames to avoid 1-frame seeks on chapter boundaries, the end of the chapter needs to be pushed or pulled by the same amount to keep the intended end frame the same.
| * matroska: use memmove when collapsing the source list downBen Boeckel2013-10-081-1/+1
| |
| * matroska: avoid requesting the same source multiple timesBen Boeckel2013-10-081-0/+18
| |
| * matroska: support chapter references to ordered editionsBen Boeckel2013-10-081-7/+51
| | | | | | | | | | | | Since ordered editions can reference external files, when an ordered chapter references another ordered edition, we have to go and figure out what is is referencing as well.
| * matroska: recursively search for referenced segmentsBen Boeckel2013-10-081-30/+50
| | | | | | | | | | | | | | When playing a Matroska file with ordered chapters, it may reference another file by edition uid. When this edition is also ordered, it may reference other files. When this occurs, the new segment/edition pair is added to the list of sources to search for.
| * matroska: refactor ordered chapter timeline buildingBen Boeckel2013-10-071-63/+103
| | | | | | | | | | This will need to be recursive to support chapters referencing ordered editions in other files.
| * matroska: select the edition using the requested edition uidBen Boeckel2013-10-072-5/+31
| |
| * matroska: set the edition uid when reading a chapter referenceBen Boeckel2013-10-071-1/+3
| |
| * matroska: parse the requested edition for the segment referenceBen Boeckel2013-10-071-5/+5
| |
| * matroska: store segment/edition uids in a single structureBen Boeckel2013-10-073-31/+50
| | | | | | | | | | | | To support edition references in matroska chapters, editions need to be remembered for each chapter and source. To facilitate easier management of these now-paired uids, a single structure is used.
* | sws_utils: work around libswscale crash with --contrast=-100wm42013-10-161-1/+2
| |
* | vf_scale: fix get/set confusionwm42013-10-161-1/+1
| | | | | | | | This caused the equalizer controls to appear stuck.
* | spelling fixesAlessandro Ghedini2013-10-163-5/+5
| |
* | demux_mkv: add support for HEVCwm42013-10-163-0/+4
| | | | | | | | | | | | | | | | Note that you still need --vd-lavc-o='strict=-2' to enable the decoder. Also, there's no guarantee that all required features for HEVC demuxing are actually implemented, nor that the current muxing schema is the final one.
* | 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 handl