summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/StagefrightRecorder.cpp
diff options
context:
space:
mode:
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;
}