From patchwork Mon Mar 30 10:52:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Limin Wang X-Patchwork-Id: 18507 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id DF5D444ACE8 for ; Mon, 30 Mar 2020 13:52:49 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B3F4768B72C; Mon, 30 Mar 2020 13:52:49 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg1-f196.google.com (mail-pg1-f196.google.com [209.85.215.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2D77C68B71A for ; Mon, 30 Mar 2020 13:52:43 +0300 (EEST) Received: by mail-pg1-f196.google.com with SMTP id u12so8465294pgb.10 for ; Mon, 30 Mar 2020 03:52:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=xDDjs6ROjwhvb30i9vuEXjx0U4lRXrZjni6jx3xWTFE=; b=ZJy3McaKlNXfkYb7V8GIGyxui0omEyt7D2prK/sMx2tNAUmqAClMDp5rCwowHhKDwy kwzAua7VRCs7RJH4ucQt8JYd9dk8/BvK4HvetILbJAJ8lrUb9hbwmyblUGmS+Y+fu9m/ mOgKKBZD60uSCndiVwXJoRxcFM2+8XfT+4WjQ6cOAPo+IyjKt/nzf40GmuvFUfXJQAsM YvYLtaToL3NHk+ZeohzXZW44W7mW32s7rv1TDQJ+wt6qKa4Qi3Nbv9RuUjclQUf0H3YE 5iLeUa40AQ3Mw573oEJRhKPvy//khE2jkebVS0RLyhIy2C9yZVGHeVaxIH7n+GiFzCA6 u89A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=xDDjs6ROjwhvb30i9vuEXjx0U4lRXrZjni6jx3xWTFE=; b=FWggsmp5bl0wN2rqliZSCY0qgAz36wWPMecWKyBh7TfeNp51/y22GM8OenAEbrG+wi l48jpsWdHx1qtht0IT2wQN8Q26wCRH3GJoDDIAIv1VS7wxQ4WaIulFuWVE7KDlyQp5h8 OSyOKkmVJ3dk2oetKFyV+eVPVbrSDHPcrChbZP2XcBT025lg43DuDwuEQ+4TgSbm12ZL rXGT/jJ/p86g7K7N03cnDOmkPSmHVB8uJyDvPYUPxk+mmOklUpVO3UPc69Ey8IXnwIDI Rmk9JjBR3ilW74tFbp+gD7i6gUDc6ACawtFMbrbBr5mE/njmPkYTn134/cybGLeW3zeA I0UA== X-Gm-Message-State: ANhLgQ1UzE1xgs0qB2dLhUk3ldWUJywJpnDyfTulxLQTPVnqIrq/0XyB PNerIlD3c5t/aN6w6CCxAv3XsGWT X-Google-Smtp-Source: ADFU+vtfXjBy7QHrEmybMvGybU9r1xZCXOJhqbZO8EZWT1A9hSGpJvm+zJJUf7wAwboVs6HzikeMzw== X-Received: by 2002:a63:b447:: with SMTP id n7mr11886692pgu.278.1585565560862; Mon, 30 Mar 2020 03:52:40 -0700 (PDT) Received: from vpn.localdomain ([47.90.99.151]) by smtp.gmail.com with ESMTPSA id ce4sm5249264pjb.25.2020.03.30.03.52.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 30 Mar 2020 03:52:40 -0700 (PDT) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Mon, 30 Mar 2020 18:52:32 +0800 Message-Id: <20200330105233.12878-1-lance.lmwang@gmail.com> X-Mailer: git-send-email 2.9.5 Subject: [FFmpeg-devel] [PATCH v1 1/2] avfilter/vf_subtitles: remove unneeded ifdef X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Limin Wang Signed-off-by: Limin Wang --- libavfilter/vf_subtitles.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/libavfilter/vf_subtitles.c b/libavfilter/vf_subtitles.c index a3b4029af4..2f312b0ba8 100644 --- a/libavfilter/vf_subtitles.c +++ b/libavfilter/vf_subtitles.c @@ -30,10 +30,8 @@ #include #include "config.h" -#if CONFIG_SUBTITLES_FILTER -# include "libavcodec/avcodec.h" -# include "libavformat/avformat.h" -#endif +#include "libavcodec/avcodec.h" +#include "libavformat/avformat.h" #include "libavutil/avstring.h" #include "libavutil/imgutils.h" #include "libavutil/opt.h" From patchwork Mon Mar 30 10:52:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Limin Wang X-Patchwork-Id: 18508 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id C45BD44ACE8 for ; Mon, 30 Mar 2020 13:52:51 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id ACCE168B729; Mon, 30 Mar 2020 13:52:51 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg1-f169.google.com (mail-pg1-f169.google.com [209.85.215.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3B33A68B43B for ; Mon, 30 Mar 2020 13:52:44 +0300 (EEST) Received: by mail-pg1-f169.google.com with SMTP id h8so8474472pgs.9 for ; Mon, 30 Mar 2020 03:52:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=YGCPFf2fX0CDgM1blSd3ADZyA7AkUm5MFZz0lPj7Z7M=; b=gNHqDO9b37Oqz/5CTzpdXd06I8CGPFOX0eF1rraxHa2WcfrnrSpnptYxq6Dy0Y/JPU Dw/9gUEmt9xgFeI0eY37xjgOMnkcNXPVL/hwNzf8HVzgU/vVJnafMXJmIIorYu/CXaeI 2jfUOoQed8zFXlXz/MTLDr5YcgLD+3gQHyBAkdS8HCvdIhcSteEgpe2VUie01LcWGqol p8W4mQVmilPz8afPR6ppnwdsFxJ3zFmPy/2mMM4IlM3yuDT6CEOyFlUtEPYxIl/IadWH wf5QdEBOsqOZBCWZ6qtCnZnYZUCFrfumUf7HPoLE+sPJ1mMBwgsk4Y8xXMErTiJr3+TO Xkxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=YGCPFf2fX0CDgM1blSd3ADZyA7AkUm5MFZz0lPj7Z7M=; b=pB1WoAw1OR2jLT7nC8hbYJa5Hxf/OGFliQfNo4jrZyr673JIbbPV2RtzZVNIWlhBhv xYbum1DDtKFquIWpSEx8pyhivigbK1LZuY33RFZ5PzmipSCmd0KClyGJpRk4fEF3w37E JQoSO3NFNN1QQmAPcGfee0UY6/xruHURXp6hvTbcUmuBUGBGawolfDsKM2EcQyN3aRdR Dt1J2jvD8fAfS73E42sosR+jpTHUgMLJHR/C8fv87Yq8Vq5VKXmjAfX1KaoKsgYM21Sf +dr+rvB0ERgET6IUvPWuPP8ijaq3s6dKajAAcr6rbW6bDiKAxRt2X+Bwc3Yx6SJwQRqS rMEQ== X-Gm-Message-State: ANhLgQ3Pb4FpdZbe+T+Ghab2cZFoelsIa4fwYp2nAsAczhdtti8DQ2/d ZIAygan9AcfcddPA1BayiRe5peZT X-Google-Smtp-Source: ADFU+vvmMBsb+5k5P5QdIEOKGd3qL1ABSsuvJcnSCY9LLkB849uSVg5oT97lD7nXxXYHvenkhAwiFg== X-Received: by 2002:a05:6a00:2cf:: with SMTP id b15mr12155994pft.174.1585565562261; Mon, 30 Mar 2020 03:52:42 -0700 (PDT) Received: from vpn.localdomain ([47.90.99.151]) by smtp.gmail.com with ESMTPSA id ce4sm5249264pjb.25.2020.03.30.03.52.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 30 Mar 2020 03:52:41 -0700 (PDT) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Mon, 30 Mar 2020 18:52:33 +0800 Message-Id: <20200330105233.12878-2-lance.lmwang@gmail.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20200330105233.12878-1-lance.lmwang@gmail.com> References: <20200330105233.12878-1-lance.lmwang@gmail.com> Subject: [FFmpeg-devel] [PATCH v1 2/2] avfilter/vf_subtitles: add force_style option for ass subtitle filter X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Limin Wang Signed-off-by: Limin Wang --- doc/filters.texi | 4 ++++ libavfilter/vf_subtitles.c | 23 +++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/doc/filters.texi b/doc/filters.texi index 328e984e92..d26d90d1bb 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -6399,6 +6399,10 @@ Slower shaper using OpenType for substitutions and positioning @end table The default is @code{auto}. + +@item force_style +Override default style or script info parameters of the subtitles. It accepts a +string containing ASS style format @code{KEY=VALUE} couples separated by ",". @end table @section atadenoise diff --git a/libavfilter/vf_subtitles.c b/libavfilter/vf_subtitles.c index 2f312b0ba8..e3ad8b8d94 100644 --- a/libavfilter/vf_subtitles.c +++ b/libavfilter/vf_subtitles.c @@ -218,6 +218,7 @@ static const AVOption ass_options[] = { {"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"}, + {"force_style", "force subtitle style", OFFSET(force_style), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, FLAGS}, {NULL}, }; @@ -234,6 +235,28 @@ static av_cold int init_ass(AVFilterContext *ctx) /* Initialize fonts */ ass_set_fonts(ass->renderer, NULL, NULL, 1, NULL, 1); + if (ass->force_style) { + char **list = NULL; + char *temp = NULL; + char *ptr = av_strtok(ass->force_style, ",", &temp); + int i = 0; + while (ptr) { + av_dynarray_add(&list, &i, ptr); + if (!list) { + ret = AVERROR(ENOMEM); + return ret; + } + ptr = av_strtok(NULL, ",", &temp); + } + av_dynarray_add(&list, &i, NULL); + if (!list) { + ret = AVERROR(ENOMEM); + return ret; + } + ass_set_style_overrides(ass->library, list); + av_free(list); + } + ass->track = ass_read_file(ass->library, ass->filename, NULL); if (!ass->track) { av_log(ctx, AV_LOG_ERROR,