int main (int argc, char ** argv) { OGGZ * oggz; OggzTable * tracks; long n; if (argc < 2) { printf ("usage: %s filename\n", argv[0]); } tracks = oggz_table_new (); if ((oggz = oggz_open ((char *)argv[1], OGGZ_READ | OGGZ_AUTO)) == NULL) { printf ("unable to open file %s\n", argv[1]); exit (1); } oggz_set_read_page (oggz, -1, read_page, tracks); while ((n = oggz_read (oggz, 1024)) > 0); oggz_close (oggz); oggz_table_delete (tracks); exit (0); }
static OMX_ERRORTYPE alloc_oggz (oggdmux_prc_t * ap_prc) { assert (ap_prc); assert (!ap_prc->p_oggz_); /* Allocate the oggz object */ tiz_check_null_ret_oom ((ap_prc->p_oggz_ = oggz_new (OGGZ_READ))); /* Allocate a table */ tiz_check_null_ret_oom ((ap_prc->p_tracks_ = oggz_table_new ())); /* Set the io callbacks */ on_oggz_error_ret_omx_oom ( oggz_io_set_read (ap_prc->p_oggz_, og_io_read, ap_prc)); on_oggz_error_ret_omx_oom ( oggz_io_set_seek (ap_prc->p_oggz_, og_io_seek, ap_prc)); on_oggz_error_ret_omx_oom ( oggz_io_set_tell (ap_prc->p_oggz_, og_io_tell, ap_prc)); return OMX_ErrorNone; }