mirror of
https://github.com/Divested-Mobile/DivestOS-Build.git
synced 2024-10-01 01:35:54 -04:00
39 lines
1.9 KiB
Diff
39 lines
1.9 KiB
Diff
|
From c68f62f62fc3ffe077098e45f26ffa2fb3300d6c Mon Sep 17 00:00:00 2001
|
||
|
From: Rakesh Kumar <rakesh.kumar@ittiam.com>
|
||
|
Date: Thu, 30 May 2024 11:17:48 +0000
|
||
|
Subject: [PATCH] StagefrightRecoder: Disabling B-frame support
|
||
|
|
||
|
Disabling b-frame support from stagefright recorder in case of
|
||
|
audio source as mic and video source is surface use case only
|
||
|
because screen recorder with microphone doesn't play in sync
|
||
|
if b-frame is enabled.
|
||
|
If the audio source selected is INTERNAL (i.e. device) or
|
||
|
MIC_AND_INTERNAL with screen recorder then b frame is supported.
|
||
|
|
||
|
Bug: 288549440
|
||
|
Test: manually check screen recording with audio from mic has audio/video in synch
|
||
|
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:af685c66bab17b71fe1624f76b5d55628f79e6fa)
|
||
|
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:da3407f7688f35eb2dce79f1405feeb182241a3c)
|
||
|
Merged-In: I4098655eb9687fb633085333bc140634441566e6
|
||
|
Change-Id: I4098655eb9687fb633085333bc140634441566e6
|
||
|
---
|
||
|
media/libmediaplayerservice/StagefrightRecorder.cpp | 5 +++++
|
||
|
1 file changed, 5 insertions(+)
|
||
|
|
||
|
diff --git a/media/libmediaplayerservice/StagefrightRecorder.cpp b/media/libmediaplayerservice/StagefrightRecorder.cpp
|
||
|
index a7344de402b..c66def491b9 100644
|
||
|
--- a/media/libmediaplayerservice/StagefrightRecorder.cpp
|
||
|
+++ b/media/libmediaplayerservice/StagefrightRecorder.cpp
|
||
|
@@ -1843,6 +1843,11 @@ status_t StagefrightRecorder::setupVideoEncoder(
|
||
|
|
||
|
if (tsLayers > 1) {
|
||
|
uint32_t bLayers = std::min(2u, tsLayers - 1); // use up-to 2 B-layers
|
||
|
+ // TODO(b/341121900): Remove this once B frames are handled correctly in screen recorder
|
||
|
+ // use case in case of mic only
|
||
|
+ if (mAudioSource == AUDIO_SOURCE_MIC && mVideoSource == VIDEO_SOURCE_SURFACE) {
|
||
|
+ bLayers = 0;
|
||
|
+ }
|
||
|
uint32_t pLayers = tsLayers - bLayers;
|
||
|
format->setString(
|
||
|
"ts-schema", AStringPrintf("android.generic.%u+%u", pLayers, bLayers));
|