Jump to content

Theme: blue neon night


speechles

Recommended Posts

@@speechles, because of how big the app is what if it could be stored server side and call to the needed images then the app would be extremely small? Jyst a thought I don't know if this is possible.

 

I've already spoke to luke about this. The app is written to allow the server to distribute themes. But it is unfinished. The server part is also, never started. Luke was hoping others would fill in the gaps and at that time nobody stepped up to move it forward. Now that I have it is too late to make such an effort, for an app that needs rewriting.

 

Luke is right too, for him to make the effort would need to be for the upcoming scene-graph apps. In this way entire objects and brightscript functions can be imported from the server easily. Imagine the roku app, you can pick and choose features you want from the server directly from a plugin. Now the app designs itself and runs on your roku. There would also be a preferences on the roku that would let you then customize each of the functions you added. This is indeed possible.

 

It would slow down the app a little as it starts each time, because it would have to assemble itself each time from the server assets depending on the features you requested be added. Think of it like having the ability to add widgets anywhere you want. This is how scene-graph works. You will be impressed when we get there.

 

I was when I read the docs on everything possible with scene-graph. Think of emby theater on the roku. This is indeed possible, then custom themes on top, along with language localization. This way if you speak french, the app knows your roku is in france, it shows french text. There is a scene-graph function that already handles localization. This will make it much more accessible for non english speaking users.

 

There is also having the roku speak your native language to you. This is also possible I already hacked the present blueneon app to talk to me and it is very star trek feeling. Like as you navigate it reads the description to you from detail pages. This is actually nice because it reads the entire thing, it isnt dependent on how much the screen can show.

 

I am just scratching the surface on what scene-graph allows. So yes, eventually the apps will be ridiculously tiny in size and the server will handle dispatching most of the app and assets to the roku. It is very possible. Will we get there is up to the main developers. I can only encourage them to make the jump and help us get there. I cant force change.

Edited by speechles
  • Like 1
Link to comment
Share on other sites

Waldonnis

@@speechles, because of how big the app is what if it could be stored server side and call to the needed images then the app would be extremely small? Jyst a thought I don't know if this is possible.

 

Splash screen images have to be stored locally (in the channel package) if I recall correctly, since the firmware loads and displays them while executing the channel's initial code. The other graphics like the big letters and such can be stored server-side or even just pulled off of another site like Github. There are reasons not to do this, though (bandwidth use, fetching speed, memory/cache use, and so forth) that have to be considered when deciding what to pull from the server vs. what can fit in the channel package.  Most Roku channels tend to go light on the custom graphics for those reasons.

 

Reducing that image to an indexed colour palate (256 colours) should cut the file size considerably - probably to 25% of the current file size and have a few bonus benefits as well, like slightly faster load/display time and less display memory required (not that either really matter for splash screens).  The downside is that the dithering around the lightning area will probably suffer and look blotchy unless you tweak the palate and image a bit to compensate.

Link to comment
Share on other sites

@@Waldonnis

 

They cant be pulled off github, because this adds a complexity out of the users control. Is there internet? Is github down? These would have to be stored locally on the server and retrieved that way. This removes things out of our control and makes the environment entirely local.

 

Sent from my Nexus 7 using Tapatalk

Link to comment
Share on other sites

Happy2Play

I get JSON ERROR if not set to /items [default].  It appears to be only navigating to Movie libraries trigger it.  It doesn't trigger the error on TV or Music libraries.  Haven't tested without CoverArt yet.

 

@@speechles If you change this setting does the server setting (Group movies into collections) have to be set also or is it independent?

 

Beta 3.1.67.0

Link to comment
Share on other sites

Waldonnis

@@Waldonnis

 

They cant be pulled off github, because this adds a complexity out of the users control. Is there internet? Is github down? These would have to be stored locally on the server and retrieved that way. This removes things out of our control and makes the environment entirely local.

 

Sent from my Nexus 7 using Tapatalk

Exactly. That part of my reply was for mediacowboy, as you already understand those factors. I was mostly just commenting that it was possible for some images to be remotely hosted in general, but splashes aren't among them. Even still, hosting other images Emby-server-side (not even involving third parties) does have implications that have to be considered as well.

 

Streaming services sometimes do pull static images from their servers, but their channels would be useless anyway if they couldn't connect (not the same use case, though) [emoji2]

Link to comment
Share on other sites

I get JSON ERROR if not set to /items [default].  It appears to be only navigating to Movie libraries trigger it.  It doesn't trigger the error on TV or Music libraries.  Haven't tested without CoverArt yet.

 

