From de1e368d8ac5891e03e664a0ea385b896b48db0b Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Tue, 5 Jan 2016 15:21:14 -0800 Subject: stagefright: Forward-port HFR and HSR support * CAF commit bd42a7ac3a60c0d8a079b4567484c9b006bac8ad upstream Change-Id: I457ccab603647f3139ea2199a544f64ac3d1a214 --- media/libmediaplayerservice/StagefrightRecorder.cpp | 13 +++++++++++-- media/libmediaplayerservice/StagefrightRecorder.h | 4 ++-- 2 files changed, 13 insertions(+), 4 deletions(-) (limited to 'media/libmediaplayerservice') diff --git a/media/libmediaplayerservice/StagefrightRecorder.cpp b/media/libmediaplayerservice/StagefrightRecorder.cpp index 6baca4d..189bf8f 100644 --- a/media/libmediaplayerservice/StagefrightRecorder.cpp +++ b/media/libmediaplayerservice/StagefrightRecorder.cpp @@ -1622,12 +1622,12 @@ status_t StagefrightRecorder::setupVideoEncoder( } } - setupCustomVideoEncoderParams(cameraSource, format); - format->setInt32("bitrate", mVideoBitRate); format->setInt32("frame-rate", mFrameRate); format->setInt32("i-frame-interval", mIFramesIntervalSec); + setupCustomVideoEncoderParams(cameraSource, format); + if (mVideoTimeScale > 0) { format->setInt32("time-scale", mVideoTimeScale); } @@ -2094,4 +2094,13 @@ status_t StagefrightRecorder::setSourcePause(bool pause) { } return err; } + +void StagefrightRecorder::setupCustomVideoEncoderParams(sp cameraSource, + sp &format) { + + // Setup HFR if needed + AVUtils::get()->HFRUtils().initializeHFR(cameraSource->getFormat(), format, + mMaxFileDurationUs, mVideoEncoder); +} + } // namespace android diff --git a/media/libmediaplayerservice/StagefrightRecorder.h b/media/libmediaplayerservice/StagefrightRecorder.h index 72dc77b..d93fc3b 100644 --- a/media/libmediaplayerservice/StagefrightRecorder.h +++ b/media/libmediaplayerservice/StagefrightRecorder.h @@ -154,8 +154,8 @@ protected: status_t setupCameraSource(sp *cameraSource); status_t setupAudioEncoder(const sp& writer); virtual status_t setupVideoEncoder(sp cameraSource, sp *source); - virtual void setupCustomVideoEncoderParams(sp /*cameraSource*/, - sp &/*format*/) {} + virtual void setupCustomVideoEncoderParams(sp cameraSource, + sp &format); virtual bool setCustomVideoEncoderMime(const video_encoder videoEncoder, sp format); // Encoding parameter handling utilities -- cgit v1.1