On Sun, May 01, 2016 at 05:11:08PM +0200, Carl Eugen Hoyos wrote:
> Hi!
> 
> Attached patch stops setting bits_per_raw_sample if it makes no sense as for 
> example in the wmall24 -> pcm_s16 case:
>     Stream #0:0: Audio: pcm_s16le, 96000 Hz, stereo, s16 (24 bit), 3072 kb/s
> 
> Mostly tested with audio.
> 
> Please comment, Carl Eugen

>  ffmpeg.c |    7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 1a672d3fd9fe8e65d2ad9a4271fe5260a888e28a  patchrawsample.diff
> diff --git a/ffmpeg.c b/ffmpeg.c
> index adc3ff7..86bc518 100644
> --- a/ffmpeg.c
> +++ b/ffmpeg.c
> @@ -2859,7 +2859,6 @@ static int transcode_init(void)
>              dec_ctx = ist->dec_ctx;
>  
>              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;
>          } else {
>              for (j=0; j<oc->nb_streams; j++) {
> @@ -3100,6 +3099,9 @@ static int transcode_init(void)
>              switch (enc_ctx->codec_type) {
>              case AVMEDIA_TYPE_AUDIO:
>                  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->channel_layout = 
> ost->filter->filter->inputs[0]->channel_layout;
>                  enc_ctx->channels       = 
> avfilter_link_get_channels(ost->filter->filter->inputs[0]);
> @@ -3140,6 +3142,9 @@ static int transcode_init(void)
>                             "Use -pix_fmt yuv420p for compatibility with 
> outdated media players.\n",
>                             
> av_get_pix_fmt_name(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);

these 2 are missing the stream copy case above


[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

If you drop bombs on a foreign country and kill a hundred thousand
innocent people, expect your government to call the consequence
"unprovoked inhuman terrorist attacks" and use it to justify dropping
more bombs and killing more people. The technology changed, the idea is old.

Attachment: signature.asc
Description: Digital signature

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to