MP4 HEVC fix

This commit is contained in:
Erik Zandvliet 2015-10-05 17:08:18 +02:00
parent 01472ca88d
commit b493976f90
2 changed files with 11 additions and 3 deletions

View file

@ -369,6 +369,7 @@ namespace MP4 {
case 0x61616320: case 0x61616320:
return ((AAC *)this)->toPrettyString(indent); return ((AAC *)this)->toPrettyString(indent);
break; break;
case 0x68766331:
case 0x68657631: case 0x68657631:
return ((HEV1 *)this)->toPrettyString(indent); return ((HEV1 *)this)->toPrettyString(indent);
break; break;

View file

@ -387,15 +387,22 @@ namespace Mist {
if (tmpContent.getType() == "avcC"){ if (tmpContent.getType() == "avcC"){
myMeta.tracks[trackNo].init = std::string(tmpContent.payload(),tmpContent.payloadSize()); 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].type = "video";
myMeta.tracks[trackNo].codec = "HEVC"; myMeta.tracks[trackNo].codec = "HEVC";
if (!myMeta.tracks[trackNo].width){ if (!myMeta.tracks[trackNo].width){
myMeta.tracks[trackNo].width = ((MP4::VisualSampleEntry&)tmpBox).getWidth(); myMeta.tracks[trackNo].width = ((MP4::VisualSampleEntry&)tmpBox).getWidth();
myMeta.tracks[trackNo].height = ((MP4::VisualSampleEntry&)tmpBox).getHeight(); myMeta.tracks[trackNo].height = ((MP4::VisualSampleEntry&)tmpBox).getHeight();
} }
MP4::Box tmpBox2 = ((MP4::VisualSampleEntry&)tmpBox).getCLAP(); MP4::Box tmpBox2 = tmpBox;
myMeta.tracks[trackNo].init = std::string(tmpBox2.payload(),tmpBox2.payloadSize()); 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"){ }else if (tmpType == "mp4a" || tmpType == "aac " || tmpType == "ac-3"){
myMeta.tracks[trackNo].type = "audio"; myMeta.tracks[trackNo].type = "audio";
myMeta.tracks[trackNo].channels = ((MP4::AudioSampleEntry&)tmpBox).getChannelCount(); myMeta.tracks[trackNo].channels = ((MP4::AudioSampleEntry&)tmpBox).getChannelCount();