From 0bb4e3ff704f69d8cdc4fe410cede60535761b10 Mon Sep 17 00:00:00 2001 From: Stu Leak Date: Wed, 7 Jan 2026 02:40:06 -0500 Subject: [PATCH] Add GStreamer to dev install scripts --- scripts/install-deps-linux.sh | 37 ++++++++++++++++++++++++++++++++ scripts/install-deps-windows.ps1 | 33 ++++++++++++++++++++++++++++ scripts/install.sh | 23 +++++++++++--------- 3 files changed, 83 insertions(+), 10 deletions(-) diff --git a/scripts/install-deps-linux.sh b/scripts/install-deps-linux.sh index d5bf6ec..0053d4e 100755 --- a/scripts/install-deps-linux.sh +++ b/scripts/install-deps-linux.sh @@ -35,6 +35,14 @@ install_fedora() { libXxf86vm-devel \ mesa-libGL-devel \ alsa-lib-devel \ + gstreamer1 \ + gstreamer1-plugins-base \ + gstreamer1-plugins-good \ + gstreamer1-plugins-bad-free \ + gstreamer1-plugins-ugly-free \ + gstreamer1-libav \ + gstreamer1-devel \ + gstreamer1-plugins-base-devel \ ffmpeg-free \ golang echo "✓ Fedora dependencies installed" @@ -55,6 +63,14 @@ install_ubuntu() { libxi-dev \ libxxf86vm-dev \ libasound2-dev \ + gstreamer1.0-tools \ + gstreamer1.0-plugins-base \ + gstreamer1.0-plugins-good \ + gstreamer1.0-plugins-bad \ + gstreamer1.0-plugins-ugly \ + gstreamer1.0-libav \ + libgstreamer1.0-dev \ + libgstreamer-plugins-base1.0-dev \ ffmpeg \ golang-go echo "✓ Ubuntu/Debian dependencies installed" @@ -74,6 +90,12 @@ install_arch() { libxi \ libxxf86vm \ alsa-lib \ + gstreamer \ + gst-plugins-base \ + gst-plugins-good \ + gst-plugins-bad \ + gst-plugins-ugly \ + gst-libav \ ffmpeg \ go echo "✓ Arch Linux dependencies installed" @@ -93,6 +115,13 @@ install_opensuse() { libXi-devel \ libXxf86vm-devel \ alsa-devel \ + gstreamer \ + gstreamer-plugins-base \ + gstreamer-plugins-good \ + gstreamer-plugins-bad \ + gstreamer-plugins-ugly \ + gstreamer-plugins-libav \ + gstreamer-devel \ ffmpeg \ go echo "✓ openSUSE dependencies installed" @@ -121,6 +150,7 @@ case "$DISTRO" in echo " - OpenGL development libraries" echo " - X11 development libraries (libX11, libXcursor, libXrandr, libXinerama, libXi, libXxf86vm)" echo " - ALSA development libraries" + echo " - GStreamer runtime + dev headers" echo " - ffmpeg" echo " - Go 1.21 or later" exit 1 @@ -158,6 +188,13 @@ else echo "⚠️ ffmpeg not found in PATH" fi +# Check GStreamer +if command -v gst-launch-1.0 &> /dev/null; then + echo "✓ gstreamer: $(gst-launch-1.0 --version | head -1)" +else + echo "⚠️ gstreamer not found in PATH" +fi + # Check pkg-config if command -v pkg-config &> /dev/null; then echo "✓ pkg-config: $(pkg-config --version)" diff --git a/scripts/install-deps-windows.ps1 b/scripts/install-deps-windows.ps1 index 7f01025..38cd342 100644 --- a/scripts/install-deps-windows.ps1 +++ b/scripts/install-deps-windows.ps1 @@ -4,6 +4,7 @@ param( [switch]$UseScoop = $false, [switch]$SkipFFmpeg = $false, + [switch]$SkipGStreamer = $false, [string]$DvdStylerUrl = "", [string]$DvdStylerZip = "", [switch]$SkipDvdStyler = $false @@ -246,6 +247,16 @@ function Install-ViaChocolatey { } } + # Install GStreamer + if (-not $SkipGStreamer) { + if (-not (Test-Command gst-launch-1.0)) { + Write-Host "Installing GStreamer..." -ForegroundColor Yellow + choco install -y gstreamer gstreamer-devel + } else { + Write-Host "[OK] GStreamer already installed" -ForegroundColor Green + } + } + Write-Host "[OK] Chocolatey installation complete" -ForegroundColor Green } @@ -306,6 +317,17 @@ function Install-ViaScoop { } } + # Install GStreamer + if (-not $SkipGStreamer) { + if (-not (Test-Command gst-launch-1.0)) { + Write-Host "Installing GStreamer..." -ForegroundColor Yellow + scoop bucket add extras | Out-Null + scoop install gstreamer + } else { + Write-Host "[OK] GStreamer already installed" -ForegroundColor Green + } + } + Write-Host "[OK] Scoop installation complete" -ForegroundColor Green } @@ -390,6 +412,17 @@ if (Test-Command ffmpeg) { } } +if (Test-Command gst-launch-1.0) { + $gstVersion = gst-launch-1.0 --version | Select-Object -First 1 + Write-Host "[OK] gstreamer: $gstVersion" -ForegroundColor Green +} else { + if ($SkipGStreamer) { + Write-Host "[INFO] gstreamer skipped (use -SkipGStreamer:\$false to install)" -ForegroundColor Cyan + } else { + Write-Host "[WARN] gstreamer not found in PATH (restart terminal)" -ForegroundColor Yellow + } +} + if (Test-Command dvdauthor) { Write-Host "[OK] dvdauthor: found" -ForegroundColor Green diff --git a/scripts/install.sh b/scripts/install.sh index aa61e52..2e83329 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -171,6 +171,9 @@ else if ! command -v ffmpeg &> /dev/null; then missing_deps+=("ffmpeg") fi + if ! command -v gst-launch-1.0 &> /dev/null; then + missing_deps+=("gstreamer") + fi if [ -z "$SKIP_DVD_TOOLS" ]; then # Check if DVD tools are already installed if command -v dvdauthor &> /dev/null && command -v xorriso &> /dev/null; then @@ -238,33 +241,33 @@ else if command -v apt-get &> /dev/null; then sudo apt-get update if [ "$SKIP_DVD_TOOLS" = true ]; then - sudo apt-get install -y ffmpeg + sudo apt-get install -y ffmpeg gstreamer1.0-tools gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev else - sudo apt-get install -y ffmpeg dvdauthor xorriso + sudo apt-get install -y ffmpeg dvdauthor xorriso gstreamer1.0-tools gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev fi elif command -v dnf &> /dev/null; then if [ "$SKIP_DVD_TOOLS" = true ]; then - sudo dnf install -y ffmpeg + sudo dnf install -y ffmpeg gstreamer1 gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-plugins-bad-free gstreamer1-plugins-ugly-free gstreamer1-libav gstreamer1-devel gstreamer1-plugins-base-devel else - sudo dnf install -y ffmpeg dvdauthor xorriso + sudo dnf install -y ffmpeg dvdauthor xorriso gstreamer1 gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-plugins-bad-free gstreamer1-plugins-ugly-free gstreamer1-libav gstreamer1-devel gstreamer1-plugins-base-devel fi elif command -v pacman &> /dev/null; then if [ "$SKIP_DVD_TOOLS" = true ]; then - sudo pacman -Sy --noconfirm ffmpeg + sudo pacman -Sy --noconfirm ffmpeg gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav else - sudo pacman -Sy --noconfirm ffmpeg dvdauthor cdrtools + sudo pacman -Sy --noconfirm ffmpeg dvdauthor cdrtools gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav fi elif command -v zypper &> /dev/null; then if [ "$SKIP_DVD_TOOLS" = true ]; then - sudo zypper install -y ffmpeg + sudo zypper install -y ffmpeg gstreamer gstreamer-plugins-base gstreamer-plugins-good gstreamer-plugins-bad gstreamer-plugins-ugly gstreamer-plugins-libav gstreamer-devel else - sudo zypper install -y ffmpeg dvdauthor xorriso + sudo zypper install -y ffmpeg dvdauthor xorriso gstreamer gstreamer-plugins-base gstreamer-plugins-good gstreamer-plugins-bad gstreamer-plugins-ugly gstreamer-plugins-libav gstreamer-devel fi elif command -v brew &> /dev/null; then if [ "$SKIP_DVD_TOOLS" = true ]; then - brew install ffmpeg + brew install ffmpeg gstreamer else - brew install ffmpeg dvdauthor xorriso + brew install ffmpeg dvdauthor xorriso gstreamer fi else echo -e "${RED}[ERROR] No supported package manager found.${NC}"