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 d6f4c43..21b2b04 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);