Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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)
Exemple #4
0
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
Exemple #5
0
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)
Exemple #6
0
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)
Exemple #7
0
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)
Exemple #9
0
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
Exemple #10
0
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)
Exemple #11
0
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)
Exemple #12
0
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
Exemple #13
0
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)
Exemple #16
0
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)
Exemple #17
0
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)
Exemple #18
0
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)
Exemple #19
0
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_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
Exemple #21
0
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
Exemple #22
0
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
Exemple #23
0
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
Exemple #24
0
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
Exemple #25
0
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)
Exemple #26
0
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)
Exemple #27
0
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)
Exemple #28
0
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)