Cleanup: Split some code out of rna_access.c
[blender.git] / source / blender / blenkernel / BKE_writeffmpeg.h
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
17  * All rights reserved.
18  */
19
20 #ifndef __BKE_WRITEFFMPEG_H__
21 #define __BKE_WRITEFFMPEG_H__
22
23 /** \file
24  * \ingroup bke
25  */
26
27 #ifdef WITH_FFMPEG
28
29 #  ifdef __cplusplus
30 extern "C" {
31 #  endif
32
33 enum {
34   FFMPEG_MPEG1 = 0,
35   FFMPEG_MPEG2 = 1,
36   FFMPEG_MPEG4 = 2,
37   FFMPEG_AVI = 3,
38   FFMPEG_MOV = 4,
39   FFMPEG_DV = 5,
40   FFMPEG_H264 = 6,
41   FFMPEG_XVID = 7,
42   FFMPEG_FLV = 8,
43   FFMPEG_MKV = 9,
44   FFMPEG_OGG = 10,
45   FFMPEG_INVALID = 11,
46   FFMPEG_WEBM = 12,
47 };
48
49 enum {
50   FFMPEG_PRESET_NONE = 0,
51   FFMPEG_PRESET_DVD = 1,
52   FFMPEG_PRESET_SVCD = 2,
53   FFMPEG_PRESET_VCD = 3,
54   FFMPEG_PRESET_DV = 4,
55   FFMPEG_PRESET_H264 = 5,
56   FFMPEG_PRESET_THEORA = 6,
57   FFMPEG_PRESET_XVID = 7,
58 };
59
60 struct RenderData;
61 struct ReportList;
62 struct Scene;
63
64 int BKE_ffmpeg_start(void *context_v,
65                      struct Scene *scene,
66                      struct RenderData *rd,
67                      int rectx,
68                      int recty,
69                      struct ReportList *reports,
70                      bool preview,
71                      const char *suffix);
72 void BKE_ffmpeg_end(void *context_v);
73 int BKE_ffmpeg_append(void *context_v,
74                       struct RenderData *rd,
75                       int start_frame,
76                       int frame,
77                       int *pixels,
78                       int rectx,
79                       int recty,
80                       const char *suffix,
81                       struct ReportList *reports);
82 void BKE_ffmpeg_filepath_get(char *string,
83                              struct RenderData *rd,
84                              bool preview,
85                              const char *suffix);
86
87 void BKE_ffmpeg_preset_set(struct RenderData *rd, int preset);
88 void BKE_ffmpeg_image_type_verify(struct RenderData *rd, struct ImageFormatData *imf);
89 void BKE_ffmpeg_codec_settings_verify(struct RenderData *rd);
90 bool BKE_ffmpeg_alpha_channel_is_supported(struct RenderData *rd);
91
92 int BKE_ffmpeg_property_add_string(struct RenderData *rd, const char *type, const char *str);
93 void BKE_ffmpeg_property_del(struct RenderData *rd, void *type, void *prop_);
94
95 void *BKE_ffmpeg_context_create(void);
96 void BKE_ffmpeg_context_free(void *context_v);
97
98 #  ifdef __cplusplus
99 }
100 #  endif
101
102 #endif
103
104 #endif