fixed file suffix for pass-through recording

This commit is contained in:
John Törnblom 2012-11-01 13:11:11 +01:00
parent 3cd6336314
commit 4515f5a2d1
5 changed files with 42 additions and 15 deletions

View file

@ -89,7 +89,7 @@ static struct strtab container_video_file_suffix[] = {
* 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;
@ -141,7 +141,7 @@ muxer_container_type2txt(muxer_container_type_t mc)
/**
* 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)
@ -159,6 +159,28 @@ 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
*/
@ -200,6 +222,7 @@ const char*
muxer_suffix(muxer_t *m, const struct streaming_start *ss)
{
const char *mime;
muxer_container_type_t mc;
int video;
if(!m || !ss)
@ -207,8 +230,9 @@ muxer_suffix(muxer_t *m, const struct streaming_start *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);
}

View file

@ -56,11 +56,14 @@ typedef struct muxer {
} 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);

View file

@ -90,11 +90,11 @@ pass_muxer_mime(muxer_t* m, const struct streaming_start *ss)
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);
}

View file

@ -56,11 +56,11 @@ tvh_muxer_mime(muxer_t* m, const struct streaming_start *ss)
}
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);
}

View file

@ -805,7 +805,7 @@ page_dvrfile(http_connection_t *hc, const char *remain, void *opaque)
}
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);