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

screen_play_rendered_anim.py « op « scripts « release - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: e98fa45cbaada7f6a7a29cf39c93a616c1f3c860 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# ***** BEGIN GPL LICENSE BLOCK *****
#
# Script copyright (C) Campbell J Barton
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
# ***** END GPL LICENCE BLOCK *****
# --------------------------------------------------------------------------

# History
#
# Originally written by Matt Ebb

import bpy
import subprocess, platform

# from BKE_add_image_extension()
img_format_exts = {
    'IRIS':'.rgb',
    'RADHDR':'.hdr',
    'PNG':'png',
    'TARGA':'tga',
    'RAWTARGA':'tga',
    'BMP':'bmp',
    'TIFF':'tif',
    'OPENEXR':'exr',
    'MULTILAYER':'exr',
    'CINEON':'cin',
    'DPX':'dpx',
    'JPEG':'jpg',
    'JPEG2000':'jp2',
    'QUICKTIME_QTKIT':'mov',
    'QUICKTIME_CARBON':'mov',
    'AVIRAW':'avi',
    'AVIJPEG':'avi',
    'AVICODEC':'avi',
    'XVID':'avi',
    'THEORA':'ogg',
    }

class PlayRenderedAnim(bpy.types.Operator):

    bl_idname = "screen.play_rendered_anim"
    bl_label = "Play Rendered Animation"
    bl_register = True
    bl_undo = False

    def execute(self, context):
        sce = context.scene
        rd = sce.render_data
        prefs = context.user_preferences
        
        preset = prefs.filepaths.animation_player_preset
        player_path = prefs.filepaths.animation_player
        
        # try and guess a command line if it doesn't exist
        if player_path == '':
            if preset == 'BLENDER24':
                player_path = 'blender'
            elif preset == 'DJV':
                player_path = 'djv_view'
        
        # doesn't support ### frame notation yet
        file = "%s%04d" % (rd.output_path, sce.start_frame)
        if rd.file_extensions:
            file += '.' + img_format_exts[rd.file_format]
        
        cmd = [player_path]
        # extra options, fps controls etc.
        if preset == 'BLENDER24':
            opts = ["-a", "-f", str(rd.fps), str(rd.fps_base), file]
            cmd.extend(opts)
        elif preset == 'DJV':
            opts = [file, "-playback_speed", str(rd.fps)]
            cmd.extend(opts)
        else: # 'CUSTOM'
            cmd.extend(file)

        # launch it
        try:
            process = subprocess.Popen(cmd)
        except:
            pass

        return('FINISHED',)

bpy.ops.add(PlayRenderedAnim)