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

Commit c2f0dbe9 authored by Harish Mahendrakar's avatar Harish Mahendrakar Committed by Cherrypicker Worker
Browse files

mpeg4dec: Add support for Simple Profile Level 6

Also changed the if else block to a switch case for readability

Bug: 224458012
Test: Test playback of Simple Profile Level 6 clip

Change-Id: I14f877de268cb9d1cda5e7e8884871b629d905df
(cherry picked from commit ae437a9e)
Merged-In: I14f877de268cb9d1cda5e7e8884871b629d905df
parent 74ff7dde
Loading
Loading
Loading
Loading
+48 −17
Original line number Diff line number Diff line
@@ -107,27 +107,58 @@ PV_STATUS DecodeVOLHeader(VideoDecData *video, int layer)
#ifndef PV_TOLERATE_VOL_ERRORS
        if (layer)                                                      /*    */
        {
            /* support SSPL0-2  */
            if (tmpvar != 0x10 && tmpvar != 0x11 && tmpvar != 0x12 &&
                    tmpvar != 0xA1 && tmpvar != 0xA2  && tmpvar != 0xA3/* Core SP@L1-L3 */)
            switch (tmpvar)
            {
                /* Simple Scalable Profile Levels */
                case 0x10:
                case 0x11:
                case 0x12:
                /* Core Scalable Profile Levels */
                case 0xA1:
                case 0xA2:
                case 0xA3:
                    // Do Nothing, the cases listed above are supported values
                    break;
                default:
                    // Unsupport profile level
                    return PV_FAIL;
              }
        }
        else
        {
            /* support SPL0-3 & SSPL0-2   */
            if (tmpvar != 0x01 && tmpvar != 0x02 && tmpvar != 0x03 && tmpvar != 0x08 &&
                    /* While not technically supported, try to decode SPL4&SPL5 files as well. */
                    /* We'll fail later if the size is too large.  This is to allow playback of */
                    /* some <=CIF files generated by other encoders. */
                    tmpvar != 0x04 && tmpvar != 0x05 &&
                    tmpvar != 0x10 && tmpvar != 0x11 && tmpvar != 0x12 &&
                    tmpvar != 0x21 && tmpvar != 0x22 &&  /* Core Profile Levels */
                    tmpvar != 0xA1 && tmpvar != 0xA2 && tmpvar != 0xA3 &&
                    tmpvar != 0xF0 && tmpvar != 0xF1 && /* Advanced Simple Profile Levels*/
                    tmpvar != 0xF2 && tmpvar != 0xF3 &&
                    tmpvar != 0xF4 && tmpvar != 0xF5)
            switch (tmpvar)
            {
                /* Simple Profile Levels */
                case 0x01:
                case 0x02:
                case 0x03:
                case 0x04:
                case 0x05:
                case 0x06:
                case 0x08:
                case 0x10:
                case 0x11:
                case 0x12:
                /* Core Profile Levels */
                case 0x21:
                case 0x22:
                case 0xA1:
                case 0xA2:
                case 0xA3:
                /* Advanced Simple Profile Levels*/
                case 0xF0:
                case 0xF1:
                case 0xF2:
                case 0xF3:
                case 0xF4:
                case 0xF5:
                    // Do Nothing, the cases listed above are supported values
                    break;
                default:
                    // Unsupport profile level
                    return PV_FAIL;
            }
        }
#else
        profile = tmpvar;
#endif