* Wrapped FFMpeg in RNA (some properties are disabled for now).

* Some Texture panel tweaks by William. Thanks!
This commit is contained in:
Thomas Dinges
2009-06-10 20:50:23 +00:00
parent 9bcc6f3cb6
commit 1a787efd7c
2 changed files with 153 additions and 18 deletions

View File

@@ -73,6 +73,7 @@ class TEXTURE_PT_mapping(TextureButtonsPanel):
def draw(self, context):
layout = self.layout
tex = context.texture_slot
textype = context.texture
split = layout.split(percentage=0.3)
col = split.column()
@@ -80,26 +81,30 @@ class TEXTURE_PT_mapping(TextureButtonsPanel):
col = split.column()
col.itemR(tex, "texture_coordinates", text="")
split = layout.split()
col = split.column()
if tex.texture_coordinates == 'UV':
col.itemR(tex, "uv_layer")
row = layout.row()
row.itemR(tex, "uv_layer")
elif tex.texture_coordinates == 'OBJECT':
col.itemR(tex, "object")
row = layout.row()
row.itemR(tex, "object")
if textype.type in ('IMAGE', 'ENVIRONMENT_MAP'):
split = layout.split(percentage=0.3)
col = split.column()
col.itemL(text="Projection:")
col = split.column()
col.itemR(tex, "mapping", text="")
split = layout.split()
col = split.column()
col.itemR(tex, "from_dupli")
split = layout.split(percentage=0.3)
col = split.column()
col.itemL(text="Projection:")
col = split.column()
col.itemR(tex, "mapping", text="")
row = layout.row()
row.itemR(tex, "x_mapping", text="X")
row.itemR(tex, "y_mapping", text="Y")
row.itemR(tex, "z_mapping", text="Z")
colrow = col.row()
colrow.itemR(tex, "x_mapping", text="")
colrow.itemR(tex, "y_mapping", text="")
colrow.itemR(tex, "z_mapping", text="")
row = layout.row()
row.column().itemR(tex, "offset")
@@ -117,7 +122,7 @@ class TEXTURE_PT_influence(TextureButtonsPanel):
split = layout.split()
col = split.column()
col.itemR(tex, "map_color")
col.itemR(tex, "map_color", text="Diffuse Color")
colsub = col.column()
colsub.active = tex.map_color
colsub.itemR(tex, "color_factor", text="Opacity", slider=True)
@@ -177,7 +182,7 @@ class TEXTURE_PT_colors(TextureButtonsPanel):
else:
split = layout.split()
col = split.column()
col.itemR(tex, "rgb_factor")
col.itemR(tex, "rgb_factor", text="Multiply RGB")
col = split.column()
col.itemL(text="Adjust:")
@@ -491,7 +496,7 @@ class TEXTURE_PT_distortednoise(TextureButtonsPanel):
split = layout.split()
sub = split.column()
sub.itemR(tex, "distortion_amount", text="Amount")
sub.itemR(tex, "distortion_amount", text="Distortion")
sub.itemR(tex, "noise_size", text="Size")
sub = split.column()

View File

