Lair Of The Multimedia Guru

May 8, 2015

Loongson MIPS Box

Loongson very generously donated a MIPS box with “ICT Loongson-3A V0.5 FPU V0.1” CPU, 500gb 7200rpm WD Caviar Blue HDD, 4gb RAM and a power cable with Chinese plug to FFmpeg. Picture of the inside of the box:
Quick power meassurments show

  • ~1W when OFF
  • ~44W when IDLE
  • ~48W when running fate tests

Quick FFmpeg build benchmark with gcc (GCC) 4.8.3 20140624 (Red Hat 4.8.3-1):

  • 4m49.192s for time ./configure --enable-gpl --enable-pthreads --samples=/home/loongson/fate/ --enable-nonfree --enable-version3 --assert-level=2 --cpu=loongson3a --enable-loongson3
  • 19m31.114s for make -j4
Filed under: FFmpeg,Hardware — Michael @ 4:00

February 28, 2015

New computer

I got a new computer, it has 2 liquid cooled CPUs, a Samsung 850Pro SSD, 9 cooling fans, 2 network adapters, >1kw power supply and weighs about 22kg. Its a Power Mac G5, (late 2005 model, which is apparently the last model that was built) and i got it at a good price, i guess because it looked a bit dented from outside but interrestingly on the inside it showed nearly no signs of use or damage, there was not even vissible dust inside.
It came with OSX on some western digital HDD with a apple logo on it. I replaced that one with the SSD which mysteriously didnt work on my first try but when i conected it to the 2nd SATA connector it worked fine. And as i quickly realized OSX is too outdated on PPC to be usable, so i installed debian on it which worked fine but took a bit long to install for unknown reasons, i expected it to finish in maybe 30min or so on a SSD but it took much longer, dont remember exactly how long. So far the only real issue i noticed is that one of the CPUs gets too hot causing the kernel to reduce its speed. I saw no signs of leaked coolant though. I guess as long as it works and i see
no leakage i wont spend more time on that issue though
FFmpeg build and fate also passed on it :)

Filed under: Hardware — Michael @ 2:26

January 12, 2015

Seagate barracuda

2 Days ago shortly after i woke up, i heared a squeek, klick, squeek, … noise from my computers. A quick run of smartctl didnt reveal anything majorly wrong, and the noise stopped for a moment. when it started again, i systematically tried putting disks in sleep mode with hdparm to identify which if any hdd was making these noises. But no hdparm command affected the noise, then slowly waking up, i realized that i actually had more disks in the box than i got results from smartctl, also a look in syslog confirmed that ata2 was not healthy, teh first failed command was at 12:25:54, ata2.00: failed command: IDENTIFY DEVICE, a minute later ata2: reset failed, giving up. Restarting the box and reconnecting the cables did not help either.
My last smartctl output of it from 2 month ago listed it at 20687 Power_On_Hours and 2504 Reallocated_Sector_Ct, none of the values was above their thresholds.
This disk was used for half my fate clients before i moved them to a more powerfull box and it itself was a replacement for a failing 1tb samsung disk, well ironically the samsung disk that the 1tb seagate disk should replace still works though with 3458 pendng sectors.
Iam not sure if iam imagining it but it seems like the quality of disks is getting worse each year
Though luckily this one had nothing important on it, or at least nothing i remember ;)

Filed under: Uncategorized — Michael @ 21:39

January 6, 2015

WordPress spam filters

Many years ago the spamfilter i used for this blog was spam karma 2, it was free, it worked and it worked well. Sadly it hasnt been maintained or updated by anyone since a really long time, which did not improve its ability to keep spams away as spambots and spammers evolved. Also with each update of wordpress it started falling apart more until finally with the update to 4.1 spam karma 2 stoped working, assinging every spam a large positive karma value
So i enabled akismet and bad behavior which where already installed. If anyone has difficulty posting a comment due to them, please email me and ill try to look into it.

Filed under: Uncategorized — Michael @ 1:54

September 20, 2014

my FATE clients

Most of the x86 fate clients i did run, where run as VMs on a aging 2 core Westmere/Clarkdale i5 @ 3.33ghz. As ive added more and more virtual machines and configurations and the list of tests done by fate increased over the last 3 years, the box started to show its age, over these 3 years 1 HDD nearly failed, 1 SSD failed in it and as the amount of tests run kept increasing the time between tests being repeated kept getting longer.
About a week ago i ordered a new box to replace it finally. To my surprise the shop (in germany) refused to ship the HDD&SSD to austria, after a few minutes research on the matter i learned that apparently austromechana threatens german shops who dont pay them a fee on storage media thats sold to someone in austria. I guess one could also say European union & free trade at its finest.

