Fix T43403: Compositor does not respect interlaced video
This is actually issue with Image datablock, which had obscure Fields settings but didn't allow to de-interlace the video. Now added the option to de-interlace Image with Movie input type.
This commit is contained in:
@@ -2600,11 +2600,15 @@ static ImBuf *image_load_movie_file(Image *ima, ImageUser *iuser, int frame)
|
||||
|
||||
if (ima->anim == NULL) {
|
||||
char str[FILE_MAX];
|
||||
int flags = IB_rect;
|
||||
if (ima->flag & IMA_DEINTERLACE) {
|
||||
flags |= IB_animdeinterlace;
|
||||
}
|
||||
|
||||
BKE_image_user_file_path(iuser, ima, str);
|
||||
|
||||
/* FIXME: make several stream accessible in image editor, too*/
|
||||
ima->anim = openanim(str, IB_rect, 0, ima->colorspace_settings.name);
|
||||
ima->anim = openanim(str, flags, 0, ima->colorspace_settings.name);
|
||||
|
||||
/* let's initialize this user */
|
||||
if (ima->anim && iuser && iuser->frames == 0)
|
||||
|
@@ -794,6 +794,11 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, const char
|
||||
uiItemR(col, &imaptr, "alpha_mode", 0, IFACE_("Alpha"), ICON_NONE);
|
||||
}
|
||||
|
||||
if (ima->source == IMA_SRC_MOVIE) {
|
||||
col = uiLayoutColumn(layout, false);
|
||||
uiItemR(col, &imaptr, "use_deinterlace", 0, IFACE_("Deinterlace"), ICON_NONE);
|
||||
}
|
||||
|
||||
uiItemS(layout);
|
||||
|
||||
split = uiLayoutSplit(layout, 0.0f, false);
|
||||
|
@@ -143,6 +143,7 @@ enum {
|
||||
IMA_USER_FRAME_IN_RANGE = (1 << 10), /* for image user, but these flags are mixed */
|
||||
IMA_VIEW_AS_RENDER = (1 << 11),
|
||||
IMA_IGNORE_ALPHA = (1 << 12),
|
||||
IMA_DEINTERLACE = (1 << 13),
|
||||
};
|
||||
|
||||
#if (DNA_DEPRECATED_GCC_POISON == 1)
|
||||
|
@@ -640,6 +640,11 @@ static void rna_def_image(BlenderRNA *brna)
|
||||
RNA_def_property_ui_text(prop, "Use Alpha", "Use the alpha channel information from the image or make image fully opaque");
|
||||
RNA_def_property_update(prop, NC_IMAGE | ND_DISPLAY, "rna_Image_colormanage_update");
|
||||
|
||||
prop = RNA_def_property(srna, "use_deinterlace", PROP_BOOLEAN, PROP_NONE);
|
||||
RNA_def_property_boolean_sdna(prop, NULL, "flag", IMA_DEINTERLACE);
|
||||
RNA_def_property_ui_text(prop, "Deinterlace", "Deinterlace movie file on load");
|
||||
RNA_def_property_update(prop, NC_IMAGE | ND_DISPLAY, "rna_Image_reload_update");
|
||||
|
||||
prop = RNA_def_property(srna, "is_dirty", PROP_BOOLEAN, PROP_NONE);
|
||||
RNA_def_property_boolean_funcs(prop, "rna_Image_dirty_get", NULL);
|
||||
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
|
||||
|
Reference in New Issue
Block a user