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:
-rw-r--r--source/blender/makesdna/DNA_sequence_types.h3
-rw-r--r--source/blender/src/drawseq.c3
-rw-r--r--source/blender/src/sequence.c9
3 files changed, 9 insertions, 6 deletions
diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h
index d5731c0bd86..09bb4b4c61a 100644
--- a/source/blender/makesdna/DNA_sequence_types.h
+++ b/source/blender/makesdna/DNA_sequence_types.h
@@ -119,7 +119,8 @@ typedef struct Sequence {
struct bSound *sound; /* the linked "bSound" object */
float level, pan; /* level in dB (0=full), pan -1..1 */
int curpos; /* last sample position in audio_fill() */
- int pad;
+ short pad;
+ short strobe;
void *effectdata; /* Struct pointer for effect settings */
diff --git a/source/blender/src/drawseq.c b/source/blender/src/drawseq.c
index 3b409af2814..bf222042375 100644
--- a/source/blender/src/drawseq.c
+++ b/source/blender/src/drawseq.c
@@ -674,6 +674,7 @@ static void seq_panel_properties(short cntrl) // SEQ_HANDLER_PROPERTIES
uiDefButBitS(block, TOG, SEQ_FILTERY, SEQ_BUT_RELOAD, "FilterY", 10,70,150,19, &last_seq->flag, 0.0, 21.0, 100, 0, "For video movies to remove fields");
uiDefButF(block, NUM, SEQ_BUT_RELOAD, "Mul:", 10,50,150,19, &last_seq->mul, 0.001, 5.0, 100, 0, "Multiply colors");
uiDefButS(block, TOG|BIT|7, SEQ_BUT_RELOAD, "Reverse Frames", 10,30,150,19, &last_seq->flag, 0.0, 21.0, 100, 0, "Reverse frame order");
+ uiDefButS(block, NUM, SEQ_BUT_RELOAD, "Strobe:", 10,10,150,19, &last_seq->strobe, 1.0, 30.0, 100, 0, "Only display every nth frame");
}
else if(last_seq->type==SEQ_META) {
@@ -699,7 +700,7 @@ static void seq_panel_properties(short cntrl) // SEQ_HANDLER_PROPERTIES
uiDefButF(block, NUM, SEQ_BUT_RELOAD, "Mul:", 10,50,150,19, &last_seq->mul, 0.001, 5.0, 100, 0, "Multiply colors");
uiDefButS(block, TOG|BIT|7, SEQ_BUT_RELOAD, "Reverse Frames", 10,30,150,19, &last_seq->flag, 0.0, 21.0, 100, 0, "Reverse frame order");
-
+ uiDefButS(block, NUM, SEQ_BUT_RELOAD, "Strobe:", 10,10,150,19, &last_seq->strobe, 1.0, 30.0, 100, 0, "Only display every nth frame");
}
else if(last_seq->type==SEQ_SOUND) {
diff --git a/source/blender/src/sequence.c b/source/blender/src/sequence.c
index da6c1197951..619212ea419 100644
--- a/source/blender/src/sequence.c
+++ b/source/blender/src/sequence.c
@@ -1716,11 +1716,12 @@ StripElem *give_stripelem(Sequence *seq, int cfra)
else if(cfra >= seq->start+seq->len-1) nr= 0;
else nr= (seq->start + seq->len) - cfra;
} else {
- if(cfra <= seq->start) nr= 0;
- else if(cfra >= seq->start+seq->len-1) nr= seq->len-1;
- else nr= cfra-seq->start;
+ if(cfra <= seq->start) nr= 0;
+ else if(cfra >= seq->start+seq->len-1) nr= seq->len-1;
+ else nr= cfra-seq->start;
}
-
+ if (seq->strobe == 0) seq->strobe = 1;
+ nr -= nr % seq->strobe;
se+= nr; /* don't get confused by the increment, this is the same as strip->stripdata[nr], which works on some compilers...*/
se->nr= nr;