ошибка: использование необъявленного идентификатора AMediaCodec_releaseOutputBuffer (Android NDK) - PullRequest
0 голосов
/ 05 августа 2020

Я получаю эти неопределенные ошибки для функций NDK:

 In file included from /home/user/orwell2/myapp_flutter_app/android/app/src/main/cpp/MediaCodecDecoder.cpp:5:
  /home/user/myapp3/myapp_flutter/android/app/src/main/cpp/MediaCodecDecodedFrame.h:24:3: error: use of undeclared identifier 'AMediaCodec_releaseOutputBuffer'
                  AMediaCodec_releaseOutputBuffer(aMediaCodec, outputBufferIndex, false);
                  ^
  /home/user/myapp3/myapp_flutter/android/app/src/main/cpp/MediaCodecDecoder.cpp:31:22: error: use of undeclared identifier 'AMediaFormat_new'; did you mean 'AMediaFormat'?
          format.reset(AMediaFormat_new());
                       ^
  /home/user/Android/Sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/media/NdkMediaFormat.h:47:29: note: 'AMediaFormat' declared here
  typedef struct AMediaFormat AMediaFormat;
                              ^

Но я включил его заголовки:

#include "media/NdkMediaFormat.h"
#include "media/NdkMediaMuxer.h"
#include "media/NdkMediaCodec.h"
#include "media/NdkMediaExtractor.h"

, и у меня не было ошибок включения. Я строю на Android Studio. Раньше это работало, теперь нет. Я понятия не имею, что может быть причиной этого.

Я также пробовал

#include <NdkImage.h>
#include <NdkImageReader.h>
#include <NdkMediaCodec.h>
#include <NdkMediaCrypto.h>
#include <NdkMediaDrm.h>
#include <NdkMediaError.h>
#include <NdkMediaExtractor.h>
#include <NdkMediaFormat.h>
#include <NdkMediaMuxer.h>

, как здесь сказано: https://developer.android.com/ndk/reference/group/media, но это не сработало.

Моя версия NDK - 21.3.6528147 и

    minSdkVersion 18
    targetSdkVersion 28

Я также пробовал ndk 21.1.6352462

1 Ответ

0 голосов
/ 05 августа 2020

Решение: увеличить минимальную версию sdk до 21, потому что именно там были вставлены эти функции

    minSdkVersion 21
...