summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--media/libavextensions/stagefright/AVExtensions.h5
-rw-r--r--media/libavextensions/stagefright/AVUtils.cpp6
-rw-r--r--media/libstagefright/ACodec.cpp4
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;