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:
Diffstat (limited to 'release/scripts/op/sequencer.py')
-rw-r--r--release/scripts/op/sequencer.py90
1 files changed, 80 insertions, 10 deletions
diff --git a/release/scripts/op/sequencer.py b/release/scripts/op/sequencer.py
index 51bb96442e9..13668498aae 100644
--- a/release/scripts/op/sequencer.py
+++ b/release/scripts/op/sequencer.py
@@ -20,6 +20,9 @@
import bpy
+from bpy.props import *
+
+
class SequencerCrossfadeSounds(bpy.types.Operator):
'''Do crossfading volume animation of two selected sound strips.'''
@@ -48,34 +51,101 @@ class SequencerCrossfadeSounds(bpy.types.Operator):
if seq2 == None:
self.report({'ERROR'}, "Select 2 sound strips.")
return {'CANCELLED'}
- if seq1.start_frame_final > seq2.start_frame_final:
+ if seq1.frame_final_start > seq2.frame_final_start:
s = seq1
seq1 = seq2
seq2 = s
- if seq1.end_frame_final > seq2.start_frame_final:
- tempcfra = context.scene.current_frame
- context.scene.current_frame = seq2.start_frame_final
+ if seq1.frame_final_end > seq2.frame_final_start:
+ tempcfra = context.scene.frame_current
+ context.scene.frame_current = seq2.frame_final_start
seq1.keyframe_insert('volume')
- context.scene.current_frame = seq1.end_frame_final
+ context.scene.frame_current = seq1.frame_final_end
seq1.volume = 0
seq1.keyframe_insert('volume')
seq2.keyframe_insert('volume')
- context.scene.current_frame = seq2.start_frame_final
+ context.scene.frame_current = seq2.frame_final_start
seq2.volume = 0
seq2.keyframe_insert('volume')
- context.scene.current_frame = tempcfra
+ context.scene.frame_current = tempcfra
return {'FINISHED'}
else:
self.report({'ERROR'}, "The selected strips don't overlap.")
return {'CANCELLED'}
+class SequencerCutMulticam(bpy.types.Operator):
+ '''Cut multicam strip and select camera.'''
+
+ bl_idname = "sequencer.cut_multicam"
+ bl_label = "Cut multicam"
+ bl_options = {'REGISTER', 'UNDO'}
+
+ camera = IntProperty(name="Camera",
+ default=1, min=1, max=32, soft_min=1, soft_max=32)
+
+ def poll(self, context):
+ if context.scene and context.scene.sequence_editor and context.scene.sequence_editor.active_strip:
+ return context.scene.sequence_editor.active_strip.type == 'MULTICAM'
+ else:
+ return False
+
+ def execute(self, context):
+ camera = self.properties.camera
+
+ s = context.scene.sequence_editor.active_strip
+
+ if s.multicam_source == camera:
+ return {'FINISHED'}
+
+ if not s.selected:
+ s.selected = True
+
+ cfra = context.scene.frame_current
+ bpy.ops.sequencer.cut(frame=cfra, type='SOFT', side='RIGHT')
+ for s in context.scene.sequence_editor.sequences_all:
+ if s.selected and s.type == 'MULTICAM' and s.frame_final_start <= cfra and cfra < s.frame_final_end:
+ context.scene.sequence_editor.active_strip = s
+
+ context.scene.sequence_editor.active_strip.multicam_source = camera
+ return {'FINISHED'}
+
+
+class SequencerDeinterlaceSelectedMovies(bpy.types.Operator):
+ '''Deinterlace all selected movie sources.'''
+
+ bl_idname = "sequencer.deinterlace_selected_movies"
+ bl_label = "Deinterlace Movies"
+ bl_options = {'REGISTER', 'UNDO'}
+
+ def poll(self, context):
+ if context.scene and context.scene.sequence_editor:
+ return True
+ else:
+ return False
+
+ def execute(self, context):
+ for s in context.scene.sequence_editor.sequences_all:
+ if s.selected and s.type == 'MOVIE':
+ s.de_interlace = True
+
+ return {'FINISHED'}
+
+
def register():
- bpy.types.register(SequencerCrossfadeSounds)
+ register = bpy.types.register
+
+ register(SequencerCrossfadeSounds)
+ register(SequencerCutMulticam)
+ register(SequencerDeinterlaceSelectedMovies)
+
def unregister():
- bpy.types.unregister(SequencerCrossfadeSounds)
+ unregister = bpy.types.unregister
+
+ unregister(SequencerCrossfadeSounds)
+ unregister(SequencerCutMulticam)
+ unregister(SequencerDeinterlaceSelectedMovies)
+
if __name__ == "__main__":
register()
-