vlc | branch: master | Francois Cartegnie <fcvlc...@free.fr> | Wed May 22 19:45:07 2019 +0200| [887ad0be5e987efb6d10301335406eda64579b01] | committer: Francois Cartegnie
codec: substx3g: improve quicktime text media styling refs BCDisassembly1RightSideTxt2.mov > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=887ad0be5e987efb6d10301335406eda64579b01 --- modules/codec/substx3g.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/modules/codec/substx3g.c b/modules/codec/substx3g.c index 553c48e726..ebb650a0b8 100644 --- a/modules/codec/substx3g.c +++ b/modules/codec/substx3g.c @@ -487,20 +487,36 @@ static void ParseExtradataTextMedia( decoder_t *p_dec ) return; /* DF @0 */ + uint32_t i_flags = GetDWBE(p_extra); + if(i_flags & 0x1000) /* drop shadow */ + { + p_style->i_style_flags |= STYLE_SHADOW; + p_style->i_features |= STYLE_HAS_SHADOW_COLOR|STYLE_HAS_FLAGS|STYLE_HAS_SHADOW_ALPHA; + p_style->i_shadow_color = 0xC0C0C0; + p_style->i_shadow_alpha = STYLE_ALPHA_OPAQUE; + } + if(i_flags & 0x4000) /* key text*/ + { + /*Controls background color. If this flag is set to 1, the text media handler does not display the + background color, so that the text overlay background tracks.*/ + p_style->i_style_flags &= ~STYLE_BACKGROUND; + } + /* Just @4 */ /* BGColor @8, read top of 16 bits */ p_style->i_background_color = (p_extra[8] << 16) | (p_extra[10] << 8) | p_extra[12]; - p_style->i_features |= STYLE_HAS_BACKGROUND_COLOR; + p_style->i_features |= STYLE_HAS_BACKGROUND_COLOR | STYLE_HAS_BACKGROUND_ALPHA; + p_style->i_background_alpha = STYLE_ALPHA_OPAQUE; /* BoxRecord @14 */ /* Reserved 64 @22 */ /* Font # @30 */ /* Font Face @32 */ - p_style->i_style_flags = ConvertToVLCFlags( GetWBE(&p_extra[32]) ); + p_style->i_style_flags |= ConvertToVLCFlags( GetWBE(&p_extra[32]) ); if( p_style->i_style_flags ) p_style->i_features |= STYLE_HAS_FLAGS; /* Reserved 8 @34 */ @@ -536,6 +552,10 @@ static int OpenDecoder( vlc_object_t *p_this ) if( !p_dec->p_sys ) return VLC_ENOMEM; + text_style_t *p_default_style = p_dec->p_sys; + p_default_style->i_style_flags |= STYLE_BACKGROUND; + p_default_style->i_features |= STYLE_HAS_FLAGS; + if( p_dec->fmt_in.i_codec == VLC_CODEC_TX3G ) ParseExtradataTx3g( p_dec ); else _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits