subogero / omxd

Raspberry Pi omxplayer playlist daemon and YouTube player
Other
85 stars 19 forks source link

Playing a single file breaks omxd #47

Closed camilo-celis closed 8 years ago

camilo-celis commented 8 years ago

Apparently, when playing a single file (5 min video), after looping through it for ~2 times, the screen turns out black.

subogero commented 8 years ago

What does turns out black mean?

camilo-celis commented 8 years ago

Sorry, I think I was not specific enough. When adding some a omxd playlist, after a couple of loops, the videos appear to stop playing, and if I see what omxd is currently playing it shows X/5 <file path> something like that. Note that, X surpasses 5 which shouldn't happen (I guess). When this happens the screen turns black as the video playback has finished, but still omxd does not play the next video on the playlist.

If I skip to the next file (omxd N), then suddenly the next video starts playing.

subogero commented 8 years ago

If you have the source, could you post me the output of make ps while the screen is black? It prints the entire omxd/omxplayer process hierarchy.

camilo-celis commented 8 years ago
pi@raspberrypi ~/omxd $ make ps
pstree -pu | grep omx
        |-omxd(2409)---omxplayer(7944)---omxplayer.bin(7954)-+-{omxplayer.bin}(7955)
        |                                                    |-{omxplayer.bin}(7956)
        |                                                    |-{omxplayer.bin}(7957)
        |                                                    |-{omxplayer.bin}(7958)
        |                                                    |-{omxplayer.bin}(7959)
        |                                                    |-{omxplayer.bin}(7960)
        |                                                    |-{omxplayer.bin}(7961)
        |                                                    `-{omxplayer.bin}(7962)

Also

pi@raspberrypi ~/omxd $ omxd S
Playing 1773/3 /home/pi/Downloads/07f0629ab193f78d7dded4849f5f01adda09f71a

I am looping throguh a playlist of 2 files. One is 5 seconds long, and the other is 3 seconds long. omxd correctly loops thorugh this playlist 3 times. Then, the black screen appears. As you can see from the output of omxd S, omxd keeps going even after the end of the video.

subogero commented 8 years ago

If you're using HDMI audio, then it's omxplayer which failed to exit at the end of the video. There is not much I can do.

Unfortunately this does happen a few times, so I might implement a watchdog in omxd.

camilo-celis commented 8 years ago

I see.Thank you for your help :+1:

subogero commented 8 years ago

No. I just asked because in case of audio jack, the omxplayer instance for the next video is already started paused at the beginning. But with HDMI, all we see is the stuck instance for the current track.

camilo-celis commented 8 years ago

I was thinking, could it be possible to kill the current instance of omxplayer to avoid this? Since, we know the length of the video.

subogero commented 8 years ago

That's exactly what I mean by watchdog. Currently omxd wakes up only upon user input from the FIFO and the SIGCHLD from exited omxplayers. We'll need to introduce a 3rd time based event to look around and kill stale omxplayers.