@@speechles If you change this setting does the server setting (Group movies into collections) have to be set also or is it independent?

 

Beta 3.1.67.0

 

hmmm.. Here is the movie fetches..

 

 

        else if movieToggle = 2 then
            if latest = 0 then
                url = url + "/Users/" + HttpEncode(getGlobalVar("user").Id) + "/Items?IncludeItemTypes=Movie"
                query = {
                    recursive: "true"
                    ExcludeLocationTypes: "Virtual"
                    fields: "PrimaryImageAspectRatio,Overview"
                    sortby: "DateCreated"
                    sortorder: "Descending"
                    ImageTypeLimit: "1"
                }
                if remwatch = "yes" then query.AddReplace("filters", "IsUnplayed")
            else
                url = url + "/Users/" + HttpEncode(getGlobalVar("user").Id) + "/Items/Latest?IncludeItemTypes=Movie"
                query = {
                    fields: "DateCreated,ItemCounts,PrimaryImageAspectRatio,Overview"
                    ImageTypeLimit: "1"
                    EnableImageTypes: "Primary,Backdrop,Banner,Thumb"
                    EnableTotalRecordCount: "true"
                }
                'if remwatch = "yes" then query.AddReplace("filters", "IsUnplayed")
            end if

 

The bottom part is what is run when you use /items/latest. In this I can see, an imagetypelimit of 1, but enabled all images.

 

@@ebr since this is your neck of woods, do you have any idea what causes this? It is either your coverart or the server misbehaving in this instance. The outlying http calls made are shown above.These work perfectly for me on the stable server (Version 3.0.5972.0) and coverart (CoverArt 4.0.13.0). Can you help diagnose the problem?

Link to comment
Share on other sites

Happy2Play

Removing CA didn't make a difference for the JSON error at least for me.

 

Only error the stands out in server log is

2016-07-17 18:11:21.4377 Error ServiceStackHost: Error occured while Processing Request: Unable to write data to the transport connection: An established connection was aborted by the software in your host machine.
	*** Error Report ***
	Version: 3.1.67.0
	Command line: C:\Users\Administrator\AppData\Roaming\Emby-Server\System\MediaBrowser.ServerApplication.exe
	Operating system: Microsoft Windows NT 6.1.7601 Service Pack 1
	Processor count: 4
	64-Bit OS: True
	64-Bit Process: True
	Program data path: C:\Users\Administrator\AppData\Roaming\Emby-Server
	Application Path: C:\Users\Administrator\AppData\Roaming\Emby-Server\System\MediaBrowser.ServerApplication.exe
	Unable to write data to the transport connection: An established connection was aborted by the software in your host machine.
	System.IO.IOException
	   at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)
	   at SocketHttpListener.Net.ResponseStream.InternalWrite(Byte[] buffer, Int32 offset, Int32 count)
	   at SocketHttpListener.Net.ResponseStream.Write(Byte[] buffer, Int32 offset, Int32 count)
	   at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
	   at ServiceStack.Text.JsonSerializer.SerializeToStream[T](T value, Stream stream)
	   at ServiceStack.Serialization.JsonDataContractSerializer.SerializeToStream[T](T obj, Stream stream)
	   at ServiceStack.HttpResponseExtensionsInternal.WriteErrorToResponse(IResponse httpRes, IRequest httpReq, String contentType, String operationName, String errorMessage, Exception ex, Int32 statusCode)
	   at ServiceStack.ServiceStackHost.HandleUncaughtException(IRequest httpReq, IResponse httpRes, String operationName, Exception ex)
	   at ServiceStack.HostContext.RaiseAndHandleUncaughtException(IRequest httpReq, IResponse httpRes, String operationName, Exception ex)
	   at ServiceStack.HttpResponseExtensionsInternal.HandleResponseWriteException(Exception originalEx, IRequest request, IResponse response, String defaultContentType)
	   at ServiceStack.HttpResponseExtensionsInternal.<WriteToResponse>d__6.MoveNext()
	--- End of stack trace from previous location where exception was thrown ---
	   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
	   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
	   at ServiceStack.Host.RestHandler.<ProcessRequestAsync>d__13.MoveNext()
	InnerException: System.Net.Sockets.SocketException
	An established connection was aborted by the software in your host machine
	   at System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
	   at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)
Link to comment
Share on other sites

Does it crash the app?

 