@@ -31,6 +31,12 @@
#include "DNA_scene_types.h"
/*
#include "BKE_writeffmpeg.h"
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
*/
#include "WM_types.h"
/* prop_mode needs to be accessible from transform operator */
@@ -285,7 +291,45 @@ void rna_def_scene_render_data(BlenderRNA *brna)
{R_JPEG2K_16BIT, "32", "32", ""},
{0, NULL, NULL, NULL}};
#endif
/*
#ifdef WITH_FFMPEG
static EnumPropertyItem ffmpeg_format_items[] = {
{FFMPEG_MPEG1, "MPEG1", "MPEG-1", ""},
{FFMPEG_MPEG2, "MPEG2", "MPEG-2", ""},
{FFMPEG_MPEG4, "MPEG4", "MPEG-4", ""},
{FFMPEG_AVI, "AVI", "Avi", ""},
{FFMPEG_MOV, "QUICKTIME", "Quicktime", ""},
{FFMPEG_DV, "DV", "DV", ""},
{FFMPEG_H264, "H264", "H264", ""},
{FFMPEG_XVID, "XVID", "XVid", ""},
{FFMPEG_OGG, "OGG", "OGG", ""},
{FFMPEG_FLV, "FLASH", "Flash", ""},
{0, NULL, NULL, NULL}};
static EnumPropertyItem ffmpeg_codec_items[] = {
{CODEC_ID_MPEG1VIDEO, "MPEG1", "MPEG-1", ""},
{CODEC_ID_MPEG2VIDEO, "MPEG2", "MPEG-2", ""},
{CODEC_ID_MPEG4, "MPEG4", "MPEG-4(divx)", ""},
{CODEC_ID_HUFFYUV, "HUFFYUV", "HuffYUV", ""},
{CODEC_ID_DVVIDEO, "DV", "DV", ""},
{CODEC_ID_H264, "H264", "H264", ""},
{CODEC_ID_XVID, "XVID", "XVid", ""},
{CODEC_ID_THEORA, "THEORA", "OGG Theora", ""},
{CODEC_ID_FLV1, "FLASH", "FlashVideo1", ""},
{0, NULL, NULL, NULL}};
static EnumPropertyItem ffmpeg_audio_codec_items[] = {
{CODEC_ID_MP2, "MP2", "MP2", ""},
{CODEC_ID_MP3, "MP3", "MP3", ""},
{CODEC_ID_AC3, "AC3", "AC3", ""},
{CODEC_ID_AAC, "AAC", "AAC", ""},
{CODEC_ID_VORBIS, "VORBIS", "Vorbis", ""},
{CODEC_ID_PCM_S16LE, "PCM", "PCM", ""},
{0, NULL, NULL, NULL}};
#endif
*/
srna= RNA_def_struct(brna, "SceneRenderData", NULL);
RNA_def_struct_sdna(srna, "RenderData");
RNA_def_struct_nested(brna, srna, "Scene");
@@ -422,7 +466,93 @@ void rna_def_scene_render_data(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "YCC", "Save luminance-chrominance-chrominance instead of RGB color channels");
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
#endif
#ifdef WITH_FFMPEG
/* FFMPEG Video*/
/*
prop= RNA_def_property(srna, "ffmpeg_format", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_bitflag_sdna(prop, NULL, "ffcodecdata.type");
RNA_def_property_enum_items(prop, ffmpeg_format_items);
RNA_def_property_ui_text(prop, "Format", "Output file format");
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
prop= RNA_def_property(srna, "ffmpeg_codec", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_bitflag_sdna(prop, NULL, "ffcodecdata.codec");
RNA_def_property_enum_items(prop, ffmpeg_codec_items);
RNA_def_property_ui_text(prop, "Codec", "FFMpeg codec to use");
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
*/
prop= RNA_def_property(srna, "ffmpeg_video_bitrate", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "ffcodecdata.video_bitrate");
RNA_def_property_range(prop, 1, 14000);
RNA_def_property_ui_text(prop, "Bitrate", "Video bitrate(kb/s)");
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
prop= RNA_def_property(srna, "ffmpeg_minrate", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "ffcodecdata.rc_min_rate");
RNA_def_property_range(prop, 0, 9000);
RNA_def_property_ui_text(prop, "Min Rate", "Rate control: min rate(kb/s)");
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
prop= RNA_def_property(srna, "ffmpeg_maxrate", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "ffcodecdata.rc_max_rate");
RNA_def_property_range(prop, 1, 14000);
RNA_def_property_ui_text(prop, "Max Rate", "Rate control: max rate(kb/s)");
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
prop= RNA_def_property(srna, "ffmpeg_muxrate", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "ffcodecdata.mux_rate");
RNA_def_property_range(prop, 0, 100000000);
RNA_def_property_ui_text(prop, "Mux Rate", "Mux rate (bits/s(!))");
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
prop= RNA_def_property(srna, "ffmpeg_gopsize", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "ffcodecdata.gop_size");
RNA_def_property_range(prop, 0, 100);
RNA_def_property_ui_text(prop, "GOP Size", "Distance between key frames");
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
prop= RNA_def_property(srna, "ffmpeg_buffersize", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "ffcodecdata.rc_buffer_size");
RNA_def_property_range(prop, 0, 2000);
RNA_def_property_ui_text(prop, "Buffersize", "Rate control: buffer size (kb)");
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
prop= RNA_def_property(srna, "ffmpeg_packetsize", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "ffcodecdata.mux_packet_size");
RNA_def_property_range(prop, 0, 16384);
RNA_def_property_ui_text(prop, "Mux Packet Size", "Mux packet size (byte)");
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
prop= RNA_def_property(srna, "ffmpeg_autosplit", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "ffcodecdata.flags", FFMPEG_AUTOSPLIT_OUTPUT);
RNA_def_property_ui_text(prop, "Autosplit Output", "Autosplit output at 2GB boundary.");
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
/* FFMPEG Audio*/
/*
prop= RNA_def_property(srna, "ffmpeg_audio_codec", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_bitflag_sdna(prop, NULL, "ffcodecdata.audio_codec");
RNA_def_property_enum_items(prop, ffmpeg_audio_codec_items);
RNA_def_property_ui_text(prop, Codec", "FFMpeg codec to use");
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
*/
prop= RNA_def_property(srna, "ffmpeg_audio_bitrate", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "ffcodecdata.audio_bitrate");
RNA_def_property_range(prop, 32, 384);
RNA_def_property_ui_text(prop, "Bitrate", "Audio bitrate(kb/s)");
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
prop= RNA_def_property(srna, "ffmpeg_multiplex_audio", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "ffcodecdata.flags", FFMPEG_MULTIPLEX_AUDIO);
RNA_def_property_ui_text(prop, "Multiplex Audio", "Interleave audio with the output video");
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
#endif
prop= RNA_def_property(srna, "fps", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "frs_sec");
RNA_def_property_range(prop, 1, 120);