Category Archives: Open Source Multimedia

News regarding open source multimedia projects.

CD Detection Experiment

Some years ago, I wrote a program named the CD Detection Experiment to toy around with compact discs. I reference this tool often in my Multimedia Exploration Journal. The end goal was a tool that could analyze a variety of different CD types, including mode 2 discs, Philips CD-I discs, and 3DO discs. All it does is open a raw CD device under Unix, check the first few sectors, and decide what kind of CD is in the drive. I’m trying to remember if this tool preceded my CD-related work for xine or if I used code from my xine work in this program. There is code for Solaris and FreeBSD reading, so I am guessing that I based this on the xine work.


CDCDCD

Anyway, if you care, here is the code. Here is some sample output, from that Deathtrap Dungeon game discussed in this journal entry, the one with a weird mixed mode:

$ ./cdexp /dev/cdrom
CD Detection Experiment
toc:
  first track = 1
   last track = 18

toc entries:
leadout track: MSF: 76:16:18, first frame = 343218
track  1,  data, MSF: 00:02:00, first frame = 150
 mode 1 data
 iso9660 fs signature found
 system id =
 volume id = Deathtrap
track  2, audio, MSF: 28:09:14, first frame = 126689
track  3, audio, MSF: 30:37:58, first frame = 137833
track  4, audio, MSF: 32:37:28, first frame = 146803
track  5, audio, MSF: 35:32:30, first frame = 159930
track  6, audio, MSF: 39:57:58, first frame = 179833
track  7, audio, MSF: 43:07:24, first frame = 194049
track  8, audio, MSF: 45:45:35, first frame = 205910
track  9, audio, MSF: 49:33:19, first frame = 222994
track 10, audio, MSF: 52:38:22, first frame = 236872
track 11, audio, MSF: 55:17:04, first frame = 248779
track 12, audio, MSF: 58:13:66, first frame = 262041
track 13, audio, MSF: 60:28:28, first frame = 272128
track 14, audio, MSF: 62:43:43, first frame = 282268
track 15, audio, MSF: 64:59:33, first frame = 292458
track 16, audio, MSF: 67:14:00, first frame = 302550
track 17, audio, MSF: 75:36:00, first frame = 340200
track 18,  data, MSF: 76:00:00, first frame = 342000
 mode 1 data
 iso9660 fs signature found
 system id =
 volume id = Deathtrap

You Can Stop Using The Reference Decoder Now

Thanks to Kostya’s diligent, Google-sponsored work, FFmpeg now has a native, open source VC-1 decoder module that is working quite well for most WMV3 media found on the internet. It’s working well enough that there should not be much good reason to be using my old convoluted process for incorporating the SMPTE reference VC-1 decoder into FFmpeg. There are some bugs remaining in Kostya’s code that he is quickly ironing out but it’s time to cut over to it, at least for non-x86 platforms. Some more advanced features are known to be missing. This is primarily because no sample media can be found that exercises those features. If you have some, please pass it along.

Minimalist UI

I was once working on a media player side project on a relatively low-power piece of hardware. Things were going quite well and I had hardware-assisted fullscreen video playing. I then hit a major wall: User interface. I could not find a suitable UI library for small embedded systems. And the last thing I wanted to spend my time doing was creating a new library.

At the time, I learned of one UI toolkit that was specifically designed for applications like embedded media players. Unfortunately, the developers’ concept of “embedded” was wildly divergent from my own as evidenced by its Boost library requirement.

I recently came across at least 2 UIs that rekindled my interest in this area: PicoGUI and Nano-X. However, based on screenshots, both appear intent upon replicating a normal desktop GUI environment on an embedded system. I guess I’m looking more for something that primarily organizes a bunch of fullscreen transparent/transluscent menus arranged in a conceptual tree hierarchy that can contain buttons, text labels, scrollable lists, and slider controls. These are the UI elements most useful for a media playback UI.

Any other ideas?