Esempio n. 1
0
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;
  }
Esempio n. 2
0
// NOT PUBLIC
// Closes the bgav_t struct, destroying it and setting to NULL
// NO NEED TO DO AV LOCK, only called in the opener thread
void ReadMedia::closeFile() {
	if (m_file != NULL)
		bgav_close( m_file );
	m_file = NULL;
	m_aeof = true;
	m_veof = true;
	m_pcm_seek = SEEK_NOTHING;
	m_frame_seek = SEEK_NOTHING;

	sprintf(m_filename, "seinettbitte!");
}
Esempio n. 3
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;
}
Esempio n. 4
0
void bg_avdec_destroy(void * priv)
  {
  avdec_priv * avdec = priv;
  bg_avdec_close(priv);

  if(avdec->dec)
    {
    bgav_close(avdec->dec);
    }
  if(avdec->opt)
    {
    bgav_options_destroy(avdec->opt);
    }
  free(avdec);
  }
Esempio n. 5
0
void bg_avdec_close(void * priv)
  {
  avdec_priv * avdec = priv;
  int i;
  if(avdec->dec)
    {
    bgav_close(avdec->dec);
    avdec->dec = NULL;
    }
  if(avdec->track_info)
    {
    for(i = 0; i < avdec->num_tracks; i++)
      bg_track_info_free(&(avdec->track_info[i]));
    free(avdec->track_info);
    avdec->track_info = NULL;
    }
  }
Esempio n. 6
0
ReadMedia::~ReadMedia() {
	printf("killing the media..\n");
	setCommand( CMD_QUIT );		
	signalDispatcher();
		

	// signal dispatcher joins the opener and AV threads	
	pthread_join( m_thread_dispatch, NULL);

	//printf("joined dispatcher\n");	
	if (m_audio_frame != NULL) {
		gavl_audio_frame_destroy(m_audio_frame);
	}
	if (m_video_frame != NULL) {
		gavl_video_frame_destroy(m_video_frame);
	}
	if (m_file != NULL) {
		bgav_close(m_file);
	}

	//printf("now, on to deleting fifo...\n");
	if( m_fifoaudio != NULL) delete m_fifoaudio;
	if( m_fifovideo != NULL) delete m_fifovideo;

	// these are created only once	
	bgav_options_destroy(m_opt);

	pthread_cond_destroy(&m_cond_dispatch);
	pthread_mutex_destroy(&m_condmut_dispatch);

	pthread_cond_destroy(&m_cond_a);
	pthread_cond_destroy(&m_cond_v);
	pthread_mutex_destroy(&m_condmut_a);
	pthread_mutex_destroy(&m_condmut_v);

	pthread_mutex_destroy(&m_av_mut);
	pthread_mutex_destroy(&m_state_mut);

	printf("killed the media..\n");
}
Esempio n. 7
0
static void sfsamples_free(t_sfsamples *x)
{
    bgav_close(x->decoder);
}