Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fa33327e authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix HEVC profile idc parsing in HevcParameterSets" into pi-dev

parents b31f96ff c7771064
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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
@@ -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;
+3 −0
Original line number Diff line number Diff line
@@ -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
@@ -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;
+2 −1
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ namespace android {

static const CodecProfileLevel kProfileLevels[] = {
    { OMX_VIDEO_HEVCProfileMain,      OMX_VIDEO_HEVCMainTierLevel51 },
    { OMX_VIDEO_HEVCProfileMainStill, OMX_VIDEO_HEVCMainTierLevel51 },
};

SoftHEVC::SoftHEVC(