summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* options: don't prefix sub-options with "--" in help outputwm42013-11-233-1/+4
| | | | | Commit 0cb9227a added this to the option list help output, but it looks strange with sub-options.
* options: implement --pphelp differentlywm42013-11-237-9/+10
| | | | Make it work via --vf=pp:help instead.
* video: remove vf_pp auto-insertionwm42013-11-238-40/+1
| | | | | | | | | | This drops the --pp option, which was probably broken for a while. The option automatically inserted the "pp" filter. The value passed to it was ignored (which is probably broken, it always selected maximal quality). Inserting this filter can be done simply with --vf=pp, so this is not needed anymore.
* options: provide a way for --vf to print custom helpwm42013-11-232-13/+18
| | | | Useful in rather special situations. See following commits.
* video: merge vd.c into dec_video.cwm42013-11-234-177/+138
| | | | | I don't feel like the separation ever made sense, and it was hard to tell which file a function you were looking for was in.
* video: move struct mp_hwdec_info into its own header filewm42013-11-2313-23/+31
| | | | | | | | This means most code accessing this struct must now include hwdec.h instead of dec_video.h. I just put it into dec_video.h at first because I thought a separate file would be a waste, but it's more proper to do it this way, as there are too many files which include dec_video.h only to get the mp_hwdec_info definition.
* audio: remove ad_driver.preinitwm42013-11-236-34/+13
| | | | | This never had any real use. Get rid of dec_audio.initialized too, as it's redundant.
* player: remove printing of barely correct slave mode stream infowm42013-11-231-35/+0
| | | | | | | | | | | | | | This was printed before something was decoded, and thus was not really correct. Also, this code is hilariously broken: /* Assume FOURCC if all bytes >= 0x20 (' ') */ if (sh_audio->format >= 0x20202020) mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AUDIO_FORMAT=%.4s\n", (char *)&sh_audio->format); Time to kill it. This information can be accessed through properties instead.
* audio: don't write decoded audio format to sh_audiowm42013-11-237-56/+55
| | | | | | | | sh_audio is supposed to contain file headers, not whatever was decoded. Fix this, and write the decoded format to separate fields in the decoder context, the dec_audio.decoded field. (Note that this field is really only needed to communicate the audio format from decoder driver to the generic code, so no other code accesses it.)
* audio: move decoder context from sh_audio into new structwm42013-11-2315-291/+327
| | | | | | | | | Move all state that basically changes during decoding or is needed in order to manage decoding itself into a new struct (dec_audio). sh_audio (defined in stheader.h) is supposed to be the audio stream header. This should reflect the file headers for the stream. Putting the decoder context there is strange design, to say the least.
* build: remove unused mng fragmentStefano Pigozzi2013-11-231-7/+0
|
* build: also run the test binary during the lua checksStefano Pigozzi2013-11-231-2/+3
|
* build: fix lua check to actually test for libquviStefano Pigozzi2013-11-231-5/+8
|
* build: fix missing prototypes in lua check fragmentStefano Pigozzi2013-11-231-2/+2
|
* build: use static instead of prototype in libavfilter fragmentStefano Pigozzi2013-11-231-2/+1
|
* build: fix libavfilter check to include function prototypeStefano Pigozzi2013-11-231-0/+1
| | | | | Apparently the check error'ed on some compilers for missing prototype and simply adding one fixes it.
* build: fix install path for manualStefano Pigozzi2013-11-231-1/+1
| | | | | Appending man1 to the MANDIR was forgotten, so the manual was installed in the wrong path.
* README: mention build result being located at build/mpvStefano Pigozzi2013-11-231-2/+3
|
* build: make sure cwd is in Python's sys.pathStefano Pigozzi2013-11-231-0/+1
| | | | | | | | | Apparently some packaging systems (homebrew does this for example) change `sys.path` before they run any Python script to ensure that only the correct Python modules can be loadable. We need to make sure cwd is in `sys.path` since we need to load `wscript_build.py` from there.
* mp_ring: fix comment typoStefano Pigozzi2013-11-221-1/+1
|
* build: remove abusive commentStefano Pigozzi2013-11-221-1/+0
| | | | | The check seems to be working anyway, even without sys/video.h. So ./configure was maybe wrong.
* build: remove spam generated by link taskStefano Pigozzi2013-11-221-0/+4
| | | | | | Simply override the cprogram Task's __str__ method with our own implementation. This is way easier on the eyes when compiling mpv during development, since warnings are not pushed outside of your average screenful of content.
* vo_opengl: fix compilationwm42013-11-221-2/+2
| | | | Never do a trivial change while drunk and without actually testing it.
* vf_vavpp: make it work with vo_opengl and software decodingwm42013-11-223-5/+5
| | | | | | | | | | vo_opengl always loads the hwdec backend lazily, so hwdec_request_api() has to be called to possibly load it. This makes vf_vavpp work with software decoding. (Hardware decoding loads the backend before the filter is initialized, so this case is different.) Also, the VFCTRL_GET_HWDEC_INFO call doesn't need to be checked. If it fails, the info will be left blank.
* vo_opengl: initialize all fields for VFCTRL_GET_HWDEC_INFOwm42013-11-221-4/+8
| | | | | | This initialized only the load_api and load_api_ctx fields, and left the other fields as they were. This failed with vf_vavpp, which assumed all fields are initialized.
* build: unbreak PVR configure testwm42013-11-221-1/+1
|
* manpage: document , mapping (frame_back_step)enkore2013-11-221-0/+4
| | | | See #356
* input.conf: fix typowm42013-11-221-1/+1
|
* Fixing list of vo's that vavpp works with, in man page.Josh Driver2013-11-221-4/+4
|
* cocoa: use window-scale to support video scaling functionalityStefano Pigozzi2013-11-223-6/+10
| | | | | In the cocoa backend you can use cmd+0/1/2 to scale the window. This commit makes it use the new window-scale functionality.
* cocoa: implement window-scaleStefano Pigozzi2013-11-221-0/+20
|
* switch the build system to wafStefano Pigozzi2013-11-2149-119/+2480
| | | | | | | | | | | | | | | | | | | | | | | This commit adds a new build system based on waf. configure and Makefile are deprecated effective immediately and someday in the future they will be removed (they are still available by running ./old-configure). You can find how the choice for waf came to be in `DOCS/waf-buildsystem.rst`. TL;DR: we couldn't get the same level of abstraction and customization with other build systems we tried (CMake and autotools). For guidance on how to build the software now, take a look at README.md and the cross compilation guide. CREDITS: This is a squash of ~250 commits. Some of them are not by me, so here is the deserved attribution: - @wm4 contributed some Windows fixes, renamed configure to old-configure and contributed to the bootstrap script. Also, GNU/Linux testing. - @lachs0r contributed some Windows fixes and the bootstrap script. - @Nikoli contributed a lot of testing and discovered many bugs. - @CrimsonVoid contributed changes to the bootstrap script.
* options: prefix options with "--" in help outputwm42013-11-211-1/+1
| | | | This is Better(tm).
* stream_lavf: fix a small memory leakwm42013-11-211-1/+5
| | | | Also add an explanation why this special code path for rtsp is needed.
* timeline: reject mplayer2 EDL files, change EDL headerwm42013-11-214-16/+10
| | | | | | | | | | | This was forgotten when the parser for mplayer2 EDL files was removed. Change the header of the mpv EDL format to include a '#', so a naive parser could skip the header as comment. (Maybe this is questionable; on the other hand, if it can be simpler, why not.) Also, strip the header in demux_edl.c before passing on the data, so the header check doesn't need to be duplicated in tl_mpv_edl.c.
* tech-overview.txt: minor updatewm42013-11-201-2/+2
|
* ta: fix typo in commentwm42013-11-201-1/+1
|
* osdep/io.c: include config.hwm42013-11-201-0/+2
| | | | | This possibly enables code that has never been tested before (accidentally), so let's hope this works out ok.
* mplayer: fix passing size_t as %d to printf()wm42013-11-201-1/+1
|
* timeline: remove support for the mplayer2 EDL formatwm42013-11-194-540/+1
| | | | | It was a bit too complicated and inconvenient, and I doubt anyone actively used it. The mpv EDL format should cover all use cases.
* player: add --merge-files optionwm42013-11-196-0/+38
|
* timeline: add edl:// URIswm42013-11-199-3/+45
| | | | | Questionable change from user perspective, but internally needed to implement the next commit. Also useful for testing timeline stuff.
* timeline: add new EDL formatwm42013-11-196-8/+385
| | | | | | | | | | Edit Decision Lists (EDL) allow combining parts from multiple source files into one virtual file. MPlayer had an EDL format (which sucked), which mplayer2 tried to improve with its own format (which sucked). As logic demands, mpv introduces its very own format (which sucks). The new format should actually be much simpler and easier to use, and its implementation is simpler and smaller too.
* manpage: fix typo in --video-align-y descriptionwm42013-11-191-1/+1
|
* player: select fallback stream in timeline code for better EDL handlingwm42013-11-191-0/+23
| | | | | | | The intention of the existing code was trying to match demuxer-reported stream IDs, instead of using possibly arbitrary ordering of the frontend track list. But EDL files can consist of quite different files, for which trying to match the stream IDs doesn't always make sense.
* player: deselect video track if initialization failswm42013-11-191-0/+1
| | | | | | This didn't have any consequences, other than suddenly reinitializing video when it works again (such as with EDL timeline mixing video and audio-only files).
* vdpau_old: enable OpenGL interopwm42013-11-191-0/+1
| | | | | OpenGL interop was essentially disabled, because the decoder didn't request vdpau device creation from vo_opengl.
* ao_null: fix simulated buffer sizewm42013-11-191-1/+1
| | | | | The size accidentally defaulted to 200 seconds instead of 200 milliseconds, which had fatal consequences when trying to use it.
* audio/filter: rename af_tools.c to tools.cwm42013-11-182-1/+1
| | | | This always bothered me.
* demux: rename demux_packet.h to packet.hwm42013-11-186-6/+6
| | | | This always bothered me.
* audio: drop buffered filter data when seekingwm42013-11-185-0/+27
| | | | | This could lead to (barely) audible artifacts with --af=scaletempo and modified playback speed.
* audio/filter: remove unneeded AF_CONTROLs, convert to enumwm42013-11-1816-249/+74
| | | | | | | | The AF control commands used an elaborate and unnecessary organization for the command constants. Get rid of all that and convert the definitions to a simple enum. Also remove the control commands that were not really needed, because they were not used outside of the filters that implemented them.
* af: cleanup documentation commentswm42013-11-183-139/+22
| | | | | | And by "cleanup", I mean "remove". Actually, only remove the parts that are redundant and doxygen noise. Move useful parts to the comment above the function's implementation in the C source file.
* player: simplify audio reset when seekingwm42013-11-181-15/+10
| | | | | | | | | | Some decoders used to read packets and decode data when calling resync_audio_stream(). This required a special case in mp_seek() for audio. (A comment mentions liba52, which is long gone; but until recently ad_mpg123.c actually exposed this behavior.) No decoder does this anymore, and resync_audio_stream() works similar as resync_video_stream(). Remove the special case.
* stream_dvb: remove bogus free callswm42013-11-181-5/+0
| | | | | | The priv struct is now allocated by talloc in stream.c. It doesn't need to be manually freed, and using free() instead of talloc_free() probably crashes.
* vo_vdpau: don't calculate destination alpha when drawing OSDwm42013-11-181-2/+2
| | | | | | Same as MPlayer svn commit r36515 "Chose cheaper alpha blend equation." No idea if this is actually faster, but can't hurt.
* audio: use the decoder buffer's format, not sh_audiowm42013-11-182-8/+21
| | | | | | | | | | | | | | | | | | When the decoder detects a format change, it overwrites the values stored in sh_audio (this affects the members sample_format, samplerate, channels). In the case when the old audio data still needs to be played/filtered, the audio format as identified by sh_audio and the format used for the decoder buffer can mismatch. In particular, they will mismatch in the very unlikely but possible case the audio chain is reinitialized while old data is draining during a format change. Or in other words, sh_audio might contain the new format, while the audio chain is still configured to use the old format. Currently, the audio code (player/audio.c and init_audio_filters) access sh_audio to get the current format. This is in theory incorrect for the reasons mentioned above. Use the decoder buffer's format instead, which should be correct at any point.
* audio: fix mid-stream audio reconfigurationwm42013-11-183-1/+12
| | | | | | | | | | | | | | | | | | | | | Commit 22b3f522 not only redid major aspects of audio decoding, but also attempted to fix audio format change handling. Before that commit, data that was already decoded but not yet filtered was thrown away on a format change. After that commit, data was supposed to finish playing before rebuilding filters and so on. It was still buggy, though: the decoder buffer was initialized to the new format too early, triggering an assertion failure. Move the reinit call below filtering to fix this. ad_mpg123.c needs to be adjusted so that it doesn't decode new data before the format change is actually executed. Add some more assertions to af_play() (audio filtering) to make sure input data and configured format don't mismatch. This will also catch filters which don't set the format on their output data correctly. Regression due to planar_audio branch.
* stream: split out pthread helper functionwm42013-11-174-26/+70
| | | | Also split the function itself into 3.
* af_lavrresample: set cutoff as double, not intwm42013-11-171-1/+1
| | | | Regression introduced with commit a89549e8.
* player: write final audo chunk only if there is audio leftwm42013-11-171-4/+6
| | | | | Don't call ao_play() if there's nothing left. Of course this still asks the AO to play internally buffered audio by setting drain=true.
* ao_null: properly simulate final chunk, add buffer optionswm42013-11-172-19/+56
| | | | | | | | | | Simulate proper handling of AOPLAY_FINAL_CHUNK. Print when underruns occur (i.e. running out of data). Add some options that control simulated buffer and outburst sizes. All this is useful for debugging and self-documentation. (Note that ao_null always was supposed to simulate an ideal AO, which is the reason why it fools people who try to use it for benchmarking video.)
* player: don't remove playback status when reinitializing DVBwm42013-11-171-1/+3
| | | | Also break that line a bit.
* demux_packet: add source stream indexwm42013-11-162-0/+5
| | | | Might be helpful later.
* demux: update a commentwm42013-11-161-3/+3
|
* demux: remove unused commandswm42013-11-161-2/+0
| | | | These were replaced with DEMUXER_CTRL_SWITCHED_TRACKS a while ago.
* demux: simplify handling of filepos fieldwm42013-11-165-10/+13
| | | | | | | | | | | | demuxer->filepos contains the byte offset of the last read packet. This is so that the player can estimate the current playback position, if no proper timestamps are available. Simplify it to use demux_packet->pos in the generic demuxer code, instead of bothering every demuxer implementation about it. (Note that this is still a bit incorrect: it relfects the position of the last packet read by the demuxer, not that returned to the user. But that was already broken, and is not that trivial to fix.)
* demux_lavf: remove broken and commented byte based seekswm42013-11-161-40/+0
| | | | | | | | | | | | | This was originally added for better seeking where libavformat's seek function won't work well: files with timestamp resets. In these cases, the code tried to calculate an average bitrate, and then do byte based seeks by multiplying the seek target time with the bitrate. Apparently this was unreliable enough that the code was just commented (and other parts became inactive). Get rid of it. Note that the player still does byte based seeks in these cases when doing percent-seeks.
* demux: reset EOF flag differentlywm42013-11-161-10/+9
| | | | | This should be almost equivalent, but is slightly better because the EOF flag is reset earlier.
* encode_lavc: add missing newline in error messagewm42013-11-161-1/+1
|
* ao_lavc: use af_format_conversion_score()wm42013-11-161-26/+29
| | | | | | | | | | This should allow it to select better fallback formats, instead of picking the first encoder sample format if ao->format is not equal to any of the encoder sample formats. Not sure what is supposed to happen if the encoder provides no compatible sample format (or no sample format list at all), but in this case ao_lavc.c still fails gracefully.
* audio/format: add heuristic to estimate loss on format conversionwm42013-11-162-0/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |