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