Bugfix for [#29684] Output video presets messed up

* This was caused ny the ImageType refactor.
* Problem persisted with Quicktime too, could not test that, but should fix presets there too.
This commit is contained in:
Thomas Dinges 2011-12-23 22:07:34 +00:00
parent ddcf56366d
commit 9bb0303221
6 changed files with 13 additions and 13 deletions

@ -72,7 +72,7 @@ extern int append_ffmpeg(struct RenderData *rd, int frame, int *pixels, int rect
void filepath_ffmpeg(char* string, struct RenderData* rd); void filepath_ffmpeg(char* string, struct RenderData* rd);
extern void ffmpeg_set_preset(struct RenderData *rd, int preset); extern void ffmpeg_set_preset(struct RenderData *rd, int preset);
extern void ffmpeg_verify_image_type(struct RenderData *rd); extern void ffmpeg_verify_image_type(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 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 int ffmpeg_property_add_string(struct RenderData *rd, const char *type, const char *str);

@ -1333,11 +1333,11 @@ void ffmpeg_set_preset(RenderData *rd, int preset)
} }
} }
void ffmpeg_verify_image_type(RenderData *rd) void ffmpeg_verify_image_type(RenderData *rd, ImageFormatData *imf)
{ {
int audio= 0; int audio= 0;
if(rd->imtype == R_IMF_IMTYPE_FFMPEG) { if(imf->imtype == R_IMF_IMTYPE_FFMPEG) {
if(rd->ffcodecdata.type <= 0 || if(rd->ffcodecdata.type <= 0 ||
rd->ffcodecdata.codec <= 0 || rd->ffcodecdata.codec <= 0 ||
rd->ffcodecdata.audio_codec <= 0 || rd->ffcodecdata.audio_codec <= 0 ||
@ -1353,19 +1353,19 @@ void ffmpeg_verify_image_type(RenderData *rd)
audio= 1; audio= 1;
} }
else if(rd->imtype == R_IMF_IMTYPE_H264) { else if(imf->imtype == R_IMF_IMTYPE_H264) {
if(rd->ffcodecdata.codec != CODEC_ID_H264) { if(rd->ffcodecdata.codec != CODEC_ID_H264) {
ffmpeg_set_preset(rd, FFMPEG_PRESET_H264); ffmpeg_set_preset(rd, FFMPEG_PRESET_H264);
audio= 1; audio= 1;
} }
} }
else if(rd->imtype == R_IMF_IMTYPE_XVID) { else if(imf->imtype == R_IMF_IMTYPE_XVID) {
if(rd->ffcodecdata.codec != CODEC_ID_MPEG4) { if(rd->ffcodecdata.codec != CODEC_ID_MPEG4) {
ffmpeg_set_preset(rd, FFMPEG_PRESET_XVID); ffmpeg_set_preset(rd, FFMPEG_PRESET_XVID);
audio= 1; audio= 1;
} }
} }
else if(rd->imtype == R_IMF_IMTYPE_THEORA) { else if(imf->imtype == R_IMF_IMTYPE_THEORA) {
if(rd->ffcodecdata.codec != CODEC_ID_THEORA) { if(rd->ffcodecdata.codec != CODEC_ID_THEORA) {
ffmpeg_set_preset(rd, FFMPEG_PRESET_THEORA); ffmpeg_set_preset(rd, FFMPEG_PRESET_THEORA);
audio= 1; audio= 1;

@ -659,10 +659,10 @@ static void rna_ImageFormatSettings_file_format_set(PointerRNA *ptr, int value)
Scene *scene= ptr->id.data; Scene *scene= ptr->id.data;
RenderData *rd= &scene->r; RenderData *rd= &scene->r;
#ifdef WITH_FFMPEG #ifdef WITH_FFMPEG
ffmpeg_verify_image_type(rd); ffmpeg_verify_image_type(rd, imf);
#endif #endif
#ifdef WITH_QUICKTIME #ifdef WITH_QUICKTIME
quicktime_verify_image_type(rd); quicktime_verify_image_type(rd, imf);
#endif #endif
(void)rd; (void)rd;
} }

@ -777,9 +777,9 @@ void end_qt(void)
void free_qtcomponentdata(void) { void free_qtcomponentdata(void) {
} }
void quicktime_verify_image_type(RenderData *rd) void quicktime_verify_image_type(RenderData *rd, ImageFormatData *imf)
{ {
if (rd->im_format.imtype == R_IMF_IMTYPE_QUICKTIME) { if (imf->imtype == R_IMF_IMTYPE_QUICKTIME) {
if ((rd->qtcodecsettings.codecType<= 0) || if ((rd->qtcodecsettings.codecType<= 0) ||
(rd->qtcodecsettings.codecSpatialQuality <0) || (rd->qtcodecsettings.codecSpatialQuality <0) ||
(rd->qtcodecsettings.codecSpatialQuality > 100)) { (rd->qtcodecsettings.codecSpatialQuality > 100)) {

@ -687,9 +687,9 @@ static void check_renderbutton_framerate(RenderData *rd, ReportList *reports)
} }
} }
void quicktime_verify_image_type(RenderData *rd) void quicktime_verify_image_type(RenderData *rd, ImageFormatData *imf)
{ {
if (rd->im_format.imtype == R_IMF_IMTYPE_QUICKTIME) { if (imf->imtype == R_IMF_IMTYPE_QUICKTIME) {
if ((rd->qtcodecsettings.codecType== 0) || if ((rd->qtcodecsettings.codecType== 0) ||
(rd->qtcodecsettings.codecSpatialQuality <0) || (rd->qtcodecsettings.codecSpatialQuality <0) ||
(rd->qtcodecsettings.codecSpatialQuality > 100)) { (rd->qtcodecsettings.codecSpatialQuality > 100)) {

@ -61,7 +61,7 @@ void end_qt(void);
void filepath_qt(char *string, struct RenderData *rd); void filepath_qt(char *string, struct RenderData *rd);
/*RNA helper functions */ /*RNA helper functions */
void quicktime_verify_image_type(struct RenderData *rd); //used by RNA for defaults values init, if needed void quicktime_verify_image_type(struct RenderData *rd, struct ImageFormatData *imf); //used by RNA for defaults values init, if needed
/*Video codec type*/ /*Video codec type*/
int quicktime_get_num_videocodecs(void); int quicktime_get_num_videocodecs(void);
QuicktimeCodecTypeDesc* quicktime_get_videocodecType_desc(int indexValue); QuicktimeCodecTypeDesc* quicktime_get_videocodecType_desc(int indexValue);