Merge branch 'blender-v4.0-release'

This commit is contained in:
Richard Antalik
2023-10-19 02:10:24 +02:00
3 changed files with 13 additions and 14 deletions

View File

@@ -2621,7 +2621,7 @@ float seq_speed_effect_target_frame_get(Scene *scene,
}
SEQ_effect_handle_get(seq_speed); /* Ensure, that data are initialized. */
int frame_index = SEQ_give_frame_index(scene, seq_speed, timeline_frame);
int frame_index = round_fl_to_int(SEQ_give_frame_index(scene, seq_speed, timeline_frame));
SpeedControlVars *s = (SpeedControlVars *)seq_speed->effectdata;
const Sequence *source = seq_speed->seq1;

View File

@@ -215,7 +215,7 @@ ImBuf *seq_proxy_fetch(const SeqRenderData *context, Sequence *seq, int timeline
}
if (proxy->storage & SEQ_STORAGE_PROXY_CUSTOM_FILE) {
int frameno = int(SEQ_give_frame_index(context->scene, seq, timeline_frame)) +
int frameno = round_fl_to_int(SEQ_give_frame_index(context->scene, seq, timeline_frame)) +
seq->anim_startofs;
if (proxy->anim == nullptr) {
if (seq_proxy_get_filepath(

View File

@@ -256,7 +256,7 @@ StripElem *SEQ_render_give_stripelem(const Scene *scene, Sequence *seq, int time
* all other strips don't use this...
*/
int frame_index = int(SEQ_give_frame_index(scene, seq, timeline_frame));
int frame_index = round_fl_to_int(SEQ_give_frame_index(scene, seq, timeline_frame));
if (frame_index == -1 || se == nullptr) {
return nullptr;
@@ -962,8 +962,7 @@ static bool seq_image_strip_is_multiview_render(
static ImBuf *seq_render_image_strip(const SeqRenderData *context,
Sequence *seq,
float /*frame_index*/,
float timeline_frame,
int timeline_frame,
bool *r_is_proxy_image)
{
char filepath[FILE_MAX];
@@ -1061,7 +1060,7 @@ static ImBuf *seq_render_movie_strip_custom_file_proxy(const SeqRenderData *cont
}
}
int frameno = int(SEQ_give_frame_index(context->scene, seq, timeline_frame)) +
int frameno = round_fl_to_int(SEQ_give_frame_index(context->scene, seq, timeline_frame)) +
seq->anim_startofs;
return IMB_anim_absolute(proxy->anim, frameno, IMB_TC_NONE, IMB_PROXY_NONE);
}
@@ -1081,13 +1080,14 @@ static IMB_Timecode_Type seq_render_movie_strip_timecode_get(Sequence *seq)
*/
static ImBuf *seq_render_movie_strip_view(const SeqRenderData *context,
Sequence *seq,
float frame_index,
float timeline_frame,
StripAnim *sanim,
bool *r_is_proxy_image)
{
ImBuf *ibuf = nullptr;
IMB_Proxy_Size psize = IMB_Proxy_Size(SEQ_rendersize_to_proxysize(context->preview_render_size));
const int frame_index = round_fl_to_int(
SEQ_give_frame_index(context->scene, seq, timeline_frame));
if (SEQ_can_use_proxy(context, seq, psize)) {
/* Try to get a proxy image.
@@ -1132,7 +1132,6 @@ static ImBuf *seq_render_movie_strip_view(const SeqRenderData *context,
static ImBuf *seq_render_movie_strip(const SeqRenderData *context,
Sequence *seq,
float frame_index,
float timeline_frame,
bool *r_is_proxy_image)
{
@@ -1158,7 +1157,7 @@ static ImBuf *seq_render_movie_strip(const SeqRenderData *context,
{
if (sanim->anim) {
ibuf_arr[ibuf_view_id] = seq_render_movie_strip_view(
context, seq, frame_index, timeline_frame, sanim, r_is_proxy_image);
context, seq, timeline_frame, sanim, r_is_proxy_image);
}
}
@@ -1195,8 +1194,7 @@ static ImBuf *seq_render_movie_strip(const SeqRenderData *context,
MEM_freeN(ibuf_arr);
}
else {
ibuf = seq_render_movie_strip_view(
context, seq, frame_index, timeline_frame, sanim, r_is_proxy_image);
ibuf = seq_render_movie_strip_view(context, seq, timeline_frame, sanim, r_is_proxy_image);
}
if (ibuf == nullptr) {
@@ -1726,17 +1724,18 @@ static ImBuf *do_render_strip_uncached(const SeqRenderData *context,
}
case SEQ_TYPE_IMAGE: {
ibuf = seq_render_image_strip(context, seq, frame_index, timeline_frame, r_is_proxy_image);
ibuf = seq_render_image_strip(context, seq, timeline_frame, r_is_proxy_image);
break;
}
case SEQ_TYPE_MOVIE: {
ibuf = seq_render_movie_strip(context, seq, frame_index, timeline_frame, r_is_proxy_image);
ibuf = seq_render_movie_strip(context, seq, timeline_frame, r_is_proxy_image);
break;
}
case SEQ_TYPE_MOVIECLIP: {
ibuf = seq_render_movieclip_strip(context, seq, frame_index, r_is_proxy_image);
ibuf = seq_render_movieclip_strip(
context, seq, round_fl_to_int(frame_index), r_is_proxy_image);
if (ibuf) {
/* duplicate frame so movie cache wouldn't be confused by sequencer's stuff */