[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27462] trunk/blender: Fix [#21351] PROPERTIES: Resolution changes based solely on changing

Matt Ebb matt at mke3.net
Sat Mar 13 01:18:01 CET 2010


Revision: 27462
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27462
Author:   broken
Date:     2010-03-13 01:17:52 +0100 (Sat, 13 Mar 2010)

Log Message:
-----------
Fix [#21351] PROPERTIES: Resolution changes based solely on changing 
encoding format

Bypassed existing hardcoded ffmpeg presets that executed when changing
format, replaced with bpy presets.

Leaving old code there for now, haven't got python/rna access to the ffmpeg
id properties.. Anyone know how to do this? 
Code snippets here: http://www.pasteall.org/11657/c

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/properties_render.py
    trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
    trunk/blender/source/blender/makesrna/intern/rna_scene.c

Added Paths:
-----------
    trunk/blender/release/scripts/presets/ffmpeg/
    trunk/blender/release/scripts/presets/ffmpeg/DV.py
    trunk/blender/release/scripts/presets/ffmpeg/DVD.py
    trunk/blender/release/scripts/presets/ffmpeg/SVCD.py
    trunk/blender/release/scripts/presets/ffmpeg/VCD.py
    trunk/blender/release/scripts/presets/ffmpeg/h264.py
    trunk/blender/release/scripts/presets/ffmpeg/theora.py
    trunk/blender/release/scripts/presets/ffmpeg/xvid.py

Added: trunk/blender/release/scripts/presets/ffmpeg/DV.py
===================================================================
--- trunk/blender/release/scripts/presets/ffmpeg/DV.py	                        (rev 0)
+++ trunk/blender/release/scripts/presets/ffmpeg/DV.py	2010-03-13 00:17:52 UTC (rev 27462)
@@ -0,0 +1,9 @@
+is_ntsc = (bpy.context.scene.render.fps != 25)
+
+bpy.context.scene.render.ffmpeg_format = "DV"
+bpy.context.scene.render.resolution_x = 720
+
+if is_ntsc:
+    bpy.context.scene.render.resolution_y = 480
+else:
+    bpy.context.scene.render.resolution_y = 576

Added: trunk/blender/release/scripts/presets/ffmpeg/DVD.py
===================================================================
--- trunk/blender/release/scripts/presets/ffmpeg/DVD.py	                        (rev 0)
+++ trunk/blender/release/scripts/presets/ffmpeg/DVD.py	2010-03-13 00:17:52 UTC (rev 27462)
@@ -0,0 +1,18 @@
+is_ntsc = (bpy.context.scene.render.fps != 25)
+
+bpy.context.scene.render.ffmpeg_format = "MPEG2"
+bpy.context.scene.render.resolution_x = 720
+
+if is_ntsc:
+    bpy.context.scene.render.resolution_y = 480
+    bpy.context.scene.render.ffmpeg_gopsize = 18
+else:
+    bpy.context.scene.render.resolution_y = 576
+    bpy.context.scene.render.ffmpeg_gopsize = 15
+
+bpy.context.scene.render.ffmpeg_video_bitrate = 6000
+bpy.context.scene.render.ffmpeg_maxrate = 9000
+bpy.context.scene.render.ffmpeg_minrate = 0
+bpy.context.scene.render.ffmpeg_buffersize = 224*8
+bpy.context.scene.render.ffmpeg_packetsize = 2048
+bpy.context.scene.render.ffmpeg_muxrate = 10080000
\ No newline at end of file

Added: trunk/blender/release/scripts/presets/ffmpeg/SVCD.py
===================================================================
--- trunk/blender/release/scripts/presets/ffmpeg/SVCD.py	                        (rev 0)
+++ trunk/blender/release/scripts/presets/ffmpeg/SVCD.py	2010-03-13 00:17:52 UTC (rev 27462)
@@ -0,0 +1,18 @@
+is_ntsc = (bpy.context.scene.render.fps != 25)
+
+bpy.context.scene.render.ffmpeg_format = "MPEG2"
+bpy.context.scene.render.resolution_x = 480
+
+if is_ntsc:
+    bpy.context.scene.render.resolution_y = 480
+    bpy.context.scene.render.ffmpeg_gopsize = 18
+else:
+    bpy.context.scene.render.resolution_y = 576
+    bpy.context.scene.render.ffmpeg_gopsize = 15
+
+bpy.context.scene.render.ffmpeg_video_bitrate = 2040
+bpy.context.scene.render.ffmpeg_maxrate = 2516
+bpy.context.scene.render.ffmpeg_minrate = 0
+bpy.context.scene.render.ffmpeg_buffersize = 224*8
+bpy.context.scene.render.ffmpeg_packetsize = 2324
+bpy.context.scene.render.ffmpeg_muxrate = 0
\ No newline at end of file

Added: trunk/blender/release/scripts/presets/ffmpeg/VCD.py
===================================================================
--- trunk/blender/release/scripts/presets/ffmpeg/VCD.py	                        (rev 0)
+++ trunk/blender/release/scripts/presets/ffmpeg/VCD.py	2010-03-13 00:17:52 UTC (rev 27462)
@@ -0,0 +1,18 @@
+is_ntsc = (bpy.context.scene.render.fps != 25)
+
+bpy.context.scene.render.ffmpeg_format = "MPEG1"
+bpy.context.scene.render.resolution_x = 352
+
+if is_ntsc:
+    bpy.context.scene.render.resolution_y = 240
+    bpy.context.scene.render.ffmpeg_gopsize = 18
+else:
+    bpy.context.scene.render.resolution_y = 288
+    bpy.context.scene.render.ffmpeg_gopsize = 15
+
+bpy.context.scene.render.ffmpeg_video_bitrate = 1150
+bpy.context.scene.render.ffmpeg_maxrate = 1150
+bpy.context.scene.render.ffmpeg_minrate = 1150
+bpy.context.scene.render.ffmpeg_buffersize = 40*8
+bpy.context.scene.render.ffmpeg_packetsize = 2324
+bpy.context.scene.render.ffmpeg_muxrate = 2352 * 75 * 8
\ No newline at end of file

Added: trunk/blender/release/scripts/presets/ffmpeg/h264.py
===================================================================
--- trunk/blender/release/scripts/presets/ffmpeg/h264.py	                        (rev 0)
+++ trunk/blender/release/scripts/presets/ffmpeg/h264.py	2010-03-13 00:17:52 UTC (rev 27462)
@@ -0,0 +1,16 @@
+is_ntsc = (bpy.context.scene.render.fps != 25)
+
+bpy.context.scene.render.ffmpeg_format = "H264"
+bpy.context.scene.render.ffmpeg_codec = "H264"
+
+if is_ntsc:
+    bpy.context.scene.render.ffmpeg_gopsize = 18
+else:
+    bpy.context.scene.render.ffmpeg_gopsize = 15
+
+bpy.context.scene.render.ffmpeg_video_bitrate = 6000
+bpy.context.scene.render.ffmpeg_maxrate = 9000
+bpy.context.scene.render.ffmpeg_minrate = 0
+bpy.context.scene.render.ffmpeg_buffersize = 224*8
+bpy.context.scene.render.ffmpeg_packetsize = 2048
+bpy.context.scene.render.ffmpeg_muxrate = 10080000
\ No newline at end of file

Added: trunk/blender/release/scripts/presets/ffmpeg/theora.py
===================================================================
--- trunk/blender/release/scripts/presets/ffmpeg/theora.py	                        (rev 0)
+++ trunk/blender/release/scripts/presets/ffmpeg/theora.py	2010-03-13 00:17:52 UTC (rev 27462)
@@ -0,0 +1,16 @@
+is_ntsc = (bpy.context.scene.render.fps != 25)
+
+bpy.context.scene.render.ffmpeg_format = "OGG"
+bpy.context.scene.render.ffmpeg_codec = "THEORA"
+
+if is_ntsc:
+    bpy.context.scene.render.ffmpeg_gopsize = 18
+else:
+    bpy.context.scene.render.ffmpeg_gopsize = 15
+
+bpy.context.scene.render.ffmpeg_video_bitrate = 6000
+bpy.context.scene.render.ffmpeg_maxrate = 9000
+bpy.context.scene.render.ffmpeg_minrate = 0
+bpy.context.scene.render.ffmpeg_buffersize = 224*8
+bpy.context.scene.render.ffmpeg_packetsize = 2048
+bpy.context.scene.render.ffmpeg_muxrate = 10080000
\ No newline at end of file

Added: trunk/blender/release/scripts/presets/ffmpeg/xvid.py
===================================================================
--- trunk/blender/release/scripts/presets/ffmpeg/xvid.py	                        (rev 0)
+++ trunk/blender/release/scripts/presets/ffmpeg/xvid.py	2010-03-13 00:17:52 UTC (rev 27462)
@@ -0,0 +1,16 @@
+is_ntsc = (bpy.context.scene.render.fps != 25)
+
+bpy.context.scene.render.ffmpeg_format = "AVI"
+bpy.context.scene.render.ffmpeg_codec = "XVID"
+
+if is_ntsc:
+    bpy.context.scene.render.ffmpeg_gopsize = 18
+else:
+    bpy.context.scene.render.ffmpeg_gopsize = 15
+
+bpy.context.scene.render.ffmpeg_video_bitrate = 6000
+bpy.context.scene.render.ffmpeg_maxrate = 9000
+bpy.context.scene.render.ffmpeg_minrate = 0
+bpy.context.scene.render.ffmpeg_buffersize = 224*8
+bpy.context.scene.render.ffmpeg_packetsize = 2048
+bpy.context.scene.render.ffmpeg_muxrate = 10080000
\ No newline at end of file

Modified: trunk/blender/release/scripts/ui/properties_render.py
===================================================================
--- trunk/blender/release/scripts/ui/properties_render.py	2010-03-13 00:14:36 UTC (rev 27461)
+++ trunk/blender/release/scripts/ui/properties_render.py	2010-03-13 00:17:52 UTC (rev 27462)
@@ -29,6 +29,13 @@
     draw = bpy.types.Menu.draw_preset
 
 
+class RENDER_MT_ffmpeg_presets(bpy.types.Menu):
+    bl_label = "FFMPEG Presets"
+    preset_subdir = "ffmpeg"
+    preset_operator = "script.python_file_run"
+    draw = bpy.types.Menu.draw_preset
+
+
 class RenderButtonsPanel(bpy.types.Panel):
     bl_space_type = 'PROPERTIES'
     bl_region_type = 'WINDOW'
@@ -379,6 +386,8 @@
         rd = context.scene.render
         wide_ui = context.region.width > narrowui
 
+        layout.menu("RENDER_MT_ffmpeg_presets", text="Presets")
+
         split = layout.split()
 
         col = split.column()
@@ -627,6 +636,7 @@
 
 classes = [
     RENDER_MT_presets,
+    RENDER_MT_ffmpeg_presets,
     RENDER_PT_render,
     RENDER_PT_layers,
     RENDER_PT_dimensions,

Modified: trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c	2010-03-13 00:14:36 UTC (rev 27461)
+++ trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c	2010-03-13 00:17:52 UTC (rev 27462)
@@ -1242,7 +1242,8 @@
 		   rd->ffcodecdata.video_bitrate <= 1) {
 
 			rd->ffcodecdata.codec = CODEC_ID_MPEG2VIDEO;
-			ffmpeg_set_preset(rd, FFMPEG_PRESET_DVD);
+			/* Don't set preset, disturbs render resolution.
+			 * ffmpeg_set_preset(rd, FFMPEG_PRESET_DVD); */
 		}
 
 		audio= 1;

Modified: trunk/blender/source/blender/makesrna/intern/rna_scene.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_scene.c	2010-03-13 00:14:36 UTC (rev 27461)
+++ trunk/blender/source/blender/makesrna/intern/rna_scene.c	2010-03-13 00:17:52 UTC (rev 27462)
@@ -132,7 +132,7 @@
 	{R_H264, "H264", ICON_FILE_MOVIE, "H.264", ""},
 	{R_XVID, "XVID", ICON_FILE_MOVIE, "Xvid", ""},
 	{R_THEORA, "THEORA", ICON_FILE_MOVIE, "Ogg Theora", ""},
-	{R_FFMPEG, "FFMPEG", ICON_FILE_MOVIE, "FFMpeg", ""},
+	{R_FFMPEG, "FFMPEG", ICON_FILE_MOVIE, "MPEG", ""},
 #endif
 	{R_FRAMESERVER, "FRAMESERVER", ICON_FILE_SCRIPT, "Frame Server", ""},
 	{0, NULL, 0, NULL, NULL}};





More information about the Bf-blender-cvs mailing list