Loading media/libstagefright/HevcUtils.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -162,6 +162,8 @@ status_t HevcParameterSets::parseVps(const uint8_t* data, size_t size) { reader.skipBits(1); // Skip vps_max_layers_minus_1 reader.skipBits(6); // Skip vps_max_sub_layers_minus1 reader.skipBits(3); // Skip vps_temporal_id_nesting_flags reader.skipBits(1); // Skip reserved Loading Loading @@ -422,7 +424,7 @@ status_t HevcParameterSets::makeHvcc(uint8_t *hvcc, size_t *hvccSize, uint8_t *header = hvcc; header[0] = 1; header[1] = (kGeneralProfileSpace << 6) | (kGeneralTierFlag << 5) | kGeneralProfileIdc; header[1] = (generalProfileSpace << 6) | (generalTierFlag << 5) | generalProfileIdc; header[2] = (compatibilityFlags >> 24) & 0xff; header[3] = (compatibilityFlags >> 16) & 0xff; header[4] = (compatibilityFlags >> 8) & 0xff; Loading media/libstagefright/Utils.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -303,6 +303,8 @@ static void parseHevcProfileLevelFromHvcc(const uint8_t *ptr, size_t size, sp<AM const static ALookup<uint8_t, OMX_VIDEO_HEVCPROFILETYPE> profiles { { 1, OMX_VIDEO_HEVCProfileMain }, { 2, OMX_VIDEO_HEVCProfileMain10 }, // use Main for Main Still Picture decoding { 3, OMX_VIDEO_HEVCProfileMain }, }; // set profile & level if they are recognized Loading @@ -310,6 +312,7 @@ static void parseHevcProfileLevelFromHvcc(const uint8_t *ptr, size_t size, sp<AM OMX_VIDEO_HEVCLEVELTYPE codecLevel; if (!profiles.map(profile, &codecProfile)) { if (ptr[2] & 0x40 /* general compatibility flag 1 */) { // Note that this case covers Main Still Picture too codecProfile = OMX_VIDEO_HEVCProfileMain; } else if (ptr[2] & 0x20 /* general compatibility flag 2 */) { codecProfile = OMX_VIDEO_HEVCProfileMain10; Loading media/libstagefright/codecs/hevcdec/SoftHEVC.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ namespace android { static const CodecProfileLevel kProfileLevels[] = { { OMX_VIDEO_HEVCProfileMain, OMX_VIDEO_HEVCMainTierLevel51 }, { OMX_VIDEO_HEVCProfileMainStill, OMX_VIDEO_HEVCMainTierLevel51 }, }; SoftHEVC::SoftHEVC( Loading Loading
media/libstagefright/HevcUtils.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -162,6 +162,8 @@ status_t HevcParameterSets::parseVps(const uint8_t* data, size_t size) { reader.skipBits(1); // Skip vps_max_layers_minus_1 reader.skipBits(6); // Skip vps_max_sub_layers_minus1 reader.skipBits(3); // Skip vps_temporal_id_nesting_flags reader.skipBits(1); // Skip reserved Loading Loading @@ -422,7 +424,7 @@ status_t HevcParameterSets::makeHvcc(uint8_t *hvcc, size_t *hvccSize, uint8_t *header = hvcc; header[0] = 1; header[1] = (kGeneralProfileSpace << 6) | (kGeneralTierFlag << 5) | kGeneralProfileIdc; header[1] = (generalProfileSpace << 6) | (generalTierFlag << 5) | generalProfileIdc; header[2] = (compatibilityFlags >> 24) & 0xff; header[3] = (compatibilityFlags >> 16) & 0xff; header[4] = (compatibilityFlags >> 8) & 0xff; Loading
media/libstagefright/Utils.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -303,6 +303,8 @@ static void parseHevcProfileLevelFromHvcc(const uint8_t *ptr, size_t size, sp<AM const static ALookup<uint8_t, OMX_VIDEO_HEVCPROFILETYPE> profiles { { 1, OMX_VIDEO_HEVCProfileMain }, { 2, OMX_VIDEO_HEVCProfileMain10 }, // use Main for Main Still Picture decoding { 3, OMX_VIDEO_HEVCProfileMain }, }; // set profile & level if they are recognized Loading @@ -310,6 +312,7 @@ static void parseHevcProfileLevelFromHvcc(const uint8_t *ptr, size_t size, sp<AM OMX_VIDEO_HEVCLEVELTYPE codecLevel; if (!profiles.map(profile, &codecProfile)) { if (ptr[2] & 0x40 /* general compatibility flag 1 */) { // Note that this case covers Main Still Picture too codecProfile = OMX_VIDEO_HEVCProfileMain; } else if (ptr[2] & 0x20 /* general compatibility flag 2 */) { codecProfile = OMX_VIDEO_HEVCProfileMain10; Loading
media/libstagefright/codecs/hevcdec/SoftHEVC.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ namespace android { static const CodecProfileLevel kProfileLevels[] = { { OMX_VIDEO_HEVCProfileMain, OMX_VIDEO_HEVCMainTierLevel51 }, { OMX_VIDEO_HEVCProfileMainStill, OMX_VIDEO_HEVCMainTierLevel51 }, }; SoftHEVC::SoftHEVC( Loading