[FFmpeg-devel] [PATCH] Native VP9 decoder.

Paul B Mahol onemda at gmail.com
Sun Sep 29 19:06:37 CEST 2013


On 9/21/13, Ronald S. Bultje <rsbultje at gmail.com> wrote:
> From: "Ronald S. Bultje" <rsbultje at gmail.com>
>
> Authors: Ronald S. Bultje <rsbultje gmail com>,
>          Clement Boesch <u pkh me>

[...]

> --- a/doc/general.texi
> +++ b/doc/general.texi
> @@ -94,7 +94,7 @@ Then pass @code{--enable-libtwolame} to configure to
> enable it.
>
>  @section libvpx
>
> -FFmpeg can make use of the libvpx library for VP8 encoding.
> +FFmpeg can make use of the libvpx library for VP8/VP9 encoding.

nit+++++++: Unrelated but whatever/who cares.

>
>  Go to @url{http://www.webmproject.org/} and follow the instructions for
>  installing the library. Then pass @code{--enable-libvpx} to configure to
> @@ -676,6 +676,8 @@ following image formats are supported:
>      @tab fourcc: VP60,VP61,VP62
>  @item VP8                    @tab  E  @tab  X
>      @tab fourcc: VP80, encoding supported through external library libvpx
> + at item VP9                    @tab  E  @tab  X
> +    @tab encoding supported through external library libvpx

nit++++++++: ditto

[...]

> +
> +    return p <= 128 ? 1 + inv_recenter_nonneg(inv_map_table[d], p - 1) :
> +                    255 - inv_recenter_nonneg(inv_map_table[d], 255 - p);
> +}
> +
> +#define VP9_SYNCCODE 0x498342
> +static int decode_frame_header(AVCodecContext *ctx,
> +                               const uint8_t *data, int size)
> +{
> +    VP9Context *s = ctx->priv_data;
> +    int c, i, j, k, l, m, n, w, h, max, size2, res, sharp;
> +    const uint8_t *data2;
> +
> +    /* general header */
> +    init_get_bits8(&s->gb, data, size);

nit+:  check return value

> +    if (get_bits(&s->gb, 2) != 0x2) // frame marker
> +        return AVERROR_INVALIDDATA;
> +    s->profile = get_bits1(&s->gb);
> +    if (get_bits1(&s->gb)) // reserved bit
> +        return AVERROR_INVALIDDATA;
> +    if (get_bits1(&s->gb)) {
> +        int ref = get_bits(&s->gb, 3);
> +        av_log(ctx, AV_LOG_ERROR, "Directly show frame %d\n", ref);
> +        return -1;

meaningful error code

[...]


More information about the ffmpeg-devel mailing list