diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-06-13 01:25:23 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-06-13 01:25:23 +0400 |
commit | 5dc0b35a019651e052c7770330aafc7f2d7fb690 (patch) | |
tree | 6902f7e9e431868947bd0c5bcbb15696959fa99a /source/blender/blenkernel/intern/movieclip.c | |
parent | 92d948307549ce1d69ec4e41e42b442360b9bade (diff) |
Added frame offset slider to clip datablocks
In contrast to start_frame (which affects on where footage actually
starts to play and also affects on all data associated with a clip
such as motion tracking, reconstruction and so on) this slider only
affects on a way how frame number is mapping to a filename, without
touching any kind of tracking data.
The formula is:
file_name = clip_file_name + frame_offset - (start_frame - 1)
Diffstat (limited to 'source/blender/blenkernel/intern/movieclip.c')
-rw-r--r-- | source/blender/blenkernel/intern/movieclip.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/movieclip.c b/source/blender/blenkernel/intern/movieclip.c index 92184a38695..d6fa39fd789 100644 --- a/source/blender/blenkernel/intern/movieclip.c +++ b/source/blender/blenkernel/intern/movieclip.c @@ -159,7 +159,7 @@ static void get_sequence_fname(MovieClip *clip, int framenr, char *name) offset = sequence_guess_offset(clip->name, strlen(head), numlen); if (numlen) - BLI_stringenc(name, head, tail, numlen, offset + framenr - clip->start_frame); + BLI_stringenc(name, head, tail, numlen, offset + framenr - clip->start_frame + clip->frame_offset); else BLI_strncpy(name, clip->name, sizeof(clip->name)); @@ -171,7 +171,7 @@ static void get_proxy_fname(MovieClip *clip, int proxy_render_size, int undistor { int size = rendersize_to_number(proxy_render_size); char dir[FILE_MAX], clipdir[FILE_MAX], clipfile[FILE_MAX]; - int proxynr = framenr - clip->start_frame + 1; + int proxynr = framenr - clip->start_frame + 1 + clip->frame_offset; BLI_split_dirfile(clip->name, clipdir, clipfile, FILE_MAX, FILE_MAX); @@ -250,7 +250,7 @@ static ImBuf *movieclip_load_movie_file(MovieClip *clip, MovieClipUser *user, in int fra; dur = IMB_anim_get_duration(clip->anim, tc); - fra = framenr - clip->start_frame; + fra = framenr - clip->start_frame + clip->frame_offset; if (fra < 0) fra = 0; @@ -446,6 +446,7 @@ static MovieClip *movieclip_alloc(const char *name) clip->proxy.quality = 90; clip->start_frame = 1; + clip->frame_offset = 1; return clip; } |