You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
ffmpeg: Do not set too large bits_per_raw_sample.
This commit is contained in:
8
ffmpeg.c
8
ffmpeg.c
@@ -2859,7 +2859,6 @@ static int transcode_init(void)
|
|||||||
dec_ctx = ist->dec_ctx;
|
dec_ctx = ist->dec_ctx;
|
||||||
|
|
||||||
ost->st->disposition = ist->st->disposition;
|
ost->st->disposition = ist->st->disposition;
|
||||||
enc_ctx->bits_per_raw_sample = dec_ctx->bits_per_raw_sample;
|
|
||||||
enc_ctx->chroma_sample_location = dec_ctx->chroma_sample_location;
|
enc_ctx->chroma_sample_location = dec_ctx->chroma_sample_location;
|
||||||
} else {
|
} else {
|
||||||
for (j=0; j<oc->nb_streams; j++) {
|
for (j=0; j<oc->nb_streams; j++) {
|
||||||
@@ -2909,6 +2908,7 @@ static int transcode_init(void)
|
|||||||
}
|
}
|
||||||
enc_ctx->extradata_size= dec_ctx->extradata_size;
|
enc_ctx->extradata_size= dec_ctx->extradata_size;
|
||||||
enc_ctx->bits_per_coded_sample = dec_ctx->bits_per_coded_sample;
|
enc_ctx->bits_per_coded_sample = dec_ctx->bits_per_coded_sample;
|
||||||
|
enc_ctx->bits_per_raw_sample = dec_ctx->bits_per_raw_sample;
|
||||||
|
|
||||||
enc_ctx->time_base = ist->st->time_base;
|
enc_ctx->time_base = ist->st->time_base;
|
||||||
/*
|
/*
|
||||||
@@ -3100,6 +3100,9 @@ static int transcode_init(void)
|
|||||||
switch (enc_ctx->codec_type) {
|
switch (enc_ctx->codec_type) {
|
||||||
case AVMEDIA_TYPE_AUDIO:
|
case AVMEDIA_TYPE_AUDIO:
|
||||||
enc_ctx->sample_fmt = ost->filter->filter->inputs[0]->format;
|
enc_ctx->sample_fmt = ost->filter->filter->inputs[0]->format;
|
||||||
|
if (dec_ctx)
|
||||||
|
enc_ctx->bits_per_raw_sample = FFMIN(dec_ctx->bits_per_raw_sample,
|
||||||
|
av_get_bytes_per_sample(enc_ctx->sample_fmt) << 3);
|
||||||
enc_ctx->sample_rate = ost->filter->filter->inputs[0]->sample_rate;
|
enc_ctx->sample_rate = ost->filter->filter->inputs[0]->sample_rate;
|
||||||
enc_ctx->channel_layout = ost->filter->filter->inputs[0]->channel_layout;
|
enc_ctx->channel_layout = ost->filter->filter->inputs[0]->channel_layout;
|
||||||
enc_ctx->channels = avfilter_link_get_channels(ost->filter->filter->inputs[0]);
|
enc_ctx->channels = avfilter_link_get_channels(ost->filter->filter->inputs[0]);
|
||||||
@@ -3140,6 +3143,9 @@ static int transcode_init(void)
|
|||||||
"Use -pix_fmt yuv420p for compatibility with outdated media players.\n",
|
"Use -pix_fmt yuv420p for compatibility with outdated media players.\n",
|
||||||
av_get_pix_fmt_name(ost->filter->filter->inputs[0]->format));
|
av_get_pix_fmt_name(ost->filter->filter->inputs[0]->format));
|
||||||
enc_ctx->pix_fmt = ost->filter->filter->inputs[0]->format;
|
enc_ctx->pix_fmt = ost->filter->filter->inputs[0]->format;
|
||||||
|
if (dec_ctx)
|
||||||
|
enc_ctx->bits_per_raw_sample = FFMIN(dec_ctx->bits_per_raw_sample,
|
||||||
|
av_pix_fmt_desc_get(enc_ctx->pix_fmt)->comp[0].depth);
|
||||||
|
|
||||||
ost->st->avg_frame_rate = ost->frame_rate;
|
ost->st->avg_frame_rate = ost->frame_rate;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user