Commit ad3f6212 authored by John Stebbins's avatar John Stebbins Committed by Philip Langdale

lavc/movtextenc: handle changes to hilight alpha

Signed-off-by: 's avatarPhilip Langdale <philipl@overt.org>
parent eeef8708
......@@ -479,19 +479,23 @@ static void mov_text_color_cb(void *priv, unsigned int color, unsigned int color
if (color_id == 1) { //primary color changes
mov_text_color_set(s, color);
} else if (color_id == 2) { //secondary color changes
if (s->box_flags & HLIT_BOX) { //close tag
s->hlit.end = s->text_pos;
} else {
if (!(s->box_flags & HCLR_BOX))
// Highlight alpha not set yet, use current primary alpha
s->hclr.color = s->style_attributes_temp->style_color;
if (!(s->box_flags & HLIT_BOX) || s->hlit.start == s->text_pos) {
s->box_flags |= HCLR_BOX;
s->box_flags |= HLIT_BOX;
s->hlit.start = s->text_pos;
s->hclr.color = color | 0xFF; //set alpha value to FF
s->hclr.color = color | (s->hclr.color & 0xFF);
}
else //close tag
s->hlit.end = s->text_pos;
/* If there are more than one secondary color changes in ASS,
take start of first section and end of last section. Movtext
allows only one highlight box per sample.
*/
}
/* If there are more than one secondary color changes in ASS, take start of
first section and end of last section. Movtext allows only one
highlight box per sample.
*/
// Movtext does not support changes to other color_id (outline, background)
}
static void mov_text_alpha_set(MovTextContext *s, uint8_t alpha)
......@@ -510,8 +514,23 @@ static void mov_text_alpha_cb(void *priv, int alpha, int alpha_id)
{
MovTextContext *s = priv;
alpha = 255 - alpha;
if (alpha_id == 1) // primary alpha changes
mov_text_alpha_set(s, 255 - alpha);
mov_text_alpha_set(s, alpha);
else if (alpha_id == 2) { //secondary alpha changes
if (!(s->box_flags & HCLR_BOX))
// Highlight color not set yet, use current primary color
s->hclr.color = s->style_attributes_temp->style_color;
if (!(s->box_flags & HLIT_BOX) || s->hlit.start == s->text_pos) {
s->box_flags |= HCLR_BOX;
s->box_flags |= HLIT_BOX;
s->hlit.start = s->text_pos;
s->hclr.color = (s->hclr.color & 0xffffff00) | alpha;
}
else //close tag
s->hlit.end = s->text_pos;
}
// Movtext does not support changes to other alpha_id (outline, background)
}
static uint16_t find_font_id(MovTextContext * s, const char * name)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment