forked from bartvdbraak/blender
Fix RNA Image.frame_duration.
If a video was loaded (e.g. from python) but never 'ibuf-acquired', its Image->anim prop would still be NULL, returning useless '1' value as frame duration!
This commit is contained in:
parent
1369bd562c
commit
8a288953cc
@ -292,11 +292,21 @@ static int rna_Image_depth_get(PointerRNA *ptr)
|
||||
|
||||
static int rna_Image_frame_duration_get(PointerRNA *ptr)
|
||||
{
|
||||
Image *im = (Image *)ptr->data;
|
||||
Image *ima = ptr->id.data;
|
||||
int duration = 1;
|
||||
|
||||
if (im->anim)
|
||||
return IMB_anim_get_duration(im->anim, IMB_TC_RECORD_RUN);
|
||||
return 1;
|
||||
if (!ima->anim) {
|
||||
/* acquire ensures ima->anim is set, if possible! */
|
||||
void *lock;
|
||||
ImBuf *ibuf = BKE_image_acquire_ibuf(ima, NULL, &lock);
|
||||
BKE_image_release_ibuf(ima, ibuf, lock);
|
||||
}
|
||||
|
||||
if (ima->anim) {
|
||||
duration = IMB_anim_get_duration(ima->anim, IMB_TC_RECORD_RUN);
|
||||
}
|
||||
|
||||
return duration;
|
||||
}
|
||||
|
||||
static int rna_Image_pixels_get_length(PointerRNA *ptr, int length[RNA_MAX_ARRAY_DIMENSION])
|
||||
|
Loading…
Reference in New Issue
Block a user