Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Schlaile <peter@schlaile.de>2008-06-23 00:39:41 +0400
committerPeter Schlaile <peter@schlaile.de>2008-06-23 00:39:41 +0400
commitabda1a9ec17d830396c72d1dccd799509cebaa80 (patch)
tree1d13afdb390d2ff288b020fac7c526533a278b86 /source/blender/src/sequence.c
parent381f15189d8555ff4825917f3f7076bb8524bbc4 (diff)
== FFMPEG ==
Added serious interlacing to movies opened using ffmpeg. (Other video decoders to be done) Rational: deinterlacing, if done seriously _has_ to be done in YUV-space. Since internal interface first converts data to RGB we are pretty much lost (and fall back to IMB_filtery in that case).
Diffstat (limited to 'source/blender/src/sequence.c')
-rw-r--r--source/blender/src/sequence.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/source/blender/src/sequence.c b/source/blender/src/sequence.c
index bf519dd6e9c..6851929bbc2 100644
--- a/source/blender/src/sequence.c
+++ b/source/blender/src/sequence.c
@@ -445,7 +445,10 @@ void reload_sequence_new_file(Sequence * seq)
seq->strip->len = seq->len;
} else if (seq->type == SEQ_MOVIE) {
if(seq->anim) IMB_free_anim(seq->anim);
- seq->anim = openanim(str, IB_rect);
+ seq->anim = openanim(
+ str, IB_rect |
+ ((seq->flag & SEQ_FILTERY)
+ ? IB_animdeinterlace : 0));
if (!seq->anim) {
return;
@@ -1445,7 +1448,7 @@ static void input_preprocess(Sequence * seq, TStripElem* se, int cfra)
seq->strip->orx= se->ibuf->x;
seq->strip->ory= se->ibuf->y;
- if(seq->flag & SEQ_FILTERY) {
+ if((seq->flag & SEQ_FILTERY) && seq->type != SEQ_MOVIE) {
IMB_filtery(se->ibuf);
}
@@ -1772,8 +1775,11 @@ static void do_build_seq_ibuf(Sequence * seq, TStripElem *se, int cfra,
BLI_join_dirfile(name, seq->strip->dir, seq->strip->stripdata->name);
BLI_convertstringcode(name, G.sce);
BLI_convertstringframe(name, G.scene->r.cfra);
-
- seq->anim = openanim(name, IB_rect);
+
+ seq->anim = openanim(
+ name, IB_rect |
+ ((seq->flag & SEQ_FILTERY)
+ ? IB_animdeinterlace : 0));
}
if(seq->anim) {
IMB_anim_set_preseek(seq->anim, seq->anim_preseek);