Android | Backporting Graphics Code to 4.1.2

I've created a framework for displaying a streamed/stored video from any source to Android display at 60fps, given it has a GPU, supports OpenGLES2.0+, and is running on Android 4.4.4+. This has been in use in several systems at Tonbo and all was great until we received a head mounted display - Recon Jet which runs on Android 4.1.2. The Android SDK equivalent version is 16. This is a post on how I backported the framework, the thought process involved in debugging why the Recon wouldn't play the stream. I'm certain this will make sense to only someone who's worked on Android graphics, GLES, and Gstreamer, but may interest someone who enjoys debugging in general.


Receive the Recon. Run my application.


My streaming library isn't compatible here. The minimum SDK version my code runs on is SDK 19, but the Recon is at SDK 16. First thoughts, I will have to backport all my base graphics rendering calls from SDK 19 introduced android.opengl.EGL14 to the old…

All the world's a nowhereland

Why do you work so hard, child? There was infinite work before you were here, and there will be infinite work after you go. Yes you might think you've contributed to a significant amount during your act, but on the grand stage you are merely a performer with limited time. Your work may influence the acts of other performers and you may change the course of the story in your own little way, but there will always be more stage-time once you go.

If you never existed, your workplace would have still continued to function, if you leave, your workplace will not come to a stand-still. Even if you work twice the number of hours you can only take the company so far; there will still be an infinite amount of work left.

Your time here is a lot like a long car drive from no-where-land-A to no-where-land-B; there are infinite no-where-lands ahead of you and infinite no-where-lands behind you. You decide where you start, and keep driving until you decide to stop. Just as with every new highway… is live!

I created a portfolio website during my junior year while I was learning Python Flask. I hosted it on using their free-tier account provided subdomain - it's long and cannot be shared because you're bound to spell pythonanwyhere[1] wrong. I've been passively looking for a good domain name for a long time but never spent more than a minute or two on godaddy. I really wanted to buy one and tick this off of my to-do list., and were not available. I thought a family domain and individual members sub-domain, for example, would have been really cool but none of them were available. Though was available, it just didn't have the same ring as a .com or .me domain and besides it seemed too short. Short .com's are very expensive. My nick/alias on most websites is crearo[2], and would've been it for me had it been available. It turns out there's a Chinese…

One Year at Tonbo Imaging

Tonbo Imaging is the best company to have started my career with, for I've had the opportunity to do something I got interested in at the very start of college; developing software for tangible systems. It has been 6 months of internship and 6 months of full time employment, and I'm certain I've learnt more than I ever could have during my four years at college. I've been very fortunate to have a very knowledgeable mentor, and a manager who gives us a lot of space to think and ideate, and spend time on research.

In the past year, I've worked on developing an ecosystem of small-sized thermal cameras running a custom Android OS that perform video analytics, are controlled remotely and support global live streaming. It's taken a year to go from an idea to a proof of concept product - we're in no way scalable yet, and are continuously going through architectural changes while ideating and understanding the potential of this system. Most of my work has been R&a…

Entangled Brains

I'm sitting on a rooftop humming to half remembered lyrics of a song I heard the other day. I'm actively trying not to remember the long list of to-dos I've made for myself to finish before this year ends.
I look at the passersby walking down the road and I see a couple wearing winter clothes.
The first thing winter reminds me of is penguins. I ask myself what the name of the penguin from the animated movie Happy Feet was.
I remember Lovelace, but he wasn't the main penguin.
I'm then reminded of the fact that Marian Aunty, a grandmotherly figure from our time in Switzerland showed us giraffes in the Basel Zoo. I don't quite remember why they have black tongues, and so I start thinking of the survival advantages black tongues may provide.
The thought doesn't stick too long as I see a bird fly into the tree that's as tall as the rooftop I'm on.
Zap. Humans never evolved to see in the dark, but they made artificial sources of light. Do bats get extrem…

The Crane Mystery

There's this question that's been bugging me for over a month. It's a fairly simple question about a fairly common object in a city landscape, and yet it's an absolute mystery to me as to why I cannot come up with a believable solution. I've brought it up in ever-day conversation with friends and colleagues, hoping their answers might lead me to a justifiable answer. I've avoided Googling the answer for over a month, because some things in life just shouldn't be so easy. It's a fairly pleasant feeling to keep your mind pondering over such a simple question, and so the urge to pen this post.

How are cranes transported and constructed?

Take a minute, and visualise the size of these things. A crane is practically just two very long lines; one vertical steel pillar holding a similar horizontal one at the top. Moving them from place to place is difficult, and funnily enough, I've never seen a half-constructed crane.

Here's a list of answers I've…

Just Average

Be the average man, the one if randomly picked from a group of identically average people, could represent just anybody.
Let each day pass under its own circumstances, today, just the same as yesterday, letting the sole change setter, if any, be the minor perturbations life may bring. Don't actively think-ahead, plan in detail what you'd like to have achieved by the end of each week. Be tolerant, be just okay, with every new hardship. Settle, don't struggle too hard, be just okay if you can't achieve your already not-so-high aspirations.


I did a small experiment with myself. For 2 weeks, I spent each day without planning ahead. I met all friends that invited me, I made all the easy decisions, slept for longer hours, didn't complain of not being able to do as much as I'd planned; because I'd planned nothing in the first place. I printed a calendar and wrote down what I did at the end of each day.

I conclude it's far too easy being average. If we let o…