static void _Serialize(EbmlGlobal *glob, const unsigned char *p, const unsigned char *q)
{
    ComponentResult cResult;

    while (q != p)
    {
        --q;

        unsigned long cbWritten;
        DataHWrite64(glob->data_h, (void *)q, &glob->offset, 1, NULL, 0);
        addToWide(&glob->offset, 1);
    }
}
Beispiel #2
0
static ComponentResult
_flush_ogg(StreamInfoPtr si, DataHandler data_h, wide *offset)
{
    ComponentResult err = noErr;
    int result = 0;
    ogg_page og;
    Boolean have_pages = true;
    wide tmp;

    while (have_pages) {
        result = ogg_stream_pageout(&si->os, &og);

        if (!result) {
            have_pages = false;
            result = ogg_stream_flush(&si->os, &og);
            if (!result)
                break;
        }

        err = DataHWrite64(data_h, (Ptr) og.header, offset, og.header_len,
                         NULL, 0);
        if (!err) {
            tmp.hi = 0;
            tmp.lo = og.header_len;
            WideAdd(offset, &tmp);
            err = DataHWrite64(data_h, (Ptr) og.body, offset, og.body_len,
                             NULL, 0);
            if (!err) {
                tmp.hi = 0;
                tmp.lo = og.body_len;
                WideAdd(offset, &tmp);
            }
        }
    }

    return err;
}
void Ebml_Write(EbmlGlobal *glob, const void *buffer_in, unsigned long len)
{
    ComponentResult cResult = DataHWrite64(glob->data_h, (void *)buffer_in, &glob->offset, len, NULL, 0);
    addToWide(&glob->offset, len);
}