/** 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; }
/** Initialize audio consumer */ int tdav_consumer_audio_init(tdav_consumer_audio_t* self) { int ret; TSK_DEBUG_INFO("tdav_consumer_audio_init()"); 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)->audio.bits_per_sample = TDAV_BITS_PER_SAMPLE_DEFAULT; TMEDIA_CONSUMER(self)->audio.ptime = TDAV_PTIME_DEFAULT; TMEDIA_CONSUMER(self)->audio.in.channels = TDAV_CHANNELS_DEFAULT; TMEDIA_CONSUMER(self)->audio.in.rate = TDAV_RATE_DEFAULT; TMEDIA_CONSUMER(self)->audio.gain = TSK_MIN(tmedia_defaults_get_audio_consumer_gain(), TDAV_AUDIO_GAIN_MAX); tsk_safeobj_init(self); return 0; }