codeblog code is freedom — patching my itch

May 2, 2005

I feel dirty

Filed under: Multimedia — kees @ 11:13 pm

I’ve just published srcfilter. It runs under Wine, which is the only reason I kept working on it. Coding in the Windows style has this sickening allure, like an overly sweet smell. I know I don’t want it, but it seems so tasty. (Oh, DWORD, how I hate thee. All your instance names start with “dw”.)

Anyway, srcfilter uses the DirectShow API to initialize a SourceFilter from a DLL you supply. It then pulls a specified source file through the DLL, writing the output to a file. Similiar things can be done with the GraphEdit tool that comes with the DirectX SDK. If you wanted to set up a Graph that uses a SourceFilter to read a file and a Dump sink to write output, you can use srcfilter to do the same thing. And you wouldn’t need Windows to do it.

© 2005, Kees Cook. This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 License.
CC BY-SA 4.0


  1. Dirty DWORD, I know how you feel. I wrote some windows palm conduit DLL’s. Talk about dirty, I had to compile w/ byte alignment options (/Z) to get the windows structs to be the same memory footprint as the palm structs.

    I would just like to say that srcfilter is the handiest tool in its class. It allows me to use directshow filters in a batch way. It’s quite powerful. Thank you kindly for this “nothing fancy.”

    Comment by Jim Weller — May 10, 2005 @ 6:01 pm

  2. I was excited to see this. But it doesn’t work for me, and I’m damned if I can see what’s wrong. I got the DLL to load, but it gives me

    “You are not authorized to play this recording. It was transferred using a different media access key than the one in your Windows account.”.

    In fact, I transferred the file using the https://my-tivos-ip-addr method. I suspect there’s something that has to be in my wine fake_windows tree that says what the MAK is. Of course, I have the MAK; I just can’t figure out where I’m supposed to stick it (no smartass replies!).

    Help? Thanks.

    Comment by MetalWheaties — May 20, 2005 @ 7:30 pm

  3. Make sure you have all the TiVo registry items in your Wine registry too. Also, you’ll need to be running a CVS version of Wine (if not, you’ll see some fixme errors and the DLL will abort). Finally, you’ll need to reset your password for the DLL under Wine. This will write the needed registry items in a way that Wine can read. There is some details on the registry contents if you search google for “tivotogo registry” and look for the dealdatabase posts. The decoded registry item details are there.

    Comment by megatooner — May 22, 2005 @ 1:41 pm

Powered by WordPress