]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
fixed file suffix for pass-through recording
authorJohn Törnblom <john.tornblom@gmail.com>
Thu, 1 Nov 2012 12:11:11 +0000 (13:11 +0100)
committerJohn Törnblom <john.tornblom@gmail.com>
Thu, 1 Nov 2012 12:49:54 +0000 (13:49 +0100)
src/muxer.c
src/muxer.h
src/muxer_pass.c
src/muxer_tvh.c
src/webui/webui.c

index 763219f4f0fd2f69daa48f6436944fe0b8cbc15b..b0c9d99f8fd9fd689348bcdb7760f95ec9da77bb 100644 (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);
 }
 
 
index 77767f3e258492c7edca010cc4827b939504f92e..766c5dd4239d021d9b707ce5dc37770aa688fb23 100644 (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);
index 20a986a75fe013be9681d466bf8a2d117ae5aa6d..965f130cce199e2c7bd35abb04294b6bca053d32 100644 (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);
 }
 
 
index dd335145f4c39eb67afce3b73b185ca2954b1a08..8555ba9129c0aa0c10923d99f632cc210d02af20 100644 (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);
 }
 
 
index 35ffce49a18c0730d20a8779861815732747771d..6e5ab39c838fd6f82a219bcb33ce236cf2841b07 100644 (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);