[FFmpeg-devel] [PATCH 18/23] lavc/movtextenc: add alpha tag handling
John Stebbins
jstebbins at jetheaddev.com
Thu Apr 9 18:23:34 EEST 2020
On Wed, 2020-04-08 at 11:37 -0700, Philip Langdale wrote:
> On Mon, 6 Apr 2020 11:52:13 -0600
> John Stebbins <jstebbins at jetheaddev.com> wrote:
>
> > ---
> > libavcodec/movtextenc.c | 25 ++++++++++++++++++++++++-
> > 1 file changed, 24 insertions(+), 1 deletion(-)
> >
> > diff --git a/libavcodec/movtextenc.c b/libavcodec/movtextenc.c
> > index 090536b887..e82393dde7 100644
> > --- a/libavcodec/movtextenc.c
> > +++ b/libavcodec/movtextenc.c
> > @@ -351,6 +351,26 @@ static void mov_text_color_cb(void *priv,
> > unsigned int color, unsigned int color */
> > }
> >
> > +static void mov_text_alpha_set(MovTextContext *s, uint8_t alpha)
> > +{
> > + if (!s->style_attributes_temp ||
> > + (s->style_attributes_temp->style_color & 0xff) == alpha) {
> > + // color hasn't changed
> > + return;
> > + }
> > + if (mov_text_style_start(s))
> > + s->style_attributes_temp->style_color =
> > + (s->style_attributes_temp->style_color &
> > 0xffffff00)
> > > alpha; +}
> > +
> > +static void mov_text_alpha_cb(void *priv, int alpha, int alpha_id)
> > +{
> > + MovTextContext *s = priv;
> > +
> > + if (alpha_id == 1) // primary alpha changes
> > + mov_text_alpha_set(s, 255 - alpha);
> > +}
>
> Worth a comment that secondary alpha can't be preserved?
Sure, will do.
>
> > +
> > static void mov_text_end_cb(void *priv)
> > {
> > // End of text, close any open style record
> > @@ -360,7 +380,7 @@ static void mov_text_end_cb(void *priv)
> > static void mov_text_dialog(MovTextContext *s, ASSDialog *dialog)
> > {
> > ASSStyle * style = ff_ass_style_get(s->ass_ctx, dialog-
> > >style);
> > - uint8_t style_flags;
> > + uint8_t style_flags, alpha;
> > uint32_t color;
> >
> > if (style) {
> > @@ -370,6 +390,8 @@ static void mov_text_dialog(MovTextContext *s,
> > ASSDialog *dialog) mov_text_style_set(s, style_flags);
> > color = BGR_TO_RGB(style->primary_color & 0xffffff) << 8;
> > mov_text_color_set(s, color);
> > + alpha = 255 - ((uint32_t)style->primary_color >> 24);
> > + mov_text_alpha_set(s, alpha);
> > }
> > }
> >
> > @@ -416,6 +438,7 @@ static const ASSCodesCallbacks
> > mov_text_callbacks
> > = { .new_line = mov_text_new_line_cb,
> > .style = mov_text_style_cb,
> > .color = mov_text_color_cb,
> > + .alpha = mov_text_alpha_cb,
> > .end = mov_text_end_cb,
> > };
> >
>
> Otherwise LGTM.
>
>
>
> --phil
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
More information about the ffmpeg-devel
mailing list