On Tue, Sep 25, 2012 at 10:13:10AM -0400, Justin Ruggles wrote:
> --- a/doc/filters.texi
> +++ b/doc/filters.texi
> @@ -318,6 +318,56 @@ not meant to be used directly, it is inserted 
> automatically by libavfilter
>  
> +@itemize
> +@item
> +Half the input audio volume:

Halve

> --- /dev/null
> +++ b/libavfilter/af_volume.c
> @@ -0,0 +1,191 @@
> +static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples)
> +{
> +    VolumeContext *vol = inlink->dst->priv;
> +    AVFilterLink *outlink = inlink->dst->outputs[0];
> +    const int nb_samples = insamples->audio->nb_samples *
> +        av_get_channel_layout_nb_channels(insamples->audio->channel_layout);
> +
> +    if (volume_i != 256) {
> +        switch (insamples->format) {
> +        case AV_SAMPLE_FMT_U8:
> +        {
> +            uint8_t *p = (void *)insamples->data[0];

The cast should be unnecessary, the assigned value is of type uint8_t*.

> +        case AV_SAMPLE_FMT_S16:
> +        {
> +            int16_t *p = (void *)insamples->data[0];
> +        }
> +        case AV_SAMPLE_FMT_S32:
> +        {
> +            int32_t *p = (void *)insamples->data[0];
> +        }
> +        case AV_SAMPLE_FMT_FLT:
> +        {
> +            float *p = (void *)insamples->data[0];
> +        }
> +        case AV_SAMPLE_FMT_DBL:
> +        {
> +            double *p = (void *)insamples->data[0];
> +        }

Why cast to void* instead of directly to the right type?

Diego
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to