diff options
-rw-r--r-- | media/libavextensions/stagefright/AVExtensions.h | 5 | ||||
-rw-r--r-- | media/libavextensions/stagefright/AVUtils.cpp | 6 | ||||
-rw-r--r-- | media/libstagefright/ACodec.cpp | 4 |
3 files changed, 15 insertions, 0 deletions
diff --git a/media/libavextensions/stagefright/AVExtensions.h b/media/libavextensions/stagefright/AVExtensions.h index 832fc28..fc04df1 100644 --- a/media/libavextensions/stagefright/AVExtensions.h +++ b/media/libavextensions/stagefright/AVExtensions.h @@ -34,6 +34,7 @@ #include <system/audio.h> #include <camera/ICamera.h> #include <media/mediarecorder.h> +#include <media/IOMX.h> namespace android { @@ -183,6 +184,10 @@ struct AVUtils { virtual void cacheCaptureBuffers(sp<ICamera> camera, video_encoder encoder); virtual const char *getCustomCodecsLocation(); + virtual void setIntraPeriod( + int nPFrames, int nBFrames, const sp<IOMX> OMXhandle, + IOMX::node_id nodeID); + private: HEVCMuxer mHEVCMuxer; // ----- NO TRESSPASSING BEYOND THIS LINE ------ diff --git a/media/libavextensions/stagefright/AVUtils.cpp b/media/libavextensions/stagefright/AVUtils.cpp index 9219fc2..324ff9b 100644 --- a/media/libavextensions/stagefright/AVUtils.cpp +++ b/media/libavextensions/stagefright/AVUtils.cpp @@ -169,6 +169,12 @@ const char *AVUtils::getCustomCodecsLocation() { return "/etc/media_codecs.xml"; } +void AVUtils::setIntraPeriod( + int, int, const sp<IOMX>, + IOMX::node_id) { + return; +} + // ----- NO TRESSPASSING BEYOND THIS LINE ------ AVUtils::AVUtils() {} diff --git a/media/libstagefright/ACodec.cpp b/media/libstagefright/ACodec.cpp index 43006f3..78ab3db 100644 --- a/media/libstagefright/ACodec.cpp +++ b/media/libstagefright/ACodec.cpp @@ -54,6 +54,8 @@ #include "include/avc_utils.h" +#include <stagefright/AVExtensions.h> + namespace android { // OMX errors are directly mapped into status_t range if @@ -3510,6 +3512,8 @@ status_t ACodec::setupHEVCEncoderParameters(const sp<AMessage> &msg) { frameRate = (float)tmp; } + AVUtils::get()->setIntraPeriod(setPFramesSpacing(iFrameInterval, frameRate), 0, mOMX, mNode); + OMX_VIDEO_PARAM_HEVCTYPE hevcType; InitOMXParams(&hevcType); hevcType.nPortIndex = kPortIndexOutput; |