diff options
-rw-r--r-- | CMakeLists.txt | 4 | ||||
-rw-r--r-- | include/MediaSourceBinFactory.h | 2 | ||||
-rw-r--r-- | include/MediaTransporterGst.h | 1 | ||||
-rw-r--r-- | include/MediaTransporterParam.h | 1 | ||||
-rw-r--r-- | include/mtpr.h | 3 | ||||
-rw-r--r-- | packaging/capi-media-transporter.spec | 3 | ||||
-rw-r--r-- | src/MediaSourceBinBaseAudio.cpp | 6 | ||||
-rw-r--r-- | src/MediaTransporterGst.cpp | 20 | ||||
-rw-r--r-- | src/MediaTransporterReceiverRist.cpp | 2 | ||||
-rw-r--r-- | src/MediaTransporterReceiverRtsp.cpp | 4 | ||||
-rw-r--r-- | src/MediaTransporterReceiverSrt.cpp | 2 | ||||
-rw-r--r-- | src/MediaTransporterSenderSrt.cpp | 2 | ||||
-rw-r--r-- | test/mtpr_test.c | 1 |
13 files changed, 34 insertions, 17 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 194edca..6d3a7cf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,7 @@ INCLUDE_DIRECTORIES(${INC_DIR}) SET(dependents "dlog glib-2.0 gstreamer-1.0 gstreamer-video-1.0 gstreamer-audio-1.0 \ iniparser mm-common capi-media-tool mm-display-interface \ - cynara-client libsmack capi-system-info bundle capi-media-sound-manager \ + cynara-client libsmack capi-system-info capi-media-sound-manager \ gstreamer-rtsp-server-1.0 libpulse") IF(NOT TIZEN_PROFILE_TV) @@ -21,7 +21,7 @@ ELSE() ADD_DEFINITIONS("-DTIZEN_TV") ENDIF() -SET(pc_dependents "capi-base-common capi-media-sound-manager capi-media-tool bundle") +SET(pc_dependents "capi-base-common capi-media-sound-manager capi-media-tool") INCLUDE(FindPkgConfig) pkg_check_modules(${fw_name} REQUIRED ${dependents}) diff --git a/include/MediaSourceBinFactory.h b/include/MediaSourceBinFactory.h index c78d881..32a8472 100644 --- a/include/MediaSourceBinFactory.h +++ b/include/MediaSourceBinFactory.h @@ -19,8 +19,6 @@ #ifdef __cplusplus -#include <bundle.h> - #include "MediaSourceBinBase.h" namespace tizen_media_transporter { diff --git a/include/MediaTransporterGst.h b/include/MediaTransporterGst.h index 005cafd..98a0933 100644 --- a/include/MediaTransporterGst.h +++ b/include/MediaTransporterGst.h @@ -90,6 +90,7 @@ void _clearElements(GstElements& elements); void _removeElement(GstElements& elements, GstElement* removeElement); GstElement*_createElement(std::string factory_name, std::string name =""); void _connectAndAppendSignal(GList** signals, GObject* obj, const char* sig_name, GCallback cb, gpointer user_data); +void _disconnectSignal(GList** signals, GObject* obj); void _disconnectSignal(gpointer data); bool _addNoTargetGhostpad(GstBin* bin, GstPad** new_pad, bool is_src); bool _setGhostpadTarget(GstPad* ghost_pad, GstElement* target_element, bool is_src); diff --git a/include/MediaTransporterParam.h b/include/MediaTransporterParam.h index c300b69..2106257 100644 --- a/include/MediaTransporterParam.h +++ b/include/MediaTransporterParam.h @@ -20,7 +20,6 @@ #ifdef __cplusplus #include <glib.h> -#include <bundle.h> namespace tizen_media_transporter { namespace param { diff --git a/include/mtpr.h b/include/mtpr.h index da064c8..f08b1bf 100644 --- a/include/mtpr.h +++ b/include/mtpr.h @@ -18,7 +18,6 @@ #define __TIZEN_MEDIA_TRANSPORTER_H__ #include <tizen.h> -#include <bundle.h> #include <media_format.h> #include <media_packet.h> #include <sound_manager.h> @@ -747,7 +746,6 @@ int mtpr_media_source_get_audio_format(mtpr_h mtpr, unsigned int source_id, mtpr * @pre Set a encoding params before calling mtpr_add_media_source() * @see mtpr_get_encoding_params() * @see mtpr_add_media_source - * @see #bundle */ int mtpr_set_encoding_bitrate(mtpr_h mtpr, unsigned int source_id, int bitrate); @@ -770,7 +768,6 @@ int mtpr_set_encoding_bitrate(mtpr_h mtpr, unsigned int source_id, int bitrate); * @pre Set a encoding params before calling mtpr_add_media_source() * @see mtpr_get_encoding_params() * @see mtpr_add_media_source - * @see #bundle */ int mtpr_get_encoding_bitrate(mtpr_h mtpr, unsigned int source_id, int *bitrate); diff --git a/packaging/capi-media-transporter.spec b/packaging/capi-media-transporter.spec index 71e31e7..067c49a 100644 --- a/packaging/capi-media-transporter.spec +++ b/packaging/capi-media-transporter.spec @@ -1,6 +1,6 @@ Name: capi-media-transporter Summary: A Media Transporter library in Tizen Native API -Version: 1.0.12 +Version: 1.0.15 Release: 0 Group: Multimedia/API License: Apache-2.0 @@ -20,7 +20,6 @@ BuildRequires: pkgconfig(libpulse) BuildRequires: pkgconfig(appcore-efl) BuildRequires: pkgconfig(elementary) BuildRequires: pkgconfig(iniparser) -BuildRequires: pkgconfig(bundle) BuildRequires: pkgconfig(mm-display-interface) BuildRequires: pkgconfig(mm-common) BuildRequires: pkgconfig(cynara-client) diff --git a/src/MediaSourceBinBaseAudio.cpp b/src/MediaSourceBinBaseAudio.cpp index cbb3963..59e0cfe 100644 --- a/src/MediaSourceBinBaseAudio.cpp +++ b/src/MediaSourceBinBaseAudio.cpp @@ -136,9 +136,6 @@ int MediaSourceBinBaseAudio::getSourceAudioChannels() void MediaSourceBinBaseAudio::setSourceAudioFormat(mtprSourceAudioFormat format) { - if (format < MTPR_SOURCE_AUDIO_FORMAT_S16LE || format > MTPR_SOURCE_AUDIO_FORMAT_U32BE) - throw MediaTransporterException(MTPR_ERROR_INVALID_PARAMETER, "invalid input format"); - switch (format) { case MTPR_SOURCE_AUDIO_FORMAT_S16LE: @@ -184,8 +181,7 @@ void MediaSourceBinBaseAudio::setSourceAudioFormat(mtprSourceAudioFormat format) _audioInfo.format = "U32BE"; break; default: - _audioInfo.format = ""; - break; + throw MediaTransporterException(MTPR_ERROR_INVALID_PARAMETER, "invalid input format"); } } diff --git a/src/MediaTransporterGst.cpp b/src/MediaTransporterGst.cpp index 0eed11e..9ec7137 100644 --- a/src/MediaTransporterGst.cpp +++ b/src/MediaTransporterGst.cpp @@ -69,6 +69,24 @@ void gst::_connectAndAppendSignal(GList** signals, GObject* obj, const char* sig sig_name, sig_data->signal_id, GST_OBJECT_NAME(sig_data->obj)); } +void gst::_disconnectSignal(GList** signals, GObject* obj) +{ + GList* tmp = *signals; + + while (tmp) { + auto sig_data = static_cast<gst::mtprSignal*>(tmp->data); + RET_IF(!sig_data, "sig_data is NULL"); + + tmp = g_list_next(tmp); + + if (sig_data->obj != obj) + continue; + + *signals = g_list_remove(*signals, sig_data); + _disconnectSignal(sig_data); + } +} + void gst::_disconnectSignal(gpointer data) { auto sig_data = static_cast<gst::mtprSignal*>(data); @@ -851,4 +869,4 @@ void gst::_updateEncCaps(GstElement* element, const param::audioInfo& aInfo) g_object_set(G_OBJECT(element), "caps", newCaps, NULL); gst_caps_unref(newCaps); -}
\ No newline at end of file +} diff --git a/src/MediaTransporterReceiverRist.cpp b/src/MediaTransporterReceiverRist.cpp index 073f7da..b062ceb 100644 --- a/src/MediaTransporterReceiverRist.cpp +++ b/src/MediaTransporterReceiverRist.cpp @@ -108,6 +108,8 @@ void MediaTransporterReceiverRist::buildPipeline() } catch (const MediaTransporterException& e) { LOG_ERROR("%s", e.what()); + gst::_disconnectSignal(&_gst.signals, G_OBJECT(tsdemux)); + gst::_destroyElementFromParent(src); gst::_destroyElementFromParent(rtpmp2tdepay); gst::_destroyElementFromParent(queue); diff --git a/src/MediaTransporterReceiverRtsp.cpp b/src/MediaTransporterReceiverRtsp.cpp index 1d6b059..aeb644d 100644 --- a/src/MediaTransporterReceiverRtsp.cpp +++ b/src/MediaTransporterReceiverRtsp.cpp @@ -94,6 +94,8 @@ void MediaTransporterReceiverRtsp::_srcPadAddedCallback(GstElement* src, GstPad ERROR: if (decodebin) { + gst::_disconnectSignal(&rtsp->_gst.signals, G_OBJECT(decodebin)); + gst_element_set_state(decodebin, GST_STATE_NULL); if (!gst_bin_remove(GST_BIN(rtsp->_gst.pipeline), decodebin)) gst_object_unref(decodebin); @@ -191,6 +193,8 @@ void MediaTransporterReceiverRtsp::buildPipeline() } catch (const MediaTransporterException& e) { LOG_ERROR("%s", e.what()); + + gst::_disconnectSignal(&_gst.signals, G_OBJECT(src)); gst::_destroyElementFromParent(src); throw; } diff --git a/src/MediaTransporterReceiverSrt.cpp b/src/MediaTransporterReceiverSrt.cpp index 9d58d64..2d60276 100644 --- a/src/MediaTransporterReceiverSrt.cpp +++ b/src/MediaTransporterReceiverSrt.cpp @@ -121,6 +121,8 @@ void MediaTransporterReceiverSrt::buildPipeline() } catch (const MediaTransporterException& e) { LOG_ERROR("%s", e.what()); + gst::_disconnectSignal(&_gst.signals, G_OBJECT(tsdemux)); + gst::_destroyElementFromParent(src); gst::_destroyElementFromParent(queue); gst::_destroyElementFromParent(tsdemux); diff --git a/src/MediaTransporterSenderSrt.cpp b/src/MediaTransporterSenderSrt.cpp index 3f77e81..aae5349 100644 --- a/src/MediaTransporterSenderSrt.cpp +++ b/src/MediaTransporterSenderSrt.cpp @@ -191,6 +191,8 @@ void MediaTransporterSenderSrt::buildPipeline() } catch (const MediaTransporterException& e) { LOG_ERROR("%s", e.what()); + gst::_disconnectSignal(&_gst.signals, G_OBJECT(sink)); + gst::_destroyElementFromParent(mux); gst::_destroyElementFromParent(sink); diff --git a/test/mtpr_test.c b/test/mtpr_test.c index 2545695..955adb3 100644 --- a/test/mtpr_test.c +++ b/test/mtpr_test.c @@ -19,7 +19,6 @@ #include <appcore-efl.h> #include <Elementary.h> #include <glib.h> -#include <bundle.h> #include <sound_manager_internal.h> #define TIZEN_FEATURE_ESPP |