Loading media/libmediatranscoding/transcoder/NdkCommon.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ const char* AMEDIA_MIMETYPE_VIDEO_MPEG4 = "video/mp4v-es"; const char* AMEDIA_MIMETYPE_VIDEO_H263 = "video/3gpp"; /* TODO(b/153592281) */ const char* TBD_AMEDIACODEC_PARAMETER_KEY_ALLOW_FRAME_DROP = "allow-frame-drop"; const char* TBD_AMEDIACODEC_PARAMETER_KEY_REQUEST_SYNC_FRAME = "request-sync"; const char* TBD_AMEDIACODEC_PARAMETER_KEY_VIDEO_BITRATE = "video-bitrate"; const char* TBD_AMEDIACODEC_PARAMETER_KEY_MAX_B_FRAMES = "max-bframes"; media/libmediatranscoding/transcoder/VideoTrackTranscoder.cpp +12 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ #define LOG_TAG "VideoTrackTranscoder" #include <android-base/logging.h> #include <media/NdkCommon.h> #include <media/VideoTrackTranscoder.h> #include <utils/AndroidThreads.h> Loading Loading @@ -233,7 +234,17 @@ media_status_t VideoTrackTranscoder::configureDestinationFormat( return AMEDIA_ERROR_UNSUPPORTED; } status = AMediaCodec_configure(mDecoder, mSourceFormat.get(), mSurface, NULL /* crypto */, auto decoderFormat = std::shared_ptr<AMediaFormat>(AMediaFormat_new(), &AMediaFormat_delete); if (!decoderFormat || AMediaFormat_copy(decoderFormat.get(), mSourceFormat.get()) != AMEDIA_OK) { LOG(ERROR) << "Unable to copy source format"; return AMEDIA_ERROR_INVALID_PARAMETER; } // Prevent decoder from overwriting frames that the encoder has not yet consumed. AMediaFormat_setInt32(decoderFormat.get(), TBD_AMEDIACODEC_PARAMETER_KEY_ALLOW_FRAME_DROP, 0); status = AMediaCodec_configure(mDecoder, decoderFormat.get(), mSurface, NULL /* crypto */, 0 /* flags */); if (status != AMEDIA_OK) { LOG(ERROR) << "Unable to configure video decoder: " << status; Loading media/libmediatranscoding/transcoder/include/media/NdkCommon.h +1 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ static constexpr int COLOR_FormatYUV420Flexible = 0x7F420888; static constexpr int COLOR_FormatSurface = 0x7f000789; // constants not defined in NDK extern const char* TBD_AMEDIACODEC_PARAMETER_KEY_ALLOW_FRAME_DROP; extern const char* TBD_AMEDIACODEC_PARAMETER_KEY_REQUEST_SYNC_FRAME; extern const char* TBD_AMEDIACODEC_PARAMETER_KEY_VIDEO_BITRATE; extern const char* TBD_AMEDIACODEC_PARAMETER_KEY_MAX_B_FRAMES; Loading Loading
media/libmediatranscoding/transcoder/NdkCommon.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ const char* AMEDIA_MIMETYPE_VIDEO_MPEG4 = "video/mp4v-es"; const char* AMEDIA_MIMETYPE_VIDEO_H263 = "video/3gpp"; /* TODO(b/153592281) */ const char* TBD_AMEDIACODEC_PARAMETER_KEY_ALLOW_FRAME_DROP = "allow-frame-drop"; const char* TBD_AMEDIACODEC_PARAMETER_KEY_REQUEST_SYNC_FRAME = "request-sync"; const char* TBD_AMEDIACODEC_PARAMETER_KEY_VIDEO_BITRATE = "video-bitrate"; const char* TBD_AMEDIACODEC_PARAMETER_KEY_MAX_B_FRAMES = "max-bframes";
media/libmediatranscoding/transcoder/VideoTrackTranscoder.cpp +12 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ #define LOG_TAG "VideoTrackTranscoder" #include <android-base/logging.h> #include <media/NdkCommon.h> #include <media/VideoTrackTranscoder.h> #include <utils/AndroidThreads.h> Loading Loading @@ -233,7 +234,17 @@ media_status_t VideoTrackTranscoder::configureDestinationFormat( return AMEDIA_ERROR_UNSUPPORTED; } status = AMediaCodec_configure(mDecoder, mSourceFormat.get(), mSurface, NULL /* crypto */, auto decoderFormat = std::shared_ptr<AMediaFormat>(AMediaFormat_new(), &AMediaFormat_delete); if (!decoderFormat || AMediaFormat_copy(decoderFormat.get(), mSourceFormat.get()) != AMEDIA_OK) { LOG(ERROR) << "Unable to copy source format"; return AMEDIA_ERROR_INVALID_PARAMETER; } // Prevent decoder from overwriting frames that the encoder has not yet consumed. AMediaFormat_setInt32(decoderFormat.get(), TBD_AMEDIACODEC_PARAMETER_KEY_ALLOW_FRAME_DROP, 0); status = AMediaCodec_configure(mDecoder, decoderFormat.get(), mSurface, NULL /* crypto */, 0 /* flags */); if (status != AMEDIA_OK) { LOG(ERROR) << "Unable to configure video decoder: " << status; Loading
media/libmediatranscoding/transcoder/include/media/NdkCommon.h +1 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ static constexpr int COLOR_FormatYUV420Flexible = 0x7F420888; static constexpr int COLOR_FormatSurface = 0x7f000789; // constants not defined in NDK extern const char* TBD_AMEDIACODEC_PARAMETER_KEY_ALLOW_FRAME_DROP; extern const char* TBD_AMEDIACODEC_PARAMETER_KEY_REQUEST_SYNC_FRAME; extern const char* TBD_AMEDIACODEC_PARAMETER_KEY_VIDEO_BITRATE; extern const char* TBD_AMEDIACODEC_PARAMETER_KEY_MAX_B_FRAMES; Loading