Camera: Set input timestamp before returning depth jpegs

The depth jpeg result and image timestamps must always match.
Set the depth jpeg output surface timestamp accordingly before
returning the resulting output buffer.

Bug: 142011420
Test: atest
cts/tests/camera/src/android/hardware/camera2/cts/StillCaptureTest.java#testDynamicDepthCapture

Change-Id: I2d70367d3cc60014d24cc138e4ca882b2111e161
gugelfrei
Emilian Peev 5 years ago
parent 16639a6e00
commit 90a839f661

@ -247,7 +247,7 @@ int64_t DepthCompositeStream::getNextFailingInputLocked(int64_t *currentTs /*ino
return ret;
}
status_t DepthCompositeStream::processInputFrame(const InputFrame &inputFrame) {
status_t DepthCompositeStream::processInputFrame(nsecs_t ts, const InputFrame &inputFrame) {
status_t res;
sp<ANativeWindow> outputANW = mOutputSurface;
ANativeWindowBuffer *anb;
@ -370,6 +370,13 @@ status_t DepthCompositeStream::processInputFrame(const InputFrame &inputFrame) {
return NO_MEMORY;
}
res = native_window_set_buffers_timestamp(mOutputSurface.get(), ts);
if (res != OK) {
ALOGE("%s: Stream %d: Error setting timestamp: %s (%d)", __FUNCTION__,
getStreamId(), strerror(-res), res);
return res;
}
ALOGV("%s: Final jpeg size: %zu", __func__, finalJpegSize);
uint8_t* header = static_cast<uint8_t *> (dstBuffer) +
(gb->getWidth() - sizeof(struct camera3_jpeg_blob));
@ -459,7 +466,7 @@ bool DepthCompositeStream::threadLoop() {
}
}
auto res = processInputFrame(mPendingInputFrames[currentTs]);
auto res = processInputFrame(currentTs, mPendingInputFrames[currentTs]);
Mutex::Autolock l(mMutex);
if (res != OK) {
ALOGE("%s: Failed processing frame with timestamp: %" PRIu64 ": %s (%d)", __FUNCTION__,

@ -97,7 +97,7 @@ private:
size_t maxJpegSize, uint8_t jpegQuality,
std::vector<std::unique_ptr<Item>>* items /*out*/);
std::unique_ptr<ImagingModel> getImagingModel();
status_t processInputFrame(const InputFrame &inputFrame);
status_t processInputFrame(nsecs_t ts, const InputFrame &inputFrame);
// Buffer/Results handling
void compilePendingInputLocked();

Loading…
Cancel
Save