static int ebml_read_binary(AVIOContext *pb, int length, EbmlBin *bin)

{

    av_free(bin->data);

    if (!(bin->data = av_malloc(length)))

        return AVERROR(ENOMEM);



    bin->size = length;

    bin->pos  = avio_tell(pb);

    if (avio_read(pb, bin->data, length) != length) {

        av_freep(&bin->data);

        return AVERROR(EIO);

    }



    return 0;

}

static int ebml_read_binary(AVIOContext *pb, int length, EbmlBin *bin)

{

    av_free(bin->data);

    if (!(bin->data = av_malloc(length)))

        return AVERROR(ENOMEM);



    bin->size = length;

    bin->pos  = avio_tell(pb);

    if (avio_read(pb, bin->data, length) != length) {

        av_freep(&bin->data);

        return AVERROR(EIO);

    }



    return 0;

}

    if (!(bin->data = av_malloc(length)))
static int FUNC_0(AVIOContext *VAR_0, int VAR_1, EbmlBin *VAR_2)

{

    av_free(VAR_2->data);

    if (!(VAR_2->data = av_malloc(VAR_1)))

        return AVERROR(ENOMEM);



    VAR_2->size = VAR_1;

    VAR_2->pos  = avio_tell(VAR_0);

    if (avio_read(VAR_0, VAR_2->data, VAR_1) != VAR_1) {

        av_freep(&VAR_2->data);

        return AVERROR(EIO);

    }



    return 0;

}

static int FUNC_0(AVIOContext *VAR_0, int VAR_1, EbmlBin *VAR_2)
{ av_free(VAR_2->data); if (!(VAR_2->data = av_malloc(VAR_1)))
return AVERROR(ENOMEM); VAR_2->size = VAR_1; VAR_2->pos  = avio_tell(VAR_0); if (avio_read(VAR_0, VAR_2->data, VAR_1) != VAR_1) { av_freep(&VAR_2->data); return AVERROR(EIO); } return 0; }