It'll reduce unnecessary comparison.
[Version] 0.1.96
[Issue Type] Improvement
Change-Id: Ie2227164687017b079c07f73331a00f9d612a1dd
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
void ms_ini_read_list(const char *key, gchar ***list);
/**
- * @brief Converts Media Format mime type into Caps media format string.
+ * @brief Converts Media Format mime type into Caps media format string for audio.
*/
-const gchar *ms_convert_mime_to_string_format(media_format_mimetype_e mime);
+const gchar *ms_convert_audio_mime_to_string_format(media_format_mimetype_e mime);
+
+/**
+ * @brief Converts Media Format mime type into Caps media format string for video.
+ */
+const gchar *ms_convert_video_mime_to_string_format(media_format_mimetype_e mime);
+
+/**
+ * @brief Converts Media Format mime type into Caps media format string for container.
+ */
+const gchar *ms_convert_container_mime_to_string_format(media_format_mimetype_e mime);
/**
* @brief Converts Media Format mime type into rtp media type.
const gchar *ms_convert_mime_to_rtp_format(media_format_mimetype_e mime);
/**
- * @brief Converts Caps stream format into Media Format mime type.
+ * @brief Converts Caps stream format into Media Format mime type for audio.
+ */
+media_format_mimetype_e ms_convert_audio_string_format_to_media_format(const char *format_type);
+
+/**
+ * @brief Converts Caps stream format into Media Format mime type for video.
*/
-media_format_mimetype_e ms_convert_string_format_to_media_format(const char *format_type);
+media_format_mimetype_e ms_convert_video_string_format_to_media_format(const char *format_type);
/**
* @brief Creates Media streamer signal structure,
Name: capi-media-streamer
Summary: A Media Streamer API
-Version: 0.1.95
+Version: 0.1.96
Release: 0
Group: Multimedia/API
License: Apache-2.0
}
MS_GET_CAPS_TYPE(enc_caps, src_type);
- encoder_type = ms_convert_string_format_to_media_format(src_type);
+ encoder_type = ms_convert_video_string_format_to_media_format(src_type);
if (encoder_type == MEDIA_FORMAT_VP8) {
/* VP8 does not have parser */
/* Settings if H264 format is set*/
MS_GET_CAPS_TYPE(dec_caps, sink_type);
- decoder_type = ms_convert_string_format_to_media_format(sink_type);
+ decoder_type = ms_convert_video_string_format_to_media_format(sink_type);
if (decoder_type == MEDIA_FORMAT_H264_SP)
g_object_set(G_OBJECT(decoder_parser), "config-interval", H264_PARSER_CONFIG_INTERVAL, NULL);
if (!media_format_get_audio_info(fmt, &mime, &channel, &samplerate, &bit, &avg_bps)) {
if (MEDIA_FORMAT_RAW == (mime & MEDIA_FORMAT_RAW)) {
- caps = gst_caps_new_simple("audio/x-raw", "format", G_TYPE_STRING, ms_convert_mime_to_string_format(mime), NULL);
+ caps = gst_caps_new_simple("audio/x-raw", "format", G_TYPE_STRING, ms_convert_audio_mime_to_string_format(mime), NULL);
} else if (MEDIA_FORMAT_ENCODED == (mime & MEDIA_FORMAT_ENCODED)) {
if (mime == MEDIA_FORMAT_AAC)
- caps = gst_caps_new_simple(ms_convert_mime_to_string_format(mime), "mpegversion", G_TYPE_INT, 4, NULL);
+ caps = gst_caps_new_simple(ms_convert_audio_mime_to_string_format(mime), "mpegversion", G_TYPE_INT, 4, NULL);
else if (mime == MEDIA_FORMAT_MP3)
- caps = gst_caps_new_simple(ms_convert_mime_to_string_format(mime), "mpegversion", G_TYPE_INT, 1, NULL);
+ caps = gst_caps_new_simple(ms_convert_audio_mime_to_string_format(mime), "mpegversion", G_TYPE_INT, 1, NULL);
else
- caps = gst_caps_new_simple(ms_convert_mime_to_string_format(mime), "channels", G_TYPE_INT, channel, "rate", G_TYPE_INT, samplerate, NULL);
+ caps = gst_caps_new_simple(ms_convert_audio_mime_to_string_format(mime), "channels", G_TYPE_INT, channel, "rate", G_TYPE_INT, samplerate, NULL);
}
caps_name = gst_caps_to_string(caps);
ms_info("Creating Audio Caps from media format [%s]", caps_name);
} else if (!media_format_get_video_info(fmt, &mime, &width, &height, &avg_bps, &max_bps)) {
if (MEDIA_FORMAT_RAW == (mime & MEDIA_FORMAT_RAW))
caps = gst_caps_new_simple("video/x-raw", "framerate", GST_TYPE_FRACTION, max_bps,
- avg_bps, "format", G_TYPE_STRING, ms_convert_mime_to_string_format(mime), "width", G_TYPE_INT, width, "height", G_TYPE_INT, height, NULL);
+ avg_bps, "format", G_TYPE_STRING, ms_convert_video_mime_to_string_format(mime), "width", G_TYPE_INT, width, "height", G_TYPE_INT, height, NULL);
else if (MEDIA_FORMAT_ENCODED == (mime & MEDIA_FORMAT_ENCODED))
- caps = gst_caps_new_simple(ms_convert_mime_to_string_format(mime), "framerate", GST_TYPE_FRACTION, max_bps,
+ caps = gst_caps_new_simple(ms_convert_video_mime_to_string_format(mime), "framerate", GST_TYPE_FRACTION, max_bps,
avg_bps, "width", G_TYPE_INT, width, "height", G_TYPE_INT, height, NULL);
caps_name = gst_caps_to_string(caps);
ms_info("Creating Video Caps from media format [%s]", caps_name);
} else if (!media_format_get_container_mime(fmt, &mime)) {
- caps = gst_caps_new_empty_simple(ms_convert_mime_to_string_format(mime));
+ caps = gst_caps_new_empty_simple(ms_convert_container_mime_to_string_format(mime));
caps_name = gst_caps_to_string(caps);
- ms_info("Creating Video Caps from media format [%s]", caps_name);
+ ms_info("Creating Container Caps from media format [%s]", caps_name);
} else
ms_error("Error getting media format information");
gst_structure_get_fraction(pad_struct, "framerate", &max_bps, &avg_bps);
gst_structure_get_int(pad_struct, "height", &height);
- media_format_set_video_mime(fmt, ms_convert_string_format_to_media_format(pad_format));
+ media_format_set_video_mime(fmt, ms_convert_video_string_format_to_media_format(pad_format));
media_format_set_video_width(fmt, width);
media_format_set_video_height(fmt, height);
media_format_set_video_avg_bps(fmt, avg_bps);
media_format_set_video_max_bps(fmt, max_bps);
} else if (MS_ELEMENT_IS_AUDIO(pad_type)) {
- media_format_set_audio_mime(fmt, ms_convert_string_format_to_media_format(pad_format));
+ media_format_set_audio_mime(fmt, ms_convert_audio_string_format_to_media_format(pad_format));
gst_structure_get_int(pad_struct, "channels", &channels);
media_format_set_audio_channel(fmt, channels);
gst_structure_get_int(pad_struct, "rate", &bps);
#include "media_streamer_priv.h"
#include "media_streamer_util.h"
-static const format_s zerocopy_fmt_table[] = {
+static const format_s zerocopy_video_format_table[] = {
{MEDIA_FORMAT_I420, "S420"},
{MEDIA_FORMAT_NV12, "SN12"},
{MEDIA_FORMAT_NV12T, "ST12"},
{MEDIA_FORMAT_MAX, NULL}
};
-static const format_s format_table[] = {
- /* Audio - ENCODED */
+static const format_s audio_format_table[] = {
+ /* ENCODED */
{MEDIA_FORMAT_L16, "audio/x-raw"},
{MEDIA_FORMAT_ALAW, "audio/x-alaw"},
{MEDIA_FORMAT_ULAW, "audio/x-mulaw"},
{MEDIA_FORMAT_AAC_HE_PS, "audio/mpeg"},
{MEDIA_FORMAT_MP3, "audio/mpeg"},
{MEDIA_FORMAT_OPUS, "audio/x-opus"},
- /* Audio - RAW */
+ /* RAW */
{MEDIA_FORMAT_PCM, "S16LE"},
{MEDIA_FORMAT_PCM_S24LE, "S24LE"},
{MEDIA_FORMAT_PCM_S32LE, "S32LE"},
{MEDIA_FORMAT_PCM_F32BE, "F32BE"},
/* {MEDIA_FORMAT_PCMA, "audio/x-alaw"}, */
/* {MEDIA_FORMAT_PCMU, "audio/x-mulaw"}, */
- /* Video - ENCODED */
+ {MEDIA_FORMAT_MAX, NULL}
+};
+
+static const format_s video_format_table[] = {
+ /* ENCODED */
{MEDIA_FORMAT_H261, "video/x-h261"},
{MEDIA_FORMAT_H263, "video/x-h263"},
{MEDIA_FORMAT_H263P, "video/x-h263"},
{MEDIA_FORMAT_VP8, "video/x-vp8"},
{MEDIA_FORMAT_VP9, "video/x-vp9"},
{MEDIA_FORMAT_VC1, "video/x-wmv"},
- /* Video - RAW */
+ /* RAW */
{MEDIA_FORMAT_I420, "I420"},
{MEDIA_FORMAT_NV12, "NV12"},
{MEDIA_FORMAT_NV12T, "NV12T"},
{MEDIA_FORMAT_RGBA, "RGBA"},
{MEDIA_FORMAT_ARGB, "ARGB"},
{MEDIA_FORMAT_NATIVE_VIDEO, "NATIVE_VIDEO"},
- /* Container */
+ {MEDIA_FORMAT_MAX, NULL}
+};
+
+static const format_s container_format_table[] = {
{MEDIA_FORMAT_CONTAINER_MP4, "video/quicktime"},
{MEDIA_FORMAT_CONTAINER_MPEG2TS, "video/mpegts"},
{MEDIA_FORMAT_MAX, NULL}
void ms_load_ini_settings(media_streamer_ini_t *ini)
{
-
ms_debug_fenter();
/* get ini values */
}
-const gchar *ms_convert_mime_to_string_format(media_format_mimetype_e mime)
+const gchar *ms_convert_audio_mime_to_string_format(media_format_mimetype_e mime)
+{
+ gchar *format_name = NULL;
+ int it_format;
+
+ for (it_format = 0; audio_format_table[it_format].format != MEDIA_FORMAT_MAX; it_format++) {
+ if (mime == audio_format_table[it_format].format) {
+ format_name = audio_format_table[it_format].format_name;
+ break;
+ }
+ }
+
+ if (!format_name)
+ ms_warning("Not supported this mimetype[0x%x]", mime);
+ else
+ ms_info("format_name[%s]", format_name);
+
+ return format_name;
+}
+
+const gchar *ms_convert_video_mime_to_string_format(media_format_mimetype_e mime)
{
gchar *format_name = NULL;
int it_format;
use_zerocopy_fmt = ms_ini_get_boolean("general:use zerocopy", DEFAULT_USE_ZEROCOPY);
- for (it_format = 0; format_table[it_format].format != MEDIA_FORMAT_MAX; it_format++) {
- if (mime == format_table[it_format].format) {
- format_name = format_table[it_format].format_name;
+ for (it_format = 0; video_format_table[it_format].format != MEDIA_FORMAT_MAX; it_format++) {
+ if (mime == video_format_table[it_format].format) {
+ format_name = video_format_table[it_format].format_name;
break;
}
}
if (use_zerocopy_fmt) {
- for (it_format = 0; zerocopy_fmt_table[it_format].format != MEDIA_FORMAT_MAX; it_format++) {
- if (mime == zerocopy_fmt_table[it_format].format) {
- format_name = zerocopy_fmt_table[it_format].format_name;
+ for (it_format = 0; zerocopy_video_format_table[it_format].format != MEDIA_FORMAT_MAX; it_format++) {
+ if (mime == zerocopy_video_format_table[it_format].format) {
+ format_name = zerocopy_video_format_table[it_format].format_name;
break;
}
}
if (!format_name)
ms_warning("Not supported this mimetype[0x%x]", mime);
+ else
+ ms_info("format_name[%s]", format_name);
- ms_debug_fleave();
+ return format_name;
+}
+
+const gchar *ms_convert_container_mime_to_string_format(media_format_mimetype_e mime)
+{
+ gchar *format_name = NULL;
+ int it_format;
+
+ for (it_format = 0; container_format_table[it_format].format != MEDIA_FORMAT_MAX; it_format++) {
+ if (mime == container_format_table[it_format].format) {
+ format_name = container_format_table[it_format].format_name;
+ break;
+ }
+ }
+
+ if (!format_name)
+ ms_warning("Not supported this mimetype[0x%x]", mime);
+ else
+ ms_info("format_name[%s]", format_name);
return format_name;
}
}
//LCOV_EXCL_STOP
-media_format_mimetype_e ms_convert_string_format_to_media_format(const char *format_type)
+media_format_mimetype_e ms_convert_audio_string_format_to_media_format(const char *format_type)
+{
+ media_format_mimetype_e mime = MEDIA_FORMAT_PCM;
+ int it_format;
+
+ for (it_format = 0; audio_format_table[it_format].format != MEDIA_FORMAT_MAX; it_format++) {
+ if (g_strrstr(format_type, audio_format_table[it_format].format_name)) {
+ mime = audio_format_table[it_format].format;
+ break;
+ }
+ }
+
+ ms_info("mime[0x%x]", mime);
+
+ return mime;
+}
+
+media_format_mimetype_e ms_convert_video_string_format_to_media_format(const char *format_type)
{
media_format_mimetype_e mime = MEDIA_FORMAT_NATIVE_VIDEO;
int it_format;
gboolean use_zerocopy_fmt = DEFAULT_USE_ZEROCOPY;
- ms_debug_fenter();
-
use_zerocopy_fmt = ms_ini_get_boolean("general:use zerocopy", DEFAULT_USE_ZEROCOPY);
- for (it_format = 0; format_table[it_format].format != MEDIA_FORMAT_MAX; it_format++) {
- if (g_strrstr(format_type, format_table[it_format].format_name)) {
- mime = format_table[it_format].format;
+ for (it_format = 0; video_format_table[it_format].format != MEDIA_FORMAT_MAX; it_format++) {
+ if (g_strrstr(format_type, video_format_table[it_format].format_name)) {
+ mime = video_format_table[it_format].format;
break;
}
}
if (use_zerocopy_fmt) {
- for (it_format = 0; zerocopy_fmt_table[it_format].format != MEDIA_FORMAT_MAX; it_format++) {
- if (g_strrstr(format_type, zerocopy_fmt_table[it_format].format_name)) {
- mime = zerocopy_fmt_table[it_format].format;
+ for (it_format = 0; zerocopy_video_format_table[it_format].format != MEDIA_FORMAT_MAX; it_format++) {
+ if (g_strrstr(format_type, zerocopy_video_format_table[it_format].format_name)) {
+ mime = zerocopy_video_format_table[it_format].format;
break;
}
}
}
- ms_debug_fleave();
+ ms_info("mime[0x%x]", mime);
return mime;
}