def test_capture_to_file( camera, previewing, resolution, filename_format_options, use_video_port): filename, format, options = filename_format_options camera.capture(filename, use_video_port=use_video_port, **options) if 'resize' in options: resolution = options['resize'] verify_image(filename, format, resolution)
def test_capture_sequence_to_stream( camera, previewing, resolution, use_video_port): streams = [io.BytesIO() for i in range(3)] camera.capture_sequence(streams, use_video_port=use_video_port) for stream in streams: stream.seek(0) verify_image(stream, 'jpeg', resolution)
def test_capture_sequence_to_file( camera, previewing, mode, tmpdir, use_video_port): resolution, framerate = mode filenames = [os.path.join(str(tmpdir), 'image%d.jpg' % i) for i in range(3)] camera.capture_sequence(filenames, use_video_port=use_video_port) for filename in filenames: verify_image(filename, 'jpeg', resolution)
def test_capture_continuous_to_file( camera, previewing, resolution, tmpdir, use_video_port): for i, filename in enumerate( camera.capture_continuous(os.path.join( str(tmpdir), 'image{counter:02d}.jpg'), use_video_port=use_video_port)): verify_image(filename, 'jpeg', resolution) if i == 3: break
def test_capture_to_stream( camera, previewing, resolution, format_options, use_video_port): stream = io.BytesIO() format, options = format_options if 'resize' in options: resolution = options['resize'] camera.capture(stream, format, use_video_port=use_video_port, **options) stream.seek(0) verify_image(stream, format, resolution)
def test_capture_to_file( camera, previewing, mode, filename_format_options, use_video_port): filename, format, options = filename_format_options resolution, framerate = mode if resolution == (2592, 1944) and 'resize' in options: pytest.xfail('Camera runs out of memory with this combination') camera.capture(filename, use_video_port=use_video_port, **options) if 'resize' in options: resolution = options['resize'] verify_image(filename, format, resolution)
def test_capture_sequence_to_file( camera, mode, tmpdir, use_video_port, burst): resolution, framerate = mode filenames = [os.path.join(str(tmpdir), 'image%d.jpg' % i) for i in range(3)] try: camera.capture_sequence( filenames, use_video_port=use_video_port, burst=burst) for filename in filenames: verify_image(filename, 'jpeg', resolution) except picamera.PiCameraRuntimeError: assert use_video_port and burst
def test_capture_sequence_to_stream( camera, mode, format_options, use_video_port, burst): format, options = format_options resolution, framerate = mode expected_failures(resolution, format, use_video_port, burst) streams = [io.BytesIO() for i in range(3)] camera.capture_sequence( streams, format=format, use_video_port=use_video_port, burst=burst) for stream in streams: stream.seek(0) verify_image(stream, format, resolution)
def test_capture_sequence_to_stream( camera, mode, use_video_port, burst): resolution, framerate = mode streams = [io.BytesIO() for i in range(3)] try: camera.capture_sequence( streams, use_video_port=use_video_port, burst=burst) for stream in streams: stream.seek(0) verify_image(stream, 'jpeg', resolution) except picamera.PiCameraRuntimeError: assert use_video_port and burst
def test_capture_to_stream( camera, previewing, mode, format_options, use_video_port): stream = io.BytesIO() format, options = format_options resolution, framerate = mode if resolution == (2592, 1944) and 'resize' in options: pytest.xfail('Camera runs out of memory with this combination') if 'resize' in options: resolution = options['resize'] camera.capture(stream, format, use_video_port=use_video_port, **options) stream.seek(0) verify_image(stream, format, resolution)
def test_capture_to_file( camera, previewing, mode, filename_format_options, use_video_port): filename, format, options = filename_format_options resolution, framerate = mode if resolution == (2592, 1944) and format == 'gif' and not use_video_port: pytest.xfail('Camera fails to produce output with max. res GIFs') if resolution == (2592, 1944) and format == 'bmp': pytest.xfail('Camera fails to produce output with max. res BMPs') camera.capture(filename, use_video_port=use_video_port, **options) if 'resize' in options: resolution = options['resize'] verify_image(filename, format, resolution)
def test_capture_continuous_to_stream( camera, previewing, resolution, use_video_port): stream = io.BytesIO() for i, foo in enumerate( camera.capture_continuous(stream, format='jpeg', use_video_port=use_video_port)): stream.truncate() stream.seek(0) verify_image(stream, 'jpeg', resolution) stream.seek(0) if i == 3: break
def test_capture_continuous_to_file( camera, mode, tmpdir, use_video_port, burst): resolution, framerate = mode try: for i, filename in enumerate( camera.capture_continuous(os.path.join( str(tmpdir), 'image{counter:02d}.jpg'), use_video_port=use_video_port, burst=burst)): verify_image(filename, 'jpeg', resolution) if i == 3: break except picamera.PiCameraRuntimeError: assert use_video_port and burst
def test_capture_continuous_to_file( camera, mode, ext_format_options, tempdir, use_video_port, burst): ext, format, options = ext_format_options resolution, framerate = mode expected_failures(resolution, format, use_video_port, burst) for i, filename in enumerate( camera.capture_continuous(os.path.join( tempdir, 'image{counter:02d}%s' % ext), format=format if format in RAW_FORMATS else None, use_video_port=use_video_port, burst=burst)): verify_image(filename, format, resolution) if i == 3: break
def test_capture_sequence_to_file( camera, mode, ext_format_options, tempdir, use_video_port, burst): ext, format, options = ext_format_options resolution, framerate = mode expected_failures(resolution, format, use_video_port, burst) filenames = [ os.path.join(tempdir, 'image%d%s' % (i, ext)) for i in range(3) ] camera.capture_sequence( filenames, format=format, use_video_port=use_video_port, burst=burst) for filename in filenames: verify_image(filename, format, resolution)
def test_capture_to_stream( camera, previewing, mode, format_options, use_video_port): stream = io.BytesIO() format, options = format_options resolution, framerate = mode if resolution == (2592, 1944) and format == 'gif' and not use_video_port: pytest.xfail('Camera fails to produce output with max. res GIFs') if resolution == (2592, 1944) and format == 'bmp': pytest.xfail('Camera fails to produce output with max. res BMPs') if 'resize' in options: resolution = options['resize'] camera.capture(stream, format, use_video_port=use_video_port, **options) stream.seek(0) verify_image(stream, format, resolution)
def test_capture_to_file( camera, previewing, mode, filename_format_options, use_video_port): filename, format, options = filename_format_options resolution, framerate = mode expected_failures(resolution, format, use_video_port) camera.capture( filename, # Check that in the case of cooked formats, capture correctly # derives the format from the extension format=format if format in RAW_FORMATS else None, use_video_port=use_video_port, **options) if 'resize' in options: resolution = options['resize'] verify_image(filename, format, resolution)
def test_capture_to_file(camera, previewing, mode, filename_format_options, use_video_port): filename, format, options = filename_format_options resolution, framerate = mode expected_failures(resolution, format, use_video_port) camera.capture( filename, # Check that in the case of cooked formats, capture correctly # derives the format from the extension format=format if format in RAW_FORMATS else None, use_video_port=use_video_port, **options) if 'resize' in options: resolution = options['resize'] verify_image(filename, format, resolution)
def test_capture_continuous_to_stream( camera, mode, format_options, use_video_port, burst): format, options = format_options resolution, framerate = mode expected_failures(resolution, format, use_video_port, burst) stream = io.BytesIO() for i, foo in enumerate( camera.capture_continuous(stream, format=format, use_video_port=use_video_port, burst=burst)): stream.truncate() stream.seek(0) verify_image(stream, format, resolution) stream.seek(0) if i == 3: break
def test_capture_sequence_to_stream(camera, mode, format_options, use_video_port, burst): format, options = format_options resolution, framerate = mode expected_failures(resolution, format, use_video_port) streams = [io.BytesIO() for i in range(3)] try: camera.capture_sequence(streams, format=format, use_video_port=use_video_port, burst=burst) for stream in streams: stream.seek(0) verify_image(stream, format, resolution) except picamera.PiCameraRuntimeError: assert use_video_port and burst
def test_capture_continuous_to_stream( camera, mode, use_video_port, burst): resolution, framerate = mode stream = io.BytesIO() try: for i, foo in enumerate( camera.capture_continuous(stream, format='jpeg', use_video_port=use_video_port, burst=burst)): stream.truncate() stream.seek(0) verify_image(stream, 'jpeg', resolution) stream.seek(0) if i == 3: break except picamera.PiCameraRuntimeError: assert use_video_port and burst
def test_capture_sequence_to_file(camera, mode, ext_format_options, tempdir, use_video_port, burst): ext, format, options = ext_format_options resolution, framerate = mode expected_failures(resolution, format, use_video_port) filenames = [ os.path.join(tempdir, 'image%d%s' % (i, ext)) for i in range(3) ] try: camera.capture_sequence(filenames, format=format, use_video_port=use_video_port, burst=burst) for filename in filenames: verify_image(filename, format, resolution) except picamera.PiCameraRuntimeError: assert use_video_port and burst
def test_capture_continuous_to_file(camera, mode, ext_format_options, tempdir, use_video_port, burst): ext, format, options = ext_format_options resolution, framerate = mode expected_failures(resolution, format, use_video_port) try: for i, filename in enumerate( camera.capture_continuous( os.path.join(tempdir, 'image{counter:02d}%s' % ext), format=format if format in RAW_FORMATS else None, use_video_port=use_video_port, burst=burst)): verify_image(filename, format, resolution) if i == 3: break except picamera.PiCameraRuntimeError: assert use_video_port and burst
def test_split_and_capture(camera, previewing, resolution): if resolution == (2592, 1944): pytest.xfail('Cannot encode video at max resolution') v_stream1 = tempfile.SpooledTemporaryFile() v_stream2 = tempfile.SpooledTemporaryFile() c_stream1 = tempfile.SpooledTemporaryFile() camera.start_recording(v_stream1, format='h264') try: camera.wait_recording(1) camera.capture(c_stream1, format='jpeg', use_video_port=True) camera.split_recording(v_stream2) camera.wait_recording(1) finally: camera.stop_recording() v_stream1.seek(0) v_stream2.seek(0) c_stream1.seek(0) verify_image(c_stream1, 'jpeg', resolution) verify_video(v_stream1, 'h264', resolution) verify_video(v_stream2, 'h264', resolution)
def test_split_and_capture(camera, mode): resolution, framerate = mode expected_failures(resolution, 'h264', {}) v_stream1 = tempfile.SpooledTemporaryFile() v_stream2 = tempfile.SpooledTemporaryFile() c_stream1 = tempfile.SpooledTemporaryFile() camera.start_recording(v_stream1, format='h264') try: camera.wait_recording(1) camera.capture(c_stream1, format='jpeg', use_video_port=True) camera.split_recording(v_stream2) camera.wait_recording(1) finally: camera.stop_recording() v_stream1.seek(0) v_stream2.seek(0) c_stream1.seek(0) verify_image(c_stream1, 'jpeg', resolution) verify_video(v_stream1, 'h264', resolution) verify_video(v_stream2, 'h264', resolution)
def test_split_and_capture(camera, mode): resolution, framerate = mode expected_failures(resolution, "h264", {}) v_stream1 = tempfile.SpooledTemporaryFile() v_stream2 = tempfile.SpooledTemporaryFile() c_stream1 = tempfile.SpooledTemporaryFile() camera.start_recording(v_stream1, format="h264") try: camera.wait_recording(1) camera.capture(c_stream1, format="jpeg", use_video_port=True) camera.split_recording(v_stream2) camera.wait_recording(1) finally: camera.stop_recording() v_stream1.seek(0) v_stream2.seek(0) c_stream1.seek(0) verify_image(c_stream1, "jpeg", resolution) verify_video(v_stream1, "h264", resolution) verify_video(v_stream2, "h264", resolution)
def test_capture_sequence_to_file( camera, previewing, resolution, tmpdir, use_video_port): filenames = [os.path.join(str(tmpdir), 'image%d.jpg' % i) for i in range(3)] camera.capture_sequence(filenames, use_video_port=use_video_port) for filename in filenames: verify_image(filename, 'jpeg', resolution)