Skip to content

Commit

Permalink
chromakey HSV fixes. Color swatch generator.
Browse files Browse the repository at this point in the history
  • Loading branch information
heroineworshiper committed Feb 12, 2024
1 parent 24e8a31 commit 739bb75
Show file tree
Hide file tree
Showing 15 changed files with 1,410 additions and 564 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@
*.bak3
*.orig
*.lai
x86_64
10 changes: 7 additions & 3 deletions cinelerra/keyframes.C
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ void KeyFrames::update_parameter(KeyFrame *src)
selection_start = edl->align_to_frame(selection_start, 0);
selection_end = edl->align_to_frame(selection_end, 0);

//printf("KeyFrames::update_parameter %d\n", __LINE__);
if(EQUIV(selection_start, selection_end))
{
// Search for keyframe to write to
Expand All @@ -128,6 +129,9 @@ void KeyFrames::update_parameter(KeyFrame *src)
}
else
// Replace changed parameter in all selected keyframes.
// TODO: if the changed parameter doesn't exist in the EDL because of a
// software change, it'll never get saved unless the user selects a single point
// & issues another change.
{
BC_Hash *params = 0;
char *text = 0;
Expand All @@ -149,11 +153,11 @@ void KeyFrames::update_parameter(KeyFrame *src)
&extra);


if(debug) printf("KeyFrames::update_parameter %d params=%p position=%lld start=%lld\n",
if(debug) printf("KeyFrames::update_parameter %d params=%p position=%ld start=%ld\n",
__LINE__,
params,
(long long)current->position,
(long long)track->to_units(start, 0));
(long)current->position,
(long)track->to_units(start, 0));

