/* general */
#define DEFAULT_GENERATE_DOT FALSE
#define DEFAULT_USE_DECODEBIN FALSE
+#define DEFAULT_USE_ZEROCOPY FALSE
#define DEFAULT_QUEUE "queue"
#define DEFAULT_FILTER "capsfilter"
#define DEFAULT_TYPEFIND "typefind"
gchar *ms_ini_get_string(const char *ini_path, const char *default_str);
/**
+ * @brief Read boolean value from ini file.
+ */
+gboolean ms_ini_get_boolean(const char *ini_path, gboolean default_value);
+
+/**
* @brief Reads comma-separated string list from ini file.
*/
void ms_ini_read_list(const char *key, gchar ***list);
#include "media_streamer_priv.h"
#include "media_streamer_util.h"
+static const format_s zerocopy_fmt_table[] = {
+ {MEDIA_FORMAT_I420, "S420"},
+ {MEDIA_FORMAT_NV12, "SN12"},
+ {MEDIA_FORMAT_NV12T, "ST12"},
+ {MEDIA_FORMAT_NV21, "SN21"},
+ {MEDIA_FORMAT_MAX, NULL}
+};
+
static const format_s format_table[] = {
/* Audio - ENCODED */
{MEDIA_FORMAT_L16, "audio/x-raw"},
return g_strdup(result_str);
}
+gboolean ms_ini_get_boolean(const char *ini_path, gboolean default_value)
+{
+ gboolean result_value = default_value;
+
+ ms_retvm_if(ini_path == NULL, default_value, "Invalid ini path");
+ ms_debug_fenter();
+
+ if (__ms_get_ini_instance())
+ result_value = iniparser_getboolean(__ms_get_ini_instance(), ini_path, default_value);
+
+ ms_info("%s :result value(%d)", ini_path, result_value);
+ ms_debug_fleave();
+
+ return result_value;
+}
+
void ms_ini_read_list(const char *key, gchar ***list)
{
const gchar *str;
{
gchar *format_name = NULL;
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 (mime == format_table[it_format].format) {
format_name = format_table[it_format].format_name;
}
}
+ 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;
+ break;
+ }
+ }
+ }
+
if (!format_name)
ms_warning("Not supported this mimetype[0x%x]", mime);
{
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;
}
}
+ 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;
+ break;
+ }
+ }
+ }
+
ms_debug_fleave();
return mime;