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:
parent
ddcf56366d
commit
9bb0303221
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user