diff options
Diffstat (limited to 'tinyMEDIA/src/tmedia_producer.c')
-rwxr-xr-x | tinyMEDIA/src/tmedia_producer.c | 298 |
1 files changed, 149 insertions, 149 deletions
diff --git a/tinyMEDIA/src/tmedia_producer.c b/tinyMEDIA/src/tmedia_producer.c index 4b7c252..7f71013 100755 --- a/tinyMEDIA/src/tmedia_producer.c +++ b/tinyMEDIA/src/tmedia_producer.c @@ -1,18 +1,18 @@ /* * Copyright (C) 2010-2014 Mamadou DIOP -* +* * This file is part of Open Source Doubango Framework. * * DOUBANGO is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * DOUBANGO is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License * along with DOUBANGO. * @@ -41,18 +41,18 @@ const tmedia_producer_plugin_def_t* __tmedia_producer_plugins[TMED_PRODUCER_MAX_ */ int tmedia_producer_init(tmedia_producer_t* self) { - if(!self){ - TSK_DEBUG_ERROR("Invalid parameter"); - return -1; - } - - self->video.chroma = TMEDIA_PRODUCER_CHROMA_DEFAULT; - self->audio.bits_per_sample = TMEDIA_PRODUCER_BITS_PER_SAMPLE_DEFAULT; - self->audio.channels = TMEDIA_PRODUCER_CHANNELS_DEFAULT; - self->audio.rate = TMEDIA_PRODUCER_RATE_DEFAULT; - self->audio.volume = tmedia_defaults_get_volume(); - - return 0; + if(!self) { + TSK_DEBUG_ERROR("Invalid parameter"); + return -1; + } + + self->video.chroma = TMEDIA_PRODUCER_CHROMA_DEFAULT; + self->audio.bits_per_sample = TMEDIA_PRODUCER_BITS_PER_SAMPLE_DEFAULT; + self->audio.channels = TMEDIA_PRODUCER_CHANNELS_DEFAULT; + self->audio.rate = TMEDIA_PRODUCER_RATE_DEFAULT; + self->audio.volume = tmedia_defaults_get_volume(); + + return 0; } /**@ingroup tmedia_producer_group @@ -60,15 +60,15 @@ int tmedia_producer_init(tmedia_producer_t* self) */ int tmedia_producer_set_enc_callback(tmedia_producer_t *self, tmedia_producer_enc_cb_f callback, const void* callback_data) { - if(!self){ - TSK_DEBUG_ERROR("Invalid parameter"); - return -1; - } + if(!self) { + TSK_DEBUG_ERROR("Invalid parameter"); + return -1; + } - self->enc_cb.callback = callback; - self->enc_cb.callback_data = callback_data; + self->enc_cb.callback = callback; + self->enc_cb.callback_data = callback_data; - return 0; + return 0; } /**@ingroup tmedia_producer_group @@ -76,15 +76,15 @@ int tmedia_producer_set_enc_callback(tmedia_producer_t *self, tmedia_producer_en */ int tmedia_producer_set_raw_callback(tmedia_producer_t *self, tmedia_producer_raw_cb_f callback, const void* callback_data) { - if(!self){ - TSK_DEBUG_ERROR("Invalid parameter"); - return -1; - } + if(!self) { + TSK_DEBUG_ERROR("Invalid parameter"); + return -1; + } - self->raw_cb.callback = callback; - self->raw_cb.chunck_curr.usr_data = callback_data; + self->raw_cb.callback = callback; + self->raw_cb.chunck_curr.usr_data = callback_data; - return 0; + return 0; } /**@ingroup tmedia_producer_group @@ -92,11 +92,11 @@ int tmedia_producer_set_raw_callback(tmedia_producer_t *self, tmedia_producer_ra */ int tmedia_producer_set(tmedia_producer_t* self, const tmedia_param_t* param) { - if(!self || !self->plugin || !self->plugin->set || !param){ - TSK_DEBUG_ERROR("Invalid parameter"); - return -1; - } - return self->plugin->set(self, param); + if(!self || !self->plugin || !self->plugin->set || !param) { + TSK_DEBUG_ERROR("Invalid parameter"); + return -1; + } + return self->plugin->set(self, param); } /**@ingroup tmedia_producer_group @@ -107,15 +107,15 @@ int tmedia_producer_set(tmedia_producer_t* self, const tmedia_param_t* param) */ int tmedia_producer_prepare(tmedia_producer_t *self, const tmedia_codec_t* codec) { - int ret; - if (!self || !self->plugin || !self->plugin->prepare || !codec) { - TSK_DEBUG_ERROR("Invalid parameter"); - return -1; - } - if ((ret = self->plugin->prepare(self, codec)) == 0) { - self->is_prepared = tsk_true; - } - return ret; + int ret; + if (!self || !self->plugin || !self->plugin->prepare || !codec) { + TSK_DEBUG_ERROR("Invalid parameter"); + return -1; + } + if ((ret = self->plugin->prepare(self, codec)) == 0) { + self->is_prepared = tsk_true; + } + return ret; } /**@ingroup tmedia_producer_group @@ -125,15 +125,15 @@ int tmedia_producer_prepare(tmedia_producer_t *self, const tmedia_codec_t* codec */ int tmedia_producer_start(tmedia_producer_t *self) { - int ret; - if (!self || !self->plugin || !self->plugin->start) { - TSK_DEBUG_ERROR("Invalid parameter"); - return -1; - } - if ((ret = self->plugin->start(self)) == 0) { - self->is_started = tsk_true; - } - return ret; + int ret; + if (!self || !self->plugin || !self->plugin->start) { + TSK_DEBUG_ERROR("Invalid parameter"); + return -1; + } + if ((ret = self->plugin->start(self)) == 0) { + self->is_started = tsk_true; + } + return ret; } @@ -144,11 +144,11 @@ int tmedia_producer_start(tmedia_producer_t *self) */ int tmedia_producer_pause(tmedia_producer_t *self) { - if (!self || !self->plugin || !self->plugin->pause) { - TSK_DEBUG_ERROR("Invalid parameter"); - return -1; - } - return self->plugin->pause(self); + if (!self || !self->plugin || !self->plugin->pause) { + TSK_DEBUG_ERROR("Invalid parameter"); + return -1; + } + return self->plugin->pause(self); } @@ -159,15 +159,15 @@ int tmedia_producer_pause(tmedia_producer_t *self) */ int tmedia_producer_stop(tmedia_producer_t *self) { - int ret; - if (!self || !self->plugin || !self->plugin->stop) { - TSK_DEBUG_ERROR("Invalid parameter"); - return -1; - } - if ((ret = self->plugin->stop(self)) == 0) { - self->is_started = tsk_false; - } - return ret; + int ret; + if (!self || !self->plugin || !self->plugin->stop) { + TSK_DEBUG_ERROR("Invalid parameter"); + return -1; + } + if ((ret = self->plugin->stop(self)) == 0) { + self->is_started = tsk_false; + } + return ret; } @@ -180,11 +180,11 @@ int tmedia_producer_stop(tmedia_producer_t *self) */ int tmedia_producer_deinit(tmedia_producer_t* self) { - if(!self){ - TSK_DEBUG_ERROR("Invalid parameter"); - return -1; - } - return 0; + if(!self) { + TSK_DEBUG_ERROR("Invalid parameter"); + return -1; + } + return 0; } /**@ingroup tmedia_producer_group @@ -195,22 +195,22 @@ int tmedia_producer_deinit(tmedia_producer_t* self) */ tmedia_producer_t* tmedia_producer_create(tmedia_type_t type, uint64_t session_id) { - tmedia_producer_t* producer = tsk_null; - const tmedia_producer_plugin_def_t* plugin; - tsk_size_t i = 0; - - while((i < TMED_PRODUCER_MAX_PLUGINS) && (plugin = __tmedia_producer_plugins[i++])){ - if(plugin->objdef && plugin->type == type){ - if((producer = tsk_object_new(plugin->objdef))){ - /* initialize the newly created producer */ - producer->plugin = plugin; - producer->session_id = session_id; - break; - } - } - } - - return producer; + tmedia_producer_t* producer = tsk_null; + const tmedia_producer_plugin_def_t* plugin; + tsk_size_t i = 0; + + while((i < TMED_PRODUCER_MAX_PLUGINS) && (plugin = __tmedia_producer_plugins[i++])) { + if(plugin->objdef && plugin->type == type) { + if((producer = tsk_object_new(plugin->objdef))) { + /* initialize the newly created producer */ + producer->plugin = plugin; + producer->session_id = session_id; + break; + } + } + } + + return producer; } /**@ingroup tmedia_producer_group @@ -221,22 +221,22 @@ tmedia_producer_t* tmedia_producer_create(tmedia_type_t type, uint64_t session_i */ int tmedia_producer_plugin_register(const tmedia_producer_plugin_def_t* plugin) { - tsk_size_t i; - if(!plugin){ - TSK_DEBUG_ERROR("Invalid parameter"); - return -1; - } - - /* add or replace the plugin */ - for(i = 0; i<TMED_PRODUCER_MAX_PLUGINS; i++){ - if(!__tmedia_producer_plugins[i] || (__tmedia_producer_plugins[i] == plugin)){ - __tmedia_producer_plugins[i] = plugin; - return 0; - } - } - - TSK_DEBUG_ERROR("There are already %d plugins.", TMED_PRODUCER_MAX_PLUGINS); - return -2; + tsk_size_t i; + if(!plugin) { + TSK_DEBUG_ERROR("Invalid parameter"); + return -1; + } + + /* add or replace the plugin */ + for(i = 0; i<TMED_PRODUCER_MAX_PLUGINS; i++) { + if(!__tmedia_producer_plugins[i] || (__tmedia_producer_plugins[i] == plugin)) { + __tmedia_producer_plugins[i] = plugin; + return 0; + } + } + + TSK_DEBUG_ERROR("There are already %d plugins.", TMED_PRODUCER_MAX_PLUGINS); + return -2; } /**@ingroup tmedia_producer_group @@ -246,35 +246,35 @@ int tmedia_producer_plugin_register(const tmedia_producer_plugin_def_t* plugin) */ int tmedia_producer_plugin_unregister(const tmedia_producer_plugin_def_t* plugin) { - tsk_size_t i; - tsk_bool_t found = tsk_false; - if(!plugin){ - TSK_DEBUG_ERROR("Invalid Parameter"); - return -1; - } - - /* find the plugin to unregister */ - for(i = 0; i<TMED_PRODUCER_MAX_PLUGINS && __tmedia_producer_plugins[i]; i++){ - if(__tmedia_producer_plugins[i] == plugin){ - __tmedia_producer_plugins[i] = tsk_null; - found = tsk_true; - break; - } - } - - /* compact */ - if(found){ - for(; i<(TMED_PRODUCER_MAX_PLUGINS - 1); i++){ - if(__tmedia_producer_plugins[i+1]){ - __tmedia_producer_plugins[i] = __tmedia_producer_plugins[i+1]; - } - else{ - break; - } - } - __tmedia_producer_plugins[i] = tsk_null; - } - return (found ? 0 : -2); + tsk_size_t i; + tsk_bool_t found = tsk_false; + if(!plugin) { + TSK_DEBUG_ERROR("Invalid Parameter"); + return -1; + } + + /* find the plugin to unregister */ + for(i = 0; i<TMED_PRODUCER_MAX_PLUGINS && __tmedia_producer_plugins[i]; i++) { + if(__tmedia_producer_plugins[i] == plugin) { + __tmedia_producer_plugins[i] = tsk_null; + found = tsk_true; + break; + } + } + + /* compact */ + if(found) { + for(; i<(TMED_PRODUCER_MAX_PLUGINS - 1); i++) { + if(__tmedia_producer_plugins[i+1]) { + __tmedia_producer_plugins[i] = __tmedia_producer_plugins[i+1]; + } + else { + break; + } + } + __tmedia_producer_plugins[i] = tsk_null; + } + return (found ? 0 : -2); } /**@ingroup tmedia_producer_group @@ -284,21 +284,21 @@ int tmedia_producer_plugin_unregister(const tmedia_producer_plugin_def_t* plugin */ int tmedia_producer_plugin_unregister_by_type(tmedia_type_t type) { - int i, j; - - /* find the plugin to unregister */ - for (i = 0; i < TMED_PRODUCER_MAX_PLUGINS && __tmedia_producer_plugins[i]; ) { - if ((__tmedia_producer_plugins[i]->type & type) == __tmedia_producer_plugins[i]->type) { - __tmedia_producer_plugins[i] = tsk_null; - /* compact */ - for (j = i; j < (TMED_PRODUCER_MAX_PLUGINS - 1) && __tmedia_producer_plugins[j + 1]; ++j) { - __tmedia_producer_plugins[j] = __tmedia_producer_plugins[j + 1]; - } - __tmedia_producer_plugins[j] = tsk_null; - } - else { - ++i; - } - } - return 0; + int i, j; + + /* find the plugin to unregister */ + for (i = 0; i < TMED_PRODUCER_MAX_PLUGINS && __tmedia_producer_plugins[i]; ) { + if ((__tmedia_producer_plugins[i]->type & type) == __tmedia_producer_plugins[i]->type) { + __tmedia_producer_plugins[i] = tsk_null; + /* compact */ + for (j = i; j < (TMED_PRODUCER_MAX_PLUGINS - 1) && __tmedia_producer_plugins[j + 1]; ++j) { + __tmedia_producer_plugins[j] = __tmedia_producer_plugins[j + 1]; + } + __tmedia_producer_plugins[j] = tsk_null; + } + else { + ++i; + } + } + return 0; } |