Recalbox Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • recalbox.com
    • Gitlab repository
    • Documentation
    • Discord

    intro does not fully play. Odroid XU4

    Recalbox General
    does fully play odroid xu4
    3
    4
    1566
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Levingard
      Levingard last edited by

      Hello,

      i have the following problem. i have a 26 sec. long recalbox intro.
      (yes WITH recalbox branding! i don NOT want to rebrand recalbox!)

      I am using the actual version for Odroid XU4!

      Here is my s02splash:

      #!/bin/bash
      
      selectVideo() {
      IFS='
      '
      videoList=($(find /recalbox/system/resources/splash -name *.mp4))
      videoNumber=${#videoList[*]}
      video=${videoList[$((RANDOM%videoNumber))]}
      echo "${video}"
      }
      video="`selectVideo`"
      
      do_ffmpeg_start () {
      if ! `which ffplay >/dev/null` || [[ ! -f $video ]] ; then
      return
      fi
      ffplay_opts="-hide_banner -autoexit"
      
       ffplay_srt="subtitles=/recalbox/system/resources/splash/recalboxintro.srt:force_style='FontName=/usr/share/fonts/dejavu/DejaVuSans-BoldOblique.ttf,Fontsize=10'"
      ffplay $ffplay_opts -vf "$ffplay_srt" "$video" >/dev/null 2>&1 &
      PID=$!
      count=0
      
      while [[ ! -f "/tmp/emulationstation.ready" && ! -e "/var/run/kodi.msg" && $count -lt 200 ]]; do
      sleep 0.1
      ((count++))
      done
      do_ffmpeg_stop $PID
      show_logo
      }
      
      do_ffmpeg_stop () {
      kill -9 $1
      }
      
      
      do_omx_start ()
      {
      # odroid xu4 has not omxplayer, make it run this code make it flash
      if [[ ! -f $video || ! -f /usr/bin/omxplayer ]]; then
      return
      fi
      
      # Initialize dbus session
      OMXPLAYER_DBUS_ADDR="/tmp/omxplayerdbus.root"
      OMXPLAYER_DBUS_PID="/tmp/omxplayerdbus.root.pid"
      exec 5> "$OMXPLAYER_DBUS_ADDR"
      exec 6> "$OMXPLAYER_DBUS_PID"
      dbus-daemon --fork --print-address 5 --print-pid 6 --session
      until [ -s "$OMXPLAYER_DBUS_ADDR" ]; do
      echo "waiting for dbus address to appear" >&2
      sleep .2
      done
      DBUS_SESSION_BUS_ADDRESS=`cat $OMXPLAYER_DBUS_ADDR`
      DBUS_SESSION_BUS_PID=`cat $OMXPLAYER_DBUS_PID`
      export DBUS_SESSION_BUS_ADDRESS
      export DBUS_SESSION_BUS_PID
      
      # Launch the video
      omx_fnt="--font=/usr/share/fonts/dejavu/DejaVuSans-BoldOblique.ttf"
      omx_opt="--adev both --no-keys --layer=10000 --aspect-mode=fill"
      omx_srt="--no-ghost-box --lines=1 --align=left $omx_fnt --font-size=20 -- 
      subtitles=/recalbox/system/resources/splash/recalboxintro.srt"
      /usr/bin/omxplayer.bin $omx_opt $omx_srt $video &
      PID=$!
      
      # Stop the video when ready
      if [[ $? -eq 0 ]]; then
      # Wait for emulationstation or Kodi, but not more than 20 seconds
      count=0
      while [[ ! -f "/tmp/emulationstation.ready" && ! -e "/var/run/kodi.msg" && $count -lt 27 ]]; do
          sleep 1
          ((count++))
      done
       # Finish with a one second fade out.
      sleep 27
      audio_fade=1
      video_fade=250
      while [[ $video_fade -gt 0 ]]; do
          sleep .02
          dbus-send --print-reply=literal --session --dest=org.mpris.MediaPlayer2.omxplayer /org/mpris/MediaPlayer2 
      org.freedesktop.DBus.Properties.Volume double:$audio_fade >/dev/null
          dbus-send --print-reply=literal --session --dest=org.mpris.MediaPlayer2.omxplayer /org/mpris/MediaPlayer2 
      org.mpris.MediaPlayer2.Player.SetAlpha objpath:/not/used int64:$video_fade >/dev/null
          audio_fade=`echo "$audio_fade .02" | awk '{printf "%.2f", $1-$2}'`
          ((video_fade=video_fade-5))
      done
      # Ready flag set or timeout occured; stop video process.
      dbus-send --print-reply=literal --session --dest=org.mpris.MediaPlayer2.omxplayer /org/mpris/MediaPlayer2 
      org.mpris.MediaPlayer2.Player.Action int32:15 >/dev/null
      fi
      }
      
      wait_for_fb () {
      # on some sytems, fb0 is not immediatly loaded, so, keep a chance by waiting a bit
      N=0
      while ! test -e /dev/fb0 -o $N -gt 15
      do
      sleep 1
      let N++
      done
      }
      
      show_logo() {
      wait_for_fb
      test -e /dev/fb0 && fbv -f -i /recalbox/system/resources/splash/logo-version.png
      }
      
      case "$1" in
      start)
      if [[ `cat /recalbox/recalbox.arch` == "rpi"* ]] ; then
          ( do_omx_start ; show_logo ) &
      else
          ( wait_for_fb ; do_ffmpeg_start ) &
      fi
      ;;
      stop)
      ;;
      restart|reload)
      ;;
      *)
      esac
      
      exit $?
      

      I did changes here:

      while [[ ! -f "/tmp/emulationstation.ready" && ! -e "/var/run/kodi.msg" && $count -lt 27 ]]; do
      

      and here:

      # Finish with a one second fade out.
      sleep 27
      

      Both did not work. The video stops after 7 sec. and boots ES. When i delete this video, the splash.PNG normal loads and then ES. Videos up to 5 sec. are working without a problem!

      can someone tell me how change the setting so the video will be fully played?

      sincerely:

      Thomas

      Gaetan 1 Reply Last reply Reply Quote 0
      • Gaetan
        Gaetan Theme moderator @Levingard last edited by Gaetan

        @levingard change back " count -lt 27 ]]; to count -lt 20 ]];
        And your your sleep 27 by sleep 7 or maybe sleep 07 it will do the job 🙂

        Boards : Now: Nuc i7 7567u // Past: Rpi3 B, Rpi3 B+, Odroid xu4
        Controllers : Ps3 dualshock, 8bitdo SFC30 pro, Snes wired controller

        1 Reply Last reply Reply Quote 0
        • Levingard
          Levingard last edited by

          @gaetan

          @levingard change back " count -lt 27 ]]; to count -lt 20 ]];
          And your your sleep 27 by sleep 7 or maybe sleep 07 it will do the job :)
          

          i have changed it to but the same problem. ES is still shown up before the intro ends, and then ES has no sounds.

          1 Reply Last reply Reply Quote 0
          • A Former User
            A Former User last edited by

            I have the same issue you're encountering. I tried the same things you've done and it doesn't work. It do works on the RPI3, but it looks like the XU4 have a different way to boot the system.

            Have you found any way to fix this? Thanks!

            1 Reply Last reply Reply Quote 0
            • First post
              Last post

            Want to support us ?

            84
            Online

            98.9k
            Users

            28.1k
            Topics

            187.1k
            Posts

            Copyright © 2021 recalbox.com