!51 重构surface第二弹

Merge pull request !51 from BruceXuXu/refractor_surface
This commit is contained in:
openharmony_ci
2022-04-13 08:44:34 +00:00
committed by Gitee
4 changed files with 8 additions and 7 deletions
@@ -287,9 +287,9 @@ DCamRetCode DCameraStream::ReturnDCameraBuffer(const shared_ptr<DCameraBuffer> &
if (dcStreamInfo_->intent_ == StreamIntent::VIDEO) {
int32_t size = (dcStreamInfo_->width_) * (dcStreamInfo_->height_) * YUV_WIDTH_RATIO / YUV_HEIGHT_RATIO;
int64_t timeStamp = static_cast<int64_t>(GetCurrentLocalTimeStamp());
surfaceBuffer->ExtraSet("dataSize", size);
surfaceBuffer->ExtraSet("isKeyFrame", (int32_t)0);
surfaceBuffer->ExtraSet("timeStamp", timeStamp);
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) {
@@ -47,8 +47,8 @@ void DCameraPhotoSurfaceListener::OnBufferAvailable()
}
do {
int32_t size;
buffer->ExtraGet("dataSize", size);
int32_t size = -1;
buffer->GetExtraData()->ExtraGet("dataSize", size);
if (size <= 0) {
size = static_cast<int32_t>(buffer->GetSize());
}
@@ -311,7 +311,7 @@ int32_t EncodeDataProcess::FeedEncoderInputBuffer(std::shared_ptr<DataBuffer>& i
}
inputTimeStampUs_ = GetEncoderTimeStamp();
DHLOGD("Encoder input buffer size %d, timeStamp %lld.", inputBuffer->Size(), (long long)inputTimeStampUs_);
surfacebuffer->ExtraSet("timeStamp", inputTimeStampUs_);
surfacebuffer->GetExtraData()->ExtraSet("timeStamp", inputTimeStampUs_);
BufferFlushConfig flushConfig = { {0, 0, sourceConfig_.GetWidth(), sourceConfig_.GetHeight()}, 0};
SurfaceError ret = encodeProducerSurface_->FlushBuffer(surfacebuffer, -1, flushConfig);
if (ret != SURFACE_ERROR_OK) {
@@ -291,7 +291,8 @@ int32_t EncodeDataProcess::FeedEncoderInputBuffer(std::shared_ptr<DataBuffer>& i
}
inputTimeStampUs_ = GetEncoderTimeStamp();
DHLOGD("Encoder input buffer size %d, timeStamp %lld.", inputBuffer->Size(), (long long)inputTimeStampUs_);
surfacebuffer->ExtraSet("timeStamp", inputTimeStampUs_);
surfacebuffer->GetExtraData()->ExtraGet("timeStamp", inputTimeStampUs_);
BufferFlushConfig flushConfig = { {0, 0, sourceConfig_.GetWidth(), sourceConfig_.GetHeight()}, 0};
SurfaceError ret = encodeProducerSurface_->FlushBuffer(surfacebuffer, -1, flushConfig);
if (ret != SURFACE_ERROR_OK) {