#!/usr/bin/env bash # Workaround for libvlc issue with video previews in ES by Lolonois # https://retropie.org.uk/forum/topic/35717/emulationstation-video-previews-on-raspberry-pi-5/17 pkgs=(libvlc5 libvlc-bin libvlccore9 vlc-bin vlc-data vlc-plugin-base) ver="3.0.20-0+rpt6+deb12u1" currentVLC=$(dpkg -l | grep libvlc-bin | awk '{print $3}') tput reset echo echo ISSUE with ES Video Snaps Applies to libvlc: [v1:3.0.21-0] echo Your Current Version of libvlc: [v$currentVLC] echo echo *ONLY DOWNGRADE IF HAVING VIDEO SNAP DELAY ISSUES IN ES* echo May Interfere with [sudo apt upgrade] until the HOLD is REMOVED echo [sudo apt --fix-broken install] if needed AFTER the HOLD is REMOVED echo echo DOWNGRADE [libvlc] to [v$ver] echo _OR _ echo Remove the HOLD of [v$ver] + UPGRADE [libvlc] echo echo "SELECT: [downgrade] or [upgrade]" echo " 1) DOWNGRADE libvlc to [v$ver]" echo " 2) REMOVE the HOLD of [v$ver] + UPGRADE libvlc" echo " 3) FIX Broken Install [sudo apt --fix-broken install]" echo " 4) QUIT" read n case $n in 1) vlcCHOICE=downgrade;; 2) vlcCHOICE=upgrade;; 3) vlcCHOICE=fix;; 4) exit 0;; *) echo "You must SELECT: [downgrade] or [upgrade]"; exit 0;; esac pushd /tmp > /dev/null 2>&1 for p in "${pkgs[@]}"; do arch="arm64" if [[ "$p" == "vlc-data" ]] ; then arch="all" fi if [[ "$vlcCHOICE" == "upgrade" ]]; then sudo apt-mark unhold "${pkgs[@]}"; echo HOLD has been REMOVED for [v$ver]; echo Attempting to UPGRADE "${pkgs[@]}"; sudo apt-get install "${pkgs[@]}"; popd; exit 0; fi if [[ "$vlcCHOICE" == "fix" ]]; then echo RUNNING [sudo apt --fix-broken install]...; sudo apt --fix-broken install; exit 0; fi wget "http://archive.raspberrypi.org/debian/pool/main/v/vlc/${p}_${ver}_${arch}.deb" done sudo dpkg -i *.deb sudo apt-mark hold "${pkgs[@]}" rm /tmp/*.deb popd