The get_format() function was defined under
#if CONFIG_XVMC || CONFIG_VDPAU
but recent commit ca217f4557 added an
unconditional reference to it, causing linking to fail with an
undefined reference if neither feature was enabled. Fix by removing
the #if, there's no reason reason why it would be needed.
Move two messages printed when using VDPAU/XvMC to MSGL_V level:
"[VD_FFMPEG] XVMC-accelerated MPEG-2.\n"
"[VD_FFMPEG] Trying pixfmt=%d.\n"
The first is redundant because this info is normally visible from the
decoder name, and it was also incorrectly printed in the VDPAU case
too. Add a different MSGL_V message for VDPAU.
Also make all these messages not translatable.
MPlayer's slice and direct rendering related callbacks are not safe to
call from other threads, so disable those features if more than one
decoding thread is specified. This should fix some issues when using
threaded decoding with formats other than h264 (in the h264 case the
callbacks were already disabled for other reasons).
This commit moves most of the code that sets special avctx parameters
for VDPAU and XvMC. Before that was done after avcodec_open() based on
the selected output image format; now it's done before avcodec_open()
based on the capabilities of the selected decoder. At least the code
selecting the thread count must be before avcodec_open(), and I think
there is no reason to try to keep the previous structure otherwise
either. The image format-based approach was implemented by Reimar
with the intended goal of eventually selecting between software and
VDPAU decoders under one FFmpeg decoder type. I consider that goal to
be questionable, and the approach certainly made the existing code
significantly messier for no functionality benefit.
Reset stream 'eof' flag when a seek succeeds, and allow seeking to a
position at or past EOF (in the sense that the seek succeeds and
stream_tell() then returns that position).
This fixes at least some demuxer problems where an attempt to read
the index from the end of an incomplete file would set the 'eof' flag
and cause subsequent reads to fail, even if failure to read the index
would otherwise be nonfatal and demuxing could continue after seeking
back.
Partially based on a patch from Laurent <laurent.aml@gmail.com>.
When using libass with a VO that has direct EOSD support the vf_ass
video filter is unnecessary and is not added automatically, but the
code that adds the filter when it is needed produced misleading output
messages in this case. The following two messages were printed at
MSGL_ERR level, making it look like an error condition:
Couldn't open video filter 'ass'.
ASS: cannot add video filter
Add a version of vf_open_plugin() called vf_open_plugin_noerr() that
does not itself print an error message if opening a vf fails and that
returns the exact status code returned by the vf open() function. Make
vf_ass return a different status code depending on whether there was
an actual error or if it determined a filter would be redundant. Use
the _noerr function in the code adding the filter to avoid the first
message and check the status code to avoid the second.
When loading external subtitle files, the code always tried parsing
the file with subreader.c sub_read_file() first, even if libass was
then used to parse and render the file (the results of the first
parsing would be ignored in that case). This could cause problems like
unnecessary error messages. Change the code to try libass parsing
first if enabled, and skip subreader.c parsing if that succeeds.
change ffsipr to working (and first choice by default) in codecs.conf
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30318 b3059339-0415-0410-9bf9-f77b7e298cf2
For each sequence of consecutive partially overlapping subtitles, the
algorithm calculating screen positions for the subtitles allocated a
2*subtitle_count*subtitle_line_count array. With some karaoke
subtitles that had lots of rapidly changing overlapping subtitles this
became large enough to use gigabytes of memory. Make the behavior
saner by limiting the line count to SUB_MAX_TEXT lines (the maximum
number of lines to show on screen at once, currently 12). This
shouldn't change the end result of the algorithm other than possibly
printing different warnings.
a parser, not when just needs_parsing is set.
Fixes playback of e.g. ADPCM in AVI like http://samples.mplayerhq.hu/avi/imaadpcm.avi
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30314 b3059339-0415-0410-9bf9-f77b7e298cf2
To actually work, all "packed" attributes have to be replaced by equivalent
pragmas and make DEPS=no must be used to compile.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30296 b3059339-0415-0410-9bf9-f77b7e298cf2
compilers without inline assembly.
Almost no OS provides inb() etc. in its libraries, and removing the
broken fallback code makes it compile on Solaris with Sun C compiler.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30293 b3059339-0415-0410-9bf9-f77b7e298cf2