mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
ffmpeg: use a rational for -aspect option.
This commit is contained in:
parent
b4eb06d325
commit
de38e7c8c3
6
ffmpeg.c
6
ffmpeg.c
@ -1071,7 +1071,7 @@ static int reap_filters(void)
|
||||
switch (ost->filter->filter->inputs[0]->type) {
|
||||
case AVMEDIA_TYPE_VIDEO:
|
||||
filtered_frame->pts = frame_pts;
|
||||
if (!ost->frame_aspect_ratio)
|
||||
if (!ost->frame_aspect_ratio.num)
|
||||
ost->st->codec->sample_aspect_ratio = filtered_frame->sample_aspect_ratio;
|
||||
|
||||
do_video_out(of->ctx, ost, filtered_frame);
|
||||
@ -2300,8 +2300,8 @@ static int transcode_init(void)
|
||||
codec->width = ost->filter->filter->inputs[0]->w;
|
||||
codec->height = ost->filter->filter->inputs[0]->h;
|
||||
codec->sample_aspect_ratio = ost->st->sample_aspect_ratio =
|
||||
ost->frame_aspect_ratio ? // overridden by the -aspect cli option
|
||||
av_d2q(ost->frame_aspect_ratio * codec->height/codec->width, 255) :
|
||||
ost->frame_aspect_ratio.num ? // overridden by the -aspect cli option
|
||||
av_mul_q(ost->frame_aspect_ratio, (AVRational){ codec->height, codec->width }) :
|
||||
ost->filter->filter->inputs[0]->sample_aspect_ratio;
|
||||
if (!strncmp(ost->enc->name, "libx264", 7) &&
|
||||
codec->pix_fmt == AV_PIX_FMT_NONE &&
|
||||
|
2
ffmpeg.h
2
ffmpeg.h
@ -331,7 +331,7 @@ typedef struct OutputStream {
|
||||
int force_fps;
|
||||
int top_field_first;
|
||||
|
||||
float frame_aspect_ratio;
|
||||
AVRational frame_aspect_ratio;
|
||||
|
||||
/* forced key frames */
|
||||
int64_t *forced_kf_pts;
|
||||
|
@ -1203,7 +1203,7 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc, in
|
||||
av_log(NULL, AV_LOG_FATAL, "Invalid aspect ratio: %s\n", frame_aspect_ratio);
|
||||
exit(1);
|
||||
}
|
||||
ost->frame_aspect_ratio = av_q2d(q);
|
||||
ost->frame_aspect_ratio = q;
|
||||
}
|
||||
|
||||
video_enc->bits_per_raw_sample = frame_bits_per_raw_sample;
|
||||
|
Loading…
Reference in New Issue
Block a user