summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* stream_bluray: fix for significant memory leakxylosper2014-03-241-0/+1
| | | | | It's obvious but, since STREAM_CTRL_GET_TIME_LENGTH is called frequently, the amount of leaked memory here is quite big.
* travis-ci: update Libav releasewm42014-03-242-1/+2
| | | | | | | | Libav 10 was released, so we can enable testing the stable Libav version again. FFmpeg 2.2 was also released, but since we still support 2.1.4, we stick with the older version. This is better for testing.
* player: remove confusing argc/argv adjustmentwm42014-03-232-7/+2
| | | | It's better if argc/argv always mean the same thing.
* x11_common: fix some problems with window draggingwm42014-03-221-1/+2
| | | | | | | | | | | | | | | | There were some bad interactions with the OSC. For one, dragging the OSC bar, and then moving the mouse outside of the OSC (while mouse button still held) would suddenly initiate window dragging. This was because win_drag_button1_down was not reset when sending a normal mouse event, which means the window dragging code can become active even after we've basically decided that the preceding click didn't initiate window dragging. Second, dragging the window and clicking on the OSC bar after that did nothing. This was because no mouse button up event was sent to the core, even though a mouse down event was sent. So make sure the key state is erased with MP_INPUT_RELEASE_ALL.
* manpage: osc: document some recent additionswm42014-03-201-0/+27
|
* manpage: clarify what to pass to --hwdec-codecs optionwm42014-03-201-1/+3
|
* vdpau: remove pointer indirection for a fieldwm42014-03-195-14/+13
| | | | There's no reason to. This is basically a cosmetic change.
* vdpau: fix decoder init return valuewm42014-03-191-3/+3
|
* x11: implement window dragging by grabbingwm42014-03-182-1/+37
| | | | | | | | | | | | | | | | | | We don't check whether the WM supports _NET_WM_MOVERESIZE_MOVE, but if it doesn't, nothing bad happens. There might be a race condition when pressing a button, and then moving the mouse and releasing the button at the same time; then the WM might get the message to initiate moving the window after the mouse button has been released, in which case the result will probably be annoying. This could possibly be fixed by sending _NET_WM_MOVERESIZE_CANCEL on button release, but on the other hand, we probably won't receive a button release event in this situation, so ignore this problem. The dragging is initiated only when moving the mouse pointer after a click in order to reduce annoying behavior when the user is e.g. doubleclicking. Closes #608.
* manpage: mark disc-title as writeablewm42014-03-181-2/+3
|
* stream_bluray: fix for zero-based title index for Blu-rayxylosper2014-03-181-7/+11
| | | | | | | | | | The title for stream_bluray DID start from 1 and I misunderstood that it started from 0 because mpv accepted bd://0 as a proper argument. In fact, 0 title was an alias for the longest title but it was not handled as a special value. This commit fixes these behavious. 'disc-title' property for Blu-ray now starts from 0 and the default title can be specified by 'longest' title just like stream_dvdnav: bd://longest. Of course, 'longest' can be omitted.
* command: make 'disc-title' property writablexylosper2014-03-182-3/+16
| | | | | | | | This commit makes 'disc-title' property writable using STREAM_CTRL_SET_CURRENT_TITLE. This commit also contains implementation of STREAM_CTRL_SET_CURRENT_TITLE for stream_bluray. Currently, 'disc-title' is writable only for stream_dvdnav and stream_bluray and stream_dvd is not supported.
* changes.rst: add dvd://1 -> dvd://0 changewm42014-03-171-0/+1
| | | | Done two commits ago.
* options: fix allowed DVD start titlewm42014-03-171-1/+1
|
* stream_dvd/stream_dvdnav: make disc-title for DVDs start from 0xylosper2014-03-172-27/+35
| | | | | | | | This commit makes 'disc-title' properties for DVDs start from 0. There was an inconsistency around 'disc-title' property between DVDs (from 1) and Blu-rays (from 0). This fixes #648. Signed-off-by: wm4 <wm4@nowhere>
* build: only check for Linux fstatfs on LinuxJames Ross-Gowan2014-03-171-0/+1
| | | | | | This check incorrectly passed on Cygwin. While Cygwin has the statfs.f_type field, it contains the volume's FileSystemAttributes, which aren't useful for detecting network mounts.
* osc: add enable/disable message, and map DEL to disabling the OSCwm42014-03-171-0/+14
| | | | | | | | | "enable-osc" will make the OSC appear at any time (although it'll quickly disappear again if the mouse is not inside the OSC). "disable- osc" will make it disappear permanently. Also, if the OSC is visible, force remap the DEL key to make the OSC disappear.
* lua: rename mp.register_script_command() to mp.register_script_message()wm42014-03-172-18/+18
| | | | More consistent naming.
* command, lua: change script_message semanticswm42014-03-177-17/+54
| | | | | | | | Change script_message to broadcast the message to all clients. Add a new script_message_to command, which does what the old script_message command did. This is intended as simplification, although it might lead to chaos too.
* vaapi: solve potential problem with ambiguous image formatswm42014-03-171-32/+27
| | | | | | | | | | | | | VAAPI has some ambiguous image formats, like VA_FOURCC_I420, VA_FOURCC_IYUV, VA_FOURCC_YV12 (the latter exactly the same as the first two, just with swapped planes). There is potentially a problem when one specific VAAPI format was picked, and converting it to a mpv format and back to a VAAPI FourCC would result in a numerically different format (even if it's actually the same). Then it could e.g. happen that functions like va_surface_upload() reallocate the underlying VAImage, which would be inefficient. Change the code so that this can't happen. (Probably not a problem in practice with the current VAAPI usage.)
* vaapi: simplifywm42014-03-171-67/+60
| | | | Merge va_surface_priv into va_surface.
* vaapi: make struct va_surface privatewm42014-03-176-90/+78
| | | | | | It's not really needed to be public. Other code can just use mp_image. The only disadvantage is that the other code needs to call an accessor to get the VASurfaceID.
* vaapi: replace image pool implementation with mp_image_poolwm42014-03-175-241/+152
| | | | | | | | | | | | Although I at first thought it would be better to have a separate implementation for hwaccels because the difference to software images are too large, it turns out you can actually save some code with it. Note that the old implementation had a small memory management bug. This got painted over in commit 269c1e1, but is hereby solved properly. Also note that I couldn't test vf_vavpp.c (due to lack of hardware), and I hope I didn't accidentally break it.
* mp_image_pool: add features needed for use with hwaccelwm42014-03-172-18/+69
| | | | | | | | | | | | | | The plan is to get rid of the custom VAAPI and possibly VDPAU surface allocators. Add custom surface allocation, because hwaccel surfaces are allocated completely differently from software surfaces. Add optional LRU allocation, which is (probably) helpful for hwaccel, but (probably) less optimal for software surfaces. mp_image_pool_get_no_alloc() is specifically for VAAPI, which can't allocate new decoder surfaces after decoder init.
* vdpau: remove legacy pixel formatswm42014-03-176-41/+10
| | | | | | They were used by ancient libavcodec versions. This also removes the need to distinguish vdpau image formats at all (since there is only one), and some code can be simplified.
* vdpau: remove unused typewm42014-03-171-6/+0
|
* video: change image format from unsigned int to int in some placeswm42014-03-176-12/+12
| | | | | | Image formats used to be FourCCs, so unsigned int was better. But now it's annoying and the only difference is that unsigned int is more to type than int.
* img_format: AV_PIX_FMT_FLAG_ALPHA is always availablewm42014-03-171-5/+0
| | | | We no more support ancient libavutil versions.
* vd_lavc: reinit hwdec on profile changeswm42014-03-172-2/+6
| | | | | Needed in theory. I don't know if there are even any real-world files which change the profile mid-stream.
* video: fix FFmpeg or Libav being a special snowflakewm42014-03-161-1/+2
|
* vd_lavc: remove unused fieldwm42014-03-162-3/+0
|
* vd_lavc: reduce hardware decoder mid-stream reinitializationswm42014-03-161-1/+6
| | | | | | | | | | Instead of doing it on every seek (libavcodec calls get_format on every seek), reinitialize the decoder only if the video resolution changes. Note that this may be relatively naive, since we e.g. (or: in particular) don't check for profile changes. But it's not worse than the state before the get_format change, and at least it paints over the current vaapi breakage (issue #646).
* manpage: remove author fieldwm42014-03-161-1/+0
| | | | | | There's already a more detailed "AUTHORS" section. Closes #647.
* af_lavcac3enc: use new AVFrame APIwm42014-03-161-3/+3
|
* ao_lavc: set AVFrame.formatwm42014-03-161-0/+1
| | | | | Seems kind of wrong that this wasn't done, although it didn't have any bad consequences.
* encode: use new AVFrame APIwm42014-03-162-10/+6
|
* image_writer: use new AVFrame APIwm42014-03-161-3/+2
|
* ad_lavc: use new AVFrame APIwm42014-03-161-2/+4
| | | | | | | Set refcounted_frames, because in some versions of libavcodec mixing the new AVFrame API and non-refcounted decoding could cause memory corruption. Likewise, it's probably still required to unref a frame before calling the decoder.
* vf_delogo: remove internal implementationwm42014-03-162-254/+2
| | | | See previous commit.
* vf_hqdn3d: remove internal implementationwm42014-03-161-276/+10
| | | | See previous commit.
* vf_yadif: remove internal implementationwm42014-03-161-467/+3
| | | | See previous commit.
* vf_unsharp: remove internal implementationwm42014-03-161-176/+3
| | | | See previous commit.
* vf_gradfun: remove internal implementationwm42014-03-161-339/+5
| | | | | | | This follows the (only slowly progressing) plan to replace all internal video filters with libavfilter. All what's left in vf_gradfun.c is the weird wrapper around vf_lavfi.c.
* build: simplify libavfilter configure checkswm42014-03-169-88/+11
| | | | | This is all not needed anymore. In particular, remove all configure switches except --enable-libavfilter.
* demux: use av_packet_ref()wm42014-03-161-4/+1
| | | | | av_copy_packet() was FFmpeg specific, av_packet_ref() is now available on all supported libavcodec releases.
* Remove some more unneeded version checkswm42014-03-166-68/+8
| | | | | All of these check against things that happened before the latest supported FFmpeg/Libav release.
* ad_lavc: remove deprecated downmixing by channel countwm42014-03-161-4/+0
| | | | | Downmixing by channel layout now hopefully works with all supported libavcodec versions.
* ao_dsound: remove duplicated codewm42014-03-161-17/+6
|
* af_lavrresample: remove avresample_set_channel_mapping() fallbackswm42014-03-1610-158/+0
| | | | | | | This function is now always available. Also remove includes of reorder_ch.h from some AOs (these are just old relicts).
* sub: remove old MPlayer DVD sub decoderwm42014-03-167-950/+0
| | | | | The DVD sub decoder in Libav 9 was broken/incomplete, so we kept the MPlayer decoder around. Now it's not needed anymore.
* vd_lavc: remove compatibility crapwm42014-03-1613-912/+43
| | | | | | | All this code was needed for compatibility with very old libavcodec versions only (such as Libav 9). Includes some now-possible simplifications too.
* travis-ci: update ffmpeg stable tarballwm42014-03-161-1/+1
|
* build: drop support for Libav 9wm42014-03-163-12/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | I have no tolerance for this garbage anymore. There are tons of issues with it (see e.g. previous commit), and there is no reason to use it either. Use Libav git, or Libav 10 when it's released. This also drops support for earlier FFmpeg release, which have exactly the same issues as Libav 9. FFmpeg 2.1.4 is still supported, because it's the latest release, and is reasonably recent. (Although this will probably also be dropped as soon as FFmpeg 2.2 is released.) Assumed version table (lots of nonsensical numbers): FFmpeg 2.1.4 FFmpeg (n2.2-rc2) Libav (v10_beta2) lavu 52.48.101 52.66.100 53.3.0 lavc 55.39.101 55.52.102 55.34.1 lavf 55.19.104 55.33.100 55.12.0 lsws 2.5.101 2.5.101 2.1.2 lavi 3.90.100 4.2.100 4.2.0 lswr 0.17.104 0.18.100 - lavr 1.1.0 1.2.0 1.1.0 libpostproc and libavdevice are not interesting. Following this commit, code needed just to support old Libav versions will start to be removed.
* vd_lavc: ridiculous workaround for Libav 9 compatibilitywm42014-03-163-1/+23
| | | | | | | | This "sometimes" crashed when seeking. The fault apparently lies in libavcodec: the decoder returns an unreferenced frame! This is completely insane, but somehow I'm apparently still expected to work this around. As a reaction, I will drop Libav 9 support in the next commit. (While this commit will go into release/0.3.)
* demux_libass: change how external ASS subtitles are loadedwm42014-03-157-54/+25
| | | | | | | | | | Instead of parsing the ASS file in demux_libass.c and trying to pass the ASS_Track to the subtitle renderer, just read all file data in demux_libass.c, and let the subtitle renderer pass the file contents to ass_process_codec_private(). (This happens to parse full files too.) Makes the code simpler, though it also relies harder on the (messy) probe logic in demux_libass.c.
* command: rename dvd- properties to disc-wm42014-03-152-11/+11
| | | | Since these are not DVD-only, but can also be used with BDs.
* DOCS/coding-style: add another requirement for commit messageswm42014-03-151-0/+3
|
* options: fix off-by-1 error in option help outputwm42014-03-151-1/+1
|
* command: prefix DVD title properties with "dvd-"wm42014-03-152-9/+12
| | | | | | | | | | They're strictly DVD-only, so it's better to mark them as such. This also documentes the "title" (now renamed to "dvd-title") property. This also avoids collision with the --title option. (Technically, there was no problem. But it might be confusing for users, since we have a policy of naming properties and options the same if they refer to the same underlying functionality.)
* command: add new property 'title'xylosper2014-03-151-0/+20
| | | | | | This commit adds new property 'title' which indicates current playing title of disc. This property is useful when using a stream whose title can be changed during playback, e.g., dvdnav.
* stream_dvdnav: implement STREAM_CTRL_GET_NUM_TITLES for dvdnavxylosper2014-03-151-0/+7
| | | | | | This commit provides impelmentation of STREAM_CTRL_GET_NUM_TITLES for dvdnav stream. Other streams for DVD or Blu-ray are already provide STREAM_CTRL_GET_NUM_TITLES.
* ao: print (estimated) device buffer size on init in verbose modewm42014-03-141-1/+3
|
* af_volume: don't print missing replaygain tags as errorwm42014-03-141-1/+1
| | | | There's no reason to. Audio files often lack them.
* af_volume: add detach optionwm42014-03-142-0/+10
| | | | | | Maybe this should be default. On the other hand, this filter does something even if the volume is neutral: it clips samples against the allowed range, should the decoder or a previous filter output garbage.
* af_volume: separate softvol volume control from replaygain levelwm42014-03-141-5/+8
| | | | | | | | | Currently, both replaygain adjustment and user volume control (if softvol is enabled) share the same variable. Sharing the variable would cause especially if --volume is used; then the replaygain volume would always be overwritten. Now both gain values are simple added right before doing filtering.
* manpage: af: minor syntax improvementswm42014-03-141-4/+4
|
* af_volume: remove double-negated suboptionwm42014-03-142-6/+6
| | | | | You had to use "no-replaygain-noclip" to set this option. Rename it, so that only one negation is needed.
* build: fix unicode handling of the version stringRyan Goulden2014-03-141-1/+1
| | | | | | Don't pass unicode types to waf ENV. As per https://code.google.com/p/waf/issues/detail?id=1420 This directly fixes the "CFVersion" key in the .app bundle plist.
* player/main: Fix Cygwin buildJames Ross-Gowan2014-03-131-12/+8
| | | | | | | | Xlib.h (included from x11_common.h) defines a macro 'Status' as 'int'. This messed up a bunch of definitions in windows.h and broke the build in Cygwin. Including windows.h first seems to solve the problem. This commit also removes the definition of an unused flag.
* command: fix wrong condition & remove redundant stream type checkingxylosper2014-03-131-14/+2
|
* command: set 'media-title' property for bluray disc with meta-dataxylosper2014-03-136-16/+34
|
* af_volume: add support for replaygain pre-amp and clipping preventionAlessandro Ghedini2014-03-132-11/+80
|
* af_volume: add replaygain supportAlessandro Ghedini2014-03-132-0/+28
| | | | | | | | | This adds the options replaygain-track and replaygain-album. If either is set, the replaygain track or album gain will be automatically read from the track metadata and the volume adjusted accordingly. This only supports reading REPLAYGAIN_(TRACK|ALBUM)_GAIN tags. Other formats like LAME's info header would probably require support from libav.
* af: add metadata field to af_stream and af_instanceAlessandro Ghedini2014-03-135-0/+8
| | | | | | This allows to propagate metadata information to audio filters. Closes #632
* DOCS/coding-style: add an example and another rulewm42014-03-131-0/+25
|
* af_lavfi: beat it into working