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 inline void dealloc_oggz (/*@special@ */ oggdmux_prc_t * ap_prc) /*@releases ap_prc->p_oggz_, ap_prc->p_tracks_ @ */ /*@ensures isnull ap_prc->p_oggz_, ap_prc->p_tracks_ @ */ { assert (ap_prc); if (ap_prc->p_tracks_) { oggz_table_delete (ap_prc->p_tracks_); ap_prc->p_tracks_ = NULL; } if (ap_prc->p_oggz_) { /* TODO: why did I comment this out? */ /* oggz_close (ap_prc->p_oggz_); */ ap_prc->p_oggz_ = NULL; } }