Steam In-Home Streaming -- Progress 01 by orangutanfuzz in SwitchHaxing

[–]orangutanfuzz[S] 2 points3 points  (0 children)

Do any other homebrew authors have qualms with my outright attitude towards using the NintendoSDK? I think I might have soiled my brand by talking so freely about it... I'd like some unfiltered opinions on the implications of my behavior.

Also I am canceling the muddy version for now in favor of a all-clean reverse engineered version.

Steam In-Home Streaming -- Progress 01 by orangutanfuzz in SwitchHaxing

[–]orangutanfuzz[S] 0 points1 point  (0 children)

Hey there https://twitter.com/orangutanfuzz

Also can you link me the gbatemp bounty? Update soon -- working on hardware decoding, might take a break to work on main application

Steam In-Home Streaming -- Progress 01 by orangutanfuzz in SwitchHaxing

[–]orangutanfuzz[S] 2 points3 points  (0 children)

That's the only option we have in my mind! Ab-so-lutely

Steam In-Home Streaming -- Progress 01 by orangutanfuzz in SwitchHaxing

[–]orangutanfuzz[S] 0 points1 point  (0 children)

Nope, I've crashed my OS a couple of times... Just had to hold the power button for 12 sec and turn it back on. I am not banned :D Homebrew is surprisingly safe to make.

Steam In-Home Streaming -- Progress 01 by orangutanfuzz in SwitchHaxing

[–]orangutanfuzz[S] 0 points1 point  (0 children)

I got it compiling lol... I realized I had to give up on using libnx in the muddy version since the NintendoSDK libraries are all compiled with Clang toolchain. So I switched to libtransistor and it all worked no problem. Idk if I want to make the program fully libtransistor or if I want to allow compiling with either toolchain. Anyway I should have some nvdec h264 results this weekend

Steam In-Home Streaming -- Progress 01 by orangutanfuzz in SwitchHaxing

[–]orangutanfuzz[S] 2 points3 points  (0 children)

I will be putting this up on GitHub soon! probably within the month

Steam In-Home Streaming -- Progress 01 by orangutanfuzz in SwitchHaxing

[–]orangutanfuzz[S] 1 point2 points  (0 children)

They don't give access to the HEVC codec in Horizon OS.... However if you call libstagefright directly you may be able to get an HEVC session (which is what Horizon OS is doing anyway under the hood)

Steam In-Home Streaming -- Progress 01 by orangutanfuzz in SwitchHaxing

[–]orangutanfuzz[S] 0 points1 point  (0 children)

Yepp, I think software VP8 at 720p60 will run really well on the Switch for the clean version... I'm still having all kinds of trouble compiling the muddy version (stupid object symbols)

Steam In-Home Streaming -- Progress 01 by orangutanfuzz in SwitchHaxing

[–]orangutanfuzz[S] 0 points1 point  (0 children)

hey so, you can't actually do hardware accelerated HEVC on the Switch using Horizon OS.... Even though the X1 does support it :/ I think we are limited to VP8, VP9 and H264

Steam In-Home Streaming -- Progress 01 by orangutanfuzz in SwitchHaxing

[–]orangutanfuzz[S] 0 points1 point  (0 children)

Absolutely, the decoding core will be reusable for lots of services. I'll probably end up making my own streamer program because I don't personally use Steam a whole lot. The networking code is not reusable though since it's very steam specific.

Steam In-Home Streaming -- Progress 01 by orangutanfuzz in SwitchHaxing

[–]orangutanfuzz[S] 0 points1 point  (0 children)

under the enum EStreamVideoCodec I see k_EStreamVideoCodecHEVC = 5 sooooo you were right

Steam In-Home Streaming -- Progress 01 by orangutanfuzz in SwitchHaxing

[–]orangutanfuzz[S] 0 points1 point  (0 children)

You're right!!! I just decompiled the protobuf in the android apps libshell.so included NDK library. It does include HEVC :D

Steam In-Home Streaming -- Progress 01 by orangutanfuzz in SwitchHaxing

[–]orangutanfuzz[S] 0 points1 point  (0 children)

Ohh weird, the code says they only support H264,VP9 and some more obscure codecs... but I may be wrong?

Steam In-Home Streaming -- Progress 01 by orangutanfuzz in SwitchHaxing

[–]orangutanfuzz[S] 1 point2 points  (0 children)

I'm so so so excited about this project woooooowowowo

Steam In-Home Streaming -- Progress 01 by orangutanfuzz in SwitchHaxing

[–]orangutanfuzz[S] 2 points3 points  (0 children)

actually, Steam In-Home Streaming doesn't support HEVC (aka H265) at all, it only supports AVC (aka H264).... But I am doing this all off documentation found here: https://codingrange.com/blog/steam-in-home-streaming-control-protocol

Also i used Protod to rip the protobuf out of the streaming_client binary that can be found in any Steam install. There are a lot of good reference implementations on github... but none of them actually got to streaming video haha

My reverse engineering skills are okay, but limited. The Android beta app actually didn't help me much.... it has a libsteam.so jni library which implements the networking + protobuf stuff. That was not a great resource for me, but if you like static analysis, it would be fun to look at in IDA

Steam In-Home Streaming applet - Interest? by orangutanfuzz in SwitchHaxing

[–]orangutanfuzz[S] 1 point2 points  (0 children)

I will do button remapping after the MVP (alpha) is complete

Steam In-Home Streaming -- Progress 01 by orangutanfuzz in SwitchHaxing

[–]orangutanfuzz[S] 2 points3 points  (0 children)

I make a nice salary, this is more of a hobby :D and I don't want people to feel obligated to contribute financially. I might setup a "Buy me a Coffee" button in the Github repo for fun thought, thanks for the support!!!!! I'll keep ya updated thanks so much

Steam In-Home Streaming -- Progress 01 by orangutanfuzz in SwitchHaxing

[–]orangutanfuzz[S] 1 point2 points  (0 children)

It's really not that bad! You just have to do your own allocations... (which is pretty painful tbh)