Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by Jack Greasley, posted on January 31, 2002

Image Description, by Jack Greasley

This IOTD is just to show you guys (and gals?) what I’ve been working on for a while. It’s a system called Point (bloody marketing people) which is used by TV companies to do “Telestration” – (Horrid word, not mine), or in other words, drawing over live TV images.

It’s currently in use by Sky TV in the UK for their Monday night football program, and by a couple of people In the United Arab Emirates. It will hopefully be used in the summer for the coverage of the world cup.

Enough of that sort of thing, onto the techie bit.

Feature List
  • OpenGL UI and rendering ~ 50fps.
  • DirectShow live video capture @ 24fps.
  • ~10 Different Animated tools including
  • Line
  • Arrows
  • Curved Arrows
  • Bitmaps
  • Spotlights,
  • Perspective corrected bitmaps
  • True-type Text
  • Freehand draw
  • Floating, customizable toolbar.
  • Skin-able UI.
  • Shadows (of a sort)
  • Undo – Redo.
  • Full serialization.
  • Fantastic programmer-art themed skin supplied as standard
  • It was implemented mainly in VC++ with OpenGL, DirectX and DirectShow thrown in for good measure. It captures (DirectShow) and displays (OpenGL) full broadcast resolution video (use of texture rectangle and BGRA extensions helped a lot)

    Although there is a static scene in the background of the sample pics, the system does display live video at ~24fps (honest).

    Various little tools are provided for drawing and illustration (various types of lines, spotlights, circles, bitmaps). It uses OpenGL to do all of the rendering, including the UI. The whole thing is controlled from a touch screen plasma or LCD monitor. One nice thing it does, is to scale bitmaps with correct perspective (there’s a quick example lower left). Curved line drawing is done with Catmull-Rom splines.

    There was some talk early on about porting it across to Irix, so I decided (as you do) to implement my own OpenGL based windowing system. The windowing system turned out, to my shame, to be a lot like MFC under the hood, although using Action objects for message calls

    Instead of the not-very OOD MFC method of direct function calls. It does however support nice things like complete application serialization, plugins and factory based object creation.

    The actual coding of the system took about three months, but the final system (after much “can you just change this?”) was ready for use after about five months. One thing that really helped was the use of test rigs from day one. The test I found most useful was a simple “Random Monkey” that just sat there and hit random points on the screen for hours, its surprising how many bugs that can turn up.

    Output is done using a professional video compositing board. At around $4000 each, they’re the reason I can’t post a demo. It runs quite nicely on a 2Ghz P4 with 1Gb ram. But the thing is finish and in use. It hasn’t crash yet. Which is lucky ‘cos if it does crash 7Million people will know about it :o)

    I will hopefully be releasing some of the source code (Core classes, Windowing System, Video capture and Display subsystems) when

    a) I can clean it up a bit. (Documentation is a little, erm thin as well)
    b) I’ve sold a couple more systems and can put some time into the project.

    The system would have been written quicker but for the hours spent reading flip-code + forums – cheers.

    Jack Greasley

    Note: to those in the UK – Monday Night Football on Sky Sports One. You know you want to!

    Image of the Day Gallery


    Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
    Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.

    February 02, 2002, 05:54 AM

    Yup I have often thought it wouldn't to too tricky using multiple
    camera angles to get the data you need, especially on something like
    a football pitch with known dimensions. Of course getting the players too animate would be quite tricky - you could reduce work by using a football game engine - but even then it wouldn't be that great, probably markers would be better. I am sure it has been done before,
    not sure about near realtime though to allow replays.

    Actually a more obvious use would be snooker, as rebuilding the table, balls and cue action + calculating the balls spin.
    Even to the point the comentator could attempted the shot :)
    showing all the lines...


    Bemmu Sepponen

    February 03, 2002, 08:13 AM

    Well first off, congratulations for finishing something. Like they say, after the first 90% you have to do the other 90%, meaning something nearly complete is nowhere near as complete as a completed one! :)

    But the line counts you said were surprisingly low. Maybe you have really long lines?

    This thread contains 32 messages.
    First Previous ( To view more messages, select a page: 0 1 ... out of 1) Next Last
    Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.