But back to the topic, most of my x86 fate clients now run on a shiny new 6 core haswell @4.3ghz + samsung SSD. So the affected clients should be alot faster now and there are also already more tests being run, ive changed many of my clients to test the 3 currently maintained release branches in addition to git master.
Also, if you have some platform that supports FFmpeg and isnt on, and you want to help FFmpeg, please setup a fate client (See the fate documentation).

Filed under: FFmpeg,Hardware — Michael @ 3:33

July 26, 2014



Filed under: Cooking,Pictures — Michael @ 15:46

July 7, 2014


Its quite a while since ive updated my blog, and indeed ive a few things i wanted to put up but have always had something more important to do, well. Today, ive finally decided to skip doing important things and put up something really unimportant.
A while ago I was reading the manual of a toothbrush, an electric ehm “sonic” toothbrush. It said something like 40000 revolutions per second. Reading that and looking at the humble, el-cheapo toohbrush i didnt belive it, so i had to find out how fast the thing vibrates (it actually doesnt do full revolutions). Using my soundcard was out of question as that wouldnt work above 24khz. So i used a old analoge osciloscope that i got for 15 euro from a local flea market a while before.
You can see on the scope, the vibration of the toothbrush head as well as a 1khz reference square wave. The trick is that the toothbrush head is made of some kind of plastic and by rubbing it against something, it becomes electrostatically charged. Just holding the scope probe near then shows the movement of the head.
We can see on this that in about 6 cycles of the 1khz signal we have 2 cycles of the toothbrush, which would give ~1000/3 hz.
Which is 120 times off from 40000, if one considers both ends of the vibration instead of a full cycle its 60 times off. And at that point i looked at the manual again and realized it said 40000 U/min not sec :)
Which proofs my way of measuring it is quite spot on, but my way of reading the manual isnt.

Filed under: Off Topic — Michael @ 4:23

January 28, 2014

FFmpegs Huffyuv

In the last few weeks FFmpegs huffyuv codec has grown the ability to encode and decode a much broader list of pixel formats. From planar rgb variants 4:4:4 YUV to 4:1:0 YUV and bit depths up to 16bit and alpha support.
One might ask why anyone cares about all this, the awnser is simple

1 thread YUV420 10bit, matrixbench
FFv1 Huffyuv
encode fps 63fps 281fps
decode fps 82fps 418fps
filesize 478mb 765mb

Encoding parameters used:
-an -threads 1 -pix_fmt yuv420p10le -strict -2 -vcodec ffvhuff -context 1
-an -threads 1 -pix_fmt yuv420p10le -strict -2 -vcodec ffv1

6 threads YUV420 10bit, matrixbench
FFv1 Huffyuv
encode fps 269fps 1173fps
decode fps 386fps 2675fps
filesize 480mb 771mb

Encoding parameters used:
-threads 6 -an -pix_fmt yuv420p10le -strict -2 -vcodec ffvhuff -pass 2 test.nut
-threads 6 -an -pix_fmt yuv420p10le -strict -2 -vcodec ffv1 -level 3 -slices 6 test1.nut

As can be seen above huffyuv while it doesnt even get close to ffv1 in terms of compression even though i used per frame huffman tables and 2pass mode in the 2 tests, its simply much faster.

Filed under: Entropy Coding,FFmpeg,VideoCoding — Michael @ 2:27

January 16, 2014

Rant about gmx

Ive been using gmx since over 12 years for my email. And until recently gmx did a fine job at running a SMTP and a POP3 server. But it appears this is slowly changing. A few month ago their SMTP server stoped accepting mail with the verbose message: “550-Requested action not taken: mailbox unavailable\n550 Reject due to policy restrictions.”. It turned out that gmx refused localhost as domain to the EHLO SMTP command. They require a fully qualified domain name now right? no, not really, any random string seems to work just not localhost. My attempt to contact gmx about this, lead to no reaction.

The next thing was this: “550-Requested action not taken: mailbox unavailable\n550 invalid DNS A/AAAA resource record”, yes thats right, gmx rejected outgoing mail because the poor guy had not set up a webpage on the domain that he used to receive mail on. This one btw affected multiple people i tried to communicate with, not just one.

