From 33281f2af453d9b4be4647d7e76b5b5d34eedb48 Mon Sep 17 00:00:00 2001 From: z00421080 Date: Thu, 12 Aug 2021 20:27:32 -0700 Subject: [PATCH] IssueNo:#I45BS2 Description:solve blue border when player Sig:multimedia Feature or Bgfix:Feature Binary Source:No Signed-off-by: z00421080 --- .../cameraApp/src/main/cpp/camera_manager.cpp | 23 +++++++++++++++++-- media/camera_sample.cpp | 4 ++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/cameraApp/cameraApp/src/main/cpp/camera_manager.cpp b/cameraApp/cameraApp/src/main/cpp/camera_manager.cpp index 88af737..e7a79fa 100755 --- a/cameraApp/cameraApp/src/main/cpp/camera_manager.cpp +++ b/cameraApp/cameraApp/src/main/cpp/camera_manager.cpp @@ -112,6 +112,8 @@ static int32_t SampleGetThmFromJpg(const char* jpegPath, uint32_t* dstSize) fstat(fd, &stStat); pszFile = (char*)malloc(stStat.st_size); if ((pszFile == nullptr) || (stStat.st_size < 6)) { /* 6 min size of thumb head */ + fflush(fpJpg); + fsync(fileno(fpJpg)); fclose(fpJpg); if (pszFile) { free(pszFile); @@ -122,6 +124,8 @@ static int32_t SampleGetThmFromJpg(const char* jpegPath, uint32_t* dstSize) } if (fread(pszFile, stStat.st_size, 1, fpJpg) <= 0) { + fflush(fpJpg); + fsync(fileno(fpJpg)); fclose(fpJpg); free(pszFile); printf("fread jpeg src fail!\n"); @@ -173,6 +177,8 @@ int32_t SampleGetdcfinfo(const char* srcJpgPath, const char* dstThmPath) u32WritenSize += s32RtnVal; } if (fpTHM != nullptr) { + fflush(fpTHM); + fsync(fileno(fpTHM)); fclose(fpTHM); fpTHM = 0; } @@ -197,6 +203,8 @@ static void SampleSaveCapture(const char* p, uint32_t size, int type, const char fp = fopen(tmpFile, "w+"); if (fp) { fwrite(p, 1, size, fp); + fflush(fp); + fsync(fileno(fp)); fclose(fp); } } @@ -211,6 +219,8 @@ static void SampleSaveCapture(const char* p, uint32_t size, int type, const char return; } fwrite(p, 1, size, fp); + fflush(fp); + fsync(fileno(fp)); fclose(fp); if (type == 0) { @@ -397,8 +407,13 @@ SampleCameraStateMng::~SampleCameraStateMng() recorder_->Release(); delete recorder_; } - if (gRecFd_ >= 0) - close (gRecFd_); + if (gRecFd_ >= 0) { + FILE *fp = fdopen(gRecFd_, "w+"); + fflush(fp); + fsync(gRecFd_); + fclose(fp); + close(gRecFd_); + } if (fc_) { delete fc_; fc_ = nullptr; @@ -431,6 +446,10 @@ void SampleCameraStateMng::StartRecord(Surface *mSurface) return; } if (gRecFd_ > 0) { + FILE *fp = fdopen(gRecFd_, "w+"); + fflush(fp); + fsync(gRecFd_); + fclose(fp); close(gRecFd_); gRecFd_ = -1; } diff --git a/media/camera_sample.cpp b/media/camera_sample.cpp index 6db6991..4f1a09f 100755 --- a/media/camera_sample.cpp +++ b/media/camera_sample.cpp @@ -196,6 +196,10 @@ public: recorder_ = nullptr; } if (recordFd_ != -1) { + FILE *fp = fdopen(recordFd_, "w+"); + fflush(fp); + fsync(recordFd_); + fclose(fp); close(recordFd_); recordFd_ = -1; } -- Gitee