X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=sidebyside;f=cinelerra-5.1%2Fplugins%2Ftitler%2Ftitler.C;h=37582050c4146dc447e451de2895aca71a9e32f3;hb=19ba0ed88044f0ff472047e9bafe1d4964e39b36;hp=28333d4ee70544ed96511e7698d4dfe454e4b295;hpb=9303c74f396d12f0fb48639ff6a835824cbc5987;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/plugins/titler/titler.C b/cinelerra-5.1/plugins/titler/titler.C index 28333d4e..37582050 100644 --- a/cinelerra-5.1/plugins/titler/titler.C +++ b/cinelerra-5.1/plugins/titler/titler.C @@ -76,7 +76,7 @@ REGISTER_PLUGIN(TitleMain) #else #define DEFAULT_ENCODING "ISO8859-1" #endif -#define DEFAULT_TIMECODEFORMAT TIME_HMS +#define DEFAULT_TIMECODEFORMAT TIME_HMSF static inline int kw_strcmp(const char *ap, const char *bp) { return !strcmp(ap, bp) ? 0 : strcmp(ap,_(bp)); @@ -87,11 +87,11 @@ TitleConfig::TitleConfig() strcpy(font, "fixed"); strcpy(encoding, DEFAULT_ENCODING); style = FONT_ALIAS; - size = 24; - color = BLACK; + size = 48; + color = WHITE; alpha = 0xff; outline_size = 0.; - outline_color = WHITE; + outline_color = RED; outline_alpha = 0xff; color_stroke = 0xff0000; stroke_width = 0.0; @@ -110,7 +110,7 @@ TitleConfig::TitleConfig() next_keyframe_position = 0; prev_keyframe_position = 0; timecode = 0; - dropshadow = 2; + dropshadow = 0; background = 0; strcpy(background_path, ""); timecode_format = DEFAULT_TIMECODEFORMAT; @@ -594,7 +594,6 @@ void TitleUnit::draw_frame(int mode, VFrame *dst, VFrame *src, int x, int y) int color = chr->color, max = 0xff; int alpha = chr->alpha * chr->fade; int ofs = BC_CModels::is_yuv(dst->get_color_model()) ? 0x80 : 0x00; - switch( mode ) { case DRAW_ALPHA: { while( y_inp < inp_h && y_out < out_h ) { @@ -1213,7 +1212,7 @@ Indexable *TitleMain::open_background(const char *filename) nested_edl->create_objects(); nested_edl->set_path(filename); nested_edl->load_xml(&xml_file, LOAD_ALL); - TransportCommand command; + TransportCommand command(server->preferences); //command.command = audio_tracks ? NORMAL_FWD : CURRENT_FRAME; command.command = CURRENT_FRAME; command.get_edl()->copy_all(nested_edl); @@ -2155,7 +2154,6 @@ int TitleMain::draw_underline(VFrame *mask, int alpha) void TitleMain::draw_overlay() { -//printf("TitleMain::draw_overlay 1\n"); fade = 1; if( !EQUIV(config.fade_in, 0) ) { int64_t plugin_start = get_startproject(); @@ -2275,11 +2273,16 @@ TitleTranslateUnit::TitleTranslateUnit(TitleMain *plugin, TitleTranslate *server type in_r = (cp00[0]*a00 + cp01[0]*a01 + cp10[0]*a10 + cp11[0]*a11)*s + r; \ type in_g = (cp00[1]*a00 + cp01[1]*a01 + cp10[1]*a10 + cp11[1]*a11)*s + r; \ type in_b = (cp00[2]*a00 + cp01[2]*a01 + cp10[2]*a10 + cp11[2]*a11)*s + r; \ - type a = in_a*plugin->fade, b = max - a, px; \ - /*if( comps == 4 ) { b = (b * op[3]) / max; }*/ \ - px = *op; *op++ = (a*in_r + b*px) / max; \ - px = *op; *op++ = (a*(in_g-ofs) + b*(px-ofs)) / max + ofs; \ - px = *op; *op++ = (a*(in_b-ofs) + b*(px-ofs)) / max + ofs; \ + type a = in_a*plugin->fade, px; \ + type b ; \ + double total_alpha, double_b; \ + if ( comps == 4 ) { b = *(op+3); } \ + else b = max - a; \ + double_b = (1.0 * b * (max - a)/(max*1.0)); \ + total_alpha = a + double_b; \ + px = *op; *op++ = (a*in_r + double_b*px) / total_alpha; \ + px = *op; *op++ = (a*(in_g-ofs) + double_b*(px-ofs)) / total_alpha + ofs; \ + px = *op; *op++ = (a*(in_b-ofs) + double_b*(px-ofs)) / total_alpha + ofs; \ if( comps == 4 ) { b = *op; *op++ = a + b - a*b / max; } \ } \ } \