diff options
author | Manikanta Kanamarlapudi <kmanikan@codeaurora.org> | 2015-09-28 16:03:17 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2015-10-07 10:40:35 -0700 |
commit | a9961f6786d048c247cd41363e2b784e1a5aeab4 (patch) | |
tree | eedcde0f3c776a49b360ed4c674db5ec3ac633bf | |
parent | b3f0834aa448d6b4bf8dbddaff4fbcefa3ede422 (diff) | |
download | frameworks_av-a9961f6786d048c247cd41363e2b784e1a5aeab4.zip frameworks_av-a9961f6786d048c247cd41363e2b784e1a5aeab4.tar.gz frameworks_av-a9961f6786d048c247cd41363e2b784e1a5aeab4.tar.bz2 |
libstagefright: Set Intra period
set intra period for HEVC encoder
Change-Id: Id2b3e71b746eaaed76118126d44ad83458d68520
-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; |