navigation: About me, PGP | Projects: Operation: Flapclock, DVB, dvbdescramble, glip, eWiki, FBA, minicas
About me
Hey there,
you’ve reached the pages of Patrik Fimml, a computer enthusiast from Austria. At the moment, I'm studying Technische Informatik (Computer Science) at Vienna University of Technology.
You can find a variety of mostly computer-related stuff here, especially small programming projects of mine. Suggestions/comments are welcome at patrik@fimml.at.
PGP
Amongst other things, I use PGP to sign and encrypt my email.
Projects
Operation: Flapclock
So awesome that is has its own project page.
DVB
I have been playing with DVB-S ever since setting up my PVR back in 2006. Apart from ubiquitous VDR, I am still awaiting the killer interface to zapping through and/or recording MPEG streams for Linux. Admittedly, I do have a rather special use case, as the computer with the DVB-S card has no video output, just a wireless network connection. Even VDR didn’t feel like the right thing, which is why I am relying on some scripts, dvbstream and at to schedule recordings.
dvbdescramble
While there are many DVB utilities for Linux, I have found most or all of them to lack support for Conditional Access, i.e. encrypted streams. As ORF, the Austrian public service broadcaster, scrambles their streams for licensing reasons, I wrote a little program to drive a CA Module end of 2008.
It does nothing more than that: tell the CAM to descramble a programme. You’ll have to use other programs for tuning and recording, and of course you need a CAM with a smartcard that entitles you to that programme. The big advantage of the “just descrambling” approach is that many programs do not need any modification to work with dvbdescramble. I am using it in conjunction with dvbstream to record CA programmes.
For this to work, dvbdescramble needs the DVB service_id (which you can get e.g. from your channels.conf). An example, using dvbsnoop to check a stream for scrambling:
$ grep ORF1 channels.conf
ORF1:12692:h:0:22000:160:161:13001
$ szap -c channels.conf ORF1 &>szap.log &
$ dvbsnoop -s ts 160 | grep scrambling | head -n 1
transport_scrambling_control: 2 (0x02) [= TS packet scrambled with Even Key]
$ dvbdescramble --program 13001 &>dvbdescramble.log &
[wait some seconds and/or check dvbdescramble.log for progress]
$ dvbsnoop -s ts 160 | grep scrambling | head -n 1
transport_scrambling_control: 0 (0x00) [= No scrambling of TS packet payload]
Now that we’re confident that dvbdescramble does its job, we can use it with dvbstream to record a stream:
$ dvbdescramble --program 13001 &>dvbdescramble.log & $ dvbstream -p h -f 12692000 -s 22000 -ps 160 161 -o > stream.ps
Note that this program was only tested with CAMs and smartcards used by ORF. The implementation of the CAM protocol is incomplete; in short, Your Mileage May Vary. No warranty if the program breaks anything (even though I don’t see how that could happen).
Please give me feedback on whether the program worked or didn’t work for you! Include details on your CAM and smartcard as well as the name of your content provider.
glip
glip, a git library in PHP, enables your PHP scripts to access git repositories. Written in pure PHP5, it works without even having git installed, thus making it the ideal git library to use with your el-cheapo web hosting service.
eWiki
eWiki is a minimalist wiki software written in PHP5. It uses glip to store wiki pages along with their history in a git repository.
You can see eWiki in action over at David’s personal wiki.
Fachbereichsarbeit
In their last year of secondary school, Austrian students can opt to write a Fachbereichsarbeit (FBA), i.e. a pre-university scientific paper. In mine I cover CAS basics.
- Outline (“Disposition”; PDF, German)
- Fachbereichsarbeit in Informatik: Grundlagen von Computeralgebrasystemen (PDF, German)
Complementing my FBA, I have developed a quick and dirty proof-of-concept CAS that does little more than solving linear equations (hence the name: “minicas”). Written in C++, it comes with a lightweight GTKmm GUI.