-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
SET(fw_name "capi-media-transporter")
PROJECT(${fw_name})
INCLUDE_DIRECTORIES(${INC_DIR})
SET(dependents "dlog glib-2.0 gstreamer-1.0 gstreamer-video-1.0 gstreamer-audio-1.0 \
- json-glib-1.0 iniparser mm-common capi-media-tool mm-display-interface \
+ iniparser mm-common capi-media-tool mm-display-interface \
cynara-client libsmack capi-system-info bundle capi-media-sound-manager \
gstreamer-rtsp-server-1.0 libpulse")
#ifdef __cplusplus
+#include <string>
#include "MediaTransporter.h"
-#include <string>
-#include <map>
-#include <mutex>
-#include <glib.h>
-#include <iniparser.h>
-#include <mm_resource_manager.h>
-#include "MediaSourceBinBase.h"
#include "MediaTransporterGst.h"
+#include "MediaSourceBinBase.h"
namespace tizen_media_transporter {
-#define RESOURCE_TYPE_MAX MM_RESOURCE_MANAGER_RES_TYPE_VIDEO_ENCODER + 1
const std::string DEFAULT_ELEMENT_AUDIO_TEST = "audiotestsrc";
class MediaSourceBinAudioTest : public MediaSourceBinBase
MediaSourceBinInfo generate() override;
private:
- struct audioInfo {
- int channel = -1;
- int rate = -1;
- std::string format = "";
- };
-
- struct encodingInfo {
- int bitrate = 0;
- };
-
void parseSourceParam(bundle* params);
GstElement* createMicSource();
void setEncoderParam(gst::GstElements& elements);
void setSourceParam(gst::GstElements& elements);
void replaceCapsWithAudioInfo(GstElement* element);
void replaceEncCapsWithAudioInfo(GstElement* element);
+
+ struct audioInfo {
+ int channel { -1 };
+ int rate { -1 };
+ std::string format;
+ };
audioInfo _audioInfo;
+
+ struct encodingInfo {
+ int bitrate = 0;
+ };
encodingInfo _encInfo;
+
};
} // namespace
#ifdef __cplusplus
-
-#include "MediaTransporter.h"
#include <string>
#include <vector>
-#include <map>
-#include <set>
#include <mutex>
-#include <glib.h>
-#include <gst/gst.h>
-#include <iniparser.h>
-#include <bundle.h>
-#include <mm_resource_manager.h>
-#include "MediaTransporterParseIni.h"
#include <tuple>
+#include "MediaTransporter.h"
+#include "MediaTransporterParseIni.h"
+#include "MediaTransporterGst.h"
+
namespace tizen_media_transporter {
using MediaSourceBinInfo = std::tuple<mtprSourceType, GstBin*, ResourceSet>;
class IMediaSourceBin
{
public:
- virtual ~IMediaSourceBin() {}
+ virtual ~IMediaSourceBin() = default;
virtual MediaSourceBinInfo generate() = 0;
};
~MediaSourceBinBase() = default;
protected:
- std::vector<GstElement*> createVideoRestOfElements(const MtprMediaSourceIni& ini);
- std::vector<GstElement*> createAudioRestOfElements(const MtprMediaSourceIni& ini);
+ gst::GstElements createVideoRestOfElements(const MtprMediaSourceIni& ini);
+ gst::GstElements createAudioRestOfElements(const MtprMediaSourceIni& ini);
};
} // namespace
#ifdef __cplusplus
+#include <string>
#include "MediaTransporter.h"
-#include <string>
-#include <map>
-#include <mutex>
-#include <glib.h>
-#include <iniparser.h>
-#include <mm_resource_manager.h>
-#include "MediaSourceBinBase.h"
#include "MediaTransporterGst.h"
+#include "MediaSourceBinBase.h"
namespace tizen_media_transporter {
MediaSourceBinInfo generate() override;
private:
- struct videoInfo {
- int width = -1;
- int height = -1;
- int frameRate = -1;
- };
-
- struct encodingInfo {
- int bitrate = 0;
- };
-
void parseSourceParam(bundle* params);
GstElement* createCameraSource();
void setEncoderParam(gst::GstElements& elements);
void setSourceParam(gst::GstElements& elements);
void replaceCapsWithVideoInfo(GstElement* element);
void replaceEncCapsWithVideoInfo(GstElement* element);
+
+ struct videoInfo {
+ int width { -1 };
+ int height { -1 };
+ int frameRate { -1 };
+ };
videoInfo _videoInfo;
+
+ struct encodingInfo {
+ int bitrate { 0 };
+ };
encodingInfo _encInfo;
+
};
} // namespace
#ifdef __cplusplus
-#include "MediaSourceBinBase.h"
-#include <string>
-#include <map>
#include <bundle.h>
+#include "MediaSourceBinBase.h"
+
namespace tizen_media_transporter {
class MediaSourceBinFactory
{
public:
- static IMediaSourceBin* create(mtprSourceType type, bundle* param_list);
+ static IMediaSourceBin* create(mtprSourceType type, bundle* param_list);
};
} // namespace
#include <string>
-#include <map>
-#include <mutex>
#include <glib.h>
-#include <iniparser.h>
-#include <mm_resource_manager.h>
#include <sound_manager.h>
#include "MediaTransporter.h"
void setSoundStreamInfo(sound_stream_info_h streamInfo);
private:
- struct audioInfo {
- int channel = -1;
- int rate = -1;
- std::string format = "";
- };
-
- struct encodingInfo {
- int bitrate = 0;
- };
-
void parseSourceParam(bundle* params);
GstElement* createMicSource();
void setEncoderParam(gst::GstElements& elements);
void setSourceParam(gst::GstElements& elements);
void replaceCapsWithAudioInfo(GstElement* element);
void replaceEncCapsWithAudioInfo(GstElement* element);
+
+ struct audioInfo {
+ int channel { -1 };
+ int rate { -1 };
+ std::string format;
+ };
audioInfo _audioInfo;
+
+ struct encodingInfo {
+ int bitrate { 0 };
+ };
encodingInfo _encInfo;
- std::string _streamInfo = "";
+
+ std::string _streamInfo;
};
} // namespace
#ifdef __cplusplus
+#include <string>
#include "MediaTransporter.h"
-#include <string>
-#include <map>
-#include <mutex>
-#include <glib.h>
-#include <iniparser.h>
-#include <mm_resource_manager.h>
-#include "MediaSourceBinBase.h"
#include "MediaTransporterGst.h"
+#include "MediaSourceBinBase.h"
namespace tizen_media_transporter {
MediaSourceBinInfo generate() override;
private:
- struct videoInfo {
- int width = -1;
- int height = -1;
- int frameRate = -1;
- };
-
- struct encodingInfo {
- int bitrate = 0;
- };
-
void parseSourceParam(bundle* params);
GstElement* createVideoTestSource();
void setEncoderParam(gst::GstElements& elements);
void setSourceParam(gst::GstElements& elements);
void replaceCapsWithVideoInfo(GstElement* element);
void replaceEncCapsWithVideoInfo(GstElement* element);
+
+ struct videoInfo {
+ int width { -1 };
+ int height { -1 };
+ int frameRate { -1 };
+ };
videoInfo _videoInfo;
+
+ struct encodingInfo {
+ int bitrate { 0 };
+ };
encodingInfo _encInfo;
+
};
} // namespace
#ifdef __cplusplus
-
-#include "MediaTransporter.h"
#include <string>
-#include <map>
-#include <set>
#include <mutex>
#include <glib.h>
-#include <iniparser.h>
#include <mm_resource_manager.h>
#include <gst/gst.h>
#include <bundle.h>
+
+#include "MediaTransporter.h"
#include "MediaTransporterParseIni.h"
#include "MediaTransporterCallback.h"
#include "MediaTransporterObserver.h"
#ifndef __TIZEN_MEDIA_TRANSPORTER_CALLBACK_H__
#define __TIZEN_MEDIA_TRANSPORTER_CALLBACK_H__
-#include <stdio.h>
-#include <dlog.h>
-
-#include <map>
#include <variant>
#include <memory>
-
#include <media_packet.h>
+
#include "MediaTransporter.h"
#ifdef __cplusplus
#ifndef __TIZEN_MEDIA_TRANSPORTER_DISPLAY_H__
#define __TIZEN_MEDIA_TRANSPORTER_DISPLAY_H__
-#include <stdio.h>
#include <mutex>
#include <mm_display_interface.h>
#include <gst/gst.h>
#ifdef __cplusplus
#include "MediaTransporterBase.h"
-#include <string>
-#include <map>
namespace tizen_media_transporter {
class MediaTransporterFactory
{
public:
- static MediaTransporterBase* create(mtprConnectionType type);
+ static MediaTransporterBase* create(mtprConnectionType type);
};
} // namespace
#define __TIZEN_MEDIA_TRANSPORTER_GST_H__
#ifdef __cplusplus
+
#include <glib.h>
#include <gst/gst.h>
#include <gst/audio/audio.h>
#ifndef __TIZEN_MEDIA_TRANSPORTER_OBSERVER_H__
#define __TIZEN_MEDIA_TRANSPORTER_OBSERVER_H__
-#include <stdio.h>
-#include <dlog.h>
#include <vector>
#ifdef __cplusplus
class IObserver
{
public:
- virtual ~IObserver() = default;
- virtual void changed() = 0;
+ virtual ~IObserver() = default;
+ virtual void changed() = 0;
};
class IObservable
{
public:
- virtual ~IObservable() {}
+ virtual ~IObservable() = default;
virtual void subscribe(IObserver *observer) = 0;
virtual void unsubscribe(IObserver *observer) = 0;
#include <string>
#include <vector>
#include <iniparser.h>
+
#include "mtpr.h"
namespace tizen_media_transporter {
#ifdef __cplusplus
-
-#include "MediaTransporter.h"
#include <string>
-#include <map>
-#include <climits>
-#include <gst/gst.h>
+#include <memory>
#include <media_format.h>
#include <sound_manager_internal.h>
+
+#include "MediaTransporter.h"
#include "MediaTransporterBase.h"
#include "MediaTransporterGst.h"
#include "MediaTransporterCallback.h"
void setSoundStreamInfo(sound_stream_info_h streamInfo);
protected:
+ int _buildForwardingElements(GstElement* demux, GstPad* pad, GCallback callback);
+ void _buildForwardingSink(gst::GstElements& elements, GstPad* pad, GCallback callback);
+
+ int _buildAudioRenderingElements(GstElement* demux, GstPad* pad);
+ int _buildVideoRenderingElements(GstElement* demux, GstPad* pad);
+
+ static void _streamAddedCallback(GstPad* pad, gpointer data);
+ static void _noMoreStreamCallback(gpointer data);
+ static void _encodedAudioStreamCallback(GstElement* object, GstBuffer* buffer, GstPad* pad, gpointer data);
+ static void _encodedVideoStreamCallback(GstElement* object, GstBuffer* buffer, GstPad* pad, gpointer data);
+
std::unique_ptr<IInvokable> _trackAddedCallback;
std::unique_ptr<IInvokable> _noMoreTrackCallback;
std::shared_ptr<MediaTransporterDisplay> _display;
std::string _streamInfo;
- int _buildForwardingElements(GstElement* demux, GstPad* pad, GCallback callback);
- void _buildForwardingSink(gst::GstElements& elements, GstPad* pad, GCallback callback);
-
- int _buildAudioRenderingElements(GstElement* demux, GstPad* pad);
- int _buildVideoRenderingElements(GstElement* demux, GstPad* pad);
-
- static void _streamAddedCallback(GstPad* pad, gpointer data);
- static void _noMoreStreamCallback(gpointer data);
- static void _encodedAudioStreamCallback(GstElement* object, GstBuffer* buffer, GstPad* pad, gpointer data);
- static void _encodedVideoStreamCallback(GstElement* object, GstBuffer* buffer, GstPad* pad, gpointer data);
-
private:
static media_packet_h _makeMediaPacket(GstBuffer* buffer, GstPad* pad, media_format_h* format);
+
void _buildAudioRenderingSink(gst::GstElements& elements);
void _buildVideoRenderingSink(gst::GstElements& elements);
};
#ifdef __cplusplus
+#include <string>
#include "MediaTransporter.h"
-#include <string>
-#include <map>
-#include <climits>
-#include <gst/gst.h>
#include "MediaTransporterBase.h"
#include "MediaTransporterReceiver.h"
+#include "MediaTransporterGst.h"
namespace tizen_media_transporter {
mtprConnectionType type() override { return MTPR_CONNECTION_TYPE_RIST_RECEIVER; }
private:
- static void _demuxPadAddedCallback(GstElement *demux, GstPad *new_pad, gpointer userData);
- static void _demuxNoMorePadsCallback(GstElement *demux, gpointer userData);
+ static void _demuxPadAddedCallback(GstElement* demux, GstPad* new_pad, gpointer userData);
+ static void _demuxNoMorePadsCallback(GstElement* demux, gpointer userData);
std::string _receiverAddress;
};
#ifdef __cplusplus
+#include <string>
#include "MediaTransporter.h"
-#include <string>
-#include <map>
-#include <climits>
-#include <gst/gst.h>
#include "MediaTransporterBase.h"
#include "MediaTransporterReceiver.h"
+#include "MediaTransporterGst.h"
namespace tizen_media_transporter {
mtprConnectionType type() override { return MTPR_CONNECTION_TYPE_SRT_RECEIVER; }
private:
- static void _demuxPadAddedCallback(GstElement *demux, GstPad *new_pad, gpointer userData);
- static void _demuxNoMorePadsCallback(GstElement *demux, gpointer userData);
+ static void _demuxPadAddedCallback(GstElement* demux, GstPad* new_pad, gpointer userData);
+ static void _demuxNoMorePadsCallback(GstElement* demux, gpointer userData);
std::string _senderAddress;
};
#include <mutex>
#include <map>
-
#include <mm_resource_manager.h>
#include "MediaTransporter.h"
int create();
int destroy();
int acquireInternal(mm_resource_manager_res_type_e type);
-
bool resourceReleased(mm_resource_manager_res_h res);
+
mm_resource_manager_h _mgr { nullptr };
std::map<mm_resource_manager_res_type_e, mm_resource_manager_res_h> _resources;
bool _onReleaseCallback { false };
#ifdef __cplusplus
+#include <map>
+#include <memory>
#include "MediaTransporter.h"
-#include <string>
-#include <map>
-#include <climits>
-#include <gst/gst.h>
#include "MediaTransporterBase.h"
#include "MediaSourceBinBase.h"
-#include <memory>
namespace tizen_media_transporter {
int addMediaSource(IMediaSourceBin* sourceBin);
void removeMediaSource(int id);
+
IMediaSourceBin* getMediaSource(int id);
protected:
#ifdef __cplusplus
-
-#include "MediaTransporter.h"
#include <string>
#include <climits>
-#include <gst/gst.h>
+
+#include "MediaTransporter.h"
#include "MediaTransporterSender.h"
+#include "MediaTransporterGst.h"
namespace tizen_media_transporter {
-#define RESOURCE_TYPE_MAX MM_RESOURCE_MANAGER_RES_TYPE_VIDEO_ENCODER + 1
-
class MediaTransporterSenderRist : public MediaTransporterSender
{
public:
#ifdef __cplusplus
+#include <string>
#include "MediaTransporter.h"
-#include <string>
-#include <climits>
-#include <gst/gst.h>
#include "MediaTransporterSender.h"
namespace tizen_media_transporter {
#ifdef __cplusplus
+#include <string>
#include "MediaTransporter.h"
-#include <string>
-#include <climits>
-#include <gio/gio.h>
-#include <gst/gst.h>
#include "MediaTransporterSender.h"
+#include "MediaTransporterGst.h"
namespace tizen_media_transporter {
#ifdef __cplusplus
+#include <string>
#include "MediaTransporter.h"
-#include <string>
-#include <climits>
-#include <gst/gst.h>
#include "MediaTransporterSender.h"
+#include "MediaTransporterGst.h"
namespace tizen_media_transporter {
/* TEMP Define ***********************************************/
/* FIXME: this definition have to be applied
at core/api/common pkg, include/tizen_error.h file */
+#ifndef TIZEN_ERROR_MEDIA_TRANSPORTER
#define TIZEN_ERROR_MEDIA_TRANSPORTER -0x01A30000
+#endif
/*************************************************************/
/**
Name: capi-media-transporter
Summary: A Media Transporter library in Tizen Native API
-Version: 0.0.2
+Version: 0.0.3
Release: 0
Group: Multimedia/API
License: Apache-2.0
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(appcore-efl)
BuildRequires: pkgconfig(elementary)
-BuildRequires: pkgconfig(json-glib-1.0)
BuildRequires: pkgconfig(iniparser)
BuildRequires: pkgconfig(bundle)
BuildRequires: pkgconfig(mm-display-interface)
#include "MediaSourceBinBase.h"
#include "MediaTransporterException.h"
-#include "MediaTransporterGst.h"
#include "MediaTransporterLog.h"
#include "MediaTransporterParseIni.h"
#include <sstream>
* limitations under the License.
*/
+#include <gio/gio.h>
+
#include "MediaTransporterBase.h"
#include "MediaTransporterException.h"
#include "MediaTransporterSenderSrt.h"
-#include "MediaTransporterGst.h"
#include "MediaTransporterLog.h"
#include "MediaTransporterUtil.h"
#include "MediaTransporterParseIni.h"
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
SET(fw_test "${fw_name}-test")
INCLUDE_DIRECTORIES(../include)
static FILE* video_dump = NULL;
static FILE* audio_dump = NULL;
-int g_menu_state = CURRENT_STATUS_MAINMENU;
-sound_stream_info_h g_mic_stream_info = NULL;
-sound_stream_info_h g_stream_info = NULL;
+static int g_menu_state = CURRENT_STATUS_MAINMENU;
+static sound_stream_info_h g_mic_stream_info = NULL;
+static sound_stream_info_h g_stream_info = NULL;
static void _mtpr_test_unset_track_cb();
static void _mtpr_test_unset_encoded_audio_frame_cb();
return 0;
}
-struct appcore_ops ops = {
+static struct appcore_ops ops = {
.create = app_create,
.terminate = app_terminate,
};