summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Remove support for libnemesi RTSP streamingwm42012-08-208-632/+0
| | | | | Removed due to being a maintainance burden. Support for FFmpeg is available.
* Remove support for LIVE555 RTSP streamingwm42012-08-2014-1476/+2
| | | | | | | | | | | | The main excuse for removing this is that LIVE555 deprecated the API the mplayer implementation was using. The old API still seems to be somewhat supported, but must be explicitly enabled at LIVE555 compilation, so mplayer won't always work on any user installation. The implementation was also very messy, in C++, and FFmpeg support is available as alternative. Remove it completely.
* libmpdemux: remove demux_real, demux_viv, demux_audiowm42012-08-2015-4275/+58
| | | | | | libavformat replaces demux_audio completely. I don't know/care what vivo (demux_viv) is. libavformat has a Real demuxer; it seems it works slightly better, with a different set of bugs.
* build: remove leftover bits for internal libdvdread supportwm42012-08-202-28/+0
| | | | | | | Support for internal libdvdread has been removed in commit 41fbcee1f55, but some bits have been missed in Makefile/configure. Support for libdvdread as normal library is left unchanged.
* cocoa_common: add HiDPI/retina supportStefano Pigozzi2012-08-163-17/+63
| | | | | | | | | | | | | | | | | | | | With a HiDPI screen, for performance and backwards compatibility reasons, AppKit requests an OpenGL surface with a pixel number that equals the user points number. After the image is rendered to this smaller surface, it is upscaled so that its dimensions are comparable across screens of different DPIs. The applied scaling is not that good and makes the video/subtitles blurry; this is not acceptable for a video player. Request AppKit to use a high resolution OpenGL surface to back the mplayer2 OpenGL view. Also set the window pixel size information correctly in the VO object by converting user points to actual pixels. All the system version checks are done at runtime so that the feature is available on OSX 10.7 even with a binary compiled with older SDKs. Also replace is_lion_or_better() with is_osx_version_at_least(10, 7, 0) which is defined in osx_common.
* macosx_finder_args: fix file open orderStefano Pigozzi2012-08-161-1/+3
| | | | | | | When files are double clicked or drag and dropped to the mplayer2 icon they can be in random order. This commit forces alphabetical order. Opening them with command + down arrow already worked correctly.
* macosx_finder_args: make work with recent changesStefano Pigozzi2012-08-162-4/+4
|
* cocoa_common.m: add missing config.h includeStefano Pigozzi2012-08-161-0/+2
| | | | This is needed for the check on CONFIG_SDL in this file.
* cleanup: osx_common: remove unused functionsStefano Pigozzi2012-08-162-53/+0
| | | | | | | | | Remove functions that aren't called anymore: * `osx_foreground_hack` was replaced by the NSApplication's activateIgnoringOtherApps: in cocoa_common. * Aspect ratio functions were not called by the "new" cocoa backend, since the corresponding menu item was deleted.
* cocoa_common: refactor menu generationStefano Pigozzi2012-08-161-16/+41
| | | | | This commit is supposed to make the menu generation a little more readable. It also fixes menu generation for the `cmd+q` entry.
* gl_common: fix compilation on OS X 10.8Stefano Pigozzi2012-08-161-0/+6
| | | | | | | | | As of OS X 10.8 Apple completely removed X11 from the system. gl_common.h was including gl.h using the path <GL/gl.h>. This path comes from the X11 headers, which are missing in 10.8. Change gl_common.h to include gl.h from Apple's OpenGL implementation as <OpenGL/gl.h> if X11/XQuartz is not detected.
* VO: remove vo_directfb2 and vo_directxwm42012-08-167-2785/+0
| | | | | | | | | | | | While being able to play videos on a framebuffer device would be nice, I didn't need it, and couldn't even test it (buggy nvidia binary drivers that disable framebuffers, buggy DirectFB that crashes when using the X11 backend). It's just dead weight, get rid of it. vo_directx was very horrible, and by today it's mostly useless. I didn't remove it, because there was that-guy who told me in amazement how awesome mplayer was, because it was the only video player fast enough for fast playback on his system when using vo_directx. Sorry, that-guy.
* Remove dvdnav support (DVD menus)wm42012-08-1617-1704/+15
| | | | | | | | | | | | | | | | When the internal mplayer MPEG demuxer was removed (commit 1fde09db), the default demuxer when using dvdnav was set to libavformat. Now it turns out that this doesn't work with libavformat. It will terminate playback right after the audio runs out (instead of looping it like the video, or whatever it's supposed to do). I'm not sure what exactly the problem is, but since 1. even mplayer-svn can't handle DVD menus directly (missing highlights), 2. DVD menus are essentially worthless, and 3. I don't directly watch DVDs, don't bother with it and remove it. For basic playback, there's still libdvdread support. Also, use pkg-config for libdvdread, and drop support for in-tree libdvdread. Remove support for in-tree libdvdcss as well.
* Remove win32/qt/xanim/real binary codecs loadingwm42012-08-16114-44013/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove the win32 loader - the win32 emulation layer, as well as the code for using DirectShow/DMO/VFW codecs. Remove loading of xanim, QuickTime, and RealMedia codecs. The win32 emulation layer is based on a very old version of wine. Apparently, wine code was copied and hacked until it was somehow able to load a limited collection of binary codecs. It poked around in the code segment of some known binary codecs to disable unsupported win32 API calls to make them work. Example from module.c: for (i=0;i<5;i++) RVA(0x19e842)[i]=0x90; // make_new_region ? for (i=0;i<28;i++) RVA(0x19e86d)[i]=0x90; // call__call_CreateCompatibleDC ? for (i=0;i<5;i++) RVA(0x19e898)[i]=0x90; // jmp_to_call_loadbitmap ? for (i=0;i<9;i++) RVA(0x19e8ac)[i]=0x90; // call__calls_OLE_shit ? for (i=0;i<106;i++) RVA(0x261b10)[i]=0x90; // disable threads Just to show how utterly insane this code is. You wouldn't want even your worst enemy to have to maintain this. In fact, it seems nobody made major changes to this code ever since it was committed. Most formats can be decoded by libavcodecs these days, and the loader couldn't be used on 64 bit platforms anyway. The same is (probably) true for the other binary codecs. General note about how support for win32 codecs could be added back: It's not possible to replace the win32 loader code by using wine as library, because modern wine can not be linked with native Linux programs for certain reasons. It would be possible to to move DirectShow video decoding into a separate process linked with wine, like the CoreAVC-for-Linux patches do. There is also the mplayer-ww fork, which uses the dshownative library to use DirectShow codecs on Windows.
* demux_lavf: assume audio codec_tag 0 means unsetUoti Urpala2012-08-161-0/+2
| | | | | | | | | | | Libavformat does not distinguish between "no codec_tag given" and "codec_tag given, value is 0". 0 can be a valid value. Change demux_lavf to assume that 0 always means unset for audio. This prevents incorrect selection of the PCM decoder, which includes "format 0x0" in its codecs.conf entry. The video case accepts 0 iff codec_id is RAWVIDEO, but there's no obvious similar check possible for audio. Thus this could possibly cause issues if a file really uses 0 to mean uncompressed audio.
* ad_ffmpeg: add sanity check against decoder overreadsUoti Urpala2012-08-161-2/+4
| | | | | | | The libavcodec Musepack SV8 decoder returned 2 bytes consumed for 1 byte input, which triggered a crash due to negative input packet size later. Add a sanity check to prevent crashes with this type of minor decoder overreads. Also add a check to parser consumed data.
* stream_file: print strerror() when failing to open a fileUoti Urpala2012-08-161-1/+3
| | | | | | | | | | stream_file always printed "File not found" if it could not open a file, even though this could be due to other reasons such as permission problems. Print strerror() information instead. This changes the output for "mplayer /etc/shadow" from File not found: '/etc/shadow' to Cannot open file '/etc/shadow': Permission denied
* command: expand properties for "run" commandmplayer-svn2012-08-161-1/+5
| | | | | | | | | | Change "run" command to expand properties. Patch by Jan Christoph Uhde [Jan UhdeJc com], documentation part changed by me. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@35081 b3059339-0415-0410-9bf9-f77b7e298cf2 Author: reimar
* vo_vdpau: fix crash when vo_vdpau initialization failswm42012-08-161-1/+1
| | | | | | | | This happened on system without a vdpau driver installed. It's especially bad because vdpau is the default VO. I'm not sure when this bug was introduced, and it seems to exist in upstream mplayer2 too.
* video_out: fix crash when VO autoselection failswm42012-08-161-2/+3
| | | | | | | | init_best_video_out() did not manage the memory for vo->window_title correctly, and free'd it twice when initialization failed (that's due to talloc_free_children() being called). When the next VO was tried, it reused the dangling pointer. Initialize this member somewhere else lazily instead.
* configure: check for python3 existenceRudolf Polzer2012-08-161-0/+13
|
* mplayer: cosmetic changes to status line outputwm42012-08-161-9/+9
| | | | | | | | | | | | | | The terminal status line (showing playback status etc.) was too long for the standard 80 column width in some cases. Shorten the output by abbreviating some fields with single letters. Change "(PAUSED!)" to "(Paused)". This looks nicer. Move the speed field forward and omit the explicit "header". It's probably intuitively clear that "x2.00" means double speed. The field showing the playback time in seconds was padded with spaces. This just takes space away and wasn't really needed.
* mplayer: remove playlist demuxer hackwm42012-08-161-63/+0
| | | | | | | | This was a hack for .mov reference files. The mov demuxer, which triggered this code, has been removed in commit 1fde09db6f4cee73478. The code serves no purpose anymore, and it was bogus in the first place. (This mov feature should have been handled either by the core's timeline support, or as normal playlist.)
* image_writer: make JPG default and increase quality (for screenshots)wm42012-08-161-2/+2
| | | | | | | | | The assumption is that JPG screenshots are more useful in general. Lossless screenshots made from lossy videos are just a waste of space. Increase JPEG quality a bit. There's a tradeoff between quality and size, and since JPEG is the default now, attempt to balance the JPEG settings to provide sane defaults for general use cases.
* vf_expand: remove OSD supportwm42012-08-163-140/+4
| | | | | | | | It's not clear why this video filter supported OSD rendering. The manpage says: "Can be used for placing subtitles/OSD in the resulting black bands." But every single VO already does this if vf_expand adds black borders. This feature is 100% pointless.
* core: intentionally cripple slave modewm42012-08-152-11/+16
| | | | | | | | | | Rename -slave to -slave-broken to prevent slave mode applications from working. Do this to prevent horrible user experiences, in case someone should attempt to try this version of mplayer with smplayer and others. This also makes it clear that we don't intend to keep slave mode compatibility, because the slave mode protocol is horrible and bad. See the changes in options.rst for further reasons and comments.
* vo_sharedbuffer: remove this VOStefano Pigozzi2012-08-156-348/+0
| | | | | | | | | | | | | | Since slave mode is not planned to be kept, this VO is useless and I'm removing it. This VO was useful for OSX GUIs. Since in cocoa you can't embed views in windows from other processes, this VO was writing to a sharedbuffer with mmap. The OSX GUIs would then read from the buffer and render the image with an external renderer. If in the future we will want to support GUIs we will need to reasearch the IOSurface framework. This allows to share kernel managed image data across processes and integrates well with OpenGL.
* command: fix crash when setting nonexistent propertywm42012-08-101-0/+2
| | | | | Commit ebaaa41f2a4 accidentally removed the final terminator of the properties array.
* command: fix subtitle selection displaywm42012-08-082-4/+8
| | | | | | | | | Commit 9c02ae7e9510897 set the sh variable (see diff) to the struct of type sh_sub instead the one of sh_stream. Unfortunately this didn't crash, and merely made the OSD show "unknown" for the language. Commit 804bf91570a24b9 accidentally removed the display of the track title. Add it back.
* osx: fix buildStefano Pigozzi2012-08-082-3/+3
| | | | adapt the osx VOs to build against the latest changes.
* manpage: document gl3, direct3d, portaudio, remove v4l2wm42012-08-082-18/+308
| | | | | | | | | The documentation is mostly taken from the help text embedded in the code of each output driver. vo_v4l2 and ao_v4l2 have been removed. Minor modifications to vo_xv, vo_directx and vo_gl.
* manpage: document per-file optionswm42012-08-071-0/+42
|
* manpage: add initial documentation about changeswm42012-08-072-0/+156
| | | | | | | Documents changes from mplayer-svn and mplayer2. Most of this should probably not be in the manpage, but on a website. But there is no website yet.
* sub: fix confusion of ass_library handleswm42012-08-074-12/+15
| | | | | | | | | | | | Commit 7484ae8e2ee5327 attempted to introduce two ass_library handles (as it was needed to deal with how ass_library manages fonts), but the commit was completely bogus: it assumed osd_state->ass_library would be used by osd_libass.c only, which is not the case. As result, some of the subtitle code used the wrong ass_library handle. We need two ass_library handles in osd_state. The one from the mplayer core for subtitles (osd_state->ass_library), and one for OSD rendering (osd_state->osd_ass_library).
* codecs.cfg: do not prefer spdifmpa over mpg123 decoderwm42012-08-071-1/+1
| | | | | | | | | | | | | | | | | | | | | The generic hardware pass-through decoder ad_spdif (imported from mplayer-svn) was mistakenly prefered over the default decoder mpg123. This is the same as mplayer-svn commit 34192. The spidfmpa entry was marked as "untested", which for inconceivable reasons is preferred over entries marked "working". (The probe order is untested, working, buggy. Possibly to "force" untested codecs to be tested?) I didn't know this behavior, and skipped the corresponding mplayer-svn commit 34192, as it looked like it would move up the entry in autoprobe order (not the reverse), which might have been slightly dangerous, or at least not something we would have to bother with. The only change in behavior the incorrect entry caused was that playing a shoutcast mp3 stream displayed "inf" as time on the mplayer status line, instead the time since joining the stream. (The same can be seen when starting mplayer-svn with -ac spdifmpa,mpg123 .) I'm not sure why this happens; I can only guess that when spdifmpa throws away header data when it fails initializing, or messes up something else.
* playlist: do not add playlist base path to URLswm42012-08-071-3/+10
| | | | | | | | | | | | | | | | | | | The entries of a playlist file usually refer either to local files (in the same directory as the playlist), or absolute paths like URLs. In the first case, you want to add the base path of the playlist file to the files, so that mplayer can find the files. In the second case, the URLs should not be changed. Unfortunately, mp_path_join() recognizes URLs as relative paths, and changes them. E.g. it tried to play /path/to/playlist/http://entry. Add some code to deal with this properly. The added code uses the same approach as m_option_type_custom_url in m_option.c, but because it's so short and trivial, it's perhaps better not to rely on the option parser code. It's also unclear whether mp_path_join() should contain this logic, but maybe it's better to keep the logic of that function clean.
* command: skipping past the last chapter explicitly stops playbackwm42012-08-071-1/+1
| | | | | | | | | | | | | | | | | Skipping past the last chapter as user action means playback of the current file should be ended. The code did this by doing a relative seek by 1000000000 seconds, which usually caused playback to stop. However, it displayed a quite ugly and arbitrary looking number in the status display. Fix this by explicitly skipping to the next file, instead of issuing a seek command. (If there is no next file, the player will exit, just as before.) (Note: an alternative way to solve this could have been comparing the mpctx->video_pts with the mpctx->last_seek_pts in print_status(). If they're the same, it's likely that the video_pts was set to the seek request time, and we could print another PTS or no PTS instead.)
* osd: remove FAST_OSD codewm42012-08-074-85/+1
| | | | | | This code has never been active by default, ever since it was added back in 2001. You had to edit config.h or configure manually to enable it.
* osd_libass: allocate separate ASS_Library for OSDwm42012-08-074-6/+10
| | | | | | | | | | osd_libass.c used the same ASS_Library object as the player core. This caused a problem: when playing a new file, all fonts loaded by the ASS_Library object were unloaded, including the OSD font. Parts of the OSD would stop being rendered correctly. Solve this by creating a separate ASS_Library, with its own set of fonts.
* osd: reset OSD change state even if VO doesn't draw OSDwm42012-08-073-1/+12
| | | | | | | | | | | | Commit 168293e0ae6f08 assumed the OSD drawing routines (which have the functions osd_draw_text/_ext as entrypoint) would always be called, and relied on that to reset the change flag. Some VOs, such as vo_null, didn't do this. Pausing could turn into endless framestepping in some cases. Restore the part of the OSD drawing logic that dealt with this. (Alternatively, the VOs could be obliged to always call the OSD drawing routines, even if the VO doesn't actually draw the OSD. But it seems even more messy to rely on that.)
* VO: remove old VO gluewm42012-08-0715-356/+3
| | | | | | | This transition to a new VO API started over 4 years ago. It's time to finally end it, and get rid of the horrible hacks. Also removes some previously undetected dead code from spudec.c.
* osx_common: remove old VO include, modify change_movie_aspect()wm42012-08-072-4/+5
| | | | | | | | The only reason the old VO related header old_vo_defines.h was included was probably to gain access to the current VO struct in the function change_movie_aspect(). Make that function take a parameter instead. This function seems to be unused.
* vo_directx: convert to new VO APIwm42012-08-071-68/+78
|
* win32: fix compilation on MinGWwm42012-08-074-11/+15
| | | | | | | | | | | | | | | The commit 74df1d8e05aa2 (and f752212c62353) replaced the configure endian check with byte order macros defined by standard headers. It turns out that MinGW-w64 actually doesn't define these macros in the sys/types.h system header. (I assumed it does, because a quick test seemed to work. But that was because gcc -W -Wall doesn't warn against undefined macros. You need -Wundef for that.) MinGW-w64 has a sys/params.h header defining these macros, but sys/types.h doesn't include it, so it's useless without special casing the mplayer code. Add a hack top configure instead. Define the macros directly, and assume MinGW-w64 only works on little endian machines. The other changes are basically random typos and superficial oversights.
* vo_null: reformat and use new VO APIwm42012-08-071-48/+42
|
* Remove V4L2 decoder support (vo_v4l2 and ao_v4l2)wm42012-08-079-673/+0
| | | | | | | | | | | The removed VO and AO took MPEG data and decoded it with V4L2. I'm not exactly sure what's the use of this today, but get rid of it. As far as feeding video data to V4L2 is concerned, there are other ways. For example, there is this script, that feeds yuv4mpeg formatted raw video data to V4L2: https://raw.github.com/umlaeute/v4l2loopback/master/examples/yuv4mpeg_to_v4l2.c
* vo_v4l2: reformat, use new VO APIwm42012-08-071-165/+153
| | | | | Actually, this is probably completely broken, and there are better ways to get mplayer output into a V4L2 device.
* vo_caca: use new VO APIwm42012-08-071-33/+54
|
* vo_directfb2: reformat and convert to new VO APIwm42012-08-071-938/+1083
| | | | | | No effort was put into moving static variables into a priv struct. The VO wasn't tested, because DirectFB's X11 backend didn't work for me (it crashed, not just with mplayer, but also SDL applications).
* vo_x11: reformat, use new VO APIwm42012-08-071-375/+397
| | | | This also involves moving the static variables into a priv struct.
* TOOLS/uncrustify.cfg: add uncrustify profile for code reformattingwm42012-08-061-0/+158
| | | | | | | | | | | | There is lots of badly and inconsistently formatted code left, which leaves us with the frequent need for cleaning up. This uncrustify profile can be used for automatic reformatting. The author of this file is (perhaps) uau. It's different from mplayer-svn's TOOLS/mp-uncrustify-style.cfg. The differences and origins of these files are unclear, but the file added with this commit is probably more consistent with the heavily cleaned up areas of mplayer2 and this fork.
* manpage: reflect recent VO changeswm42012-08-061-108/+33
|
* image_writer: rename "filetype" option to "format"wm42012-08-063-5/+5
| | | | | | | Although slightly less precise, this sounds less clunky. This change also causes the --screenshot-filetype option to be renamed to --screenshot-format.
* libvo: remove videodev_mjpeg.hwm42012-08-061-141/+0
| | | | This was used by stream/tvi_v4l.c, which was removed a while ago.
* VO: remove vo_gif89a, vo_md5sum, vo_yuv4mpegwm42012-08-066-1033/+0
| | | | | | | | The encoding branch by divverent can handle of these via libavformat. Note: for some reason, libav/ffmpeg have a GIF muxer only, and no demuxer. The gif configure checks needef for the mplayer internal gif demuxer can't be removed yet.
* VO: remove vo_jpeg, vo_png, vo_pnm, vo_tgawm42012-08-067-1484/+1
| | | | All of these have been replaced by vo_image.
* vo_image: add outdir optionwm42012-08-061-8/+42
| | | | | The function checked_mkdir is taken from vo_jpeg, with the error handling stripped down to a reasonable level.
*