Skip to content

Commit

Permalink
Add stride test
Browse files Browse the repository at this point in the history
Add a test to check the stride is being set correctly when provided in
the stream configuration

Signed-off-by: William Vinnicombe <[email protected]>
  • Loading branch information
will-v-pi committed Dec 13, 2023
1 parent 39fb6f7 commit 50b4ed1
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 0 deletions.
41 changes: 41 additions & 0 deletions tests/stride_test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#!/usr/bin/python3

import time

from picamera2 import MappedArray, Picamera2, libcamera


def pre_callback(request):
# Set the size, to make preview window and MappedArray remapping work
assert request.config["main"]["stride"] == stride
request.config["main"]["size"] = full_size
request.stream_map["main"].configuration.size = libcamera.Size(*full_size)


def post_callback(request):
# Make right side grey
with MappedArray(request, "main") as m1:
a1 = m1.array
a1[:, -a1.shape[1] // 2:] = 70


picam2 = Picamera2(0)

full_size = (1920, 1080)
half_size = (full_size[0] // 2, full_size[1])
# Calculate stride for full frame
full_config = picam2.create_preview_configuration({"size": full_size})
picam2.configure(full_config)
stride = picam2.camera_config["main"]["stride"]

# Configure as half frame, with full frame stride so right side is blank
picam2.pre_callback = pre_callback
picam2.post_callback = post_callback
main_config = picam2.create_preview_configuration(
main={"size": half_size, "stride": stride}
)
picam2.configure(main_config)
picam2.start_preview(True)

picam2.start()
time.sleep(2)
1 change: 1 addition & 0 deletions tests/test_list.txt
Original file line number Diff line number Diff line change
Expand Up @@ -77,3 +77,4 @@ tests/qt_gl_preview_test.py
tests/stop_slow_framerate.py
tests/allocator_test.py
tests/allocator_leak_test.py
tests/stride_test.py

0 comments on commit 50b4ed1

Please sign in to comment.