本文主要是介绍【android 更改三方相机配流size】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
强制修改三方相机配流size, 拍照和预览都可以
声明:
本帖用的是安卓开源代码:
http://aospxref.com/android-14.0.0_r2/xref/frameworks/av/services/camera/libcameraservice/api2/CameraDeviceClient.cpp#867
修改方案
867 binder::Status CameraDeviceClient::createStream(
868 const hardware::camera2::params::OutputConfiguration &outputConfiguration,
869 /*out*/
870 int32_t* newStreamId) {
871 ATRACE_CALL();
872 ... ...
917 OutputStreamInfo streamInfo;//用这个对象可以修改配流size
918 bool isStreamInfoValid = false;
919 const std::vector<int32_t> &sensorPixelModesUsed =
920 outputConfiguration.getSensorPixelModesUsed();
921 for (auto& bufferProducer : bufferProducers) {
922 // Don't create multiple streams for the same target surface
923 sp<IBinder> binder = IInterface::asBinder(bufferProducer);
924 ssize_t index = mStreamMap.indexOfKey(binder);
925 if (index != NAME_NOT_FOUND) {
926 String8 msg = String8::format("Camera %s: Surface already has a stream created for it "
927 "(ID %zd)", mCameraIdStr.string(), index);
928 ALOGW("%s: %s", __FUNCTION__, msg.string());
929 return STATUS_ERROR(CameraService::ERROR_ALREADY_EXISTS, msg.string());
930 }... ...
983 } else {//if(String8(mClientPackageName) == "com.xxx.xxx")//{// 直接修改streamInfo.width 、streamInfo.height即可//}
984 err = mDevice->createStream(surfaces, deferredConsumer, streamInfo.width,
985 streamInfo.height, streamInfo.format, streamInfo.dataSpace,
986 static_cast<camera_stream_rotation_t>... ...
1031
1032 return res;
1033 }
这篇关于【android 更改三方相机配流size】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!