Как зарегистрировать декодер ala c в мультимедийных рамках? - PullRequest
3 голосов
/ 03 марта 2020

В mp4 экстракторе мы добавили поддержку для анализа ALA C кодированных кадров. Добавлен SoftOMXComponent для ALA C декодера

Следующие файлы, которые мы изменили для регистрации MIME-типа декодера:

  1. OMXUtils. cpp внутри функции GetComponentRole () добавили следующий код: static const MimeToRole kMimeToRole[] = { { "audio/alac","audio_decoder.alac", "audio_encoder.alac" },}

  2. В SoftOMXPlugin. cpp добавлено { "OMX.google.alac.decoder", "allgoalacdec", "audio_decoder.alac" } к kComponents []

  3. В media_codecs_google_audio. xml Добавлена ​​запись для ALA C, как показано ниже:

  4. Inside media / libstagefright / Utils. cpp Добавлена ​​запись для ALA C в

    stati c const struct mime_conv_t mimeLookup [] = {{"audio / ala c", AUDIO_FORMAT_ALAC},}

5. Внутри / libstagefright / ACode c. cpp at: status_t ACode c :: configureCode c () Добавлено для ALA C

else if (!strcasecmp(mime, "audio/alac")) {
    int32_t numChannels;
    int32_t sampleRate;
    if (!msg->findInt32("channel-count", &numChannels)
            || !msg->findInt32("sample-rate", &sampleRate)) {
        /* We do not want to setup the ALAC codec.Let the
         * Plugin do all the work*/
        err = OK;
    } else {
        err = setupRawAudioFormat(
                kPortIndexOutput,
                sampleRate,
                numChannels);
        err = OK;
    }
}

и Inside status_t:

ACodec::getPortFormat(){

    case OMX_AUDIO_CodingALAC:
        {
            OMX_AUDIO_PARAM_ALACTYPE params;

            InitOMXParams(&params);

            params.nPortIndex = portIndex;


            err = mOMXNode->getParameter(

                    (OMX_INDEXTYPE)OMX_IndexParamAudioAlac, &params, sizeof(params));

            if (err != OK) {

                return err;

            }

            notify->setString("mime", "audio/alac");

            notify->setInt32("channel-count", params.nChannels);

            notify->setInt32("sample-rate", params.nSamplingRate);

            // notify->setInt32("bits-per-sample", params.nBitsPerSample);

            break;

        }
}

Мы добавили вышеуказанные изменения и создайте libstagefright и скопируйте на доску. media_codecs_google_audio. xml скопировано в аппаратное обеспечение / vendor / et c

но все же мы становимся ниже e rror:

NuPlayerDecoder: не удалось создать декодер аудио / ala c

...