]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
libav_muxer: copy over header for HEVC as well
authorlekma <lekmalek@gmail.com>
Thu, 1 Oct 2015 18:14:23 +0000 (20:14 +0200)
committerJaroslav Kysela <perex@perex.cz>
Fri, 2 Oct 2015 08:42:37 +0000 (10:42 +0200)
src/muxer/muxer_libav.c

index 29b27e84cbe9b53dea6403d6fb2456cbd07e1667..f6b972ddbce2f2dbc63c0cb322bbabfc75432b74 100644 (file)
@@ -29,6 +29,7 @@
 #include "libav.h"
 #include "muxer_libav.h"
 #include "parsers/parser_avc.h"
+#include "parsers/parser_hevc.h"
 
 typedef struct lav_muxer {
   muxer_t;
@@ -108,11 +109,16 @@ lav_muxer_add_stream(lav_muxer_t *lm,
   }
 
   if(ssc->ssc_gh) {
-    if (ssc->ssc_type == SCT_H264) {
+    if (ssc->ssc_type == SCT_H264 || ssc->ssc_type == SCT_HEVC) {
       sbuf_t hdr;
       sbuf_init(&hdr);
-      isom_write_avcc(&hdr, pktbuf_ptr(ssc->ssc_gh),
-                      pktbuf_len(ssc->ssc_gh));
+      if (ssc->ssc_type == SCT_H264) {
+          isom_write_avcc(&hdr, pktbuf_ptr(ssc->ssc_gh),
+                          pktbuf_len(ssc->ssc_gh));
+      } else {
+          isom_write_hvcc(&hdr, pktbuf_ptr(ssc->ssc_gh),
+                          pktbuf_len(ssc->ssc_gh));
+      }
       c->extradata_size = hdr.sb_ptr;
       c->extradata = av_malloc(hdr.sb_ptr);
       memcpy(c->extradata, hdr.sb_data, hdr.sb_ptr);