Merge branch 'blender-v4.0-release'
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user