fixed file suffix for pass-through recording
This commit is contained in:
parent
3cd6336314
commit
4515f5a2d1
5 changed files with 42 additions and 15 deletions
30
src/muxer.c
30
src/muxer.c
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
|
13
src/muxer.h
13
src/muxer.h
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue