ffmpeg: move ost->frame_rate setting code before the filtergraph stuff
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
953df5d962
commit
c53326afad
1 changed files with 9 additions and 6 deletions
15
ffmpeg.c
15
ffmpeg.c
|
@ -3149,6 +3149,15 @@ static int transcode_init(void)
|
||||||
ist->decoding_needed = 1;
|
ist->decoding_needed = 1;
|
||||||
ost->encoding_needed = 1;
|
ost->encoding_needed = 1;
|
||||||
|
|
||||||
|
if (codec->codec_type == AVMEDIA_TYPE_VIDEO) {
|
||||||
|
if (ist && !ost->frame_rate.num)
|
||||||
|
ost->frame_rate = ist->st->r_frame_rate.num ? ist->st->r_frame_rate : (AVRational){25, 1};
|
||||||
|
if (ost->enc && ost->enc->supported_framerates && !ost->force_fps) {
|
||||||
|
int idx = av_find_nearest_q_idx(ost->frame_rate, ost->enc->supported_framerates);
|
||||||
|
ost->frame_rate = ost->enc->supported_framerates[idx];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!ost->filter &&
|
if (!ost->filter &&
|
||||||
(codec->codec_type == AVMEDIA_TYPE_VIDEO ||
|
(codec->codec_type == AVMEDIA_TYPE_VIDEO ||
|
||||||
codec->codec_type == AVMEDIA_TYPE_AUDIO)) {
|
codec->codec_type == AVMEDIA_TYPE_AUDIO)) {
|
||||||
|
@ -3169,12 +3178,6 @@ static int transcode_init(void)
|
||||||
codec->time_base = (AVRational){ 1, codec->sample_rate };
|
codec->time_base = (AVRational){ 1, codec->sample_rate };
|
||||||
break;
|
break;
|
||||||
case AVMEDIA_TYPE_VIDEO:
|
case AVMEDIA_TYPE_VIDEO:
|
||||||
if (ist && !ost->frame_rate.num)
|
|
||||||
ost->frame_rate = ist->st->r_frame_rate.num ? ist->st->r_frame_rate : (AVRational){25, 1};
|
|
||||||
if (ost->enc && ost->enc->supported_framerates && !ost->force_fps) {
|
|
||||||
int idx = av_find_nearest_q_idx(ost->frame_rate, ost->enc->supported_framerates);
|
|
||||||
ost->frame_rate = ost->enc->supported_framerates[idx];
|
|
||||||
}
|
|
||||||
codec->time_base = (AVRational){ost->frame_rate.den, ost->frame_rate.num};
|
codec->time_base = (AVRational){ost->frame_rate.den, ost->frame_rate.num};
|
||||||
if ( av_q2d(codec->time_base) < 0.001 && video_sync_method != VSYNC_PASSTHROUGH
|
if ( av_q2d(codec->time_base) < 0.001 && video_sync_method != VSYNC_PASSTHROUGH
|
||||||
&& (video_sync_method == VSYNC_CFR || (video_sync_method == VSYNC_AUTO && !(oc->oformat->flags & AVFMT_VARIABLE_FPS)))){
|
&& (video_sync_method == VSYNC_CFR || (video_sync_method == VSYNC_AUTO && !(oc->oformat->flags & AVFMT_VARIABLE_FPS)))){
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue