From 832939e6900730c8ec7c8d3cf1e7851d49f78b1b Mon Sep 17 00:00:00 2001 From: Lajos Molnar Date: Wed, 23 May 2018 14:58:26 -0700 Subject: [PATCH] MediaCodec: make setVideoScalingMode usable for IGBP-based clients These don't get access to this internal parameter of native window, yet require it for each buffer. Bug: 79493409 Change-Id: Ib16e9af58b26c7b66a7e4bb466433fcee7b7d080 --- media/jni/android_media_MediaCodec.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp index 16f6284b60314..3490ff8fcf432 100644 --- a/media/jni/android_media_MediaCodec.cpp +++ b/media/jni/android_media_MediaCodec.cpp @@ -742,7 +742,12 @@ status_t JMediaCodec::setParameters(const sp &msg) { void JMediaCodec::setVideoScalingMode(int mode) { if (mSurfaceTextureClient != NULL) { + // this works for components that queue to surface native_window_set_scaling_mode(mSurfaceTextureClient.get(), mode); + // also signal via param for components that queue to IGBP + sp msg = new AMessage; + msg->setInt32("android._video-scaling", mode); + (void)mCodec->setParameters(msg); } }