aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* vf: move norm_qscale() to the only filter which uses itGravatar wm42013-12-05
|
* vf_sub, vf_dlopen: default struct is not neededGravatar wm42013-12-05
|
* vf: cleanup removed filter entryGravatar wm42013-12-05
|
* video: allow hardware decoding only for certain codecsGravatar wm42013-12-05
| | | | | | | | | | In particular, this disables mpeg4. There are some files out there that use GMC, a usually rarely used and ineffective feature, which is not supported by most hardware decoders. In these cases the hw decoder outputs garbage, while software decoding works perfectly fine. We can't really fallback to software decoding in these cases, because we don't know that something is wrong in the first place. I can't see any advantages of hw decoding of mpeg4, so it's better to disable it.
* docs: edl: minor correctionsGravatar wm42013-12-05
|
* build: fix regression in cross-compilationGravatar Stefano Pigozzi2013-12-05
| | | | Regression was introduced in bf90317ad in an attempt to fix the Lua check.
* video/filter: fix some bogus free() callsGravatar wm42013-12-05
| | | | The generic filter code frees these; recent regression.
* audio: flush remaining data from the filter chain on EOFGravatar wm42013-12-05
| | | | | | | | | | | | | | | | | This can be reproduced with: mpv short.wav -af 'lavfi="aecho=0.8:0.9:5000|6800:0.3|0.25"' An audio file that is just 1-2 seconds long should play for 8-9 seconds, which audible echo towards the end. The code assumes that when playing with AF_FILTER_FLAG_EOF, the filter will either produce output, or has all remaining data flushed. I'm not really sure whether this really works if there are multiple filters with EOF handling in the chain. To handle it correctly, af_lavfi should retry filtering if 1. EOF flag is set, 2. there were input samples, and 3. no output samples were produced. But currently it seems to work well enough anyway.
* audio/filter: change filter callback signatureGravatar wm42013-12-05
| | | | | | | | | The new signature is actually closer to how it actually works, and someone who is not familiar to the API and how it works might make fewer fatal mistakes with the new signature than the old one. Pretty weird. Do this to sneak in a flags parameter, which will later be used to flush remaining data of at least vf_lavfi.
* ad_lavc: handle decoder EAGAIN only if there was an input packetGravatar wm42013-12-04
| | | | | Otherwise, it'd probably get stuck if the decoder still returns EAGAIN at EOF on e.g. a shortened data stream.
* options: remove legacy hacks for sub-option handlingGravatar wm42013-12-04
|
* af: remove af->setup fieldGravatar wm42013-12-04
| | | | Used to be used by filters that didn't use the option parser.
* af: remove legacy option parsing hacksGravatar wm42013-12-04
|
* af_pan: change options, use option parserGravatar wm42013-12-04
| | | | Similar to af_channels etc...
* af_ladspa: change options, use option parserGravatar wm42013-12-04
|
* af_delay: change option parsing, fix bugs, use option parserGravatar wm42013-12-04
| | | | Similar situation to af_channels.
* af_channels: use "unknown" channel layoutsGravatar wm42013-12-04
| | | | | | | | | This will make af_channels output a channel layout that is compatible with any destination layout. Not sure if that's a good idea though, since the way the AO choses a layout is perhaps less predictable. On the other hand, using the old MPlayer standard layouts doesn't make much sense either. We'll see whether this improves or breaks someone's use case.
* af_channels: change options, fix bugs, use option parserGravatar wm42013-12-04
| | | | | | | Apparently this stopped working after some planar changes (broken format negotiation). Radically change option parsing in an incompatible way. Suggest alternatives to this filter, since it barely has any importance anymore.
* af_sweep: use option parserGravatar wm42013-12-04
|
* af_surround: use option parserGravatar wm42013-12-04
|
* af_sub: use option parserGravatar wm42013-12-04
|
* af_sinesuppress: use option parserGravatar wm42013-12-04
|
* af_hrtf: use option parserGravatar wm42013-12-04
|
* af_extrastereo: use option parserGravatar wm42013-12-04
|
* af_export: use option parserGravatar wm42013-12-04
| | | | Probably requires the user to quote the shared buffer filename.
* af_equalizer: use option parserGravatar wm42013-12-04
|
* af_drc: use option parserGravatar wm42013-12-04
|
* af_center: use option parserGravatar wm42013-12-04
|
* af: returning NULL on filtering means errorGravatar wm42013-12-04
| | | | | | This code used to be ok, until the assert() was added. Simplify the loop statement, since the other NULL check for data doesn't make sense anymore.
* ad_lavc: expose an option to enable threadingGravatar wm42013-12-04
|
* vd_lavc: factor out libavcodec thread setupGravatar wm42013-12-04
|
* vd_lavc: don't check required hwdec fieldsGravatar wm42013-12-04
|
* ad_lavc: deal with arbitrary decoder delayGravatar wm42013-12-04
| | | | | | | | | | | | | | | | | | | | Normally, audio decoder don't have a decoder delay, so the code was fine. But FFmpeg supports multithreaded decoding for some audio codecs, which introduces such a delay. The delay means that we won't get decoded audio for the first few packets, and that we need to do something to get the trailing audio still buffered in the decoder when reaching EOF. Two changes are needed to deal with the delay: - If EOF is reached, pass a "flush" packet to the decoder to return the buffered audio. Such a flush packet is automatically setup when calling mp_set_av_packet() with a NULL packet. - Use the PTS returned by the decoder, instead of the packet's. This is important to get correct timestamps for decoded audio. Ignoring this would result into offsetting the audio playback time by the decoder delay. Note that we can still use the timestamp of the first packet to get the timestamp for the start of the audio.
* av_common: add timebase parameter to mp_set_av_packet()Gravatar wm42013-12-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | If the timebase is set, it's used for converting the packet timestamps. Otherwise, the previous method of reinterpret-casting the mpv style double timestamps to libavcodec style int64_t timestamps is used. Also replace the kind of awkward mp_get_av_frame_pkt_ts() function by mp_pts_from_av(), which simply converts timestamps in a way the old function did. (Plus it takes a timebase parameter, similar to the addition to mp_set_av_packet().) Note that this should not change anything yet. The code in ad_lavc.c and vd_lavc.c passes NULL for the timebase parameters. We could set AVCodecContext.pkt_timebase and use that if we want to give libavcodec "proper" timestamps. This could be important for ad_lavc.c: some codecs (opus, probably mp3 and aac too) have weird requirements about doing decoding preroll on the container level, and thus require adjusting the audio start timestamps in some cases. libavcodec doesn't tell us how much was skipped, so we either get shifted timestamps (by the length of the skipped data), or we give it proper timestamps. (Note: libavcodec interprets or changes timestamps only if pkt_timebase is set, which by default it is not.) This would require selecting a timebase though, so I feel uncomfortable with the idea. At least this change paves the way, and will allow some testing.
* manpage: use different quoting in exampleGravatar wm42013-12-04
| | | | | Using "" quotes often tricks people into using this on the command line, while shell still expands $ inside of these.
* manpage: remove unhelpful paragraph about video filter paramsGravatar wm42013-12-04
| | | | | | This makes it sound like -1 would work to set the default for any parameter. But this is just a (crappy) convention, which doesn't work always.
* manpage: update af_format entryGravatar wm42013-12-04
| | | | | | Don't bother explaining the sample format naming schema. The "ne" bit is outdated anyway, and anyone who has to use this option will be able to understand the naming schema just by looking at the names too.
* build: osx: set chmod to 755 for non-bundle binary during installGravatar Stefano Pigozzi2013-12-04
| | | | | When installing the bundle we also manually install the origianl binary. Waf defaults to chmod 644, so we must explicitely set it to 755.
* wayland: print waylands display errosGravatar Alexander Preisinger2013-12-04
| | | | | This is very usefull especially if you want to use newer wayland stuff like wl_subsurfaces and xdg_surfaces.
* build: remove execute kwarg to check_cc when cross-compilingGravatar Stefano Pigozzi2013-12-04
| | | | | | This prevents waf from running test programs after compilation. A better approach would be to only remove this option if the check actually errors, but we are using this only for Lua anyway.
* vf_noise: reduce binary sizeGravatar wm42013-12-04
| | | | Same issues as in previous commit.
* vf_eq: revert unintended binary size increaseGravatar wm42013-12-04
| | | | | | The vf_eq context contains a very large lookup table, and the method of setting default values caused the vf_eq context to be included in the compiled code.
* manpage: fix exampleGravatar wm42013-12-04
|
* manpage: remove two stray video fitler deprecation notesGravatar wm42013-12-04
| | | | | | | | vf_stereo3d now uses vf_lavfi, if mpv was compiled with libavfilter. vf_swapuv is hereby undeprecated. It's too trivial to wrap it with libavfilter, and it's also too useless that even typing this commit message is not really worth the time to spend on it.
* ao_oss: when falling back from unknown prefer larger formatGravatar bugmen0t2013-12-04
|
* ao_oss: add 24bit formatsGravatar bugmen0t2013-12-04
|
* manpage: generic notice about changed sub-option parsingGravatar wm42013-12-04
| | | | | | Just in case someone expects these are unchanged just because they're not mentioned in changes.rst anywhere. Documenting all of these changes would be too much work and not helpful either.
* video/filter: remove legacy option handling hacksGravatar wm42013-12-04
| | | | | | | | | All filters now either use the generic option parser, or don't have options. This finally finishes a transition started in 2003 (see git commit 33b62af94760186c). Why are MPlayer devs so monumentally lazy? Sorry, but this takes the cake. You had 10 years.
* vf_vo: don't abuse option strings to set VOGravatar wm42013-12-04
| | | | Whoever thought this was a good idea should be punched.
* vf_rotate: use option parserGravatar wm42013-12-04
|