Added Lossless Output option for h264 codec.
[blender.git] / source / blender / blenkernel / BKE_writeffmpeg.h
index 02f7ba6..e99dece 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
@@ -13,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.
 #ifndef BKE_WRITEFFMPEG_H
 #define BKE_WRITEFFMPEG_H
 
+/** \file BKE_writeffmpeg.h
+ *  \ingroup bke
+ */
+
 #ifdef WITH_FFMPEG
 
 #ifdef __cplusplus
@@ -45,19 +49,36 @@ extern "C" {
 #define FFMPEG_FLV      8
 #define FFMPEG_MKV      9
 #define FFMPEG_OGG      10
+#define FFMPEG_WAV      11
+#define FFMPEG_MP3      12
 
-#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_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
 }