]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
add SCT_FLAC, issue #4828
authorJaroslav Kysela <perex@perex.cz>
Fri, 5 Jan 2018 17:00:12 +0000 (18:00 +0100)
committerJaroslav Kysela <perex@perex.cz>
Fri, 5 Jan 2018 17:00:12 +0000 (18:00 +0100)
src/esfilter.h
src/libav.c
src/muxer/muxer_mkv.c
src/streaming.c
src/tvheadend.h

index 7c7cf22f2303a5e6a40035e6a1d2524725f195f2..a036f52ef9269a16625a69ecd7d4defc24cc5bc9 100644 (file)
@@ -51,7 +51,7 @@ extern const idclass_t esfilter_class_other;
 #define ESF_MASK_AUDIO \
   (SCT_MASK(SCT_MPEG2AUDIO) | SCT_MASK(SCT_AC3) | SCT_MASK(SCT_AAC) | \
    SCT_MASK(SCT_EAC3) | SCT_MASK(SCT_MP4A) | SCT_MASK(SCT_VORBIS) | \
-   SCT_MASK(SCT_OPUS))
+   SCT_MASK(SCT_OPUS) | SCT_MASK(SCT_FLAC))
 
 #define ESF_MASK_TELETEXT \
   SCT_MASK(SCT_TELETEXT)
index f4e66b55b78184a97b44b5e2b31fe25e524e8a18..bab90a0b464715f12529ac183f52d8edb63db2e9 100644 (file)
@@ -199,6 +199,9 @@ codec_id2streaming_component_type(enum AVCodecID id)
   case AV_CODEC_ID_DVB_TELETEXT:
     type = SCT_TELETEXT;
     break;
+  case AV_CODEC_ID_FLAC:
+    type = SCT_FLAC;
+    break;
   case AV_CODEC_ID_NONE:
     type = SCT_NONE;
     break;
index fab7c078b0aea3a5c4006c0d2955d024da8a29fb..7a5694cd8e62d130e5a6d33f138d9708729d966d 100644 (file)
@@ -359,6 +359,11 @@ mk_build_tracks(mk_muxer_t *mk, streaming_start_t *ss)
       codec_id = "A_OPUS";
       break;
 
+    case SCT_FLAC:
+      tracktype = 2;
+      codec_id = "A_FLAC";
+      break;
+
     case SCT_DVBSUB:
       if (mk->dvbsub_skip)
         goto disable;
index 2c311b64bcdb813a8d6134bd327cbb9982925285..2d55f210a10b71bccbcb282ed35a8e87af32a875 100644 (file)
@@ -555,13 +555,15 @@ static struct strtab streamtypetab[] = {
   { "UNKNOWN",    SCT_UNKNOWN },
   { "RAW",        SCT_RAW },
   { "PCR",        SCT_PCR },
+  { "CAT",        SCT_CAT },
+  { "CA",         SCT_CA },
+  { "HBBTV",      SCT_HBBTV },
   { "MPEG2VIDEO", SCT_MPEG2VIDEO },
   { "MPEG2AUDIO", SCT_MPEG2AUDIO },
   { "H264",       SCT_H264 },
   { "AC3",        SCT_AC3 },
   { "TELETEXT",   SCT_TELETEXT },
   { "DVBSUB",     SCT_DVBSUB },
-  { "CA",         SCT_CA },
   { "AAC",        SCT_AAC },
   { "MPEGTS",     SCT_MPEGTS },
   { "TEXTSUB",    SCT_TEXTSUB },
@@ -571,10 +573,9 @@ static struct strtab streamtypetab[] = {
   { "VORBIS",     SCT_VORBIS },
   { "HEVC",       SCT_HEVC },
   { "VP9",        SCT_VP9 },
-  { "HBBTV",      SCT_HBBTV },
   { "THEORA",     SCT_THEORA },
   { "OPUS",       SCT_OPUS },
-  { "CAT",        SCT_CAT },
+  { "FLAC",       SCT_FLAC },
 };
 
 /**
index 8bd94ef382bfd0ef280c26516c15aa371f000d31..2e3eb04db02aefcee56f16191a7835caaad344db 100644 (file)
@@ -307,7 +307,8 @@ typedef enum {
   SCT_VP9,
   SCT_THEORA,
   SCT_OPUS,
-  SCT_LAST = SCT_OPUS
+  SCT_FLAC,
+  SCT_LAST = SCT_FLAC
 } streaming_component_type_t;
 
 #define SCT_MASK(t) (1 << (t))
@@ -319,7 +320,7 @@ typedef enum {
 #define SCT_ISAUDIO(t) ((t) == SCT_MPEG2AUDIO || (t) == SCT_AC3 || \
                        (t) == SCT_AAC  || (t) == SCT_MP4A || \
                        (t) == SCT_EAC3 || (t) == SCT_VORBIS || \
-                       (t) == SCT_OPUS)
+                       (t) == SCT_OPUS || (t) == SCT_FLAC)
 
 #define SCT_ISAV(t) (SCT_ISVIDEO(t) || SCT_ISAUDIO(t))