diff --git a/services/core/jni/com_android_server_tv_TvInputHal.cpp b/services/core/jni/com_android_server_tv_TvInputHal.cpp index 93c4829568f9e..6c2a894a3a6af 100644 --- a/services/core/jni/com_android_server_tv_TvInputHal.cpp +++ b/services/core/jni/com_android_server_tv_TvInputHal.cpp @@ -390,7 +390,11 @@ int JTvInputHal::addOrUpdateStream(int deviceId, int streamId, const sp [&result, &sidebandStream](Result res, const native_handle_t* handle) { result = res; if (res == Result::OK) { - sidebandStream = handle; + if (handle) { + sidebandStream = native_handle_clone(handle); + } else { + result = Result::UNKNOWN; + } } }); if (result != Result::OK) { @@ -398,7 +402,7 @@ int JTvInputHal::addOrUpdateStream(int deviceId, int streamId, const sp result); return UNKNOWN_ERROR; } - connection.mSourceHandle = NativeHandle::create((native_handle_t*)sidebandStream, false); + connection.mSourceHandle = NativeHandle::create((native_handle_t*)sidebandStream, true); } connection.mSurface = surface; if (connection.mSurface != nullptr) {