On Sat, Oct 27, 2012 at 7:26 AM, Justin Ruggles
<justin.rugg...@gmail.com> wrote:
> ---
>  libavcodec/flacenc.c |   88 +++++++++++++++++++++++++++++++++++--------------
>  1 files changed, 63 insertions(+), 25 deletions(-)
>
> diff --git a/libavcodec/flacenc.c b/libavcodec/flacenc.c
> index 0ba9176..19413b3 100644
> --- a/libavcodec/flacenc.c
> +++ b/libavcodec/flacenc.c
> @@ -92,6 +92,7 @@ typedef struct FlacEncodeContext {
>      int channels;
>      int samplerate;
>      int sr_code[2];
> +    int bps_code;
>      int max_blocksize;
>      int min_framesize;
>      int max_framesize;
> @@ -128,7 +129,7 @@ static void write_streaminfo(FlacEncodeContext *s, 
> uint8_t *header)
>      put_bits(&pb, 24, s->max_framesize);
>      put_bits(&pb, 20, s->samplerate);
>      put_bits(&pb, 3, s->channels-1);
> -    put_bits(&pb, 5, 15);       /* bits per sample - 1 */
> +    put_bits(&pb,  5, s->avctx->bits_per_raw_sample - 1);
>      /* write 36-bit sample count in 2 put_bits() calls */
>      put_bits(&pb, 24, (s->sample_count & 0xFFFFFF000LL) >> 12);
>      put_bits(&pb, 12,  s->sample_count & 0x000000FFFLL);
> @@ -228,8 +229,18 @@ static av_cold int flac_encode_init(AVCodecContext 
> *avctx)
>
>      s->avctx = avctx;
>
> -    if (avctx->sample_fmt != AV_SAMPLE_FMT_S16)
> -        return -1;
> +    switch (avctx->sample_fmt) {
> +    case AV_SAMPLE_FMT_S16:
> +        avctx->bits_per_raw_sample = 16;
> +        s->bps_code                = 4;
> +        break;
> +    case AV_SAMPLE_FMT_S32:
> +        if (avctx->bits_per_raw_sample != 24)
> +            av_log(avctx, AV_LOG_WARNING, "encoding as 24 
> bits-per-sample\n");
> +        avctx->bits_per_raw_sample = 24;
> +        s->bps_code                = 6;
> +        break;
> +    }

Doesn't this switch lack a default statement? Before it errored out on
everybad, but now the control flow continues.

-- 
regards,
    Reinhard
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to