* Get the mime type for a container
*/
const char*
-muxer_container_mimetype(muxer_container_type_t mc, int video)
+muxer_container_type2mime(muxer_container_type_t mc, int video)
{
const char *str;
/**
- * Convert a string to a container type
+ * Convert a container name to a container type
*/
muxer_container_type_t
muxer_container_txt2type(const char *str)
}
+/**
+ * Convert a mime-string to a container type
+ */
+muxer_container_type_t
+muxer_container_mime2type(const char *str)
+{
+ muxer_container_type_t mc;
+
+ if(!str)
+ return MC_UNKNOWN;
+
+ mc = str2val(str, container_video_mime);
+ if(mc == -1)
+ mc = str2val(str, container_audio_mime);
+
+ if(mc == -1)
+ return MC_UNKNOWN;
+
+ return mc;
+}
+
+
/**
* Create a new muxer
*/
muxer_suffix(muxer_t *m, const struct streaming_start *ss)
{
const char *mime;
+ muxer_container_type_t mc;
int video;
if(!m || !ss)
mime = m->m_mime(m, ss);
video = memcmp("audio", mime, 5);
+ mc = muxer_container_mime2type(mime);
- return muxer_container_suffix(m->m_container, video);
+ return muxer_container_suffix(mc, video);
}
} muxer_t;
-// type <==> txt converters
-const char * muxer_container_type2txt(muxer_container_type_t mc);
-muxer_container_type_t muxer_container_txt2type(const char *str);
-const char* muxer_container_mimetype(muxer_container_type_t mc, int video);
-const char* muxer_container_suffix (muxer_container_type_t mc, int video);
+// type <==> string converters
+const char * muxer_container_type2txt (muxer_container_type_t mc);
+const char* muxer_container_type2mime (muxer_container_type_t mc, int video);
+
+muxer_container_type_t muxer_container_txt2type (const char *str);
+muxer_container_type_t muxer_container_mime2type (const char *str);
+
+const char* muxer_container_suffix(muxer_container_type_t mc, int video);
// Muxer factory
muxer_t *muxer_create(muxer_container_type_t mc);
mc = MC_UNKNOWN;
if(has_video)
- return muxer_container_mimetype(mc, 1);
+ return muxer_container_type2mime(mc, 1);
else if(has_audio)
- return muxer_container_mimetype(mc, 0);
+ return muxer_container_type2mime(mc, 0);
else
- return muxer_container_mimetype(MC_UNKNOWN, 0);
+ return muxer_container_type2mime(MC_UNKNOWN, 0);
}
}
if(has_video)
- return muxer_container_mimetype(m->m_container, 1);
+ return muxer_container_type2mime(m->m_container, 1);
else if(has_audio)
- return muxer_container_mimetype(m->m_container, 0);
+ return muxer_container_type2mime(m->m_container, 0);
else
- return muxer_container_mimetype(MC_UNKNOWN, 0);
+ return muxer_container_type2mime(MC_UNKNOWN, 0);
}
}
fname = strdup(de->de_filename);
- content = muxer_container_mimetype(de->de_mc, 1);
+ content = muxer_container_type2mime(de->de_mc, 1);
postfix = muxer_container_suffix(de->de_mc, 1);
pthread_mutex_unlock(&global_lock);