2dedd8f496
DVD subtitles packets can only encode a single rectangle: if there are several, copy them into a big transparent one. DVD subtitles rely on an external 16-colors palette: use a reasonable default one, stored in the private context, and encode it into the extradata, as specified by Matroska. TODO: allow to change the palette with an option. Each packet can use four colors out of the global palette. The old logic was to map transparent colors to the color 0 and all other colors to 3, 2, 1, cyclically in descending frequency order, completely disregarding the original color. Select the "best" four colors from the global palette, according to heuristics based on frequency, opacity and brightness, and arrange them in standard DVD order: background, foreground, outline, other. TODO: select the alpha value more finely; see if CHG_COLCON can allow more than 4 colors per packet. Reference: http://dvd.sourceforge.net/dvdinfo/spu.html With these changes, dvdsubenc can be used to transcode DVB subtitles and get a very decent result. |
||
---|---|---|
compat | ||
doc | ||
libavcodec | ||
libavdevice | ||
libavfilter | ||
libavformat | ||
libavresample | ||
libavutil | ||
libpostproc | ||
libswresample | ||
libswscale | ||
mt-work | ||
presets | ||
tests | ||
tools | ||
.gitignore | ||
arch.mak | ||
Changelog | ||
cmdutils_common_opts.h | ||
cmdutils.c | ||
cmdutils.h | ||
common.mak | ||
configure | ||
COPYING.GPLv2 | ||
COPYING.GPLv3 | ||
COPYING.LGPLv2.1 | ||
COPYING.LGPLv3 | ||
CREDITS | ||
Doxyfile | ||
ffmpeg_filter.c | ||
ffmpeg_opt.c | ||
ffmpeg.c | ||
ffmpeg.h | ||
ffplay.c | ||
ffprobe.c | ||
ffserver.c | ||
INSTALL | ||
library.mak | ||
LICENSE | ||
MAINTAINERS | ||
Makefile | ||
README | ||
RELEASE | ||
version.sh |
FFmpeg README ------------- 1) Documentation ---------------- * Read the documentation in the doc/ directory in git. You can also view it online at http://ffmpeg.org/documentation.html 2) Licensing ------------ * See the LICENSE file. 3) Build and Install -------------------- * See the INSTALL file.