diff --git a/lib/mp4.cpp b/lib/mp4.cpp index 53e428cb..7a63ebf6 100644 --- a/lib/mp4.cpp +++ b/lib/mp4.cpp @@ -369,6 +369,7 @@ namespace MP4 { case 0x61616320: return ((AAC *)this)->toPrettyString(indent); break; + case 0x68766331: case 0x68657631: return ((HEV1 *)this)->toPrettyString(indent); break; diff --git a/src/input/input_mp4.cpp b/src/input/input_mp4.cpp index ea87841d..deb1aa23 100644 --- a/src/input/input_mp4.cpp +++ b/src/input/input_mp4.cpp @@ -387,15 +387,22 @@ namespace Mist { if (tmpContent.getType() == "avcC"){ myMeta.tracks[trackNo].init = std::string(tmpContent.payload(),tmpContent.payloadSize()); } - }else if (tmpType == "hev1"){ + }else if (tmpType == "hev1" || tmpType == "hvc1"){ myMeta.tracks[trackNo].type = "video"; myMeta.tracks[trackNo].codec = "HEVC"; if (!myMeta.tracks[trackNo].width){ myMeta.tracks[trackNo].width = ((MP4::VisualSampleEntry&)tmpBox).getWidth(); myMeta.tracks[trackNo].height = ((MP4::VisualSampleEntry&)tmpBox).getHeight(); } - MP4::Box tmpBox2 = ((MP4::VisualSampleEntry&)tmpBox).getCLAP(); - myMeta.tracks[trackNo].init = std::string(tmpBox2.payload(),tmpBox2.payloadSize()); + MP4::Box tmpBox2 = tmpBox; + MP4::Box tmpContent = ((MP4::VisualSampleEntry&)tmpBox2).getCLAP(); + if (tmpContent.getType() == "hvcC"){ + myMeta.tracks[trackNo].init = std::string(tmpContent.payload(),tmpContent.payloadSize()); + } + tmpContent = ((MP4::VisualSampleEntry&)tmpBox2).getPASP(); + if (tmpContent.getType() == "hvcC"){ + myMeta.tracks[trackNo].init = std::string(tmpContent.payload(),tmpContent.payloadSize()); + } }else if (tmpType == "mp4a" || tmpType == "aac " || tmpType == "ac-3"){ myMeta.tracks[trackNo].type = "audio"; myMeta.tracks[trackNo].channels = ((MP4::AudioSampleEntry&)tmpBox).getChannelCount();