On 4/1/2019 8:39 PM, Mark Thompson wrote:
> +static int cbs_av1_parse_obu(CodedBitstreamContext *ctx,
> +                             void *priv, int obu_type,
> +                             const uint8_t *data, size_t data_size)
> +{
> +    CodedBitstreamUnit unit;
> +    int err;
> +
> +    // These OBU types will not affect parsing.
> +    if (obu_type == AV1_OBU_METADATA  ||
> +        obu_type == AV1_OBU_TILE_LIST ||
> +        obu_type == AV1_OBU_PADDING)
> +        return 0;
> +
> +    unit = (CodedBitstreamUnit) {
> +        .type      = obu_type,
> +        .data      = (uint8_t*)data,
> +        .data_size = data_size,
> +    };
> +
> +    err = cbs_av1_read_unit(ctx, &unit);
> +    if (err >= 0 && priv) {
> +        AV1RawOBU *obu = unit.content;
> +        switch (obu->header.obu_type) {
> +        case AV1_OBU_FRAME_HEADER:
> +        case AV1_OBU_REDUNDANT_FRAME_HEADER:
> +            memcpy(priv, &obu->obu.frame_header,
> +                   sizeof(obu->obu.frame_header));
> +            break;
> +        case AV1_OBU_FRAME:
> +            memcpy(priv, &obu->obu.frame.header,
> +                   sizeof(obu->obu.frame.header));
> +            break;
> +        }

You should check that it's the frame with show_frame == 1 or
show_existing_frame == 1 before copying, otherwise this depends on
Temporal Units with several frames having the visible one at the end.
I don't think the spec enforces ordering in that regard.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to