/** Initialize video consumer */ int tdav_consumer_video_init(tdav_consumer_video_t* self) { int ret; if(!self){ TSK_DEBUG_ERROR("Invalid parameter"); return -1; } /* base */ if((ret = tmedia_consumer_init(TMEDIA_CONSUMER(self)))){ return ret; } /* self (should be update by prepare() by using the codec's info)*/ TMEDIA_CONSUMER(self)->video.fps = TDAV_VIDEO_DEFAULT_FPS; TMEDIA_CONSUMER(self)->video.display.width = TDAV_VIDEO_DEFAULT_WIDTH; TMEDIA_CONSUMER(self)->video.display.height = TDAV_VIDEO_DEFAULT_HEIGHT; TMEDIA_CONSUMER(self)->video.display.auto_resize = TDAV_VIDEO_DEFAULT_AUTORESIZE; /* self:jitterbuffer */ if(!self->jitterbuffer && !(self->jitterbuffer = tmedia_jitterbuffer_create(tmedia_video))){ // -- TSK_DEBUG_WARN("Failed to create video jitter buffer"); } if(self->jitterbuffer){ tmedia_jitterbuffer_init(TMEDIA_JITTER_BUFFER(self->jitterbuffer)); } tsk_safeobj_init(self); return 0; }
/* constructor */ static tsk_object_t* tdav_speex_jitterbuffer_ctor(tsk_object_t * self, va_list * app) { tdav_speex_jitterbuffer_t *jitterbuffer = self; TSK_DEBUG_INFO("Create SpeexDSP jitter buffer"); if(jitterbuffer){ /* init base */ tmedia_jitterbuffer_init(TMEDIA_JITTER_BUFFER(jitterbuffer)); /* init self */ } return self; }