Skip to content

Upgrade containers to use Bookworm - #1980

Merged
nicomiguelino merged 11 commits into
Screenly:masterfrom
nicomiguelino:fix-1753
Jul 22, 2024
Merged

Upgrade containers to use Bookworm#1980
nicomiguelino merged 11 commits into
Screenly:masterfrom
nicomiguelino:fix-1753

Conversation

@nicomiguelino

@nicomiguelino nicomiguelino commented Jul 17, 2024

Copy link
Copy Markdown
Contributor

Description

Checklist

Notes

  • Moving away from OMXPlayer to VLC requires an upgrade from Buster.
  • VLC playback in Buster is not possible, as per testing things quickly.
  • One of the benefits of upgrading Python from

@vpetersson vpetersson left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we maybe switch to poetry there too instead?

@nicomiguelino

Copy link
Copy Markdown
Contributor Author

@vpetersson, do you mean using Poetry inside the containers?

@vpetersson

Copy link
Copy Markdown
Contributor

Yes.

nicomiguelino added a commit to nicomiguelino/Anthias that referenced this pull request Jul 20, 2024
@nicomiguelino
nicomiguelino marked this pull request as ready for review July 22, 2024 17:04
@nicomiguelino
nicomiguelino requested a review from a team as a code owner July 22, 2024 17:04
@sonarqubecloud

Copy link
Copy Markdown

@nicomiguelino
nicomiguelino merged commit 99a38d6 into Screenly:master Jul 22, 2024
@nicomiguelino
nicomiguelino deleted the fix-1753 branch July 22, 2024 21:27
vpetersson added a commit that referenced this pull request Jun 2, 2026
- Replace VLCMediaPlayer with GstFbdevMediaPlayer: spawn `gst-launch-1.0
  playbin` with a fully-hardware video sink — v4l2h264dec (bcm2835 codec)
  decodes, v4l2convert (bcm2835 ISP) HW-scales + converts YUV to the
  framebuffer format, fbdevsink paints /dev/fb0. No DRM master / X /
  Wayland needed, which a bare uid-1000 viewer with no compositor cannot
  acquire.
- Restores hardware video on the Qt5 linuxfb boards after #1980 dropped
  the Broadcom mmal_vout; drives the same VPU + ISP silicon mmal used.
  Measured on a Pi 3: 1080p30 -> rgb565 at ~40 fps, zero dropped frames.
  (An interim ffmpeg -> fbdev approach was abandoned: HW decode worked
  but CPU YUV->rgb565 convert via swscale managed only ~6 fps — no NEON
  path — and CPU scaling is unaccelerated. v4l2convert moves that to the
  ISP.)
- playbin gives container-agnostic demux, auto-plugged HW decoder, and
  graceful optional-audio. Loop the slot via re-launch-on-EOS; kill by
  process group so no gst-launch orphan keeps the framebuffer.
- Rotation rides `videoflip`, inserted only when the panel is rotated.
- Add gstreamer1.0-{tools,plugins-base,plugins-good,plugins-bad} to the
  Qt5 viewer image; drop the now-unused vlc apt package + python-vlc dep
  (+ its mypy override). Sync the upload-gate comment in processing.py.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
vpetersson added a commit that referenced this pull request Jun 2, 2026
- Replace VLCMediaPlayer with GstFbdevMediaPlayer: spawn `gst-launch-1.0
  playbin` with a fully-hardware video sink — v4l2h264dec (bcm2835 codec)
  decodes, v4l2convert (bcm2835 ISP) HW-scales + converts YUV to the
  framebuffer format, fbdevsink paints /dev/fb0. No DRM master / X /
  Wayland needed, which a bare uid-1000 viewer with no compositor cannot
  acquire.
- Restores hardware video on the Qt5 linuxfb boards after #1980 dropped
  the Broadcom mmal_vout; drives the same VPU + ISP silicon mmal used.
  Measured on a Pi 3: 1080p30 -> rgb565 at ~40 fps, zero dropped frames.
  (An interim ffmpeg -> fbdev approach was abandoned: HW decode worked
  but CPU YUV->rgb565 convert via swscale managed only ~6 fps — no NEON
  path — and CPU scaling is unaccelerated. v4l2convert moves that to the
  ISP.)
