From 529cd8b8b57afdd3410dec21a9fe778243722c02 Mon Sep 17 00:00:00 2001 From: chen0088 Date: Fri, 24 Jun 2022 10:38:46 +0800 Subject: [PATCH 1/5] jpeg quality adapt Signed-off-by: chen0088 --- .../hdi_impl/src/dstream_operator/dcamera_steam.cpp | 10 ++++++---- .../src/listener/dcamera_photo_surface_listener.cpp | 6 +++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp b/camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp index 678ba0d7..026a0b43 100644 --- a/camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp +++ b/camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp @@ -281,11 +281,13 @@ DCamRetCode DCameraStream::ReturnDCameraBuffer(const DCameraBuffer &buffer) if (dcStreamProducer_ != nullptr) { if (dcStreamInfo_->intent_ == StreamIntent::VIDEO) { int32_t size = (dcStreamInfo_->width_) * (dcStreamInfo_->height_) * YUV_WIDTH_RATIO / YUV_HEIGHT_RATIO; - int64_t timeStamp = static_cast(GetCurrentLocalTimeStamp()); - surfaceBuffer->GetExtraData()->ExtraSet("dataSize", size); - surfaceBuffer->GetExtraData()->ExtraSet("isKeyFrame", (int32_t)0); - surfaceBuffer->GetExtraData()->ExtraSet("timeStamp", timeStamp); + } else if (dcStreamInfo_->intent_ == StreamIntent::STILL_CAPTURE) { + int32_t size = buffer.size_; } + int64_t timeStamp = static_cast(GetCurrentLocalTimeStamp()); + surfaceBuffer->GetExtraData()->ExtraSet("dataSize", size); + surfaceBuffer->GetExtraData()->ExtraSet("isKeyFrame", (int32_t)0); + surfaceBuffer->GetExtraData()->ExtraSet("timeStamp", timeStamp); int ret = dcStreamProducer_->FlushBuffer(surfaceBuffer, fence, flushConf); if (ret != 0) { DHLOGI("FlushBuffer error: %d", ret); diff --git a/services/cameraservice/cameraoperator/client/src/listener/dcamera_photo_surface_listener.cpp b/services/cameraservice/cameraoperator/client/src/listener/dcamera_photo_surface_listener.cpp index e3dd5e56..b6de33da 100644 --- a/services/cameraservice/cameraoperator/client/src/listener/dcamera_photo_surface_listener.cpp +++ b/services/cameraservice/cameraoperator/client/src/listener/dcamera_photo_surface_listener.cpp @@ -48,7 +48,11 @@ void DCameraPhotoSurfaceListener::OnBufferAvailable() do { char *address = static_cast(buffer->GetVirAddr()); - int32_t size = static_cast(buffer->GetSize()); + int32_t size = -1; + buffer->GetExtraData()->ExtraGet("dataSize", size); + if (size <= 0) { + size = static_cast(buffer->GetSize()); + } if ((address == nullptr) || (size <= 0)) { DHLOGE("DCameraPhotoSurfaceListener invalid params, size: %d", size); break; -- Gitee From b9c294f937bc80c59a265e9d464fb3fa3518e7de Mon Sep 17 00:00:00 2001 From: chen0088 Date: Fri, 24 Jun 2022 11:25:54 +0800 Subject: [PATCH 2/5] jpeg quality adapt Signed-off-by: chen0088 --- camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp b/camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp index 026a0b43..d6f4c432 100644 --- a/camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp +++ b/camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp @@ -279,10 +279,11 @@ DCamRetCode DCameraStream::ReturnDCameraBuffer(const DCameraBuffer &buffer) .timestamp = 0 }; if (dcStreamProducer_ != nullptr) { + int32_t size = -1; if (dcStreamInfo_->intent_ == StreamIntent::VIDEO) { - int32_t size = (dcStreamInfo_->width_) * (dcStreamInfo_->height_) * YUV_WIDTH_RATIO / YUV_HEIGHT_RATIO; + size = (dcStreamInfo_->width_) * (dcStreamInfo_->height_) * YUV_WIDTH_RATIO / YUV_HEIGHT_RATIO; } else if (dcStreamInfo_->intent_ == StreamIntent::STILL_CAPTURE) { - int32_t size = buffer.size_; + size = buffer.size_; } int64_t timeStamp = static_cast(GetCurrentLocalTimeStamp()); surfaceBuffer->GetExtraData()->ExtraSet("dataSize", size); -- Gitee From 29ec6df52dacdbfc9f8e0ab5870d493085833473 Mon Sep 17 00:00:00 2001 From: chen0088 Date: Mon, 27 Jun 2022 16:48:32 +0800 Subject: [PATCH 3/5] jpeg quality adapt Signed-off-by: chen0088 --- .../src/dstream_operator/dcamera_steam.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp b/camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp index d6f4c432..21b2b04d 100644 --- a/camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp +++ b/camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp @@ -279,16 +279,20 @@ DCamRetCode DCameraStream::ReturnDCameraBuffer(const DCameraBuffer &buffer) .timestamp = 0 }; if (dcStreamProducer_ != nullptr) { - int32_t size = -1; if (dcStreamInfo_->intent_ == StreamIntent::VIDEO) { - size = (dcStreamInfo_->width_) * (dcStreamInfo_->height_) * YUV_WIDTH_RATIO / YUV_HEIGHT_RATIO; + int32_t size = (dcStreamInfo_->width_) * (dcStreamInfo_->height_) * YUV_WIDTH_RATIO / YUV_HEIGHT_RATIO; + int64_t timeStamp = static_cast(GetCurrentLocalTimeStamp()); + surfaceBuffer->GetExtraData()->ExtraSet("dataSize", size); + surfaceBuffer->GetExtraData()->ExtraSet("isKeyFrame", (int32_t)0); + surfaceBuffer->GetExtraData()->ExtraSet("timeStamp", timeStamp); } else if (dcStreamInfo_->intent_ == StreamIntent::STILL_CAPTURE) { - size = buffer.size_; + int32_t size = buffer.size_; + int64_t timeStamp = static_cast(GetCurrentLocalTimeStamp()); + surfaceBuffer->GetExtraData()->ExtraSet("dataSize", size); + surfaceBuffer->GetExtraData()->ExtraSet("isKeyFrame", (int32_t)0); + surfaceBuffer->GetExtraData()->ExtraSet("timeStamp", timeStamp); } - int64_t timeStamp = static_cast(GetCurrentLocalTimeStamp()); - surfaceBuffer->GetExtraData()->ExtraSet("dataSize", size); - surfaceBuffer->GetExtraData()->ExtraSet("isKeyFrame", (int32_t)0); - surfaceBuffer->GetExtraData()->ExtraSet("timeStamp", timeStamp); + int ret = dcStreamProducer_->FlushBuffer(surfaceBuffer, fence, flushConf); if (ret != 0) { DHLOGI("FlushBuffer error: %d", ret); -- Gitee From f113fd4c2e6c3099309e83fa6052277d2c681e63 Mon Sep 17 00:00:00 2001 From: chen0088 Date: Mon, 27 Jun 2022 17:22:17 +0800 Subject: [PATCH 4/5] jpeg quality adapt Signed-off-by: chen0088 --- camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp b/camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp index 21b2b04d..1438e0e8 100644 --- a/camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp +++ b/camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp @@ -279,20 +279,18 @@ DCamRetCode DCameraStream::ReturnDCameraBuffer(const DCameraBuffer &buffer) .timestamp = 0 }; if (dcStreamProducer_ != nullptr) { + int64_t timeStamp = static_cast(GetCurrentLocalTimeStamp()); if (dcStreamInfo_->intent_ == StreamIntent::VIDEO) { int32_t size = (dcStreamInfo_->width_) * (dcStreamInfo_->height_) * YUV_WIDTH_RATIO / YUV_HEIGHT_RATIO; - int64_t timeStamp = static_cast(GetCurrentLocalTimeStamp()); surfaceBuffer->GetExtraData()->ExtraSet("dataSize", size); surfaceBuffer->GetExtraData()->ExtraSet("isKeyFrame", (int32_t)0); surfaceBuffer->GetExtraData()->ExtraSet("timeStamp", timeStamp); } else if (dcStreamInfo_->intent_ == StreamIntent::STILL_CAPTURE) { int32_t size = buffer.size_; - int64_t timeStamp = static_cast(GetCurrentLocalTimeStamp()); surfaceBuffer->GetExtraData()->ExtraSet("dataSize", size); surfaceBuffer->GetExtraData()->ExtraSet("isKeyFrame", (int32_t)0); surfaceBuffer->GetExtraData()->ExtraSet("timeStamp", timeStamp); } - int ret = dcStreamProducer_->FlushBuffer(surfaceBuffer, fence, flushConf); if (ret != 0) { DHLOGI("FlushBuffer error: %d", ret); -- Gitee From 7172f7dfa22c68dad0f0edd7760089cc253fdd0e Mon Sep 17 00:00:00 2001 From: chen0088 Date: Mon, 27 Jun 2022 17:40:01 +0800 Subject: [PATCH 5/5] jpeg quality adapt Signed-off-by: chen0088 --- camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp b/camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp index 1438e0e8..a42fce74 100644 --- a/camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp +++ b/camera_hdf/hdi_impl/src/dstream_operator/dcamera_steam.cpp @@ -250,8 +250,7 @@ DCamRetCode DCameraStream::GetDCameraBuffer(DCameraBuffer &buffer) DCamRetCode DCameraStream::ReturnDCameraBuffer(const DCameraBuffer &buffer) { shared_ptr imageBuffer = nullptr; - map, tuple, int, int>>::iterator iter; - for (iter = bufferConfigMap_.begin(); iter != bufferConfigMap_.end(); ++iter) { + for (auto iter = bufferConfigMap_.begin(); iter != bufferConfigMap_.end(); ++iter) { if (buffer.index_ == iter->first->GetIndex()) { imageBuffer = iter->first; break; -- Gitee