Command line video player
Go to file
wm4 0e72b0d5d3 draw_bmp: compensate for libswscale writing past image bounds
libswscale tends to overwrite the area between (w,y)-(0,y+1). It tries
to process multiple pixels at once, and if the memory past the last x
pixel is inside a SIMD operation, but still below the image stride, it
overwrites that data with black.

This happens with vo_x11 and 32 bit RGBA formats. The bug is visible as
black bar right of the subtitle bounding box. Fix by giving libswscale
more alignment. Then the "outside" pixels are inside, and are processed
normally instead of overwritten with black.

NOTE: we do not increase the alignment constant, because this is a
separate issue from pointer alignment. libavutil's av_malloc() wouldn't
actually satisfy the increased alignment either.
2012-10-24 21:56:33 +02:00
DOCS
TOOLS
etc
ffmpeg_files
input
libaf
libao2
libmpcodecs
libmpdemux
libvo
osdep
stream
sub draw_bmp: compensate for libswscale writing past image bounds 2012-10-24 21:56:33 +02:00
timeline
.gitignore
AUTHORS
Copyright
LICENSE
Makefile
README
asxparser.c
asxparser.h
av_log.c
av_log.h
av_opts.c
av_opts.h
bstr.c
bstr.h
cfg-mplayer.h
codec-cfg.c
codec-cfg.h
command.c
command.h
configure
cpudetect.c
cpudetect.h
defaultopts.c
defaultopts.h
encode.h
encode_lavc.c
encode_lavc.h
fmt-conversion.c
fmt-conversion.h
image_writer.c
image_writer.h
m_config.c
m_config.h
m_option.c
m_option.h
m_property.c
m_property.h
m_struct.c
m_struct.h
mangle.h
mixer.c
mixer.h
mp_core.h
mp_fifo.c
mp_fifo.h
mp_msg.c
mp_msg.h
mp_osd.h
mpbswap.h
mpcommon.c
mpcommon.h
mplayer.c
mplayer.h
options.h
parser-cfg.c
parser-cfg.h
parser-mpcmd.c
parser-mpcmd.h
path.c
path.h
playlist.c
playlist.h
playlist_parser.c
playlist_parser.h
pnm_loader.c
pnm_loader.h
quvi.c
screenshot.c
screenshot.h
subopt-helper.c
subopt-helper.h
talloc.c
talloc.h
version.c
version.sh

README

Compiling with full features requires development files for several
external libraries. Below is a list of some important requirements. For
more information see the output of './configure --help' for a list of options,
or look at the list of enabled and disabled features printed after running
'./configure'. If you think you have support for some feature installed
but configure fails to detect it, the file config.log may contain information
about the reasons for the failure.

Libraries specific to particular video output methods
(you'll want at least one of VDPAU, GL or Xv):
 - libvdpau (for VDPAU output, best choice for NVIDIA cards)
 - libGL (OpenGL output)
 - libXv (XVideo output)
general:
 - libasound   (ALSA audio output)
 - various general X development libraries
 - libfreetype (for libass)
 - libfontconfig (for libass)
 - libass
 - FFmpeg libraries (libavutil libavcodec libavformat libswscale libpostproc)

Most of the above libraries are available in suitable versions on normal
Linux distributions. However FFmpeg is an exception (distro versions may be
too old to work at all or work well). For that reason you may want to use
the separately available build wrapper that first compiles FFmpeg libraries
and libass, and then compiles the player statically linked against those.