A cursory glance at TealMovie

Apparently there’s such format for Palm so one could play videos on such devices as well (PocketPC devices got so powerful that they could even play 320×240 MPEG-4 ASP videos—provided you used some good opensource player like TCPMP and not something like VLC). Since there’s a Win32 player for it, I decided to look at the format and was slightly disappointed.

I expected it to be more akin to GBA formats that use vector quantisation (I looked at them in this post; e.g. Palm Treo should have comparable or better performance) but instead I got something reminding me of SMUSH of all things.

The format turned out to use palette and transmit frames either in raw form or split into 8×8 blocks and using various opcodes to code them. Most of the opcodes are used to signal that image should be copied from a previous frame with a fixed offset (there are 225 offsets for motion vectors in (-16,-16)..(13,13) range), fill block with single colour (either an arbitrary one or one of four provided in the frame header), skip block, fill with two colours using one of 256 predefined patterns, or split into smaller sub-blocks (and again down to 2×2 sub-sub-blocks) and update all/some of them. And there’s an opcode to code a run of repeated opcodes. If you don’t immediately think about SMUSH codec 47 then I don’t know what it reminds you of.

And of course it supported audio, which followed video part and was either 8-bit PCM or IMA ADPCM.

Overall, I believe it was enough to provide full-screen 160×160 video experience at 15 FPS using the handheld’s over 8000kHZ DragonBall CPU; I still wonder if having a direct 15-bit RGB format would make more sense.

