Example #1
0
int ff_cbs_read_packet(CodedBitstreamContext *ctx,
                       CodedBitstreamFragment *frag,
                       const AVPacket *pkt)
{
    int err;

    memset(frag, 0, sizeof(*frag));

    if (pkt->buf) {
        frag->data_ref = av_buffer_ref(pkt->buf);
        if (!frag->data_ref)
            return AVERROR(ENOMEM);

        frag->data      = pkt->data;
        frag->data_size = pkt->size;

    } else {
        err = cbs_fill_fragment_data(ctx, frag, pkt->data, pkt->size);
        if (err < 0)
            return err;
    }

    err = ctx->codec->split_fragment(ctx, frag, 0);
    if (err < 0)
        return err;

    return cbs_read_fragment_content(ctx, frag);
}
Example #2
0
int ff_cbs_read(CodedBitstreamContext *ctx,
                CodedBitstreamFragment *frag,
                const uint8_t *data, size_t size)
{
    int err;

    memset(frag, 0, sizeof(*frag));

    err = cbs_fill_fragment_data(ctx, frag, data, size);
    if (err < 0)
        return err;

    err = ctx->codec->split_fragment(ctx, frag, 0);
    if (err < 0)
        return err;

    return cbs_read_fragment_content(ctx, frag);
}
Example #3
0
int ff_cbs_read_extradata(CodedBitstreamContext *ctx,
                          CodedBitstreamFragment *frag,
                          const AVCodecParameters *par)
{
    int err;

    memset(frag, 0, sizeof(*frag));

    err = cbs_fill_fragment_data(ctx, frag, par->extradata,
                                 par->extradata_size);
    if (err < 0)
        return err;

    err = ctx->codec->split_fragment(ctx, frag, 1);
    if (err < 0)
        return err;

    return cbs_read_fragment_content(ctx, frag);
}
Example #4
0
File: cbs.c Project: libav/libav
int ff_cbs_read_extradata(CodedBitstreamContext *ctx,
                          CodedBitstreamFragment *frag,
                          const AVCodecParameters *par)
{
    int err;

    memset(frag, 0, sizeof(*frag));

    frag->data      = par->extradata;
    frag->data_size = par->extradata_size;

    err = ctx->codec->split_fragment(ctx, frag, 1);
    if (err < 0)
        return err;

    frag->data      = NULL;
    frag->data_size = 0;

    return cbs_read_fragment_content(ctx, frag);
}
Example #5
0
int ff_cbs_read_packet(CodedBitstreamContext *ctx,
                       CodedBitstreamFragment *frag,
                       const AVPacket *pkt)
{
    int err;

    memset(frag, 0, sizeof(*frag));

    frag->data      = pkt->data;
    frag->data_size = pkt->size;

    err = ctx->codec->split_fragment(ctx, frag, 0);
    if (err < 0)
        return err;

    frag->data      = NULL;
    frag->data_size = 0;

    return cbs_read_fragment_content(ctx, frag);
}
Example #6
0
int ff_cbs_read(CodedBitstreamContext *ctx,
                CodedBitstreamFragment *frag,
                const uint8_t *data, size_t size)
{
    int err;

    memset(frag, 0, sizeof(*frag));

    // (We won't write to this during split.)
    frag->data      = (uint8_t*)data;
    frag->data_size = size;

    err = ctx->codec->split_fragment(ctx, frag, 0);
    if (err < 0)
        return err;

    frag->data      = NULL;
    frag->data_size = 0;

    return cbs_read_fragment_content(ctx, frag);
}