Computer stuff Programming Retro-Tech

Decoding TV Teddy Part Four – The Search For Encoding That Works

If you’ve been following my articles on reverse-engineering the TV Teddy soundtrack embedded in the video picture, then you may have wondered why I’ve gone silent on encoding my version. The previous article (part three) found me working to encode a new signal for Databits, the excellent retro-tech Youtube channel.

Well, all I can say is that Brad at Databits has had to become very patient as my failure to create a TV Teddy interactive video with him continues.

The fact is that I can find nothing that triggers the green light on the TV Teddy box. It is this light that signifies that the video-embedded audio track has been detected and is being decoded – and the audio transmitted.

So I looked again at the VHS picture and noticed how even pausing the tape stops the signal being found by the TV Teddy box. My VHS recorder is an S-VHS JVC machine with a precision pause picture (in analogue terms), but it is still enough to shut off the TV Teddy box green light. That’s how accurate the control signal needs to be – even if it’s “off” by a scanning line or two the signal is lost.

So then I set up a Raspberry Pi computer using its composite video out (rather than HDMI), and remotely controlled it from its terminal command-line over SSH. I used a command-line app called osxplayer (preloaded with the Raspbian operating system) that can be used to start local playback of video either over HDMI or composite video. It works well even on the earliest Raspberry Pi boards, so there was an excellent opportunity to press an old board into life as tvTeddyPi.

Importantly, I set the tvTeddyPi to enable overscan (in the raspi-config app) so that I had access to areas off the screen equivalent to where the TV Teddy embedded audio track is hidden.

I took the opening 3 minutes of a digitised TV Teddy VHS tape that came with my TV Teddy, and used osxplayer to play it back. The video was fed through the TV Teddy box and onwards to my TV screen so I could see what was happening.

Here’s the command I used on the SSH terminal session:

omxplayer --win 5,0,720,480 --nodeinterlace --blank tvt.mp4


  • omxplayer     is the application that will playback the video locally
  • –win 5,0,720,480     is the left-, top-, right- and bottom-most pixels used to play the video within.
  • –nodeinterlace     – I was seeing if deinterlacing made a difference (it didn’t).
  • –blank        – keep areas outside the video playback black
  • tvt.mp4      – the name of the video file to playback

The critical parameter is the –win parameter as it allowed me to move and shape the video on the screen. So I spent an entertaining afternoon changing these settings to see if any signal could get detected. Alas.

I kept the leftmost pixel at ‘5’ as that mimicked precisely the position of the grey audio line that was just visible on the TV screen- and adjusted the topmost value:

omxplayer –win 5,0,720,480 –nodeinterlace –blank tvt.mp4

omxplayer –win 5,1,720,480 –nodeinterlace –blank tvt.mp4

omxplayer –win 5,2,720,480 –nodeinterlace –blank tvt.mp4

omxplayer –win 5,3,720,480 –nodeinterlace –blank tvt.mp4

…and so on until the image was way out compared to the VHS original playback, I could use as a reference. I even tried some minus values. Nothing. Visually, the values 5, 0, 720, 480 placed the vertical bar exactly where it was equivalent to VHS playback. Nothing.

So Brad is going to have to wait a little longer to enjoy his Databits Meets TV Teddy interactive video.

So what’s next? I think it’s time to try and bypass TV Teddy’s signal detection circuit and force it on permanently. It’s time to get invasive and perform some open heart probing inside the TV Teddy box that will see what ‘pin goes high’ and turns on the audio transmission as well as the green signal light. That way I can at least position the playback video to get the best audio as the poor thing will be decoding and transmitting fake sound from absolutely any video frame. I predict an audio howl!

Hopefully the bypass is a simple procedure – no more than a wire across two components or pins – that will help me understand more of what is happening. Worst case I can send Brad at Databits a step-by-step open-heart procedure that will enable the same function on his TV Teddy box.

I love projects like this and fascinate, intrigue and frustrate in equal measures! I must be mad.