- playbin gives container-agnostic demux, auto-plugged HW decoder, and
  graceful optional-audio. Loop the slot via re-launch-on-EOS; kill by
  process group so no gst-launch orphan keeps the framebuffer.
- Rotation rides `videoflip`, inserted only when the panel is rotated.
- Add gstreamer1.0-{tools,plugins-base,plugins-good,plugins-bad} to the
  Qt5 viewer image; drop the now-unused vlc apt package + python-vlc dep
  (+ its mypy override). Sync the upload-gate comment in processing.py.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
vpetersson added a commit that referenced this pull request Jun 2, 2026
- Replace VLCMediaPlayer with GstFbdevMediaPlayer: spawn `gst-launch-1.0
  playbin` with a fully-hardware video sink — v4l2h264dec (bcm2835 codec)
  decodes, v4l2convert (bcm2835 ISP) HW-scales + converts YUV to the
  framebuffer format, fbdevsink paints /dev/fb0. No DRM master / X /
  Wayland needed, which a bare uid-1000 viewer with no compositor cannot
  acquire.
- Restores hardware video on the Qt5 linuxfb boards after #1980 dropped
  the Broadcom mmal_vout; drives the same VPU + ISP silicon mmal used.
  Measured on a Pi 3: 1080p30 -> rgb565 at ~40 fps, zero dropped frames.
  (An interim ffmpeg -> fbdev approach was abandoned: HW decode worked
  but CPU YUV->rgb565 convert via swscale managed only ~6 fps — no NEON
  path — and CPU scaling is unaccelerated. v4l2convert moves that to the
  ISP.)
- playbin gives container-agnostic demux, auto-plugged HW decoder, and
  graceful optional-audio. Loop the slot via re-launch-on-EOS; kill by
  process group so no gst-launch orphan keeps the framebuffer.
- Rotation rides `videoflip`, inserted only when the panel is rotated.
- Add gstreamer1.0-{tools,plugins-base,plugins-good,plugins-bad} to the
  Qt5 viewer image; drop the now-unused vlc apt package + python-vlc dep
  (+ its mypy override). Sync the upload-gate comment in processing.py.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
vpetersson added a commit that referenced this pull request Jun 2, 2026
- Replace VLCMediaPlayer with GstFbdevMediaPlayer: spawn `gst-launch-1.0
  playbin` with a fully-hardware video sink — v4l2h264dec (bcm2835 codec)
  decodes, v4l2convert (bcm2835 ISP) HW-scales + converts YUV to the
  framebuffer format, fbdevsink paints /dev/fb0. No DRM master / X /
  Wayland needed, which a bare uid-1000 viewer with no compositor cannot
  acquire.
- Restores hardware video on the Qt5 linuxfb boards after #1980 dropped
  the Broadcom mmal_vout; drives the same VPU + ISP silicon mmal used.
  Measured on a Pi 3: 1080p30 -> rgb565 at ~40 fps, zero dropped frames.
  (An interim ffmpeg -> fbdev approach was abandoned: HW decode worked
  but CPU YUV->rgb565 convert via swscale managed only ~6 fps — no NEON
  path — and CPU scaling is unaccelerated. v4l2convert moves that to the
  ISP.)
- playbin gives container-agnostic demux, auto-plugged HW decoder, and
  graceful optional-audio. Loop the slot via re-launch-on-EOS; kill by
  process group so no gst-launch orphan keeps the framebuffer.
- Rotation rides `videoflip`, inserted only when the panel is rotated.
- Add gstreamer1.0-{tools,plugins-base,plugins-good,plugins-bad} to the
  Qt5 viewer image; drop the now-unused vlc apt package + python-vlc dep
  (+ its mypy override). Sync the upload-gate comment in processing.py.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
vpetersson added a commit that referenced this pull request Jun 2, 2026
- Replace VLCMediaPlayer with GstFbdevMediaPlayer: spawn `gst-launch-1.0
  playbin` with a fully-hardware video sink — v4l2h264dec (bcm2835 codec)
  decodes, v4l2convert (bcm2835 ISP) HW-scales + converts YUV to the
  framebuffer format, fbdevsink paints /dev/fb0. No DRM master / X /
  Wayland needed, which a bare uid-1000 viewer with no compositor cannot
  acquire.
