BKE_writeffmpeg.h 2.8 KB

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