Merge branch 'blender2.7'
[blender.git] / source / blender / blenkernel / BKE_writeffmpeg.h
index e99dece0f7cf777516aa28d4d83426eded1f5e7d..701f83e59a3374e72b5c72a59a173caba4a40863 100644 (file)
@@ -1,6 +1,4 @@
 /*
- * ***** 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
  *
  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
  * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
  */
 
-#ifndef BKE_WRITEFFMPEG_H
-#define BKE_WRITEFFMPEG_H
+#ifndef __BKE_WRITEFFMPEG_H__
+#define __BKE_WRITEFFMPEG_H__
 
-/** \file BKE_writeffmpeg.h
- *  \ingroup bke
+/** \file
+ * \ingroup bke
  */
 
 #ifdef WITH_FFMPEG
 extern "C" {
 #endif
 
-#define FFMPEG_MPEG1   0
-#define FFMPEG_MPEG2   1
-#define FFMPEG_MPEG4   2
-#define FFMPEG_AVI     3
-#define FFMPEG_MOV     4
-#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
+enum {
+       FFMPEG_MPEG1    = 0,
+       FFMPEG_MPEG2    = 1,
+       FFMPEG_MPEG4    = 2,
+       FFMPEG_AVI      = 3,
+       FFMPEG_MOV      = 4,
+       FFMPEG_DV       = 5,
+       FFMPEG_H264     = 6,
+       FFMPEG_XVID     = 7,
+       FFMPEG_FLV      = 8,
+       FFMPEG_MKV      = 9,
+       FFMPEG_OGG      = 10,
+       FFMPEG_INVALID  = 11,
+};
 
-#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
+enum {
+       FFMPEG_PRESET_NONE      = 0,
+       FFMPEG_PRESET_DVD       = 1,
+       FFMPEG_PRESET_SVCD      = 2,
+       FFMPEG_PRESET_VCD       = 3,
+       FFMPEG_PRESET_DV        = 4,
+       FFMPEG_PRESET_H264      = 5,
+       FFMPEG_PRESET_THEORA    = 6,
+       FFMPEG_PRESET_XVID      = 7,
+};
 
-struct IDProperty;
-struct RenderData;     
+struct RenderData;
 struct ReportList;
 struct Scene;
 
-extern int start_ffmpeg(struct Scene *scene, struct RenderData *rd, int rectx, int recty, struct ReportList *reports);
-extern void end_ffmpeg(void);
-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);
+int BKE_ffmpeg_start(void *context_v, struct Scene *scene, struct RenderData *rd, int rectx, int recty, struct ReportList *reports, bool preview, const char *suffix);
+void BKE_ffmpeg_end(void *context_v);
+int BKE_ffmpeg_append(void *context_v, struct RenderData *rd, int start_frame, int frame, int *pixels,
+                      int rectx, int recty, const char *suffix, struct ReportList *reports);
+void BKE_ffmpeg_filepath_get(char *string, struct RenderData *rd, bool preview, const char *suffix);
+
+void BKE_ffmpeg_preset_set(struct RenderData *rd, int preset);
+void BKE_ffmpeg_image_type_verify(struct RenderData *rd, struct ImageFormatData *imf);
+void BKE_ffmpeg_codec_settings_verify(struct RenderData *rd);
+bool BKE_ffmpeg_alpha_channel_is_supported(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);
+int BKE_ffmpeg_property_add_string(struct RenderData *rd, const char *type, const char *str);
+void BKE_ffmpeg_property_del(struct RenderData *rd, void *type, void *prop_);
 
-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_);
+void *BKE_ffmpeg_context_create(void);
+void BKE_ffmpeg_context_free(void *context_v);
 
 #ifdef __cplusplus
 }
@@ -87,4 +84,3 @@ extern void ffmpeg_property_del(struct RenderData *rd, void *type, void *prop_);
 #endif
 
 #endif
-