Commit: 445eed8e38cceb2bd2d5e449b4efd1a61c383da8
Author: Sergey Sharybin
Date:   Tue Feb 3 18:17:12 2015 +0500
Branches: master
https://developer.blender.org/rB445eed8e38cceb2bd2d5e449b4efd1a61c383da8

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.

===================================================================

M       source/blender/blenkernel/intern/image.c
M       source/blender/editors/space_image/image_buttons.c
M       source/blender/makesdna/DNA_image_types.h
M       source/blender/makesrna/intern/rna_image.c

===================================================================

diff --git a/source/blender/blenkernel/intern/image.c 
b/source/blender/blenkernel/intern/image.c
index b103995..b405e0a 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -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)
diff --git a/source/blender/editors/space_image/image_buttons.c 
b/source/blender/editors/space_image/image_buttons.c
index 1dcf910..a8d714b 100644
--- a/source/blender/editors/space_image/image_buttons.c
+++ b/source/blender/editors/space_image/image_buttons.c
@@ -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);
diff --git a/source/blender/makesdna/DNA_image_types.h 
b/source/blender/makesdna/DNA_image_types.h
index fcb894c..dca1c83 100644
--- a/source/blender/makesdna/DNA_image_types.h
+++ b/source/blender/makesdna/DNA_image_types.h
@@ -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)
diff --git a/source/blender/makesrna/intern/rna_image.c 
b/source/blender/makesrna/intern/rna_image.c
index bfce1b9..5ab6d1a 100644
--- a/source/blender/makesrna/intern/rna_image.c
+++ b/source/blender/makesrna/intern/rna_image.c
@@ -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);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to