But hang on it was just starting, next there was “451 Requested action aborted: local error in processing’ errormsg=’recipient address nicolas george normalesup org not accepted by the server”

Also it has to mentioned that gmx at around that time (maybe 1-2 month before or so) started to randomly put “*** GMX Spamverdacht ***” in the subjects of random received mails even though i always had and have all spam filtering disabled at gmx (mainly because their filters never worked).
So yeah another try at complaining to gmx about that, and yes this time there was a reaction, i got a mail from them “GMX Sicherheit: Vorsorgliche Sicherheitssperre Ihres GMX Postfachs!” they locked my account and provided me with a few tips on how i can scan my windows system for viruses. Hello gmx, i dont use windows.

My next attempt to contact them and now find out why they locked my account lead to just a polite (probably automated) mail with a link to their payed and expensive phone support. Seriously, locking someones account and refusing to tell them why unless they pay. And locked btw means SMTP was not working, POP3 still worked and so did the web interface where one is asked to change ones password which then unlocks the account again. Maybe iam just missing the point but what sense does that have.

Was that all? no, it seems gmx also reduced the maximum size of mails as a 21mb mail i tried to send to 3 people could not be sent over gmxs smtp server and with a different smtp server it bounced from reimar who also uses gmx so it also could not be received. Iam pretty sure i did transfer bigger things years ago.
Ahh and i almost forgot: “5.7.1 : Recipient address rejected: Your MTA is listed in too many DNSBLs; check”, Yes thats gmx being in the DNSBL lists at the time that happened. Now just why was i not surprised by that …

Did anyone really read this far down ? Well as gmx slowly goes from well working to something else, iam forced to find alternatives to handle email. So i got this one:, iam still using the gmx addy though, feel free to use either if you want to mail or spam me. I guess if these issues with gmx continue then ill have to start updating my mail address everywhere …

2014-01-26 Update

Heres an example of the random marking of mails as spam, the 2 mails where simple git patches send to ffmpeg-devel, sent by me, at the same time from the same computer and their content should be quite similar and should not have triggered any properly trained bayesian filter.

85260 N 0126 2:11 Ronald S. Bultj (1.3K) [FFmpeg-devel] [PATCH] vp9: disable use_last_frame_mvs on resolution change (scalable).
85261 N 0126 2:30 Ronald S. Bultj (8.9K) [FFmpeg-devel] [PATCH] vp9: fix invalid ref frame w/h on size change.
85262 N F 0126 14:49 To FFmpeg devel (1.2K) [FFmpeg-devel] [PATCH 1/2] avcodec/libfdk-aacenc: change MODE_7_1_REAR_SURROUND to map to AV_CH_LAYOUT_7POINT1
85263 N F 0126 14:49 To FFmpeg devel (0.9K) └─>*** GMX Spamverdacht *** [FFmpeg-devel] [PATCH 2/2] avcodec/libfdk-aacenc: change MODE_7_1_FRONT_CENTER to map to AV_CH_LAYOUT_7POINT1_WIDE_BACK

Also ive sent gmx a link to the blogpost, no reaction from them so far

Filed under: Off Topic — Michael @ 4:33

February 22, 2012

Fixing a 24mm f/2 vivitar/kiron lens

A few years ago i bought a 24mm f/2 vivitar lens for something like 15 euros, the price was too good to not buy it. It was laying around pretty much untouched until a few days ago

It has a Canon FD mount, which means it is compatible with all Canon FD cameras. Sadly iam not a big fan of these cameras, I like conveniently working manual mode and digital. Adapters for FD->EOS exist but they require optical elements to compensate the otherwise negative adapter thickness that would be needed. So a more geeky solution is needed. But first problem with it is, its aperture is stuck and full of oil

Now cleaning an aperture is not hard, though do NOT try it with this lens if its your first such repair attempt, as this lens is a floating element design, which in laymen terms means complex. The tools you need are just a bunch of small screwdrivers (for most screws the cheapest will do), some paper towels for various things, a clean soft brush to remove dust. And something to clean the aperture blades, probably anything that removes oil would do. And a box of some kind to put all parts in when taking them apart so tiny things are trapped by gravity inside a quickly search-able space and not your whole room. First step is to loosen the screw on the side of the front

After that the top can be unscrewed, the next part is hold in place by a similar screw, loosen it too and unscrew the part, be careful as this exposes the front glass element and if you take it out, only thing you will achieve is getting dust in.

