Message ID | 20231017131335.201277-3-aimingoff@pc.nifty.jp |
---|---|
State | New |
Headers | show |
Series | lavc/libaribcaption.c: add MSZ characters related options | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
On Tue, Oct 17, 2023 at 4:14 PM TADANO Tokumei <aimingoff@pc.nifty.jp> wrote: > > This patch add MSZ (Middle Size; half width) characters related > options. > > * add `-replace_msz_japanese` option introduced in version 1.0.1 > of libaribcaption. > * add `-replace_msz_glyph` option introduced in version 1.1.0 > of libaribcaption. > > If specified fonts contain half-width glyphs (e.g., BIZ UDGothic), > it make better rendering with `-replace_msz_ascii false` and > `-replace_msz_japanese false` option for bitmap sub_type. > > Signed-off-by: TADANO Tokumei <aimingoff@pc.nifty.jp> Change-wise LGTM. I reworked the commit message (starting with the removal of ".c" at the end), and hopefully I understood correctly what you were trying to mean with what I expect you were meaning with regards to the latter option. The adjusted commits are visible in https://github.com/jeeb/ffmpeg/commits/aribcaption_msz_patches_v3 . Otherwise the only thing I adjusted was diff --git a/libavcodec/libaribcaption.c b/libavcodec/libaribcaption.c index 2a058a4992..e87f303aa8 100644 --- a/libavcodec/libaribcaption.c +++ b/libavcodec/libaribcaption.c @@ -1008,7 +1008,7 @@ static int aribcaption_init(AVCodecContext *avctx) aribcc_decoder_set_replace_msz_fullwidth_ascii(ctx->decoder, ctx->replace_msz_ascii); aribcc_decoder_set_replace_msz_fullwidth_japanese(ctx->decoder, - ctx->replace_msz_japanese); + ctx->replace_msz_japanese); /* Similar behavior as ffmpeg tool to set canvas size */ if (ctx->canvas_width > 0 && ctx->canvas_height > 0 && as there was a mismatching offset. If this is fine by you, I'll pull this in. Jan
On Sun, Oct 29, 2023 at 10:51 AM Jan Ekström <jeebjp@gmail.com> wrote: > > On Tue, Oct 17, 2023 at 4:14 PM TADANO Tokumei <aimingoff@pc.nifty.jp> wrote: > > > > This patch add MSZ (Middle Size; half width) characters related > > options. > > > > * add `-replace_msz_japanese` option introduced in version 1.0.1 > > of libaribcaption. > > * add `-replace_msz_glyph` option introduced in version 1.1.0 > > of libaribcaption. > > > > If specified fonts contain half-width glyphs (e.g., BIZ UDGothic), > > it make better rendering with `-replace_msz_ascii false` and > > `-replace_msz_japanese false` option for bitmap sub_type. > > > > Signed-off-by: TADANO Tokumei <aimingoff@pc.nifty.jp> > > Change-wise LGTM. I reworked the commit message (starting with the > removal of ".c" at the end), and hopefully I understood correctly what > you were trying to mean with what I expect you were meaning with > regards to the latter option. The adjusted commits are visible in > https://github.com/jeeb/ffmpeg/commits/aribcaption_msz_patches_v3 . > > Otherwise the only thing I adjusted was > > diff --git a/libavcodec/libaribcaption.c b/libavcodec/libaribcaption.c > index 2a058a4992..e87f303aa8 100644 > --- a/libavcodec/libaribcaption.c > +++ b/libavcodec/libaribcaption.c > @@ -1008,7 +1008,7 @@ static int aribcaption_init(AVCodecContext *avctx) > aribcc_decoder_set_replace_msz_fullwidth_ascii(ctx->decoder, > ctx->replace_msz_ascii); > aribcc_decoder_set_replace_msz_fullwidth_japanese(ctx->decoder, > - ctx->replace_msz_japanese); > + > ctx->replace_msz_japanese); > > /* Similar behavior as ffmpeg tool to set canvas size */ > if (ctx->canvas_width > 0 && ctx->canvas_height > 0 && > > as there was a mismatching offset. If this is fine by you, I'll pull this in. Received an OK from the author regarding the commit message adjustments and such privately, so will be merging this in.
diff --git a/configure b/configure index d203177a74..2fb827e1fb 100755 --- a/configure +++ b/configure @@ -6679,7 +6679,7 @@ enabled libaom && require_pkg_config libaom "aom >= 1.0.0" aom/aom_co enabled libaribb24 && { check_pkg_config libaribb24 "aribb24 > 1.0.3" "aribb24/aribb24.h" arib_instance_new || { enabled gpl && require_pkg_config libaribb24 aribb24 "aribb24/aribb24.h" arib_instance_new; } || die "ERROR: libaribb24 requires version higher than 1.0.3 or --enable-gpl."; } -enabled libaribcaption && require_pkg_config libaribcaption "libaribcaption >= 0.1.0" "aribcaption/aribcaption.h" aribcc_context_alloc +enabled libaribcaption && require_pkg_config libaribcaption "libaribcaption >= 1.1.1" "aribcaption/aribcaption.h" aribcc_context_alloc enabled lv2 && require_pkg_config lv2 lilv-0 "lilv/lilv.h" lilv_world_new enabled libiec61883 && require libiec61883 libiec61883/iec61883.h iec61883_cmp_connect -lraw1394 -lavc1394 -lrom1394 -liec61883 enabled libass && require_pkg_config libass "libass >= 0.11.0" ass/ass.h ass_library_init diff --git a/doc/decoders.texi b/doc/decoders.texi index 09b8314dd2..36c3404475 100644 --- a/doc/decoders.texi +++ b/doc/decoders.texi @@ -459,6 +459,22 @@ Specify whether to render replaced DRCS characters as Unicode characters. The default is @var{true}. +@item -replace_msz_japanese @var{boolean} +Specify whether to replace some MSZ (Middle Size; half width) fullwidth +japanese special characters with halfwidth ones. + +The default is @var{true}. + +@item -replace_msz_glyph @var{boolean} +Specify whether to replace MSZ (Middle Size; half width) characters +with halfwidth glyphs if the fonts supports it. +This option works under FreeType or DirectWrite renderer +with Adobe-Japan1 compliant fonts. +e.g., IBM Plex Sans JP, Morisawa BIZ UDGothic, Morisawa BIZ UDMincho, +Yu Gothic, Yu Mincho, and Meiryo. + +The default is @var{true}. + @item -canvas_size @var{image_size} Specify the resolution of the canvas to render subtitles to; usually, this should be frame size of input video. diff --git a/libavcodec/libaribcaption.c b/libavcodec/libaribcaption.c index be3328c5c9..74822586dc 100644 --- a/libavcodec/libaribcaption.c +++ b/libavcodec/libaribcaption.c @@ -76,6 +76,8 @@ typedef struct ARIBCaptionContext { int ignore_ruby; float stroke_width; int replace_drcs; + int replace_msz_japanese; + int replace_msz_glyph; int64_t pts; AVRational time_base; @@ -1005,6 +1007,8 @@ static int aribcaption_init(AVCodecContext *avctx) } aribcc_decoder_set_replace_msz_fullwidth_ascii(ctx->decoder, ctx->replace_fullwidth_ascii); + aribcc_decoder_set_replace_msz_fullwidth_japanese(ctx->decoder, + ctx->replace_msz_japanese); /* Similar behavior as ffmpeg tool to set canvas size */ if (ctx->canvas_width > 0 && ctx->canvas_height > 0 && @@ -1057,6 +1061,8 @@ static int aribcaption_init(AVCodecContext *avctx) aribcc_renderer_set_force_no_background(ctx->renderer, ctx->ignore_background); aribcc_renderer_set_force_no_ruby(ctx->renderer, ctx->ignore_ruby); aribcc_renderer_set_stroke_width(ctx->renderer, ctx->stroke_width); + aribcc_renderer_set_replace_msz_halfwidth_glyph(ctx->renderer, + ctx->replace_msz_glyph); if (ctx->font) { int is_nomem = 0; size_t count = 0; @@ -1144,6 +1150,10 @@ static const AVOption options[] = { OFFSET(stroke_width), AV_OPT_TYPE_FLOAT, { .dbl = 1.5 }, 0.0, 3.0, SD }, { "replace_drcs", "replace known DRCS [bitmap]", OFFSET(replace_drcs), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, SD }, + { "replace_msz_japanese", "replace MSZ fullwidth Japanese with halfwidth [ass, bitmap]", + OFFSET(replace_msz_japanese), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, SD }, + { "replace_msz_glyph", "replace MSZ characters with halfwidth glyphs [bitmap]", + OFFSET(replace_msz_glyph), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, SD }, {"canvas_size", "set input video size (WxH or abbreviation) [bitmap]", OFFSET(canvas_width), AV_OPT_TYPE_IMAGE_SIZE, { .str = NULL }, 0, INT_MAX, SD }, { NULL }
This patch add MSZ (Middle Size; half width) characters related options. * add `-replace_msz_japanese` option introduced in version 1.0.1 of libaribcaption. * add `-replace_msz_glyph` option introduced in version 1.1.0 of libaribcaption. If specified fonts contain half-width glyphs (e.g., BIZ UDGothic), it make better rendering with `-replace_msz_ascii false` and `-replace_msz_japanese false` option for bitmap sub_type. Signed-off-by: TADANO Tokumei <aimingoff@pc.nifty.jp> --- configure | 2 +- doc/decoders.texi | 16 ++++++++++++++++ libavcodec/libaribcaption.c | 10 ++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-)