Because this led me to make something easier to get logs from. Borrowed from the samsung app, introducing the debug log screen..

 

c3a25de725ac9259d055f996f8fa5011.jpg

 

Now this is not ready for prime time yet. It doesnt trim the log it keeps which is bad. I still need to add a limit where only the last 500 or maybe 1000 lines are saved in tmp:/. This constantly writes a temp file adding to the end for every debug line. Then uses rotextscreen to show that temp file and display its text. The rotextscreen has a scroll bar, and produces tiny text. This is perfect for looking at problems in the logs.

 

Once I polish it up a bit this will allow everyone to fix issues as long as the issue isnt crashing the app. You can see the logs without sideloading in developer mode this way. You just take a picture of your TV screen while debugging is turned on. There will also be an option to disable debugging to speed up the app. Expect this sometime tomorrow. :)

 

Also, this does not break the normal debug routine in the app. This debug screen is just easier for people to see for themselves with less hassle. In the event of an app crash, having a telnet debug session with the roku is required to get relevant context. The temp file is wiped when the roku crashes unfortunately.

 

@@CBers @@Happy2Play Much easier way to view logs would you agree? Notice where Ive scrolled the debug to. See the /items/latest used to fetch movies. It works perfectly for me.

 

Sent from my Nexus 7 using Tapatalk

Edited by speechles
  • Like 1
Link to comment
Share on other sites

Guest Grace1313

I was getting that same error, but after deleting channel and adding it everything is working again.  If I remember correctly, the error was showing up first thing after clicking on the app.

Link to comment
Share on other sites

Guest Grace1313

@@speechles,

i had to ditch the lightning, it was what was causing the large file size.  I could get it down to around 125kb, but no smaller.

This one is 39kb

578c820a9b90f_emby_neon_night4.png

 

 

and this is the same as above but indexed colors, it's only 18kb

578c825b292a6_emby_neon_night4_indexed.p

 

i also have one without the stars and one without the reflection. 

Link to comment
Share on other sites

CBers

@@CBers @@Happy2Play Much easier way to view logs would you agree? Notice where Ive scrolled the debug to. See the /items/latest used to fetch movies. It works perfectly for me.

Cool. Will make it easier to grab the errors :)

 

As an aside, I have removed Collections from my setup due to this: http://emby.media/community/index.php?/topic/36830-slow-response-displaying-movies-with-group-collections-option/

Link to comment
Share on other sites

New Version: v3.64

* add debug log screen

* add preference to enable/disable debug

* add additional parts screen

* add Grace1313's splash screen

 

First off, the debug log screen. To access go to the options row at the bottom and choose debug logs. In preferences you MUST have debug enabled. By default, debug is not enabled. Debug must be enabled to allow access to the debug log screen, and to make telnet debug work this must be enabled. There is also no limit to the size this log can grow. I did not make it only show the last 500, or 1000 lines, it shows all. Not sure how big an app can write files to temp, in my testing it lets you get large, so you may find the app misbehaves if you log alot of things. Disabling debug when not troubleshooting things is recommended.

 

The additional parts, would only allow you to play the first part. When doing so, all additional parts would load in sequence after, but there was no way to directly select an additional part itself. Now there is, this works identically to how the special features screen works. Unfortunately, you may see a resume point, but presently there is no ability to resume from additional parts, or special features.

 

233f21600c30169b8b47951e00a9de5c.jpg

 

The new splash screen is courtesty of @. This looks much better. I think you will all agree. Upon exit the app, a dialog is displayed showing credits of collaborating users. Thank you shaefurr, waldonnis, and grace1313.

 

Updated all links in first post. Have fun, update your rokus and ejoy. :)

Edited by speechles
  • Like 1
Link to comment
Share on other sites

Guest Grace1313

@@speechles, thanks for the shout out.

I'm working on the tile images now, I'll send them to you as I get them done, then I'll work on the holiday images.

Link to comment
Share on other sites

New version: v3.65

* add "clear logs" option to debug logs

 

423f1b1282c84a7ff75f58cc1c126766.jpg

 

This should make it faster to find issues. You can use clear logs to empty the current temporary logged data. This makes it easier to find exact issues without having to read through the entire log.

 

On the debug logs screen, rewind/fast forward moves by pages, the d-pad moves by lines. Holding either down eventually fast scans. This should make self diagnoses within the app entirely possible for everything except crashes. Compare logs you see in the roku app against logs from the server and be your own detective. If timestamps are required on each line or not I decided against since it increases filesize more quickly. I can add an option (I love options) to allow timestamps in debug logs if required.

 

