afa8a910f065246c8c59386b8b0d9d96669ac85c |
|
15-Mar-2017 |
Shuzhen Wang <shuzhenwang@google.com> |
Camera: Do not crash if detachNextBuffer fails Test: Camera CTS Bug: 33777818 Change-Id: I965d741df6ce6bdb701dbe1d721cf42ea53c7a40
/frameworks/av/services/camera/libcameraservice/device3/Camera3StreamSplitter.cpp
|
05d19b08f3affa6fa8407e779f67e7ad1c1ca84f |
|
01-Mar-2017 |
Mathias Agopian <mathias@google.com> |
fallout of cleaning-up libutils includes Test: run & compile Bug: n/a Change-Id: I63585ed5a764b9ce7af2187b79ca0c83e683fd7f
/frameworks/av/services/camera/libcameraservice/device3/Camera3StreamSplitter.cpp
|
bee0f0a5e7aa19aa7c59de03b508985b68bc6b5e |
|
24-Jan-2017 |
Shuzhen Wang <shuzhenwang@google.com> |
Camera: Rework StreamSplitter for camera use cases - Merge notifyRequestedSurfaces into getBufferLocked, so that during getBufferLocked, the stream splitter gets to know which outputs the current request is on. - Reserve buffer slot in the output queue during getBufferLocked instead of during onFrameAvailable. So if there is no slot/buffer available, no new request is sent to HAL. This aligns with current cameraservice logic. Do not hold the lock while calling attachBuffer to output queue because it could block for a slow consumer. - Instead of setting the consumer buffer count of input buffer queue to maximum of all shared outputs, set it to sum of them. By doing this, In the case of a slow consumer, other consumers sharing the same stream won't be impacted. - Handle the case where onBufferReleased not being fired for buffer replaced by attachBuffer/queueBuffer. - Add function to check the return value of onFrameAvailable so that when output is abandoned, the error code is propagated back to queueBuffer. Test: Camera CTS, and CTS with StreamSplitter enabled for all implementation defined use cases. Bug: 33777818 Change-Id: I863f501d5283bbe70c71e66b4d37d690484b90fa
/frameworks/av/services/camera/libcameraservice/device3/Camera3StreamSplitter.cpp
|
a141c5f3cc2214a96f250999edacc3bd4d454601 |
|
24-Jan-2017 |
Shuzhen Wang <shuzhenwang@google.com> |
Camera: StreamSplitter: Return overwritten buffer to input For Async buffer queue, if a pending buffer is overwritten by an incoming buffer, onBufferReleased callback isn't called. But the stream splitter depends on the onBufferReleased to return buffer to input. Fix the problem by checking the bufferReplaced flag in QueueBufferOutput. Test: Camera CTS Bug: 33777818 Change-Id: I270c7bae7873797ae9b050782828b5a124d3eff9
/frameworks/av/services/camera/libcameraservice/device3/Camera3StreamSplitter.cpp
|
758c215374dba397dabe17b8e96dd38593c09dd7 |
|
11-Jan-2017 |
Shuzhen Wang <shuzhenwang@google.com> |
Camera: Combine handling of deferred surface and shared surface - Refactor the OutputConfiguration to contain isDeferred and isShared flag, and not contain NULL surface. - Unify the handling of deferred surface and shared surface. Test: Camera CTS, and manual testing of GoogleCamera use cases Bug: 33777818 Change-Id: I5dd3472f0f2133699b0e9fbdd8ba456956222746
/frameworks/av/services/camera/libcameraservice/device3/Camera3StreamSplitter.cpp
|
0129d52df9794d6fdf06be304722b5cb51a2eab5 |
|
31-Oct-2016 |
Shuzhen Wang <shuzhenwang@google.com> |
camera2: Add support for secondary surface for stream - Enhance OutputConfiguration to contain multiple surfaces for one underlying stream. - Create Camera3SharedOutputStream to handle streams with multiple surfaces. - Create Camera3StreamSplitter to handle buffer flows between camera and multiple consumers. Test: cts, and manually test camera preview/snapshot/recording Bug: 33777818 Change-Id: Ia010c3cc9d9b4bd5b9ea03cc42fe4e0a0d8033f1
/frameworks/av/services/camera/libcameraservice/device3/Camera3StreamSplitter.cpp
|