Now you need to remove the 2 screws and the part that holds the front lens group in correct distance/rotational alignment, you do want to take some notes or add markings to get it later back in exactly the same position. As i am lazy i relied on my carefully composed pic above instead of wimpy notes or markings. You also need a good screw driver here as these screws arent easy to loosen even after removing the stuff that holds them in place with aceton. After you removed the 2 screws and that thingy, put the ring that held the front element in place back so the element doesnt escape

Once the glass is secured you unscrew the front group as a whole (you have to turn it in the other direction from what you expect). After unscrewing it you reach the front side of the aperture. And here i believed i could just remove the 3 screws and take it out, but no its not nearly so easy.

So as we cant get it out yet, disassembling of the bottom is next, remove the 3 screws that hold the mount in place, beware there is a spring, a small pin and a metal ring that are more or less loose

The rear lens group is just screwed in and can easily be screwed out, allowing us access to the rear part of the aperture, what the annoying part is we still cannot take it out for proper cleaning.

To move forward next step is to remove the 2 screws and the part that hold the inner rear part in distance and rotational alignment, again take notes and make markings, the rear part is a little fiddly to put back together with markings (aka expect 2-3 minutes for doing that later) without markings, it would probably be fun but not impossible.

Now the inner rear can be screwed out. And hidden you will find 3 holes in the helix, in these holes there are screws that hold the aperture in place, to loosen them take careful note of their original position, or just be lazy and do like I and do exactly 3 full turns, so you can get it back with 3 exact full turns later. It shouldnt ruin the lens if the aperture isnt centered exactly but id guess there was a reason for this odd way to mount it

Once the 3 screws are loosened a bit (and a spring is removed) the aperture can be taken out, its further disassembly and reassembly should be obvious. To clean it you can probably use almost anything, i used a little window cleaner in a small container put all parts in and used the “shaken but not stirred” technique, in addition cotton buds and 100% ethanol. Note the pictures below dont look so oily because I tried cleaning it before full disassembly with cotton buds

Once cleaned, reassemble everything, its trivial just reverse of disassembly

From FD to M42 to EOS

The rear FD mount was kept in place by 3 screws, looking a bit around i found a worthless 35mm/2.8 M42 lens laying around that only produces blurry images no matter what, though it was in 100% perfect condition, surely used only once by any previous owner. Its rear fits almost, 2 out of 3 screws can be screwed in without modification. For all 3 a little drilling is needed

With this hack it can be mounted on any M42 camera or with M42-EOS adapter on any canon EOS DSLR. it doesnt focus beyond 1m in that configuration though. That is at 1m real distance you are at infinite on the scale. Also its easy to switch the mounts back :)

Now to get it focus to infinity we need to loose some material, first the M42 rear i picked had a circular ridge that screamed to me “flatten me”

The pic above shows it in the middle of the flattening process. This wasnt enough though, infinity focus still was far away, so the ring that keeps the aperture selection ring in place had to go too. Note, below the next (now loose) ring are 2 loose springs and 2 tiny steel balls dont loose them if you try this. A magnet is a pretty nice way to temporary store them safely.

With this ring too removed infinite focus becomes possible on M42 and EOS. But due to all the removals, one ring holding the aperture selection ring in place and the aperture controlling parts that where part of the FD mount. We still arent done, so next is rebuilding the aperture control parts that a manual lens would have. Ive build it out of a piece of aluminum that i found in a old box from my grandfather, I still remember how my mother wanted to throw all the stuff from him away, lucky i safed a few boxes…

Above picture shows it in partly finished state, it needed more filing and bending before it worked fully smoothly. The removed ring also needs to be replaced. One could have just made it thinner but i dont have the tools to do this exactly and quickly, besides it would make it impossibly to undo it. So i used a piece of plastic cut from a cap of something random from the bathroom, also to get the focus a bit closer to correct (it was way over infinity) i put the thin metal ring from the FD mount back in

And last fine-tuned the focus with the 3 screws intended for that purpose visible at an earlier picture, cleaned the glass a bit and ready is my 24mm f/2 vivitar/kiron for M42 and EOS.

Was the work worth it? For the lens/photography, probably not. For the fun and geek factor, absolutely yes. :)

Filed under: Cameras,Hardware,Reverse Engineering — Michael @ 8:54
« Previous PageNext Page »

Powered by WordPress