summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/StagefrightRecorder.cpp
diff options
context:
space:
mode:
authorSteve Kondik <steve@cyngn.com>2015-12-13 12:57:26 -0800
committerSteve Kondik <steve@cyngn.com>2015-12-13 13:16:01 -0800
commit715a22fefe8118d07370a95b48135607ba5fb956 (patch)
tree030ec9c9a8ed481a91a0ee5096003ca8f751a03e /media/libmediaplayerservice/StagefrightRecorder.cpp
parent0c19cf7478f4dc10f2739bf6eefa1887a79b48cf (diff)
downloadframeworks_av-715a22fefe8118d07370a95b48135607ba5fb956.zip
frameworks_av-715a22fefe8118d07370a95b48135607ba5fb956.tar.gz
frameworks_av-715a22fefe8118d07370a95b48135607ba5fb956.tar.bz2
stagefright: Finish support for HEVC muxing
* Forward-port CAF L-MR1 code to fill in stubs. Change-Id: I6c07e803ad4fe3ef5286f61667b5ca11380db984
Diffstat (limited to 'media/libmediaplayerservice/StagefrightRecorder.cpp')
-rw-r--r--media/libmediaplayerservice/StagefrightRecorder.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/media/libmediaplayerservice/StagefrightRecorder.cpp b/media/libmediaplayerservice/StagefrightRecorder.cpp
index 9d4aa97..81d8e7b 100644
--- a/media/libmediaplayerservice/StagefrightRecorder.cpp
+++ b/media/libmediaplayerservice/StagefrightRecorder.cpp
@@ -1278,7 +1278,8 @@ status_t StagefrightRecorder::checkVideoEncoderCapabilities() {
(mVideoEncoder == VIDEO_ENCODER_H263 ? MEDIA_MIMETYPE_VIDEO_H263 :
mVideoEncoder == VIDEO_ENCODER_MPEG_4_SP ? MEDIA_MIMETYPE_VIDEO_MPEG4 :
mVideoEncoder == VIDEO_ENCODER_VP8 ? MEDIA_MIMETYPE_VIDEO_VP8 :
- mVideoEncoder == VIDEO_ENCODER_H264 ? MEDIA_MIMETYPE_VIDEO_AVC : ""),
+ mVideoEncoder == VIDEO_ENCODER_H264 ? MEDIA_MIMETYPE_VIDEO_AVC :
+ mVideoEncoder == VIDEO_ENCODER_H265 ? MEDIA_MIMETYPE_VIDEO_HEVC : ""),
false /* decoder */, true /* hwCodec */, &codecs);
if (!mCaptureFpsEnable) {
@@ -1365,8 +1366,10 @@ void StagefrightRecorder::setDefaultVideoEncoderIfNecessary() {
int videoCodec = mEncoderProfiles->getCamcorderProfileParamByName(
"vid.codec", mCameraId, CAMCORDER_QUALITY_LOW);
- if (videoCodec > VIDEO_ENCODER_DEFAULT &&
- videoCodec < VIDEO_ENCODER_LIST_END) {
+ if ((videoCodec > VIDEO_ENCODER_DEFAULT &&
+ videoCodec < VIDEO_ENCODER_LIST_END) ||
+ (videoCodec > VIDEO_ENCODER_LIST_VENDOR_START &&
+ videoCodec < VIDEO_ENCODER_LIST_VENDOR_END)) {
mVideoEncoder = (video_encoder)videoCodec;
} else {
// default to H.264 if camcorder profile not available
@@ -1544,8 +1547,12 @@ status_t StagefrightRecorder::setupCameraSource(
return OK;
}
-bool StagefrightRecorder::setCustomVideoEncoderMime(const video_encoder /*videoEncoder*/,
- sp<AMessage> /*format*/) {
+bool StagefrightRecorder::setCustomVideoEncoderMime(const video_encoder videoEncoder,
+ sp<AMessage> format) {
+ if (videoEncoder == VIDEO_ENCODER_H265) {
+ format->setString("mime", MEDIA_MIMETYPE_VIDEO_HEVC);
+ return true;
+ }
return false;
}