diff --git a/libavcodec/ass.c b/libavcodec/ass.c index 336c3084e4..56d452f701 100644 --- a/libavcodec/ass.c +++ b/libavcodec/ass.c @@ -30,7 +30,7 @@ int ff_ass_subtitle_header(AVCodecContext *avctx, const char *font, int font_size, int color, int back_color, int bold, int italic, int underline, - int alignment) + int border_style, int alignment) { avctx->subtitle_header = av_asprintf( "[Script Info]\r\n" @@ -59,7 +59,7 @@ int ff_ass_subtitle_header(AVCodecContext *avctx, "%d,%d,%d,0," /* Bold, Italic, Underline, StrikeOut */ "100,100," /* Scale{X,Y} */ "0,0," /* Spacing, Angle */ - "1,1,0," /* BorderStyle, Outline, Shadow */ + "%d,1,0," /* BorderStyle, Outline, Shadow */ "%d,10,10,10," /* Alignment, Margin[LRV] */ "0\r\n" /* Encoding */ @@ -69,7 +69,7 @@ int ff_ass_subtitle_header(AVCodecContext *avctx, !(avctx->flags & AV_CODEC_FLAG_BITEXACT) ? AV_STRINGIFY(LIBAVCODEC_VERSION) : "", ASS_DEFAULT_PLAYRESX, ASS_DEFAULT_PLAYRESY, font, font_size, color, color, back_color, back_color, - -bold, -italic, -underline, alignment); + -bold, -italic, -underline, border_style, alignment); if (!avctx->subtitle_header) return AVERROR(ENOMEM); @@ -86,6 +86,7 @@ int ff_ass_subtitle_header_default(AVCodecContext *avctx) ASS_DEFAULT_BOLD, ASS_DEFAULT_ITALIC, ASS_DEFAULT_UNDERLINE, + ASS_DEFAULT_BORDERSTYLE, ASS_DEFAULT_ALIGNMENT); } diff --git a/libavcodec/ass.h b/libavcodec/ass.h index 14a1ed2c16..621a7ba7f3 100644 --- a/libavcodec/ass.h +++ b/libavcodec/ass.h @@ -40,6 +40,7 @@ #define ASS_DEFAULT_ITALIC 0 #define ASS_DEFAULT_UNDERLINE 0 #define ASS_DEFAULT_ALIGNMENT 2 +#define ASS_DEFAULT_BORDERSTYLE 1 /** @} */ /** @@ -61,7 +62,7 @@ int ff_ass_subtitle_header(AVCodecContext *avctx, const char *font, int font_size, int color, int back_color, int bold, int italic, int underline, - int alignment); + int border_style, int alignment); /** * Generate a suitable AVCodecContext.subtitle_header for SUBTITLE_ASS diff --git a/libavcodec/ccaption_dec.c b/libavcodec/ccaption_dec.c index e3cdcc1669..ca497e5de2 100644 --- a/libavcodec/ccaption_dec.c +++ b/libavcodec/ccaption_dec.c @@ -145,7 +145,15 @@ static av_cold int init_decoder(AVCodecContext *avctx) /* taking by default roll up to 2 */ ctx->mode = CCMODE_ROLLUP; ctx->rollup = 2; - ret = ff_ass_subtitle_header_default(avctx); + ret = ff_ass_subtitle_header(avctx, "Monospace", + ASS_DEFAULT_FONT_SIZE, + ASS_DEFAULT_COLOR, + ASS_DEFAULT_BACK_COLOR, + ASS_DEFAULT_BOLD, + ASS_DEFAULT_ITALIC, + ASS_DEFAULT_UNDERLINE, + 3, + ASS_DEFAULT_ALIGNMENT); if (ret < 0) { return ret; } diff --git a/libavcodec/microdvddec.c b/libavcodec/microdvddec.c index 9035892205..46d6d1473b 100644 --- a/libavcodec/microdvddec.c +++ b/libavcodec/microdvddec.c @@ -370,7 +370,8 @@ static int microdvd_init(AVCodecContext *avctx) } return ff_ass_subtitle_header(avctx, font_buf.str, font_size, color, ASS_DEFAULT_BACK_COLOR, bold, italic, - underline, alignment); + underline, ASS_DEFAULT_BORDERSTYLE, + alignment); } AVCodec ff_microdvd_decoder = { diff --git a/libavcodec/movtextdec.c b/libavcodec/movtextdec.c index 257d5986f5..8d0e8141d3 100644 --- a/libavcodec/movtextdec.c +++ b/libavcodec/movtextdec.c @@ -413,7 +413,8 @@ static int mov_text_init(AVCodecContext *avctx) { if (ret == 0) { return ff_ass_subtitle_header(avctx, m->d.font, m->d.fontsize, m->d.color, m->d.back_color, m->d.bold, m->d.italic, - m->d.underline, m->d.alignment); + m->d.underline, ASS_DEFAULT_BORDERSTYLE, + m->d.alignment); } else return ff_ass_subtitle_header_default(avctx); } diff --git a/tests/ref/fate/sub-cc b/tests/ref/fate/sub-cc index e8086a8527..c60c6606b2 100644 --- a/tests/ref/fate/sub-cc +++ b/tests/ref/fate/sub-cc @@ -6,7 +6,7 @@ PlayResY: 288 [V4+ Styles] Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding -Style: Default,Arial,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,0,100,100,0,0,1,1,0,2,10,10,10,0 +Style: Default,Arial,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,0,100,100,0,0,3,1,0,2,10,10,10,0 [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text