Please test: Using OMXPlayer as video renderer
-
@Nismo Thank you sir! I had seen it earlier but I see you have added a few more now - I'll look into those and certainly update my OldRoom theme :)
-
@pjft Yes I'm uploading art regularly, so keep tuned. Also a big update is coming for the theme, with some bugfixes and more systems.
Please if you try my videos, can you tell my if you have some temps or glitches problems?
Thanks.
-
@Nismo I certainly will. Truth be told, I haven't had much time with tinkering with my Pi recently, but I definitely want to do so. I will let you know how those go!
Thanks.
-
@pjft Awesome writeup, and I agree. Personally, temperature is not a concern for me, as I have a fan on my case, and I plan to add heatsinks in the near future (and then try overclocking). My main concern is can the videos all play without graphical artifacts. I'm a little OCD about things, so if given the choice, I would want the higher resolution, higher framerate videos in my personal collection.
@fieldofcows how difficult would it be to add a menu option (under UI options perhaps) for renderer switching? It would save me the trouble of having to exit ES and modify a config file every time I try to test, which saves me a ton of time, as ES takes about 8 minutes to load with my massive collection (we gotta get on that metadata fix... let's talk ;) ). It would also make it easy for non-technical users to switch, after they search for the "my videos look funky" problem (the new WSOD, since your fix eliminated that problem :) ) and discover that it's not really a bug in ES.
And to reiterate what @pjft said, thank you for all your hard work. As a developer, I know how painful, frustrating, and time consuming it can be to fix problems like this, and I know how frustrating it can be to feel "defeated" by what seems like it should be a simple fix. You've done awesome work, you've helped breathe new life into the community, IMHO, and I know I'm not the only one who recognizes that.
-
Lots of things to reply to here but I'll keep this brief.
Firstly, thanks for all the recognition. However, I wouldn't be doing it if I didn't enjoy it so seeing people benefiting and enjoying the changes I make is a good reward.
With the video renderer selection - I can add a menu option to change the player. That's not a problem. I'll add that in and build another version for testing.
I think there is one more thing I would like to try before we put this to bed though. I'm going to see if the format conversion from the output of the codec to RGB in VLC is causing a significant CPU load (i.e. I'll comment it out and see if the temperatures stabilise) and if so I'll see if I can cobble together a shader to move the conversion into the GPU. That might just make enough difference to mean that the average pi doesn't need cooling.
@MWGemini - I've started looking again at the metadata changes. That is next in my queue.
@Nismo - thanks as always for your suggestions and support :)
-
@fieldofcows I'm happy to help with the development (and testing too of course) of the metadata changes- it's too big of a task to have to do it alone.
-
@fieldofcows I have a little request for you "to do" list...
Option in ES UI to adjust the time to start scrolling description metadata. It can be values from 1 to 5, or values in milliseconds... actually it's very slow for my taste.
I have some ideas in my head, but I don't want to say anyone yet, you have enough work to do yet.
@MWGemini I really appreciate your interest in this project.
-
@fieldofcows Only today have I managed to try out your latest release, and it doesn't seem to show any video in OMX mode, only in VLC.
I tried building it with the latest code, and still the same - only now it has the video screensaver, which is great!
Maybe something went awry with the refactoring? Any way I can debug it? Your initial OMX-only build worked perfectly. I was looking at the code changes, but they're just too many for me to be able to thoroughly revert on my own :(
Hope you're all doing well.
-
@pjft Where did you get 'the latest code'? I haven't had any time recently and haven't managed to look at this for a while. I use my dev branches in github as a convenient way to move my current working set between systems so you cannot rely on them to be working all the time.
I'm still not sure really where to go with this. I like the embedded omxplayer but having seen the (few) themes that are using video, they do mostly overlay images on top of the video. I don't want to break them.
I have been investigating shaders as I said in a previous post. However, ES uses OpenGL ES V1 so shaders aren't available without a bit of rework. I am playing around with this though just for fun.
-
@fieldofcows From your github video_process_dev branch - but even the one on the Releases, that's in the first topic of this thread, exhibits the same behavior.
It's fine, by all means - I was just going to test it out today as I had an hour or so.
I wasn't asking for any additional developments - even though, to be frank, your latest build with (theoretically) omxplayer and the screensaver would be ideal for me. Right now I'm running your latest VLC one with screensaver :)
Thanks anyway.
Do you have your new RPi3? :)
-
@pjft said in Please test: Using OMXPlayer as video renderer:
Do you have your new RPi3? :)
Yep. Up and running again. And in a case this time :)
-
@fieldofcows Great to hear! ;)
-
@fieldofcows Well, after digging a bit into the code and troubleshooting things, it turns out it's because there's a particular video profile that OMXPlayer still does not support:
https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=142204
I noticed it when some videos actually worked where others didn't, and it stumped me.
I'm re-encoding my few videos that don't suit the profile, and should be good to go. I'm sticking to your latest OMX+Screensaver build for the time being :)
Thanks for everything here!
-
@fieldofcows I was going to submit a pull request for the OMXPlayer implementation, but in doing my changes I end up creating other problems. :)
Summary:
in VideoPlayerComponent.cpp , I had changed these two lines to the following:
const char* argv[] = { "", "--win", buf, "--layer", "10000", "--loop", "--no-osd", "-b", "--aspect-mode", "letterbox","", NULL }; argv[10] = mPlayingVideoPath.c_str();
It keeps the aspect ratio of the movies (noticeable for vertically-oriented videos) :) But, on the flipside, for the screensaver it doesn't hide the background (theme, screen, etc).
It was a brief attempt at helping out, but the new problem makes it worse than before - I'd rather have stretched video than screensavers that hide only part of the screen :)
Have a great weekend!
-
@pjft I haven't tried this change to see what you mean about the screensaver but I'm guessing rendering a screen-sized black box behind the video in the screensaver will fix this.
-
@fieldofcows yes, that is correct, and it's what I ultimately am trying to do on my own, in a - what I imagine - very suboptimal manner :)
I'll share whatever I come up with. It's been a very long time since I've done any C++ programming, but this does not in any way strike me as a tremendous challenge. And I've been meaning to do something, however minor, for the project, so this sounds like an easy thing (famous last words).
I do have a very poor development workflow at the moment, though. I'm on a Mac, so I'm using Sublime (which is little more than a beefed up Notepad, kind of like the old UltraEdit) and then I scp my code to the Pi and attempt to compile there.
I could perhaps go back to Eclipse, which should be a lot better than what it was in 10 years ago, but would love to get some way to test the code consistency.
Any tips would be very much appreciated - even if just something that'd do some very basic error checking before I send it for compilation. Not syntax errors per se, but validating references, context, scope, etc.
Thanks!
-
@fieldofcows that's now sorted. :)
I'm actually adding a few extra tidbits here and there on my limited time, mostly quality of life changes, nothing really significant.
I'll send this one as a pull request for your review later, maybe in the coming days.
I'm still trying to get my head around GitHub. I was under the impression I had committed a couple of things so far but can't seem to find them on the web.
One thing at a time. :)
Thanks!
-
@pjft With git, you have to do a commit (to the local repository) and then a push to get it to the remote repository. If you're used to things like CVS, SVN, or Perforce, it's a bit of a different workflow. This will be useful to you: https://git-scm.com/book/en/v2 .
-
@MWGemini Thanks! I have something sorted out now. :)
https://github.com/pjft/EmulationStation/tree/omx-fade-letterbox
I have submitted a PR to @fieldofcows - a very simple one, really - and am now looking into a few fun things. Will share if/when they become stable, in my limited time. Still, all credit to @fieldofcows 's work, as this is really all him. I'm just tweaking and adapting.
Would still like to have a proper development workflow on my Mac that'd allow me to quickly test the code and compile it. Right now I zip the code, copy it to the Pi, unzip, compile, and debug a lot via logs. Like the good old days of printf() debugging :P
Should have something interesting to share in the coming days, fingers crossed.
-
@pjft I can't help with the development workflow on a Mac, since I'm not a Mac user, and haven't ben able to find time in my schedule to actually do any development on ES. I keep hoping work will slack off a bit, but that never seems to happen...
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.