Added Lossless Output option for h264 codec.
[blender.git] / source / blender / blenkernel / BKE_writeffmpeg.h
index 13084e9..e99dece 100644 (file)
@@ -1,13 +1,10 @@
-/**
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * 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. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License.  See http://www.blender.org/BL/ for information
- * about this.
+ * 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
@@ -16,7 +13,7 @@
  *
  * 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.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
  * All rights reserved.
  *
  * Contributor(s): none yet.
  *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
  */
 
 #ifndef BKE_WRITEFFMPEG_H
 #define BKE_WRITEFFMPEG_H
 
+/** \file BKE_writeffmpeg.h
+ *  \ingroup bke
+ */
+
 #ifdef WITH_FFMPEG
 
 #ifdef __cplusplus
@@ -45,26 +46,39 @@ extern "C" {
 #define FFMPEG_DV      5
 #define FFMPEG_H264     6
 #define FFMPEG_XVID     7
+#define FFMPEG_FLV      8
+#define FFMPEG_MKV      9
+#define FFMPEG_OGG      10
+#define FFMPEG_WAV      11
+#define FFMPEG_MP3      12
 
-#define FFMPEG_CODEC_MPEG1 0
-#define FFMPEG_CODEC_MPEG2 1
-#define FFMPEG_CODEC_MPEG4 2
-#define FFMPEG_CODEC_HUFFYUV 3
-#define FFMPEG_CODEC_DV 4
-#define FFMPEG_CODEC_H264 5
-#define FFMPEG_CODEC_XVID 6
-
-#define FFMPEG_PRESET_NONE 0
-#define FFMPEG_PRESET_DVD  1
-#define FFMPEG_PRESET_SVCD 2
-#define FFMPEG_PRESET_VCD  3
-#define FFMPEG_PRESET_DV   4
+#define FFMPEG_PRESET_NONE             0
+#define FFMPEG_PRESET_DVD              1
+#define FFMPEG_PRESET_SVCD             2
+#define FFMPEG_PRESET_VCD              3
+#define FFMPEG_PRESET_DV               4
+#define FFMPEG_PRESET_H264             5
+#define FFMPEG_PRESET_THEORA   6
+#define FFMPEG_PRESET_XVID             7
 
+struct IDProperty;
 struct RenderData;     
+struct ReportList;
+struct Scene;
 
-extern void start_ffmpeg(struct RenderData *rd, int rectx, int recty);
+extern int start_ffmpeg(struct Scene *scene, struct RenderData *rd, int rectx, int recty, struct ReportList *reports);
 extern void end_ffmpeg(void);
-extern void append_ffmpeg(int frame, int *pixels, int rectx, int recty);
+extern int append_ffmpeg(struct RenderData *rd, int start_frame, int frame, int *pixels,
+                         int rectx, int recty, struct ReportList *reports);
+void filepath_ffmpeg(char* string, struct RenderData* rd);
+
+extern void ffmpeg_set_preset(struct RenderData *rd, int preset);
+extern void ffmpeg_verify_image_type(struct RenderData *rd, struct ImageFormatData *imf);
+extern void ffmpeg_verify_lossless_format(struct RenderData *rd, struct ImageFormatData *imf);
+
+extern struct IDProperty *ffmpeg_property_add(struct RenderData *Rd, const char *type, int opt_index, int parent_index);
+extern int ffmpeg_property_add_string(struct RenderData *rd, const char *type, const char *str);
+extern void ffmpeg_property_del(struct RenderData *rd, void *type, void *prop_);
 
 #ifdef __cplusplus
 }