Good progress with GTK+ and the return of a Windows development environment

GTK+ is proving to be a very good GUI API for C – this really goes without saying given how GIMP, gedit, WMWare and various other applications have been built with it.

I have nearly reached the point where all previously implemented functionality is accessible via the GUI. In fact, if everything goes to plan, I intent to revert to the difficult issue of video transcoding tomorrow.

At the moment I am attempting to get FFmpeg to compile using MinGW under Windows 7. This is a precursor step in attempting to get the work I have developed to compile on both Linux (specifically Ubuntu) and Microsoft Windows.

I started writing this blog post at the time that MinGW was chewing over the ./configure command. Getting to this stage has required carefully reading FFmpeg’s installation guide, and other instructions on how to get various other tools such as pkg-config to work.

There are the steps I have attempted thus far:

  1. MinGW and yasm where already setup on my system, so I skipped over the commends made my the FFmpeg install guide.
  2. Likewise, I already use Git, so my next step was disregard the installation instruction and add the Git directory to the PATH variable in windows so that it can be accessed from outside of Git Bash.
  3. Next, setup SDL by downloading it from and running:
    configure --prefix=/c/mingw
    make install
  4. With this complete I then went about setting up pkg-config. It’s not elegant, but this is what worked for me:
    1. Download pkg-config.exe and copy to /MinGW/bin
    2. Install GLIb DLL, also to /MinGW/bin
    3. This last step is quite important. As it stands, pkg-config still has unresolved dependancies, to resolve this duplicate /MinGw/bin/libintl-8.dll to /MinGw/bin/intl.dll
  5. Download and extract FFmpeg source to a directory (e.g C:\FFmpeg)
  6. Navigation to that directory and run ./configure


So far, so good – now I wait to see if ./configure works….. and it does!

  1. The penultimate step: make
    And this is where  I hit a snag….. I get a complain regarding the use of "use warnings" in doc/ (a perl script) – however this is only documentation stuff. So at this point I ignore this and proceed to the next step.
  2. Finally: make install
    My slight "snag" hasn’t caused a problem, I now have a compiled version of FFmpeg, with any luck I can go onto compiling my own code.

There we go... FFmpeg compiles under Windows.




Attempts at transcoding and GTK+

Transcoding one video container to another (with an audio and video stream) is proving more complex than initally expected. Whilst progress with transcoding has plateaued with no success I have started to build a simple GUI to house current and future functionality.

The GUI is being built using GTK+. Integrating GTK+ into the makefile has been a painless process and developing wit the API has been relatively easy.

GTK+ was chosen for its multi-platform support - one of the desired requirements of my project is cross-platform support.

Over the next few days I look to finalise the basic GUI and resume work on developing a transcoding system. Furthermore, I will also investigate compiling my current work under Microsoft Windows - currently all work has been done in an Ubuntu development environment.