7 Responses to “A cursory glance at TealMovie”

  1. compn says:

    kostya, i caught up on your blog again, and reading from 2013 even. so this comment will be a collection of thoughts from all your old posts from last 11 years :D.

    still no vivo2 decoding?

    finding g2m 3mb version in web archive, sniffing codecs, helping users play their old webcam videos with strange mjpeg variants. endlessly collecting fourcc and twocc lists from around the internetworld and putting on multimediawiki to have the ultimate fourcc list. i think i hid it in a talk page. yes, wiki.multimedia.cx/index.php/Category_talk:Video_FourCCs . kostya did you ever see that page on the multimediawiki ? endless fun. mike or someone had the idea to try to create pages for each fourcc!

    re: ukraine , what are your thoughts on usa funding ukraine and giving weapons? i read a lot of posts but didnt see you thank usa once. or mention ukraine other allies in eu like poland and nordics. i ask because being in usa, our media about ukraine is confusing. on one hand you have rational people saying ukraine is a democracy and needs help from insane russian dictators. and on other side you have idiot calling people names like they are communists (bad). but in another breath he will say russia/putin is his friend. every day on tv, for people who ignore reality. my uncle is sponsoring our ukrainian family to refugee to the usa, and i got to go to ukraine in 2016 (i’ve also been to russia one day in 2001, their culture is one of child bullies. i think is why trump likes them.).

    re libav death: the server died in 2022 , but looking at web archive the last release was 2018, so it looks like it was dead longer ago. looking at libav-devel , the last few mails (in 2020) were saying the project is dead and a request from a user to mention dead status on their website. i know libav was an irc focused development, i wonder if they made their death announcement on irc? or if the last guy out just forgot to turn the lights off when he left.

    re libav birth: all these years later i still dont understand why things were done as they were done. and why things were done by certain peoples who i wont name. as you like to talk about money and development, the other day i had the idea that maybe it was a monetary reason? for sure the dishing out of donations to developers was a weird subject for a long time that no one could agree on. and libav jumped into gsoc immediately. but besides that i dont see any other monetary evidence. although this was happening around the time when kostya was getting paid a lot to work on certain codecs.

    i never thought for a second that libav was going to live after forking. i expected its death. the developers who split all had their own issues with working together. libav endless discussions and voting probably didnt help resolve any issues at all. it sure didnt back when they were in ffmpeg trying to do endless discussions and voting and wanting in-person-meetings all the time to have in person endless discussions. i’m not saying discussions or voting is a bad idea. but that it just didnt work for either project. as evidenced by pre-split, the split and the split’s death.

    re ffmpeg ceffmpeg jbffmpeg: i think 2012 was the rise and fall of jbffmpeg. you were there for it but since you left to libav and left libav, you didnt see that jb really hasnt done much anything to ffmpeg since. at least not that i can see. carl left, much like paul, and other developers who couldnt play nicely with each other. it pains me to see paul and carl leave. but they needed to go. and i hope they found happiness.

    theres only a few ‘normal’ ish people (multimike, pross, etc) in the multimedia world that i’ve met. most of the rest of us (myself included) are weird. what did you expect with a bunch of anime watchers?

    re ffmpeg death: reports of its death are greatly exaggerated. it started off with one person , grew to a small group of people then exploded for a decade. now its back to a small group of people. well its still active. did you see ffmpeg made it to mars? thats pretty impressive. anyone who worked on ffmpeg prior to 2020 now has their software on another planet.

    google also seems to have left ff alone too. i guess they bought enough slave developers that they dont need us and dont need to share anything upstream with us ever again?

    reminds me, multimedia mike did that investigation into youtube all those years ago. figured out that they were using mencoder or mplayer for win32 codecs? was hilarious.

    re “baidugle” spam: most spam i get is hungarian (because my email is posted all over mphq) or spammers wanting to write “guest posts” on ffmpegorg. the rest of the spam i get is “your email is going to expire”. but i dont understand why they want my email login info anyway. is it that useful? they can read my spam? heh

    whatever happened to baidu anyway? its still around? i havent used baidu search in so long. yandex is what i’ve been using. along with google. no one uses bing 😀

  2. Kostya says:

    > still no vivo2 decoding?

    https://codecs.multimedia.cx/2020/12/vivo2-revisited/ – my player supports vivo2 in .viv quite fine and plays all but one sample in https://samples.mplayerhq.hu/vivo/ (demuxers fails because of Mac line endings IIRC).

    > wiki.multimedia.cx/index.php/Category_talk:Video_FourCCs

    Yes, I’ve looked at it time from time but even it does not contain everything.

    > re: ukraine , what are your thoughts on usa funding ukraine and giving weapons?

    I think that doing that is in the own USian interests (and there were cases when countries decided to isolate themselves and ignore the rest of the world, for Japan it ended with Commodore Perry’s gunships arrival, for China it ended with various countries taking pieces of it for their colonies and making China pay for it as well). But considering the mixed signals it sends (like promising things and not giving anything—even worse, preventing other countries from giving what Ukraine asked for; also I’m pretty sure we’ll see how SCOTUS will pull the same trick like the last year with declaring support and not actually approving any funding for as long as possible). Don’t be surprised that other countries see USA as an unreliable partner and will try to cut dependencies on it as much as possible. As for the support in general, there are Baltic states (as well as the UK and Netherlands) that give as much as they can (and I’m really grateful for that), moderate supporters (like Germany) who give support but only with certain things, and chaotic supporters (like Poland or USA) who sometimes give help and sometimes prevent others from helping out of their own selfish interests. And there are selfish countries like Turkey who provide some support occasionally but do not hesitate to trade with the other side.

    (other answers are in the following comment)

  3. Kostya says:

    > re libav death

    I don’t know how exactly the project was sunset, from what I heard the server was kept running until the hoster said it’s rather pointless (hardly any traffic) so it was decommissioned. And IRC channel probably died with FreeNode.

    > re libav birth

    You’re wrong on many details there. The only money I got from developing codecs were during BSoC events (where 2009 was the last year I participated—and libav got forked in 2013 when I had a stable dayjob). Both the server and the hosting were donated and I’m not sure if any of libav core developers participated in BSoCs as a student (and it was not “jumped into”, it was merely continuing what the project did pre-fork). And I’m still convinced that The Split happened not because of conflict of financial interests but rather because FFmpeg had a leader who enforced certain (non-)technical decisSions that other developers disagreed with.

    > “carl left, much like paul”

    ROTFL. I don’t remember Carl making any drama before his leave (beside maybe one episode when he was accused of doxxing).

    > re ffmpeg death

    I claim that the project is undead and can keep existing in this state indefinitely long.
    As for Baidu, I think it’s more a consequence of multimedia field ossifying so they don’t have to care about a side project to convert stuff from some standard format into their own format(s).
    Back in the day they probably used On2 solution which hooked mencoder to their VP6 encoder to transcode various formats to Flash. Those were the days…

    > but i dont understand why they want my email login info anyway.

    Most likely to earn money from sending more spam in Hungarian to other people from your account (and maybe sell information in hope somebody can use your mail to get access to other services you use).

    > whatever happened to (Chinese) baidu anyway?

    Probably it’s still around but is relevant to the Chinese users only.

    > no one uses bing

    On2On2Go (along with some other search “engines”) does—and some people (like me) use that search engine. I vaguely remember there was Bing outage some months ago and many people discovered that seemingly unrelated services stopped working as well.

  4. Paul says:

    In other news librempeg got FFT/RDFT even faster and better among many other high quality improvements in other places.

  5. compn says:

    re usa unreliable. i dont disagree.

    re vivo2 hmm .dont think mplayer has support for rust compile. have to figure out how to convert rust back to c, then back to h263dec then the license. so much work for lazy compn.

  6. Kostya says:

    If you use the original MPlayer you can use the binary loader (it’s one of its killer features after all), or you can try compiling nihav-player and try using it for playback (YMMV but it works for me).

    And if somebody wants to do what you described, I can help clarifying some details. But I’m not going to touch that code myself.

Leave a Reply