Teardown: Sling Adapter

The consumer electronics space is always in a state of flux, but perhaps nowhere is this more evident than with entertainment equipment. In the span of just a few decades we went from grainy VHS tapes on 24″ CRTs to 4K Blu-rays on 70″ LED panels, only to end up spending most of our viewing time watching streaming content on our smartphones. There’s no sign of things slowing down, either. In fact they’re arguably speeding up. Sure that 4K TV you bought a couple years back might have HDR, but does it have HDMI 2.1 and Dolby Vision?

So it’s little surprise that eBay is littered with outdated A/V gadgets that can be had for a pennies on the dollar. Take for example the SB700-100 Sling Adapter we’re looking at today. This device retailed for $99 when it was released in 2010, and enabled Dish Network users to stream content saved on their DVR to a smartphone or tablet. Being able to watch full TV shows and movies on a mobile device over the Internet was a neat trick back then, before Netflix had even started rolling out their Android application. But today it’s about as useful as an HD-DVD drive, which is why you can pick one up for as little as $5.

Of course, that’s only a deal if you can actually do something with the device. Contemporary reviews seemed pretty cagey about how the thing actually worked, explaining simply that plugging it into your Dish DVR imbued the set-top box with hitherto unheard of capabilities. They assured the reader that the performance was excellent, and that it would be $99 well spent should they decide to dive headfirst into this brave new world where your favorite TV shows and movies could finally be enjoyed in the bathroom.

Now, more than a decade after its release, we’ll crack open the SB700-100 Sling Adapter and see if we can’t figure out how this unusual piece of tech actually worked. Its days of slinging the latest episode of The Office may be over, but maybe this old dog can still learn a few new tricks.

Continue reading “Teardown: Sling Adapter”

Decoding The Netflix Announcement: Explaining Optimized Shot-Based Encoding For 4K

Netflix has recently announced that they now stream optimized shot-based encoding content for 4K. When I read that news title I though to myself: “Well, that’s great! Sounds good but… what exactly does that mean? And what’s shot-based encoding anyway?”

These questions were basically how I ended up in the rabbit hole of the permanent encoding optimization history, in an effort to thoroughly dissect the above sentences and properly understand it, so I can share it with you. Before I get into it, lets take a trip down memory lane. Continue reading “Decoding The Netflix Announcement: Explaining Optimized Shot-Based Encoding For 4K”

Reverse Engineering Liberates Dash Cam Video

If you’ve purchased a piece of consumer electronics in the last few years, there’s an excellent chance that you were forced to use some proprietary application (likely on a mobile device) to unlock its full functionality. It’s a depressing reality of modern technology, and unless you’re willing to roll your own hardware, it can be difficult to avoid. But [krishnan793] decided to take another route, and reverse engineered his DDPAI dash camera so he could get a live video stream from it without using the companion smartphone application.

Like many modern gadgets, the DDPAI camera creates its own WiFi access point that you need to connect to for configuration. By putting his computer’s wireless card into Monitor mode and running Wireshark, [krishnan793] was able to see that the smartphone was communicating with the camera using some type of REST API. After watching the clear-text exchanges for awhile, he not only discovered a few default usernames and passwords, but the commands necessary to configure the camera and start the video stream.

After hitting it with the proper REST messages, an nmap scan confirmed that several new services had started up on the device. Unfortunately, he didn’t get any video when he pointed VLC to the likely port numbers. At this point [krishnan793] checked the datasheet for the camera’s Hi3516E SoC and saw that it supported H.264 encoding. By manually specifying that as the video codec when invoking VLC, it was able to play a video stream from port 6200. A little later, he discovered that port 6100 was serving up the live audio.

Technically that’s all he wanted to do in the first place, as he was looking to feed the video into OpenCV for other projects. But while he was in the area, [krishnan793] also decided to find the download URL for the camera’s firmware, and ran it through binwalk to see what he could find out. Not surprisingly the security turned out to be fairly lax through the entire device, so he was able to glean some information that could be useful for future projects.

Of course, if you’d rather go with the first option and build your own custom dash camera so you don’t have to jump through so many hoops just to get a usable video stream, we’ve got some good news for you.

Raspberry Pi Runs XBMC; Reliably Decodes 1080p

This is the Raspberry Pi board, an ARM based GNU-Linux computer. We’ve heard a little bit about it, but it recently garnered our attention when the machine was shown running XBMC at 1080p. That’s a lot of decoding to be done with the small package, and it’s taken care of at the hardware level.

Regular readers will know we’re fans of the XBMC project and have been looking for a small form factor that can be stuck on the back of a television. We had hoped it would be the BeagleBaord but that never really came to fruition. But this really looks like it has potential, and with a price tag of $35 (that’s for the larger 256MB RAM option) it’s a no-brainer.

Now there’s still a lot of rumors out there. We came across one thread that speculated the device will not decode video formats other than h.264 very well since it uses hardware decoding for that codec only. We’ll reserve judgement until there’s more reliable info. But you can dig through this forum thread where the XMBC dev who’s been working with the hardware is participating in the discussion.

Don’t forget to peek at the demo clip after the break too.

Continue reading “Raspberry Pi Runs XBMC; Reliably Decodes 1080p”

Decoding MP3 In Python

We all listen to them, but do you know how the compression for an MP3 file actually works? [Portalfire] wanted to find out, while honing his Python skills at the same time. He’s been working on an MP3 decoder in the Python language. So far he’s had some success, with the first working decoder clocking in at just 34 times slower than real-time. But since then a bit of optimization improved that to 10 times slower.

Sure, it’s not a usable module yet but his goal of learning the algorithms has been reached. A combination of reading about the standard and looking at code from other projects made that possible. In the future he plans to try the same thing with the H.264 codec.