- Restores hardware video on the Qt5 linuxfb boards after #1980 dropped
  the Broadcom mmal_vout; drives the same VPU + ISP silicon mmal used.
  Measured on a Pi 3: 1080p30 -> rgb565 at ~40 fps, zero dropped frames.
  (An interim ffmpeg -> fbdev approach was abandoned: HW decode worked
  but CPU YUV->rgb565 convert via swscale managed only ~6 fps — no NEON
  path — and CPU scaling is unaccelerated. v4l2convert moves that to the
  ISP.)
- playbin gives container-agnostic demux, auto-plugged HW decoder, and
  graceful optional-audio. Loop the slot via re-launch-on-EOS; kill by
  process group so no gst-launch orphan keeps the framebuffer.
- Rotation rides `videoflip`, inserted only when the panel is rotated.
- Add gstreamer1.0-{tools,plugins-base,plugins-good,plugins-bad} to the
  Qt5 viewer image; drop the now-unused vlc apt package + python-vlc dep
  (+ its mypy override). Sync the upload-gate comment in processing.py.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
vpetersson added a commit that referenced this pull request Jun 2, 2026
- Replace VLCMediaPlayer with GstFbdevMediaPlayer: spawn `gst-launch-1.0
  playbin` with a fully-hardware video sink — v4l2h264dec (bcm2835 codec)
  decodes, v4l2convert (bcm2835 ISP) HW-scales + converts YUV to the
  framebuffer format, fbdevsink paints /dev/fb0. No DRM master / X /
  Wayland needed, which a bare uid-1000 viewer with no compositor cannot
  acquire.
- Restores hardware video on the Qt5 linuxfb boards after #1980 dropped
  the Broadcom mmal_vout; drives the same VPU + ISP silicon mmal used.
  Measured on a Pi 3: 1080p30 -> rgb565 at ~40 fps, zero dropped frames.
  (An interim ffmpeg -> fbdev approach was abandoned: HW decode worked
  but CPU YUV->rgb565 convert via swscale managed only ~6 fps — no NEON
  path — and CPU scaling is unaccelerated. v4l2convert moves that to the
  ISP.)
- playbin gives container-agnostic demux, auto-plugged HW decoder, and
  graceful optional-audio. Loop the slot via re-launch-on-EOS; kill by
  process group so no gst-launch orphan keeps the framebuffer.
- Rotation rides `videoflip`, inserted only when the panel is rotated.
- Add gstreamer1.0-{tools,plugins-base,plugins-good,plugins-bad} to the
  Qt5 viewer image; drop the now-unused vlc apt package + python-vlc dep
  (+ its mypy override). Sync the upload-gate comment in processing.py.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
vpetersson added a commit that referenced this pull request Jun 2, 2026
…C) (#2972)

- Replace VLCMediaPlayer with GstFbdevMediaPlayer: spawn `gst-launch-1.0
  playbin` with a fully-hardware video sink — v4l2h264dec (bcm2835 codec)
  decodes, v4l2convert (bcm2835 ISP) HW-scales + converts YUV to the
  framebuffer format, fbdevsink paints /dev/fb0. No DRM master / X /
  Wayland needed, which a bare uid-1000 viewer with no compositor cannot
  acquire.
- Restores hardware video on the Qt5 linuxfb boards after #1980 dropped
  the Broadcom mmal_vout; drives the same VPU + ISP silicon mmal used.
  Measured on a Pi 3: 1080p30 -> rgb565 at ~40 fps, zero dropped frames.
  (An interim ffmpeg -> fbdev approach was abandoned: HW decode worked
  but CPU YUV->rgb565 convert via swscale managed only ~6 fps — no NEON
  path — and CPU scaling is unaccelerated. v4l2convert moves that to the
  ISP.)
- playbin gives container-agnostic demux, auto-plugged HW decoder, and
  graceful optional-audio. Loop the slot via re-launch-on-EOS; kill by
  process group so no gst-launch orphan keeps the framebuffer.
- Rotation rides `videoflip`, inserted only when the panel is rotated.
- Add gstreamer1.0-{tools,plugins-base,plugins-good,plugins-bad} to the
  Qt5 viewer image; drop the now-unused vlc apt package + python-vlc dep
  (+ its mypy override). Sync the upload-gate comment in processing.py.

Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Upgrade OS of containers from Buster to Bullseye or Bookworm

2 participants