int main(int argc, char ** argv) { bgav_t * b; bgav_options_t * opt; if(argc < 2) { fprintf(stderr, "Usage: %s <file>\n", argv[0]); return -1; } b = bgav_create(); opt = bgav_get_options(b); bgav_options_set_sample_accurate(opt, 1); bgav_options_set_index_callback(opt, index_callback, NULL); if(!bgav_open(b, argv[1])) return -1; fprintf(stderr, "\n"); if(b->demuxer->si) bgav_superindex_dump(b->demuxer->si); bgav_file_index_dump(b); bgav_close(b); return 0; }
// NOT PUBLIC // Clears the bgav_t struct, destroying and then creating it // NO NEED TO DO AV LOCK, only called in the opener thread void ReadMedia::clearFile() { if (m_file != NULL) bgav_close( m_file ); m_file = bgav_create(); bgav_options_copy( bgav_get_options( m_file ) , m_opt); m_aeof = true; m_veof = true; m_pcm_seek = SEEK_NOTHING; m_frame_seek = SEEK_NOTHING; }
static void *sfsamples_new(t_symbol *s, int argc, t_atom *argv) { t_sfsamples *x = (t_sfsamples *)pd_new(sfsamples_class); // TODO convert args into a filename, so spaces are valid x->filename == &s_; outlet_new(&x->x_obj, &s_float); x->decoder = bgav_create(); return(x); }
static int open_avdec(void * priv, const char * location) { bgav_options_t * opt; avdec_priv * avdec = priv; avdec->dec = bgav_create(); opt = bgav_get_options(avdec->dec); bgav_options_copy(opt, avdec->opt); if(!bgav_open(avdec->dec, location)) return 0; return open_common(avdec); }
static int open_io_avdec(void * priv, gavf_io_t * io) { bgav_options_t * opt; avdec_priv * avdec = priv; avdec->dec = bgav_create(); opt = bgav_get_options(avdec->dec); bgav_options_copy(opt, avdec->opt); if(!bgav_open_callbacks(avdec->dec, read_callback, gavf_io_can_seek(io) ? seek_callback : 0, io, gavf_io_filename(io), gavf_io_mimetype(io), gavf_io_total_bytes(io))) return 0; return open_common(avdec); }