@@Happy2Play @@CBers have you guys used the debug logs button after seeing the app misbehave?

 

Sent from my Nexus 7 using Tapatalk

Edited by speechles
Link to comment
Share on other sites

Happy2Play

Not yep should be able to get to it tonight or in the morning.

  • Like 1
Link to comment
Share on other sites

Thx :)

 

I will merge these in on the next update. These also have to be uploaded to the roku store as the icon images you see on their site depending on your display resolution. As soon as I get info on what causes the /items/latest bug with the movies row I will jump on adding your images into the app. Chasing bugs is never fun. Having this debug ability in app done so easily should increase users participating in helping solve these types of issues.

Edited by speechles
Link to comment
Share on other sites

Happy2Play

@@speechles Well of course an update must have resolved it. :)

 

Just a guess but I have a feeling the update in 3.1.68.0 that fixed the "Group movies into collections" resolved the issue.

Edited by Happy2Play
  • Like 1
Link to comment
Share on other sites

CBers

@@Happy2Play @@CBers have you guys used the debug logs button after seeing the app misbehave?

 

 

@@speechles - the Roku now has v3.65 installed, but I still get the JSON error which causes the app to close, so I can't get to see the error in the debug logs, which obviously doesn't retains it across app starts.

 

Looks like I'll have to try the old-fashioned telnet process!

 

I don't believe it's Cover Art or Collections related, as they are both disabled on my server.

  • Like 1
Link to comment
Share on other sites

CBers

OK, this is strange.

 

I can telnet to the Roku (port 8085) but all I get is a blank screen.

 

If I start either this app or the Emby one, nothing appears in the telnet window.

 

Any ideas ?? The Roku is definitely in developer mode.

 

As an aside, the JSON error only occurs if I move down 1 row from Kids Movies to Kids TV, or if I press down really quickly, I can get to the Options row, but then I get the JSON error is i move back up and highlight the Music row.

 

As I said earlier, I have removed the app, rebooted the roku and re-installed the app but still getting the same error.

 

No errors with the Emby app.

  • Like 1
Link to comment
Share on other sites

CBers

The only error I can see in the server log around the time I get the error on the Roku (192.168.1.28) is this one:

 

2016-07-19 10:18:08.3759 Info HttpServer: HTTP Response 200 to 192.168.1.28. Time: 10ms. http://192.168.1.140:8096/emby/Items/88bc6f6fc77642247ae4f12519f881ba/Images/Thumb/0?EnableImageEnhancers=false&tag=9511cb81a336068bd925bc5179069a3c&width=138&height=77
2016-07-19 10:18:08.4699 Error ServiceStackHost: ServiceBase<TRequest>::Service Exception
*** Error Report ***
Version: 3.1.6043.41411
Command line: C:\Users\Media\AppData\Roaming\MediaBrowser-Server\System\MediaBrowser.ServerApplication.exe
Operating system: Microsoft Windows NT 6.1.7601 Service Pack 1
Processor count: 4
64-Bit OS: True
64-Bit Process: True
Program data path: C:\Users\Media\AppData\Roaming\MediaBrowser-Server
Application Path: C:\Users\Media\AppData\Roaming\MediaBrowser-Server\System\MediaBrowser.ServerApplication.exe
Value cannot be null.
Parameter name: appVersion
System.ArgumentNullException
  at MediaBrowser.Server.Implementations.Session.SessionManager.<LogSessionActivity>d__9.MoveNext()
So I'm not sure if it is a Roku or server error.
 
!!HELP!!
 
:D
  • Like 1
Link to comment
Share on other sites

Happy2Play

As an aside, the JSON error only occurs if I move down 1 row from Kids Movies to Kids TV, or if I press down really quickly, I can get to the Options row, but then I get the JSON error is i move back up and highlight the Music row.

That is exactly what I was getting, but today I couldn't reproduce and the only updates that happened were beta server version update from 67 to 68 and Neon update from 63 to 65.

  • Like 1
Link to comment
Share on other sites

CBers

That is exactly what I was getting, but today I couldn't reproduce and the only updates that happened were beta server version update from 67 to 68 and Neon update from 63 to 65.

I run dev server, so fixes in beta 68 should have been in dev for a few days, but it still fails.

 

I thought if I uninstalled the app on the Roku, that I would have to set everything up again when reinstalling, but the app remembers the last logged on account, with the "Welcome Back" message.

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...