diff --git a/.circleci/config.yml b/.circleci/config.yml index ced6285..32e188d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -37,9 +37,6 @@ jobs: name: Decode the EDID command: tests/decode-edid build: - parameters: - scenario: - type: string machine: image: ubuntu-2004:202010-01 resource_class: large @@ -62,7 +59,7 @@ jobs: pip install -r molecule/requirements.txt && \ ansible --version && \ molecule --version && \ - molecule test --scenario-name << parameters.scenario >> + molecule test workflows: version: 2 all-tests: @@ -70,7 +67,4 @@ workflows: - check_whitespace - check_bash - decode_edid - - build: - matrix: - parameters: - scenario: [legacy, default] + - build diff --git a/defaults/main.yml b/defaults/main.yml index d01939b..52cd36b 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -11,7 +11,7 @@ ustreamer_port: null # Path to video device, such as /dev/video1. ustreamer_video_path: null -# Encoding method to use, such as omx. +# Encoding method to use, such as `m2m-image`. ustreamer_encoder: null # Device input format, such as uyvy . @@ -82,10 +82,6 @@ ustreamer_edid: | # Location to store EDID files. ustreamer_edids_dir: /home/{{ ustreamer_user }}/edids -# For versions of uStreamer prior to 5.0, H264 sink options are only available -# when OpenMax IL hardware acceleration is enabled via the dynamically defined -# ustreamer_compile_omx variable. - # Use the specified shared memory object to sink H264 frames encoded by MMAL # (e.g., tinypilot::ustreamer::h264). Disabled by default. ustreamer_h264_sink: null diff --git a/meta/main.yml b/meta/main.yml index 95b2d64..788d61f 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -10,7 +10,6 @@ platforms: - name: Debian versions: - - buster - bullseye - name: Ubuntu versions: diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 6beb4fc..853b0bf 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -4,13 +4,6 @@ dependency: driver: name: docker platforms: - - name: debian10 - image: geerlingguy/docker-debian10-ansible - command: ${MOLECULE_DOCKER_COMMAND:-""} - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - privileged: true - pre_build_image: true - name: debian11 image: geerlingguy/docker-debian11-ansible command: ${MOLECULE_DOCKER_COMMAND:-""} diff --git a/molecule/legacy/converge.yml b/molecule/legacy/converge.yml deleted file mode 100644 index 22ca3a0..0000000 --- a/molecule/legacy/converge.yml +++ /dev/null @@ -1,27 +0,0 @@ ---- -- name: Converge - hosts: all - gather_facts: no - tasks: - - name: Update apt cache and install system dependencies - apt: - name: - # To accurately detect the OS of the target machine, we need to - # install the lsb-release package before Ansible gathers facts. This - # ensures that the ansible_lsb fact is defined. - # https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_conditionals.html#conditionals-based-on-ansible-facts - - lsb-release - update_cache: true - cache_valid_time: 600 - - name: Gather facts - setup: - - name: "Include ansible-role-ustreamer" - include_role: - name: "ansible-role-ustreamer" - vars: - ustreamer_repo_version: "v4.13" - # Assigning `ustreamer_h264_sink` will exercise the role tasks related - # to installing and configuring the Janus WebRTC server. - ustreamer_h264_sink: tinypilot::ustreamer::h264 - ustreamer_h264_sink_mode: 777 - ustreamer_h264_sink_rm: yes diff --git a/molecule/legacy/molecule.yml b/molecule/legacy/molecule.yml deleted file mode 100644 index 9b36acd..0000000 --- a/molecule/legacy/molecule.yml +++ /dev/null @@ -1,47 +0,0 @@ ---- -dependency: - name: galaxy -driver: - name: docker -platforms: - - name: debian10 - image: geerlingguy/docker-debian10-ansible - command: ${MOLECULE_DOCKER_COMMAND:-""} - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - privileged: true - pre_build_image: true - - name: debian11 - image: geerlingguy/docker-debian11-ansible - command: ${MOLECULE_DOCKER_COMMAND:-""} - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - privileged: true - pre_build_image: true - - name: ubuntu22 - image: geerlingguy/docker-ubuntu2204-ansible - command: ${MOLECULE_DOCKER_COMMAND:-""} - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - privileged: true - pre_build_image: true -provisioner: - name: ansible - inventory: - hosts: - all: - vars: - ansible_user: root -verifier: - name: ansible -scenario: - name: legacy - test_sequence: - - lint - - destroy - - syntax - - create - - converge - - idempotence - - side_effect - - destroy diff --git a/tasks/main.yml b/tasks/main.yml index 1800aa4..1f95c5c 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -28,17 +28,7 @@ - name: decide whether to support audio streaming set_fact: # Audio streaming requires Janus because MJPEG can't carry audio. - # We exclude audio support from Raspbian Buster (10) because it's - # technically possible for a Raspbian Buster system to stream audio with CPU - # video encoding, it's unlikely for any clients to want that, and we don't - # want to add extra dependencies for audio they won't use. Raspbian Buster - # can't do GPU-based (OMX) encoding with audio because uStreamer added audio - # support in 5.x, but 5.x dropped support for OMX. - ustreamer_enable_audio_streaming: "{{ - ustreamer_install_janus and not ( - ustreamer_is_os_raspbian - and ((ansible_distribution_major_version | int) <= 10) - )}}" + ustreamer_enable_audio_streaming: "{{ ustreamer_install_janus }}" - name: install Janus include_tasks: install_janus.yml @@ -76,10 +66,6 @@ import_tasks: check_saved_settings.yml when: ustreamer_settings_file_result.stat.exists | bool -- name: check if OS supports OpenMAX IL acceleration (OMX) - set_fact: - ustreamer_os_supports_omx: "{{ ustreamer_is_os_raspbian and ((ansible_distribution_major_version | int) <= 10) }}" - - name: configure TC358743 HDMI capture chip import_tasks: provision_tc358743.yml when: ustreamer_capture_device == 'tc358743' @@ -88,17 +74,6 @@ import_tasks: remove_tc358743.yml when: ustreamer_capture_device != 'tc358743' -- name: enable OpenMax IL acceleration (legacy) - set_fact: - ustreamer_compile_omx: >- - {{ (ustreamer_encoder != None and ustreamer_encoder.lower() == 'omx') or - (ustreamer_install_janus and ustreamer_os_supports_omx) }} - -- name: check that OpenMax IL acceleration is only compiled on Raspberry Pi OS 10 (Buster) and earlier - fail: - msg: OpenMax IL acceleration (OMX) is only available on Raspberry Pi OS 10 (Buster) and earlier. - when: ustreamer_compile_omx and not ustreamer_os_supports_omx - - name: collect universal required apt packages set_fact: ustreamer_packages: @@ -118,11 +93,6 @@ ustreamer_packages: "{{ ustreamer_packages }} + ['libasound2-dev', 'libspeex-dev', 'libspeexdsp-dev', 'libopus-dev']" when: ustreamer_install_janus and ustreamer_enable_audio_streaming -- name: install libraspberrypi-dev if we're using OpenMax IL acceleration - set_fact: - ustreamer_packages: "{{ ustreamer_packages }} + ['libraspberrypi-dev']" - when: ustreamer_compile_omx - - name: collect Debian-specific required apt packages set_fact: ustreamer_packages: "{{ ustreamer_packages }} + ['libjpeg62-turbo-dev']" @@ -184,7 +154,6 @@ make: chdir: "{{ ustreamer_dir }}" params: - WITH_OMX: "{{ ustreamer_compile_omx | int }}" WITH_JANUS: "{{ ustreamer_install_janus | int }}" notify: - restart uStreamer diff --git a/tasks/provision_tc358743.yml b/tasks/provision_tc358743.yml index d166142..53084e2 100644 --- a/tasks/provision_tc358743.yml +++ b/tasks/provision_tc358743.yml @@ -66,11 +66,6 @@ - load TC358743 EDID file - configure TC358743 EDID loader to run at boot -- name: default to legacy OpenMAX encoder on Raspbian 10 and earlier - set_fact: - ustreamer_encoder: "{{ 'omx' if ustreamer_encoder == None else ustreamer_encoder }}" - when: ustreamer_is_os_raspbian and ustreamer_os_supports_omx - - name: use custom settings for TC358743 chip for any facts not already defined set_fact: ustreamer_encoder: "{{ 'm2m-image' if ustreamer_encoder == None else ustreamer_encoder }}"