Android-x86
Fork
捐款

  • R/O
  • HTTP
  • SSH
  • HTTPS

hardware-libcamera: 提交

hardware/libcamera


Commit MetaInfo

修訂8c2ca9870bdc8d2af308988fbe4a64056ac49938 (tree)
時間2020-07-12 01:05:40
作者katie <kwchuiaa@conn...>
Commiterkatie

Log Message

reset all runtime variables, free all heaps on close

Change Summary

差異

--- a/CameraHardware.cpp
+++ b/CameraHardware.cpp
@@ -169,6 +169,26 @@ bool CameraHardware::PowerOff()
169169 return true;
170170 }
171171
172+void CameraHardware::ResetRuntimeData(){
173+ mWin = 0;
174+ mPreviewWinFmt = PIXEL_FORMAT_UNKNOWN;
175+ mPreviewWinWidth = 0;
176+ mPreviewWinHeight = 0;
177+ mRawPreviewFrameSize = 0;
178+ mRawPreviewWidth = 0;
179+ mRawPreviewHeight = 0;
180+ mPreviewFrameSize = 0;
181+ mPreviewFmt = PIXEL_FORMAT_UNKNOWN;
182+ mRawPictureBufferSize = 0;
183+ mRecordingFrameSize = 0;
184+ mRecFmt = PIXEL_FORMAT_UNKNOWN;
185+ mJpegPictureBufferSize = 0;
186+ mRecordingEnabled = 0;
187+ mMsgEnabled = 0;
188+ mCurrentPreviewFrame = 0;
189+ mCurrentRecordingFrame = 0;
190+}
191+
172192 CameraHardware::CameraHardware(const hw_module_t* module, char* devLocation) :
173193 mWin(0),
174194 mPreviewWinFmt(PIXEL_FORMAT_UNKNOWN),
@@ -234,13 +254,8 @@ CameraHardware::CameraHardware(const hw_module_t* module, char* devLocation) :
234254 initDefaultParameters();
235255 }
236256
237-CameraHardware::~CameraHardware()
257+void CameraHardware::ReleaseAllHeap()
238258 {
239- ALOGD("CameraHardware::destruct");
240- if (mPreviewThread != 0) {
241- stopPreview();
242- }
243-
244259 // Release all memory heaps
245260 if (mRawPreviewHeap) {
246261 mRawPreviewHeap->release(mRawPreviewHeap);
@@ -266,6 +281,16 @@ CameraHardware::~CameraHardware()
266281 mJpegPictureHeap->release(mJpegPictureHeap);
267282 mJpegPictureHeap = NULL;
268283 }
284+}
285+
286+CameraHardware::~CameraHardware()
287+{
288+ ALOGD("CameraHardware::destruct");
289+ if (mPreviewThread != 0) {
290+ stopPreview();
291+ }
292+
293+ ReleaseAllHeap();
269294
270295 // Power off camera
271296 PowerOff();
@@ -788,6 +813,8 @@ void CameraHardware::releaseCamera()
788813 if (mPreviewThread != 0) {
789814 stopPreview();
790815 }
816+ ReleaseAllHeap();
817+ ResetRuntimeData();
791818 }
792819
793820 status_t CameraHardware::dumpCamera(int fd)
--- a/CameraHardware.h
+++ b/CameraHardware.h
@@ -174,6 +174,9 @@ private:
174174 bool PowerOn();
175175 bool PowerOff();
176176 bool NegotiatePreviewFormat(struct preview_stream_ops* win);
177+ void ReleaseAllHeap();
178+ void ResetRuntimeData();
179+
177180
178181 public:
179182 /* Constructs Camera instance.
Show on old repository browser