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

View File

@ -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);
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 int ffmpeg_property_add_string(struct RenderData *rd, const char *type, const char *str);

View File

@ -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;
if(rd->imtype == R_IMF_IMTYPE_FFMPEG) {
if(imf->imtype == R_IMF_IMTYPE_FFMPEG) {
if(rd->ffcodecdata.type <= 0 ||
rd->ffcodecdata.codec <= 0 ||
rd->ffcodecdata.audio_codec <= 0 ||
@ -1353,19 +1353,19 @@ void ffmpeg_verify_image_type(RenderData *rd)
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) {
ffmpeg_set_preset(rd, FFMPEG_PRESET_H264);
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) {
ffmpeg_set_preset(rd, FFMPEG_PRESET_XVID);
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) {
ffmpeg_set_preset(rd, FFMPEG_PRESET_THEORA);
audio= 1;

View File

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

View File

@ -777,9 +777,9 @@ void end_qt(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) ||
(rd->qtcodecsettings.codecSpatialQuality <0) ||
(rd->qtcodecsettings.codecSpatialQuality > 100)) {

View File

@ -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) ||
(rd->qtcodecsettings.codecSpatialQuality <0) ||
(rd->qtcodecsettings.codecSpatialQuality > 100)) {

View File

@ -61,7 +61,7 @@ void end_qt(void);
void filepath_qt(char *string, struct RenderData *rd);
/*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*/
int quicktime_get_num_videocodecs(void);
QuicktimeCodecTypeDesc* quicktime_get_videocodecType_desc(int indexValue);