aboutsummaryrefslogtreecommitdiffstats
path: root/libavfilter/vf_subtitles.c
diff options
context:
space:
mode:
authorClément Bœsch <u@pkh.me>2014-09-11 21:10:43 +0200
committerClément Bœsch <u@pkh.me>2014-09-16 21:23:33 +0200
commit4b58349bc8ff2ff5dfbc9eef1e5856fd16e1f517 (patch)
tree525d51dbe9c15439f462993d3d328b9e642d4834 /libavfilter/vf_subtitles.c
parent8a9c5db29e847b35a70e1866dde2a1d056e2a265 (diff)
downloadffmpeg-4b58349bc8ff2ff5dfbc9eef1e5856fd16e1f517.tar.gz
avfilter/ass: add shaping option
The documentation is mostly based on ass.h public header.
Diffstat (limited to 'libavfilter/vf_subtitles.c')
-rw-r--r--libavfilter/vf_subtitles.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/libavfilter/vf_subtitles.c b/libavfilter/vf_subtitles.c
index c9c21a797f..be4c6a534d 100644
--- a/libavfilter/vf_subtitles.c
+++ b/libavfilter/vf_subtitles.c
@@ -55,6 +55,7 @@ typedef struct {
uint8_t rgba_map[4];
int pix_step[4]; ///< steps per pixel for each plane of the main output
int original_w, original_h;
+ int shaping;
FFDrawContext draw;
} AssContext;
@@ -141,6 +142,8 @@ static int config_input(AVFilterLink *inlink)
if (ass->original_w && ass->original_h)
ass_set_aspect_ratio(ass->renderer, (double)inlink->w / inlink->h,
(double)ass->original_w / ass->original_h);
+ if (ass->shaping != -1)
+ ass_set_shaper(ass->renderer, ass->shaping);
return 0;
}
@@ -207,6 +210,10 @@ static const AVFilterPad ass_outputs[] = {
static const AVOption ass_options[] = {
COMMON_OPTIONS
+ {"shaping", "set shaping engine", OFFSET(shaping), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 1, FLAGS, "shaping_mode"},
+ {"auto", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = -1}, INT_MIN, INT_MAX, FLAGS, "shaping_mode"},
+ {"simple", "simple shaping", 0, AV_OPT_TYPE_CONST, {.i64 = ASS_SHAPING_SIMPLE}, INT_MIN, INT_MAX, FLAGS, "shaping_mode"},
+ {"complex", "complex shaping", 0, AV_OPT_TYPE_CONST, {.i64 = ASS_SHAPING_COMPLEX}, INT_MIN, INT_MAX, FLAGS, "shaping_mode"},
{NULL},
};