Blender  V3.3
rna_movieclip.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
7 #include <limits.h>
8 #include <stdlib.h>
9 
10 #include "MEM_guardedalloc.h"
11 
12 #include "DNA_movieclip_types.h"
13 #include "DNA_scene_types.h"
14 
15 #include "RNA_access.h"
16 #include "RNA_define.h"
17 
18 #include "rna_internal.h"
19 
20 #include "BKE_movieclip.h"
21 #include "BKE_tracking.h"
22 
23 #include "WM_types.h"
24 
25 #include "IMB_imbuf.h"
26 #include "IMB_imbuf_types.h"
27 #include "IMB_metadata.h"
28 
29 #ifdef RNA_RUNTIME
30 
31 # include "DEG_depsgraph.h"
32 
33 # include "ED_clip.h"
34 
35 # include "DNA_screen_types.h"
36 # include "DNA_space_types.h"
37 
38 # include "SEQ_relations.h"
39 
40 static void rna_MovieClip_reload_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
41 {
42  MovieClip *clip = (MovieClip *)ptr->owner_id;
43 
45 }
46 
47 static void rna_MovieClip_size_get(PointerRNA *ptr, int *values)
48 {
49  MovieClip *clip = (MovieClip *)ptr->owner_id;
50 
51  values[0] = clip->lastsize[0];
52  values[1] = clip->lastsize[1];
53 }
54 
55 static float rna_MovieClip_fps_get(PointerRNA *ptr)
56 {
57  MovieClip *clip = (MovieClip *)ptr->owner_id;
58  return BKE_movieclip_get_fps(clip);
59 }
60 
61 static void rna_MovieClip_use_proxy_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr)
62 {
63  MovieClip *clip = (MovieClip *)ptr->owner_id;
66 }
67 
68 static void rna_MovieClipUser_proxy_render_settings_update(Main *bmain,
69  Scene *UNUSED(scene),
70  PointerRNA *ptr)
71 {
72  ID *id = ptr->owner_id;
73  MovieClipUser *user = (MovieClipUser *)ptr->data;
74 
75  /* when changing render settings of space clip user
76  * clear cache for clip, so all the memory is available
77  * for new render settings
78  */
79  if (GS(id->name) == ID_SCR) {
80  bScreen *screen = (bScreen *)id;
81  ScrArea *area;
82  SpaceLink *sl;
83 
84  for (area = screen->areabase.first; area; area = area->next) {
85  for (sl = area->spacedata.first; sl; sl = sl->next) {
86  if (sl->spacetype == SPACE_CLIP) {
87  SpaceClip *sc = (SpaceClip *)sl;
88 
89  if (&sc->user == user) {
91 
92  if (clip && (clip->flag & MCLIP_USE_PROXY)) {
95  }
96 
97  break;
98  }
99  }
100  }
101  }
102  }
103 }
104 
105 static PointerRNA rna_MovieClip_metadata_get(MovieClip *clip)
106 {
107  if (clip == NULL || clip->anim == NULL) {
108  return PointerRNA_NULL;
109  }
110 
111  IDProperty *metadata = IMB_anim_load_metadata(clip->anim);
112  if (metadata == NULL) {
113  return PointerRNA_NULL;
114  }
115 
116  PointerRNA ptr;
117  RNA_pointer_create(NULL, &RNA_IDPropertyWrapPtr, metadata, &ptr);
118  return ptr;
119 }
120 
121 static char *rna_MovieClipUser_path(const PointerRNA *ptr)
122 {
123  if (ptr->owner_id) {
124  /* MovieClipUser *mc_user = ptr->data; */
125 
126  switch (GS(ptr->owner_id->name)) {
127  case ID_CA:
129  default:
130  break;
131  }
132  }
133 
134  return BLI_strdup("");
135 }
136 
137 #else
138 
140 {
141  StructRNA *srna;
142  PropertyRNA *prop;
143 
144  static const EnumPropertyItem clip_tc_items[] = {
145  {IMB_TC_NONE, "NONE", 0, "None", ""},
147  "RECORD_RUN",
148  0,
149  "Record Run",
150  "Use images in the order they are recorded"},
152  "FREE_RUN",
153  0,
154  "Free Run",
155  "Use global timestamp written by recording device"},
157  "FREE_RUN_REC_DATE",
158  0,
159  "Free Run (rec date)",
160  "Interpolate a global timestamp using the record date and time "
161  "written by recording device"},
163  "FREE_RUN_NO_GAPS",
164  0,
165  "Free Run No Gaps",
166  "Record run, but ignore timecode, changes in framerate or dropouts"},
167  {0, NULL, 0, NULL, NULL},
168  };
169 
170  srna = RNA_def_struct(brna, "MovieClipProxy", NULL);
171  RNA_def_struct_ui_text(srna, "Movie Clip Proxy", "Proxy parameters for a movie clip");
172  RNA_def_struct_sdna(srna, "MovieClipProxy");
173 
174  /* build proxy sized */
175  prop = RNA_def_property(srna, "build_25", PROP_BOOLEAN, PROP_NONE);
176  RNA_def_property_boolean_sdna(prop, NULL, "build_size_flag", MCLIP_PROXY_SIZE_25);
179  prop, "25%", "Build proxy resolution 25% of the original footage dimension");
180 
181  prop = RNA_def_property(srna, "build_50", PROP_BOOLEAN, PROP_NONE);
182  RNA_def_property_boolean_sdna(prop, NULL, "build_size_flag", MCLIP_PROXY_SIZE_50);
185  prop, "50%", "Build proxy resolution 50% of the original footage dimension");
186 
187  prop = RNA_def_property(srna, "build_75", PROP_BOOLEAN, PROP_NONE);
188  RNA_def_property_boolean_sdna(prop, NULL, "build_size_flag", MCLIP_PROXY_SIZE_75);
191  prop, "75%", "Build proxy resolution 75% of the original footage dimension");
192 
193  prop = RNA_def_property(srna, "build_100", PROP_BOOLEAN, PROP_NONE);
194  RNA_def_property_boolean_sdna(prop, NULL, "build_size_flag", MCLIP_PROXY_SIZE_100);
197  prop, "100%", "Build proxy resolution 100% of the original footage dimension");
198 
199  prop = RNA_def_property(srna, "build_undistorted_25", PROP_BOOLEAN, PROP_NONE);
203  prop, "25%", "Build proxy resolution 25% of the original undistorted footage dimension");
204 
205  prop = RNA_def_property(srna, "build_undistorted_50", PROP_BOOLEAN, PROP_NONE);
209  prop, "50%", "Build proxy resolution 50% of the original undistorted footage dimension");
210 
211  prop = RNA_def_property(srna, "build_undistorted_75", PROP_BOOLEAN, PROP_NONE);
215  prop, "75%", "Build proxy resolution 75% of the original undistorted footage dimension");
216 
217  prop = RNA_def_property(srna, "build_undistorted_100", PROP_BOOLEAN, PROP_NONE);
221  prop, "100%", "Build proxy resolution 100% of the original undistorted footage dimension");
222 
223  /* Build time-codes. */
224  prop = RNA_def_property(srna, "build_record_run", PROP_BOOLEAN, PROP_NONE);
225  RNA_def_property_boolean_sdna(prop, NULL, "build_tc_flag", IMB_TC_RECORD_RUN);
227  RNA_def_property_ui_text(prop, "Rec Run", "Build record run time code index");
228 
229  prop = RNA_def_property(srna, "build_free_run", PROP_BOOLEAN, PROP_NONE);
230  RNA_def_property_boolean_sdna(prop, NULL, "build_tc_flag", IMB_TC_FREE_RUN);
232  RNA_def_property_ui_text(prop, "Free Run", "Build free run time code index");
233 
234  prop = RNA_def_property(srna, "build_free_run_rec_date", PROP_BOOLEAN, PROP_NONE);
236  prop, NULL, "build_tc_flag", IMB_TC_INTERPOLATED_REC_DATE_FREE_RUN);
239  prop, "Free Run (Rec Date)", "Build free run time code index using Record Date/Time");
240 
241  /* quality of proxied image */
242  prop = RNA_def_property(srna, "quality", PROP_INT, PROP_UNSIGNED);
243  RNA_def_property_int_sdna(prop, NULL, "quality");
245  RNA_def_property_ui_text(prop, "Quality", "JPEG quality of proxy images");
246  RNA_def_property_ui_range(prop, 1, 100, 1, -1);
247 
248  prop = RNA_def_property(srna, "timecode", PROP_ENUM, PROP_NONE);
249  RNA_def_property_enum_sdna(prop, NULL, "tc");
251  RNA_def_property_enum_items(prop, clip_tc_items);
252  RNA_def_property_ui_text(prop, "Timecode", "");
253  RNA_def_property_update(prop, NC_MOVIECLIP | ND_DISPLAY, "rna_MovieClip_reload_update");
254 
255  /* directory */
256  prop = RNA_def_property(srna, "directory", PROP_STRING, PROP_DIRPATH);
257  RNA_def_property_string_sdna(prop, NULL, "dir");
259  RNA_def_property_ui_text(prop, "Directory", "Location to store the proxy files");
260  RNA_def_property_update(prop, NC_MOVIECLIP | ND_DISPLAY, "rna_MovieClip_reload_update");
261 }
262 
264 {
265  StructRNA *srna;
266  PropertyRNA *prop;
267 
268  static const EnumPropertyItem clip_render_size_items[] = {
269  {MCLIP_PROXY_RENDER_SIZE_25, "PROXY_25", 0, "25%", ""},
270  {MCLIP_PROXY_RENDER_SIZE_50, "PROXY_50", 0, "50%", ""},
271  {MCLIP_PROXY_RENDER_SIZE_75, "PROXY_75", 0, "75%", ""},
272  {MCLIP_PROXY_RENDER_SIZE_100, "PROXY_100", 0, "100%", ""},
273  {MCLIP_PROXY_RENDER_SIZE_FULL, "FULL", 0, "None, full render", ""},
274  {0, NULL, 0, NULL, NULL},
275  };
276 
277  srna = RNA_def_struct(brna, "MovieClipUser", NULL);
279  srna,
280  "Movie Clip User",
281  "Parameters defining how a MovieClip data-block is used by another data-block");
282  RNA_def_struct_path_func(srna, "rna_MovieClipUser_path");
283 
285 
286  prop = RNA_def_property(srna, "frame_current", PROP_INT, PROP_TIME);
287  RNA_def_property_int_sdna(prop, NULL, "framenr");
290  prop, "Current Frame", "Current frame number in movie or image sequence");
291 
292  /* render size */
293  prop = RNA_def_property(srna, "proxy_render_size", PROP_ENUM, PROP_NONE);
294  RNA_def_property_enum_sdna(prop, NULL, "render_size");
295  RNA_def_property_enum_items(prop, clip_render_size_items);
297  "Proxy Render Size",
298  "Display preview using full resolution or different proxy resolutions");
300  prop, NC_MOVIECLIP | ND_DISPLAY, "rna_MovieClipUser_proxy_render_settings_update");
301 
302  /* render undistorted */
303  prop = RNA_def_property(srna, "use_render_undistorted", PROP_BOOLEAN, PROP_NONE);
305  RNA_def_property_ui_text(prop, "Render Undistorted", "Render preview using undistorted proxy");
307  prop, NC_MOVIECLIP | ND_DISPLAY, "rna_MovieClipUser_proxy_render_settings_update");
308 
310 }
311 
313 {
314  StructRNA *srna;
315 
316  srna = RNA_def_struct(brna, "MovieClipScopes", NULL);
317  RNA_def_struct_ui_text(srna, "MovieClipScopes", "Scopes for statistical view of a movie clip");
318 }
319 
320 static void rna_def_movieclip(BlenderRNA *brna)
321 {
322  StructRNA *srna;
323  PropertyRNA *prop;
324  FunctionRNA *func;
325  PropertyRNA *parm;
326 
327  static const EnumPropertyItem clip_source_items[] = {
328  {MCLIP_SRC_SEQUENCE, "SEQUENCE", 0, "Image Sequence", "Multiple image files, as a sequence"},
329  {MCLIP_SRC_MOVIE, "MOVIE", 0, "Movie File", "Movie file"},
330  {0, NULL, 0, NULL, NULL},
331  };
332 
333  srna = RNA_def_struct(brna, "MovieClip", "ID");
335  srna, "MovieClip", "MovieClip data-block referencing an external movie file");
336  RNA_def_struct_ui_icon(srna, ICON_SEQUENCE);
337 
338  prop = RNA_def_property(srna, "filepath", PROP_STRING, PROP_FILEPATH);
339  RNA_def_property_string_sdna(prop, NULL, "filepath");
340  RNA_def_property_ui_text(prop, "File Path", "Filename of the movie or sequence file");
341  RNA_def_property_update(prop, NC_MOVIECLIP | ND_DISPLAY, "rna_MovieClip_reload_update");
342 
343  prop = RNA_def_property(srna, "tracking", PROP_POINTER, PROP_NONE);
344  RNA_def_property_struct_type(prop, "MovieTracking");
345 
346  prop = RNA_def_property(srna, "proxy", PROP_POINTER, PROP_NONE);
347  RNA_def_property_struct_type(prop, "MovieClipProxy");
348 
349  /* use proxy */
350  prop = RNA_def_property(srna, "use_proxy", PROP_BOOLEAN, PROP_NONE);
354  prop, "Use Proxy / Timecode", "Use a preview proxy and/or timecode index for this clip");
355  RNA_def_property_update(prop, NC_MOVIECLIP | ND_DISPLAY, "rna_MovieClip_use_proxy_update");
356 
357  prop = RNA_def_int_vector(srna,
358  "size",
359  2,
360  NULL,
361  0,
362  0,
363  "Size",
364  "Width and height in pixels, zero when image data can't be loaded",
365  0,
366  0);
367  RNA_def_property_int_funcs(prop, "rna_MovieClip_size_get", NULL, NULL);
369 
370  prop = RNA_def_property(srna, "display_aspect", PROP_FLOAT, PROP_XYZ);
371  RNA_def_property_float_sdna(prop, NULL, "aspx");
372  RNA_def_property_array(prop, 2);
373  RNA_def_property_range(prop, 0.1f, FLT_MAX);
374  RNA_def_property_ui_range(prop, 0.1f, 5000.0f, 1, 2);
376  prop, "Display Aspect", "Display Aspect for this clip, does not affect rendering");
378 
379  /* source */
380  prop = RNA_def_property(srna, "source", PROP_ENUM, PROP_NONE);
381  RNA_def_property_enum_items(prop, clip_source_items);
382  RNA_def_property_ui_text(prop, "Source", "Where the clip comes from");
384 
385  /* custom proxy directory */
386  prop = RNA_def_property(srna, "use_proxy_custom_directory", PROP_BOOLEAN, PROP_NONE);
390  prop,
391  "Proxy Custom Directory",
392  "Create proxy images in a custom directory (default is movie location)");
393  RNA_def_property_update(prop, NC_MOVIECLIP | ND_DISPLAY, "rna_MovieClip_reload_update");
394 
395  /* grease pencil */
396  prop = RNA_def_property(srna, "grease_pencil", PROP_POINTER, PROP_NONE);
397  RNA_def_property_pointer_sdna(prop, NULL, "gpd");
398  RNA_def_property_struct_type(prop, "GreasePencil");
400  prop, NULL, NULL, NULL, "rna_GPencil_datablocks_annotations_poll");
402  RNA_def_property_ui_text(prop, "Grease Pencil", "Grease pencil data for this movie clip");
404 
405  /* start_frame */
406  prop = RNA_def_property(srna, "frame_start", PROP_INT, PROP_NONE);
407  RNA_def_property_int_sdna(prop, NULL, "start_frame");
409  "Start Frame",
410  "Global scene frame number at which this movie starts playing "
411  "(affects all data associated with a clip)");
413 
414  /* frame_offset */
415  prop = RNA_def_property(srna, "frame_offset", PROP_INT, PROP_NONE);
416  RNA_def_property_int_sdna(prop, NULL, "frame_offset");
418  prop,
419  "Frame Offset",
420  "Offset of footage first frame relative to its file name "
421  "(affects only how footage is loading, does not change data associated with a clip)");
423 
424  /* length */
425  prop = RNA_def_property(srna, "frame_duration", PROP_INT, PROP_NONE);
427  RNA_def_property_int_sdna(prop, NULL, "len");
428  RNA_def_property_ui_text(prop, "Duration", "Detected duration of movie clip in frames");
429 
430  /* FPS */
431  prop = RNA_def_property(srna, "fps", PROP_FLOAT, PROP_NONE);
433  RNA_def_property_float_funcs(prop, "rna_MovieClip_fps_get", NULL, NULL);
435  prop, "Frame Rate", "Detected frame rate of the movie clip in frames per second");
436 
437  /* color management */
438  prop = RNA_def_property(srna, "colorspace_settings", PROP_POINTER, PROP_NONE);
439  RNA_def_property_pointer_sdna(prop, NULL, "colorspace_settings");
440  RNA_def_property_struct_type(prop, "ColorManagedInputColorspaceSettings");
441  RNA_def_property_ui_text(prop, "Color Space Settings", "Input color space settings");
442 
443  /* metadata */
444  func = RNA_def_function(srna, "metadata", "rna_MovieClip_metadata_get");
445  RNA_def_function_ui_description(func, "Retrieve metadata of the movie file");
446  /* return type */
447  parm = RNA_def_pointer(
448  func, "metadata", "IDPropertyWrapPtr", "", "Dict-like object containing the metadata");
450  RNA_def_function_return(func, parm);
451 
453 }
454 
456 {
457  rna_def_movieclip(brna);
459  rna_def_movieclipUser(brna);
461 }
462 
463 #endif
void BKE_movieclip_clear_cache(struct MovieClip *clip)
Definition: movieclip.c:1655
float BKE_movieclip_get_fps(struct MovieClip *clip)
Definition: movieclip.c:1571
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL() ATTR_MALLOC
Definition: string.c:42
#define UNUSED(x)
void DEG_id_tag_update(struct ID *id, int flag)
@ ID_RECALC_SOURCE
Definition: DNA_ID.h:859
@ ID_CA
Definition: DNA_ID_enums.h:56
@ ID_SCR
Definition: DNA_ID_enums.h:60
@ MCLIP_PROXY_SIZE_75
@ MCLIP_PROXY_UNDISTORTED_SIZE_100
@ MCLIP_PROXY_UNDISTORTED_SIZE_75
@ MCLIP_PROXY_SIZE_25
@ MCLIP_PROXY_SIZE_100
@ MCLIP_PROXY_UNDISTORTED_SIZE_50
@ MCLIP_PROXY_SIZE_50
@ MCLIP_PROXY_UNDISTORTED_SIZE_25
@ MCLIP_PROXY_RENDER_UNDISTORT
@ MCLIP_PROXY_RENDER_SIZE_75
@ MCLIP_PROXY_RENDER_SIZE_100
@ MCLIP_PROXY_RENDER_SIZE_50
@ MCLIP_PROXY_RENDER_SIZE_FULL
@ MCLIP_PROXY_RENDER_SIZE_25
@ MCLIP_SRC_SEQUENCE
@ MCLIP_SRC_MOVIE
@ MCLIP_USE_PROXY_CUSTOM_DIR
@ MCLIP_USE_PROXY
#define MINAFRAME
#define MAXFRAME
@ SPACE_CLIP
struct MovieClip * ED_space_clip_get_clip(struct SpaceClip *sc)
Definition: clip_editor.c:570
@ IMB_TC_INTERPOLATED_REC_DATE_FREE_RUN
Definition: IMB_imbuf.h:335
@ IMB_TC_RECORD_RUN_NO_GAPS
Definition: IMB_imbuf.h:336
@ IMB_TC_NONE
Definition: IMB_imbuf.h:318
@ IMB_TC_FREE_RUN
Definition: IMB_imbuf.h:329
@ IMB_TC_RECORD_RUN
Definition: IMB_imbuf.h:324
Contains defines and structs used throughout the imbuf module.
struct IDProperty * IMB_anim_load_metadata(struct anim *anim)
Definition: anim_movie.c:233
Read Guarded memory(de)allocation.
@ PARM_RNAPTR
Definition: RNA_types.h:354
@ PROP_FLOAT
Definition: RNA_types.h:61
@ PROP_BOOLEAN
Definition: RNA_types.h:59
@ PROP_ENUM
Definition: RNA_types.h:63
@ PROP_INT
Definition: RNA_types.h:60
@ PROP_STRING
Definition: RNA_types.h:62
@ PROP_POINTER
Definition: RNA_types.h:64
@ PROP_ANIMATABLE
Definition: RNA_types.h:202
@ PROP_EDITABLE
Definition: RNA_types.h:189
@ PROP_ID_REFCOUNT
Definition: RNA_types.h:226
@ PROP_TIME
Definition: RNA_types.h:146
@ PROP_XYZ
Definition: RNA_types.h:162
@ PROP_NONE
Definition: RNA_types.h:126
@ PROP_DIRPATH
Definition: RNA_types.h:130
@ PROP_UNSIGNED
Definition: RNA_types.h:142
@ PROP_FILEPATH
Definition: RNA_types.h:129
#define ND_DISPLAY
Definition: WM_types.h:439
#define NC_MOVIECLIP
Definition: WM_types.h:347
Scene scene
#define GS(x)
Definition: iris.c:225
static void area(int d1, int d2, int e1, int e2, float weights[2])
void RNA_pointer_create(ID *id, StructRNA *type, void *data, PointerRNA *r_ptr)
Definition: rna_access.c:136
const PointerRNA PointerRNA_NULL
Definition: rna_access.c:61
void rna_def_animdata_common(StructRNA *srna)
void RNA_def_property_pointer_sdna(PropertyRNA *prop, const char *structname, const char *propname)
Definition: rna_define.c:2740
void RNA_define_lib_overridable(const bool make_overridable)
Definition: rna_define.c:742
void RNA_def_struct_path_func(StructRNA *srna, const char *path)
Definition: rna_define.c:1193
PropertyRNA * RNA_def_pointer(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
Definition: rna_define.c:4170
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t bit)
Definition: rna_define.c:2236
void RNA_def_function_return(FunctionRNA *func, PropertyRNA *ret)
Definition: rna_define.c:4312
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
Definition: rna_define.c:3126
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
Definition: rna_define.c:1645
void RNA_def_property_string_sdna(PropertyRNA *prop, const char *structname, const char *propname)
Definition: rna_define.c:2695
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
Definition: rna_define.c:4273
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
Definition: rna_define.c:1237
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
Definition: rna_define.c:1872
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
Definition: rna_define.c:1048
void RNA_def_property_array(PropertyRNA *prop, int length)
Definition: rna_define.c:1539
void RNA_def_property_range(PropertyRNA *prop, double min, double max)
Definition: rna_define.c:1737
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
Definition: rna_define.c:1772
void RNA_def_function_ui_description(FunctionRNA *func, const char *description)
Definition: rna_define.c:4347
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
Definition: rna_define.c:2900
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
Definition: rna_define.c:1257
PropertyRNA * RNA_def_int_vector(StructOrFunctionRNA *cont_, const char *identifier, int len, const int *default_value, int hardmin, int hardmax, const char *ui_name, const char *ui_description, int softmin, int softmax)
Definition: rna_define.c:3623
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
Definition: rna_define.c:1495
void RNA_def_property_pointer_funcs(PropertyRNA *prop, const char *get, const char *set, const char *type_fn, const char *poll)
Definition: rna_define.c:3385
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
Definition: rna_define.c:1028
void RNA_def_property_enum_sdna(PropertyRNA *prop, const char *structname, const char *propname)
Definition: rna_define.c:2601
void RNA_def_property_int_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
Definition: rna_define.c:3028
void RNA_def_struct_ui_icon(StructRNA *srna, int icon)
Definition: rna_define.c:1245
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
Definition: rna_define.c:1490
void RNA_def_property_float_sdna(PropertyRNA *prop, const char *structname, const char *propname)
Definition: rna_define.c:2493
void RNA_def_property_ui_range(PropertyRNA *prop, double min, double max, double step, int precision)
Definition: rna_define.c:1664
void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const char *propname)
Definition: rna_define.c:2343
void RNA_def_parameter_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
Definition: rna_define.c:1518
char * rna_CameraBackgroundImage_image_or_movieclip_user_path(const struct PointerRNA *ptr)
static void rna_def_movieclip(BlenderRNA *brna)
static void rna_def_movieclip_proxy(BlenderRNA *brna)
void RNA_def_movieclip(BlenderRNA *brna)
static void rna_def_movieclipUser(BlenderRNA *brna)
static void rna_def_movieClipScopes(BlenderRNA *brna)
void SEQ_relations_invalidate_movieclip_strips(Main *bmain, MovieClip *clip_target)
Definition: DNA_ID.h:368
char name[66]
Definition: DNA_ID.h:378
void * first
Definition: DNA_listBase.h:31
Definition: BKE_main.h:121
struct anim * anim
void * data
Definition: RNA_types.h:38
struct ID * owner_id
Definition: RNA_types.h:36
struct MovieClipUser user
ListBase areabase
PointerRNA * ptr
Definition: wm_files.c:3480