if(debug && params)
{
Expand Down
7 changes: 5 additions & 2 deletions cinelerra/plugin.C
Original file line number Diff line number Diff line change
Expand Up @@ -257,9 +257,12 @@ int Plugin::is_synthesis(int64_t position,

PluginServer *plugin_server = MWindow::scan_plugindb(title,
track->data_type);
//printf("Plugin::is_synthesis %d %p %d\n", __LINE__, plugin_server, plugin_server->get_synthesis());
//printf("Plugin::is_synthesis %d %p\n", __LINE__, plugin_server);
//plugin_server->dump();
return plugin_server->get_synthesis();
if(plugin_server)
return plugin_server->get_synthesis();
else
return 0;
break;
}

Expand Down
177 changes: 177 additions & 0 deletions cinelerra/tests/bounce.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
<?xml version="1.0"?>
<EDL VERSION=8 PATH=/root/hvirtual/cinelerra/tests/bounce.xml>
<LOCALSESSION IN_POINT=-1 LOOP_PLAYBACK=0 LOOP_START=0 LOOP_END=1.7683333333333334e+01 OUT_POINT=-1 SELECTION_START=0 SELECTION_END=3.3333333333333333e-02 CLIP_TITLE=/root/hvirtual/cinelerra/tests/bounce.xml CLIP_NOTES="Hello world" FOLDER=Clips X_PANE=-1 Y_PANE=-1 TRACK_START0=0 VIEW_START0=0 TRACK_START1=0 VIEW_START1=0 TRACK_START2=0 VIEW_START2=0 TRACK_START3=0 VIEW_START3=0 ZOOM_SAMPLE=2 ZOOMY=64 ZOOM_TRACK=64 RED=4.836432e-01 GREEN=3.761345e-01 BLUE=3.379059e-01 RED_MAX=1 GREEN_MAX=6.478676e-01 BLUE_MAX=2.124819e-01 USE_MAX=1 AUTOMATION_MIN=-5.320000e+01 AUTOMATION_MAX=1.320000e+01 FLOATAUTO_TYPE=1>

<SESSION SHOW_MUTE=0 SHOW_CAMERA_X=0 SHOW_CAMERA_Y=0 SHOW_CAMERA_Z=0 SHOW_PROJECTOR_X=0 SHOW_PROJECTOR_Y=0 SHOW_PROJECTOR_Z=0 SHOW_FADE=0 SHOW_PAN=0 SHOW_MODE=0 SHOW_MASK=0 SHOW_SPEED=0 SHOW_TRANSITIONS=0 SHOW_PLUGINS=1 AUTO_KEYFRAMES=0 AUTOS_FOLLOW_EDITS=1 BRENDER_START=0 BRENDER_END=0 EYEDROP_RADIUS=0 CROP_X1=0 CROP_Y1=0 CROP_X2=640 CROP_Y2=480 RULER_X1=240 RULER_Y1=1.091797e+02 RULER_X2=240 RULER_Y2=1.091797e+02 ALWAYS_DRAW_RULER=0 CURRENT_FOLDER=Media CURSOR_ON_FRAMES=1 TYPELESS_KEYFRAMES=0 CWINDOW_DEST=0 CWINDOW_MASK=0 CWINDOW_METER=1 CWINDOW_OPERATION=-1 CWINDOW_SCROLLBARS=0 CWINDOW_XSCROLL=12 CWINDOW_YSCROLL=12 CWINDOW_ZOOM=1 EDITING_MODE=1 HIGHLIGHTED_TRACK=2 LABELS_FOLLOW_EDITS=1 MPEG4_DEBLOCK=0 PLUGINS_FOLLOW_EDITS=1 SINGLE_STANDALONE=1 PLAYBACK_PRELOAD=1000000 SHOW_ASSETS=1 SHOW_TITLES=1 TEST_PLAYBACK_EDITS=1 TIME_FORMAT=4 NUDGE_SECONDS=1 VWINDOW_METER=1 VWINDOW_ZOOM=1 DECODE_SUBTITLES=0 subtitle_number=0>

<VIDEO PROXY_SCALE=1 INTERPOLATION_TYPE=0 INTERPOLATE_RAW=0 COLORMODEL="YUV-8 Bit" CHANNELS=1 VCHANNEL_X_0=0 VCHANNEL_Y_0=0 FRAMERATE=30 FRAMES_PER_FOOT=16 OUTPUTW=640 OUTPUTH=480 ASPECTW=4 ASPECTH=3>

<AUDIO SAMPLERATE=48000 CHANNELS=2 ACHANNEL_ANGLE_0=544 ACHANNEL_ANGLE_1=0>

<FOLDER>Clips</FOLDER>
<FOLDER>Media</FOLDER>
<ASSETS>
<ASSET SRC=/home/jpeg/2024/sunset1.jpg>
<FOLDER>Media</FOLDER>
<FORMAT TYPE=JPEG USE_HEADER=1>
<AUDIO_OMIT CHANNELS=1 RATE=0 BITS=16 BYTE_ORDER=1 SIGNED=0 HEADER=0 AUDIO_LENGTH=0 ACODEC=twos>
<VIDEO HEIGHT=2133 WIDTH=3200 LAYERS=1 FRAMERATE=1 VIDEO_LENGTH=-1 VCODEC=yuv2>
</ASSET>
</ASSETS>



<LABELS>
</LABELS>

<TRACK RECORD=1 NUDGE=0 PLAY=0 GANG=1 DRAW=0 EXPAND=1 TRACK_W=640 TRACK_H=480 TYPE=VIDEO>
<TITLE>Video 3</TITLE>
<EDITS>
<EDIT STARTSOURCE=0 CHANNEL=0 LENGTH=1><FILE SRC=/home/jpeg/2024/sunset1.jpg></EDIT>
</EDITS>
<MUTEAUTOS>
<AUTO POSITION=0 VALUE=0>
</MUTEAUTOS>
<CAMERA_X>
<AUTO POSITION=0 VALUE=0 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</CAMERA_X>
<CAMERA_Y>
<AUTO POSITION=0 VALUE=0 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</CAMERA_Y>
<CAMERA_Z>
<AUTO POSITION=0 VALUE=1 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</CAMERA_Z>
<PROJECTOR_X>
<AUTO POSITION=0 VALUE=0 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</PROJECTOR_X>
<PROJECTOR_Y>
<AUTO POSITION=0 VALUE=0 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</PROJECTOR_Y>
<PROJECTOR_Z>
<AUTO POSITION=0 VALUE=1 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</PROJECTOR_Z>
<FADEAUTOS>
<AUTO POSITION=0 VALUE=100 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</FADEAUTOS>
<MODEAUTOS>
<AUTO POSITION=0 VALUE=0>
</MODEAUTOS>
<MASKAUTOS>
<AUTO MODE=1 VALUE=100 FEATHER=0 RADIUS=1 POSITION=0>

</AUTO>
</MASKAUTOS>
<SPEEDAUTOS>
<AUTO POSITION=0 VALUE=1 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</SPEEDAUTOS>
<PLUGINSET RECORD=1>
<PLUGIN LENGTH=1 TYPE=3 TITLE="">
<SHARED_LOCATION SHARED_MODULE=2 SHARED_PLUGIN=0></SHARED_LOCATION>
<IN><OUT><ON>
<KEYFRAME POSITION=0 DEFAULT=1></KEYFRAME>
</PLUGIN>
</PLUGINSET>
</TRACK>



<TRACK RECORD=1 NUDGE=0 PLAY=0 GANG=1 DRAW=1 EXPAND=1 TRACK_W=640 TRACK_H=480 TYPE=VIDEO>
<TITLE>Video 2</TITLE>
<EDITS>
</EDITS>
<MUTEAUTOS>
<AUTO POSITION=0 VALUE=0>
</MUTEAUTOS>
<CAMERA_X>
<AUTO POSITION=0 VALUE=0 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</CAMERA_X>
<CAMERA_Y>
<AUTO POSITION=0 VALUE=0 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</CAMERA_Y>
<CAMERA_Z>
<AUTO POSITION=0 VALUE=1 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</CAMERA_Z>
<PROJECTOR_X>
<AUTO POSITION=0 VALUE=0 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</PROJECTOR_X>
<PROJECTOR_Y>
<AUTO POSITION=0 VALUE=0 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</PROJECTOR_Y>
<PROJECTOR_Z>
<AUTO POSITION=0 VALUE=1 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</PROJECTOR_Z>
<FADEAUTOS>
<AUTO POSITION=0 VALUE=100 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</FADEAUTOS>
<MODEAUTOS>
<AUTO POSITION=0 VALUE=0>
</MODEAUTOS>
<MASKAUTOS>
<AUTO MODE=1 VALUE=100 FEATHER=0 RADIUS=1 POSITION=0>

</AUTO>
</MASKAUTOS>
<SPEEDAUTOS>
<AUTO POSITION=0 VALUE=1 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</SPEEDAUTOS>
<PLUGINSET RECORD=1>
<PLUGIN LENGTH=1 TYPE=1 TITLE="Hue saturation">
<IN><OUT><ON>
<KEYFRAME POSITION=0 DEFAULT=1><HUESATURATION HUE=0 SATURATION=50 VALUE=0></KEYFRAME>
</PLUGIN>
</PLUGINSET>
</TRACK>



<TRACK RECORD=1 NUDGE=0 PLAY=0 GANG=1 DRAW=1 EXPAND=1 TRACK_W=640 TRACK_H=480 TYPE=VIDEO>
<TITLE>Video 1</TITLE>
<EDITS>
</EDITS>
<MUTEAUTOS>
<AUTO POSITION=0 VALUE=0>
</MUTEAUTOS>
<CAMERA_X>
<AUTO POSITION=0 VALUE=0 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</CAMERA_X>
<CAMERA_Y>
<AUTO POSITION=0 VALUE=0 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</CAMERA_Y>
<CAMERA_Z>
<AUTO POSITION=0 VALUE=1 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</CAMERA_Z>
<PROJECTOR_X>
<AUTO POSITION=0 VALUE=0 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</PROJECTOR_X>
<PROJECTOR_Y>
<AUTO POSITION=0 VALUE=0 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</PROJECTOR_Y>
<PROJECTOR_Z>
<AUTO POSITION=0 VALUE=1 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</PROJECTOR_Z>
<FADEAUTOS>
<AUTO POSITION=0 VALUE=100 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</FADEAUTOS>
<MODEAUTOS>
<AUTO POSITION=0 VALUE=0>
</MODEAUTOS>
<MASKAUTOS>
<AUTO MODE=1 VALUE=100 FEATHER=0 RADIUS=1 POSITION=0>

</AUTO>
</MASKAUTOS>
<SPEEDAUTOS>
<AUTO POSITION=0 VALUE=1 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</SPEEDAUTOS>
<PLUGINSET RECORD=1>
<PLUGIN LENGTH=1 TYPE=3 TITLE="">
<SHARED_LOCATION SHARED_MODULE=1 SHARED_PLUGIN=0></SHARED_LOCATION>
<IN><OUT><ON>
<KEYFRAME POSITION=0 DEFAULT=1></KEYFRAME>
</PLUGIN>
</PLUGINSET>
</TRACK>



</EDL>
76 changes: 76 additions & 0 deletions cinelerra/tests/chromakey_hsv.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
<?xml version="1.0"?>
<EDL VERSION=8 PATH=/root/hvirtual/cinelerra/tests/chromakey_hsv.xml>
<LOCALSESSION IN_POINT=-1 LOOP_PLAYBACK=0 LOOP_START=0 LOOP_END=4.3991030416666663e+03 OUT_POINT=-1 SELECTION_START=0 SELECTION_END=3.0103406666666666e+02 CLIP_TITLE=/root/hvirtual/cinelerra/tests/chromakey_hsv.xml CLIP_NOTES="Hello world" FOLDER=Clips X_PANE=-1 Y_PANE=-1 TRACK_START0=0 VIEW_START0=0 TRACK_START1=0 VIEW_START1=0 TRACK_START2=0 VIEW_START2=0 TRACK_START3=0 VIEW_START3=0 ZOOM_SAMPLE=16384 ZOOMY=64 ZOOM_TRACK=64 RED=4.836432e-01 GREEN=3.761345e-01 BLUE=3.379059e-01 RED_MAX=1 GREEN_MAX=6.478676e-01 BLUE_MAX=2.124819e-01 USE_MAX=1 AUTOMATION_MIN=-3.660000e+01 AUTOMATION_MAX=-3.400000e+00 FLOATAUTO_TYPE=1>

<SESSION SHOW_MUTE=0 SHOW_CAMERA_X=0 SHOW_CAMERA_Y=0 SHOW_CAMERA_Z=0 SHOW_PROJECTOR_X=0 SHOW_PROJECTOR_Y=0 SHOW_PROJECTOR_Z=0 SHOW_FADE=0 SHOW_PAN=0 SHOW_MODE=0 SHOW_MASK=0 SHOW_SPEED=0 SHOW_TRANSITIONS=0 SHOW_PLUGINS=1 AUTO_KEYFRAMES=0 AUTOS_FOLLOW_EDITS=1 BRENDER_START=0 BRENDER_END=0 EYEDROP_RADIUS=0 CROP_X1=0 CROP_Y1=0 CROP_X2=160 CROP_Y2=120 RULER_X1=160 RULER_Y1=1.091797e+02 RULER_X2=160 RULER_Y2=1.091797e+02 ALWAYS_DRAW_RULER=0 CURRENT_FOLDER=Media CURSOR_ON_FRAMES=1 TYPELESS_KEYFRAMES=0 CWINDOW_DEST=0 CWINDOW_MASK=0 CWINDOW_METER=0 CWINDOW_OPERATION=-1 CWINDOW_SCROLLBARS=0 CWINDOW_XSCROLL=81 CWINDOW_YSCROLL=102 CWINDOW_ZOOM=1 EDITING_MODE=1 HIGHLIGHTED_TRACK=0 LABELS_FOLLOW_EDITS=0 MPEG4_DEBLOCK=0 PLUGINS_FOLLOW_EDITS=1 SINGLE_STANDALONE=1 PLAYBACK_PRELOAD=1000000 SHOW_ASSETS=1 SHOW_TITLES=1 TEST_PLAYBACK_EDITS=1 TIME_FORMAT=0 NUDGE_SECONDS=1 VWINDOW_METER=1 VWINDOW_ZOOM=1 DECODE_SUBTITLES=0 subtitle_number=0>

<VIDEO PROXY_SCALE=1 INTERPOLATION_TYPE=1 INTERPOLATE_RAW=0 COLORMODEL=RGBA-FLOAT CHANNELS=1 VCHANNEL_X_0=0 VCHANNEL_Y_0=0 FRAMERATE=2.9970029970029969e+01 FRAMES_PER_FOOT=16 OUTPUTW=640 OUTPUTH=480 ASPECTW=4 ASPECTH=3>

<AUDIO SAMPLERATE=48000 CHANNELS=2 ACHANNEL_ANGLE_0=544 ACHANNEL_ANGLE_1=0>

<FOLDER>Clips</FOLDER>
<FOLDER>Media</FOLDER>
<ASSETS>
</ASSETS>



<LABELS>
</LABELS>

<TRACK RECORD=1 NUDGE=0 PLAY=1 GANG=1 DRAW=1 EXPAND=1 TRACK_W=640 TRACK_H=480 TYPE=VIDEO>
<TITLE>Video 1</TITLE>
<EDITS>
</EDITS>
<MUTEAUTOS>
<AUTO POSITION=0 VALUE=0>
</MUTEAUTOS>
<CAMERA_X>
<AUTO POSITION=0 VALUE=0 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</CAMERA_X>
<CAMERA_Y>
<AUTO POSITION=0 VALUE=0 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</CAMERA_Y>
<CAMERA_Z>
<AUTO POSITION=0 VALUE=1 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</CAMERA_Z>
<PROJECTOR_X>
<AUTO POSITION=0 VALUE=0 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</PROJECTOR_X>
<PROJECTOR_Y>
<AUTO POSITION=0 VALUE=0 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</PROJECTOR_Y>
<PROJECTOR_Z>
<AUTO POSITION=0 VALUE=1 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</PROJECTOR_Z>
<FADEAUTOS>
<AUTO POSITION=0 VALUE=100 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</FADEAUTOS>
<MODEAUTOS>
<AUTO POSITION=0 VALUE=0>
</MODEAUTOS>
<MASKAUTOS>
<AUTO MODE=1 VALUE=100 FEATHER=0 RADIUS=1 POSITION=0>

</AUTO>
</MASKAUTOS>
<SPEEDAUTOS>
<AUTO POSITION=0 VALUE=1 CONTROL_IN_VALUE=0 CONTROL_OUT_VALUE=0 MODE=0>
</SPEEDAUTOS>
<PLUGINSET RECORD=1>
<PLUGIN LENGTH=9022 TYPE=1 TITLE="Color Swatch">
<IN><OUT><SHOW><ON>
<KEYFRAME POSITION=0 DEFAULT=1><SWATCH BRIGHTNESS=100 SATURATION=100 FIX_BRIGHTNESS=0></KEYFRAME>
</PLUGIN>
</PLUGINSET>
<PLUGINSET RECORD=1>
<PLUGIN LENGTH=9022 TYPE=1 TITLE="Chroma key (HSV)">
<IN><OUT><SHOW><ON>
<KEYFRAME POSITION=0 DEFAULT=1><CHROMAKEY_HSV RED=1.137255e-01 GREEN=0 BLUE=1 MIN_BRIGHTNESS=4.839000e+01 MAX_BRIGHTNESS=100 SATURATION=0 MIN_SATURATION=6.806000e+01 TOLERANCE=1.387000e+01 IN_SLOPE=1.290000e+00 OUT_SLOPE=2.130000e+00 ALPHA_OFFSET=0 SPILL_THRESHOLD=2.323000e+01 SPILL_AMOUNT=-100 SHOW_MASK=0></KEYFRAME>
</PLUGIN>
</PLUGINSET>
</TRACK>



</EDL>
Binary file added cinelerra/tests/hue.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions guicast/bcresources.C
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,8 @@ double BC_Resources::medium_font_xftsize;
double BC_Resources::small_font_xftsize;
double BC_Resources::clock_font_xftsize;

int BC_Resources::default_text_color = BLACK;
int BC_Resources::disabled_text_color = MEGREY;


int BC_Resources::x_error_handler(Display *display, XErrorEvent *event)
Expand Down Expand Up @@ -653,8 +655,6 @@ void BC_Resources::init()
border_shadow1 = BLACK;
border_shadow2 = bg_color;

default_text_color = BLACK;
disabled_text_color = MEGREY;

button_light = MEGREY; // bright corner
button_highlighted = LTGREY; // face when highlighted
Expand Down
4 changes: 2 additions & 2 deletions guicast/bcresources.h
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,8 @@ class BC_Resources
int bg_shadow2;
int bg_light1;
int bg_light2;
int default_text_color;
int disabled_text_color;
static int default_text_color;
static int disabled_text_color;


// beveled box colors
Expand Down
1 change: 0 additions & 1 deletion guicast/bctitle.C
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

/*
* CINELERRA
* Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
Expand Down

0 comments on commit 739bb75

Please sign in to comment.