summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* DOCS/tech/codecs.conf.txt: document how to add ffmpeg codecscompn2010-11-141-0/+40
| | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32604 b3059339-0415-0410-9bf9-f77b7e298cf2 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32615 b3059339-0415-0410-9bf9-f77b7e298cf2
* stream/network.c: Replace hardcoded str size with sizeofcboesch2010-11-141-5/+5
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32603 b3059339-0415-0410-9bf9-f77b7e298cf2
* sub_cc.c: minor cleanupreimar2010-11-141-6/+5
| | | | | | | | | | Avoid unnecessary (). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32599 b3059339-0415-0410-9bf9-f77b7e298cf2 Use calloc instead of malloc+memset. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32600 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_lavf: mark AVI timestamps non-pts to avoid messagesUoti Urpala2010-11-143-1/+9
| | | | | | | | Playing AVI files containing B-frames with demux_lavf printed two "decreasing pts" info messages at the start of the file. We know the timestamps from AVI won't be valid pts, so add a demuxer field to convey that information to the timing code and make that not even try to use the timestamps as valid pts.
* options: more mplayer.c options moved to option structClément Bœsch2010-11-146-47/+46
| | | | | | Following options were moved: autoq, benchmark, [no]term-osd, term-osd-esc, playing-msg, [no]idle, [no]consolecontrols, list-properties.
* options: move various mplayer.c options to option structClément Bœsch2010-11-135-28/+22
| | | | | Following options were moved: [no]quiet, [no]autosync, softsleep, [no]rtc, rtc-device.
* demux_lavf: use lavf for all formats except those listedAnton Khirnov2010-11-131-18/+12
| | | | | | | | lavf demuxers are mostly better and receive more maintenance, therefore it makes sense to prefer them in most cases. Change the "preferred" logic from listing all formats for which lavf is preferred to listing exceptions for which it isn't. Currently there are 3 exceptions: Matroska, FLAC and RealMedia (.rm).
* core: do initial A-V sync by modifying audio streamUoti Urpala2010-11-138-19/+130
| | | | | | | Add code to enforce matching pts with video when (re)starting the audio stream, by either cutting away the first samples or inserting silence at the beginning. New option -noinitial-audio-sync can be used to disable this and return to old behavior.
* core: give pts as parameter to demuxer_get_current_chapter()Uoti Urpala2010-11-133-11/+7
| | | | | | | | | demuxer_get_current_chapter() accessed sh_video/sh_audio pts fields to determine playback position. demux layer shouldn't access those and the values used weren't quite correct anyway. Give the playback position as a parameter to the demux layer function instead. Also change the top-level get_current_chapter() to use get_current_time() in the timeline case where it didn't refer to demux layer.
* demux_nsv: don't write to sh_video->ptsUoti Urpala2010-11-131-1/+1
|
* .gitignore: add /tags, /TAGSUoti Urpala2010-11-131-2/+2
| | | | | Ignore index files from ctags/etags. Remove obsolete entries for ffmpeg and mencoder.
* audio: add -gapless-audio optionUoti Urpala2010-11-125-14/+37
| | | | | | | | | If the option is enabled and all audio has been buffered to the AO, then the player will move to the next file without waiting for the buffered audio to drain, while leaving the AO initialized. If the playback of the next file starts quickly enough (before the AO buffer empties) then it should continue writing audio to the same AO with no gap in between.
* audio: don't try to send partial samples to AO at EOFUoti Urpala2010-11-121-1/+2
| | | | | | | | | | At least with PCM it's possible to get an audio stream that doesn't end at a multiple of whole sample per channel. At least ao_alsa refuses to accept that part of input, and so EOF detection in fill_audio_out_buffers didn't trigger until the 0.04 second sanity check (as there "was still audio not sent to AO left"). Change the logic to detect EOF if there's less than one sample per channel of unsent data left.
* options: move -cache-min and cache-seek-min to option structClément Bœsch2010-11-115-11/+10
|
* options: move [no]hr-mp3-seek to option structClément Bœsch2010-11-114-9/+6
|
* options: move some demux options to option structClément Bœsch2010-11-116-57/+47
| | | | | Following options were moved: audiofile, audiofile-cache, subfile, demuxer, audio-demuxer, sub-demuxer, [no]extbased.
* core: rename update_video_immediately->restart_playbackUoti Urpala2010-11-112-9/+9
|
* demux: change "%s file format detected" messageUoti Urpala2010-11-103-2/+11
| | | | | | | | | "libavformat file format detected" wasn't a very useful message due to the many file formats supported to libavformat. Change the message so that for demux_lavf it says something like "Detected file format: QuickTime/MPEG-4/Motion JPEG 2000 format (libavformat)" (using long name from FFmpeg), and for non-lavf something like "Detected file format: Matroska".
* core: print an explicit error if file format detection failsUoti Urpala2010-11-101-2/+4
| | | | | | | When file format detection failed the output only said "Exiting... (End of file)" after "Playing <file>." (or possibly error messages triggered by format-specific check functions in between). Add an explicit "Failed to recognize file format." error message.
* demuxer.c: clean up demux_open_stream()Uoti Urpala2010-11-101-136/+98
| | | | | Refactor the code to avoid duplication. Behavior should be mostly the same as before.
* demux: error out if given invalid -demuxer optionUoti Urpala2010-11-101-0/+5
| | | | | | | | | The code choosing the demuxer to use only printed an error if given an unknown demuxer name, then continued with default demuxer selection. Change it to abort instead. This feels like more sensible behavior. Also there's no fallback to autodetection in the case where the demuxer name is recognized but the demuxer fails to open the file either.
* demux_lavf: add simple seek-by-bytes mode for MPEGUoti Urpala2010-11-101-3/+39
| | | | | | | | | Seeking in MPEG files with pts resets could fail completely, as it was always done by timestamps and those of course don't unambiguously specify a file position in such files. Add basic functionality for byte-based seeking and playback position reporting, and decide whether to use that functionality based on a simple heuristic (could be improved).
* demux: improve -alang / -slang track choosing logicUoti Urpala2010-11-084-64/+57
| | | | | | | | | | | | When -alang / -slang was specified the numerically first matching track (if any) was always chosen. This meant that specifying "-alang eng" could change the track choice even if all tracks were in English, because now the default flag of tracks was ignored. Change the logic to take the default flag into account as a secondary sorting key. The code also accepted prefix matches, so that "-slang g" would match track language "ger". I think that was not intentional. Change it to require exact matches.
* demux_mkv: seek: with no track-specific index entries use anyUoti Urpala2010-11-081-38/+46
| | | | | | | | | The Cue entries in typical Matroska files have information for the video track only. This caused seeks to fail when playing with -novideo, as demux_mkv tried to use audio track index entries then. Add a fallback case that uses any index entries without caring what track they're for if there are no entries specific to the track we're interested in.
* demux_mkv: fix relative seeks without indexUoti Urpala2010-11-081-3/+3
| | | | | | | | Relative seeks didn't add the current position as they should. Fix. Note that this had no effect in normal playback case even if the file had no index, because the "accurate_seek" logic at higher level would convert all commands to absolute seeks before calling demuxer level.
* TOOLS/matroska.py: recognize MaxCache elementUoti Urpala2010-11-081-0/+1
|
* demux_mkv: fix seek hang when going past end of file without indexUoti Urpala2010-11-081-0/+2
|
* demux_mkv: cleanup: separate index creation part of seekingUoti Urpala2010-11-081-59/+69
| | | | | Move the code to build an index and seek without using cue information from the file to a separate function.
* core: use correct demuxer with -audiofile / -subfileUoti Urpala2010-11-083-22/+23
| | | | | | | | | | | Various code referred to "mpctx->demuxer" where it should really have referred to the one used for audio/subtitles in case those differ. Fix by using "mpctx->d_audio->demuxer" etc instead. Disable the copying of streams in demux_demuxers; that was a partial workaround for things referring to the main demuxer (and it wasn't enough anyway). This fixes, among other things, switching audio tracks within the file specified by -audiofile.
* demux_demuxers: initialize stream_pts to MP_NOPTS_VALUEUoti Urpala2010-11-081-0/+1
| | | | | | | demux_demuxers doesn't run the normal demuxer.c initialization for new demuxers. Initialize stream_pts separately (it won't ever be changed with the current implementation). This at least avoids other code assuming it was set properly.
* core: move video pos/length query functions from demux to coreUoti Urpala2010-11-086-115/+91
| | | | | | | | | Move functions to query current playback position, percentage position and total video length from from the demuxer layer to top level. The functions need access to playback state that doesn't belong on the demuxing level. Make the new functions more capable and simplify some code that can now rely on them. This fixes some errors in displayed in OSD and slave mode information when using timeline (ordered chapters).
* demux: fix -correct-pts autoselection with -audiofileUoti Urpala2010-11-081-1/+1
| | | | | | Make demuxer-based -correct-pts autoselection base the decision on the video demuxer in case several are being used, such as with -audiofile.
* cleanup: don't check for NULL before free()diego2010-11-0832-223/+146
| | | | | | patch by Clément Bœsch, ubitux gmail com git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32598 b3059339-0415-0410-9bf9-f77b7e298cf2
* codecs.conf: document need to add fourccs to parser list in demuxer.ccehoyos2010-11-081-0/+16
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32597 b3059339-0415-0410-9bf9-f77b7e298cf2
* demuxer.c: add missing parser list fourccscehoyos2010-11-081-0/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32596 b3059339-0415-0410-9bf9-f77b7e298cf2
* demuxer.c: fix parser list fourcc typo: 'MPE '->'MP3 'cehoyos2010-11-081-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32595 b3059339-0415-0410-9bf9-f77b7e298cf2
* vd_ffmpeg: compare IMGFMT instead of PIX_FMTreimar2010-11-081-3/+3
| | | | | | | Use IMGFMT to compare instead of PIX_FMT to avoid issues with the "JPEG" formats like PIX_FMT_YUVJ422P. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32594 b3059339-0415-0410-9bf9-f77b7e298cf2
* codecs.conf: add missing YV12 output formats for FFmpeg codecsreimar2010-11-081-4/+4
| | | | | | | For FFmpeg codecs YV12 should always be in the supported format lists if I420 is. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32593 b3059339-0415-0410-9bf9-f77b7e298cf2
* stream_dvd: fill_buffer(): use given buffer, not stream's defaultreimar2010-11-081-2/+5
| | | | | | | | | Fix dvd:// fill_buffer function to actually write into the specified buffer and check that the buffer is sufficiently large. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32591 b3059339-0415-0410-9bf9-f77b7e298cf2 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32592 b3059339-0415-0410-9bf9-f77b7e298cf2
* stream_dvd: minor cleanupreimar2010-11-081-7/+4
| | | | | | | | | | | | | | Remove a pointless and stupid condition. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32588 b3059339-0415-0410-9bf9-f77b7e298cf2 Change code to something understandable (but equivalent). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32589 b3059339-0415-0410-9bf9-f77b7e298cf2 100l, add missing return. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32590 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_ts: Fix subtitle sync issuesreimar2010-11-081-0/+5
| | | | | | | Ensure we queue all subtitle packets before demuxing the next video packet. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32587 b3059339-0415-0410-9bf9-f77b7e298cf2
* codecs.conf: mark fflatm non-buggy (now default for AAC/LATM)reimar2010-11-081-1/+1
| | | | | | | fflatm seems to be working, whereas external faad does not work at all with latm (internal does). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32585 b3059339-0415-0410-9bf9-f77b7e298cf2
* ad_faad: Make work with -demuxer lavfreimar2010-11-081-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32586 b3059339-0415-0410-9bf9-f77b7e298cf2
* codecs_conf, mp_taglists: Use only one fourcc for LATMreimar2010-11-082-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32584 b3059339-0415-0410-9bf9-f77b7e298cf2
* ad_ffmpeg: Handle EAGAIN, needed for LATM to work properly with demux_tsreimar2010-11-081-0/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32583 b3059339-0415-0410-9bf9-f77b7e298cf2
* demuxer.c: Add support for parsing LATMreimar2010-11-081-0/+5
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32582 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_lavf: Fix program switchingreimar2010-11-081-0/+12
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32580 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_lavf: Print PROGRAM_ID -identify output similar to demux_tsreimar2010-11-081-0/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32579 b3059339-0415-0410-9bf9-f77b7e298cf2
* vf_scale: accept all non-hw-accel formats we know a PIX_FMT forreimar2010-11-081-35/+1
| | | | | | | | | | Make scale filter accept all non-hardware-acceleration input formats we know a PIX_FMT_* for. It is possible we will not have a conversion for some of these formats, but since it will just fail differently this approach is better since it avoids having to expand the explicit list continuously. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32576 b3059339-0415-0410-9bf9-f77b7e298cf2
* video: simplify some tests with a new IMGFMT_IS_HWACCEL macroreimar2010-11-084-6/+7
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32575 b3059339-0415-0410-9bf9-f77b7e298cf2
* mplayer.desktop: Add video/3gpp and application/x-flash-video mime typesdiego2010-11-081-1/+1
| | | | | | patch extracted from the ALT Linux patch set git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32574 b3059339-0415-0410-9bf9-f77b7e298cf2
* configure: Do not enable rpath on NetBSDdiego2010-11-081-1/+0
| | | | | | patch extracted from the NetBSD pkgsrc tree git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32573 b3059339-0415-0410-9bf9-f77b7e298cf2
* configure: Enable joystick support on FreeBSDdiego2010-11-081-1/+1
| | | | | | patch extracted from the FreeBSD ports tree git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32572 b3059339-0415-0410-9bf9-f77b7e298cf2
* codecs.conf, mp_taglists: Support FFmpeg LATM decodingcehoyos2010-11-082-15/+25
| | | | | | | | Also move libfaad codecs.conf entry into the same position as in svn (no functionality change since ffaac is marked buggy so only faad is used by default regardless or order). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32571 b3059339-0415-0410-9bf9-f77b7e298cf2
* vo_kva: Restore all the attributes after changing aspect ratiokomh2010-11-071-0/+9
| | | | | | kvaSetup() resets all the attributes, so there is need to restore them. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32570 b3059339-0415-0410-9bf9-f77b7e298cf2
* vo_kva: Prevent a parent window from painting over ours in slave modekomh2010-11-071-0/+6
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32569 b3059339-0415-0410-9bf9-f77b7e298cf2
* vo_directx: Fix possible out-of-bounds accessreimar2010-11-071-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32568 b3059339-0415-0410-9bf9-f77b7e298cf2
* DOCS/man/zh_CH: sync with en/mplayer.1 rev. 32566jrash2010-11-071-3/+123
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32567 b3059339-0415-0410-9bf9-f77b7e298cf2
* TOOLS/binary_codecs.sh: make indentation consistentsiretart2010-11-071-143/+136
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32561 b3059339-0415-0410-9bf9-f77b7e298cf2
* cache, stream: avoid extra memcpy when using cachereimar2010-11-073-38/+59
| | | | | | | | | | Add a stream_read_internal() function that reads directly into a given buffer instead of the stream's internal one. Use this to read directly into cache memory, avoiding a memcpy(). This requires also adding a stream_seek_internal() as the normal seek function reads into the stream's buffer. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32559 b3059339-0415-0410-9bf9-f77b7e298cf2
* cosmetics: cache2.c: Remove some irrelevant commented-out codereimar2010-11-071-8/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32555 b3059339-0415-0410-9bf9-f77b7e298cf2
* stream_dvd: millisecond accuracy for chapters in -identify outputcigaes2010-11-071-3/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32539 b3059339-0415-0410-9bf9-f77b7e298cf2
* demux_lavf: for avi, use packet .dts instead of .ptsUoti Urpala2010-11-061-4/+12
| | | | | | | | | | | | When playing avi files take timestamps from the .dts field of the packet instead of .pts. For avi libavformat returns the original avi timestamps in .dts; without GENPTS set .pts is sometimes unset, with GENPTS set it'll contain some made up values which are not correct pts. Current libavformat also has a bug take makes it loop over the whole avi file if you use GENPTS with video streams disabled. The timing code can cope with the avi timestamps even though they're not really pts.
* build: enable vf_geq if libavutil version installs eval.hUoti Urpala2010-11-063-0/+13
| | | | | New enough libavutil versions allow building vf_geq.c without requiring internal FFmpeg headers.
* demux_lavf: avoid deprecated "first_iformat" by using newer APIUoti Urpala2010-11-061-2/+2
|
* demux_lavf: add hack for stream-changing ogg input (internet radio)Uoti Urpala2010-11-061-1/+56
| | | | | | | | | | | | | | | Some internet radio streams are ogg/vorbis with a new stream for each track (and the previous stream stops receiving data). Add a hack to ignore the stream number in packets when input seems to match this case; all packets will be effectively regarded as parts of the same audio stream. This workaround can't work perfectly with current lavf because it will keep adding streams and then hit its 20 stream maximum; at that point playback will likely fail. Print a warning about this problem and mention "-demuxer ogg" as a possible workaround. Currently there's no check that the vorbis extradata is actually compatible between the streams.
* demux_lavf: more future proof AVInputFormat name comparisonUoti Urpala2010-11-061-6/+20
| | | | | | | | AVInputFormat name fields consist of comma-separated components, more of which may be added in backwards-compatible versions. demux_lavf did a strcmp against the whole field at once; this would break if a component was added. Change the code to search for individual component matches within the field instead.
* ffmpeg_files/taglists.c: update to latest FFmpeg values (r25209)Uoti Urpala2010-11-051-2/+10
|
* options: add OPT_MAKE_FLAGS macro, creates "opt/noopt" flag pairClément Bœsch2010-11-044-32/+17
|
* options: move -name and -title to option structClément Bœsch2010-11-046-14/+11
|
* Makefile: enable .DELETE_ON_ERROR special targetUoti Urpala