GPS DirectShow Filter, MiniCam and XOBD all in one file ->  GPSFilter.zip  <-

Contents:
  DSGPS.ax - GPS Video Overlay, a DirectShow filter which retrieves GPS and OBD-II data from XPort and/either/or XOBD, and imprints GPS speed, time, date, course, longitude, latitude,
                     MPG, RPM, AIT, CLV and other useful GPS data and OBD-II constantly monitored systems on the recorded video for playback of the video with embedded information.
  MiniCam    - Multicam or multiple video source capable webcam/video capture application with GPS filter support, and supports most codecs such as DivX, XViD, FFDShow, etc.
  XOBD        - ELM327 compatible OBD-II mediation utility, used by DSGPS and Compass.

  1/27/2010 MiniCam v1.1: Possible compatibility fix for capture devices
  1/22/2010 MiniCam: Added keys: F=fullscreen, R=record, S=stop recording, A=archive, ESC=exit
11/30/2009 XOBD v0.02 - Better hibernate/resume reset (more work required here)
11/11/2009 MiniCam v1.0 - 2 possible bugs fixed
11/08/2009 MiniCam start minimized fixed for Windows 7.
11/02/2009 DSGPS v1.4 Small bug in filter from yesterday's optimizations.  Now capturing 1280x1024x15, uncompressed. 7% CPU w/preview, 2% w/o.
11/02/2009 MiniCam feature added: Archive
10/29/2009 Updated MiniCam to test bugs, Windows 7 fix.  Updated XOBD for better connectivity with Compass

How to use MiniCam:
1. Double-click RegisterGPSFilter.bat to register the GPS filter (You only need to do this once, even when updating the DSGPS.ax file).
    Note: For Windows 7, copy DSGPS.ax to C:\Windows\System32, then right-click RegisterGPSFilter.bat and run as administrator.
2. Run XPort and set it up.
3. Optional: Run XOBD and set it up (requires ELM327).      XOBD uses shared memory or a simple WM_USER message interface for anyone interested.
4. Run MiniCam.
   Click anywhere on the video for the control icons.
   Run multiple MiniCam apps for multiple cameras, or use command line/shortcut parameters to specify camera (after running multiples and configuring manually).

Parameters: MiniCam <number> <NO/PREVIEW>
 Example: "MiniCam 2" for camera 2
                "MiniCam NOPREVIEW" to force no preview while recording

Settings for MiniCam
Preview while recording: Shows video when capturing
Start Recording:  Starts capturing when the application starts
Start Minimized: Starts with the window minimized to taskbar
Multi-File Record: Restarts capture when time limit exceeds (or on capture error)
Always On Top: Keeps the window on top of other windows
Lock Aspect: Allows window to maintain aspect when resizing
Resolution: Lists resolutions and max FPS supported by camera
FPS: Selects preferred FPS
Time Limit: Max time limit per file (0 = Unlimited)
File Limit: Max capture files to keep on disk (0 = Unlimited)
MB Limit: Max disk space to use, excluding current file (0 = Unlimited)
Archive: Folder to send clips to when archive button (Yellow folder icon) pressed.
          If last clip is less than 60 seconds, last 2 will be archived.  Continued clicking will archive more files. (If capturing, will resume with new file).
 
 

Use Compass to playback GPS logs for testing.

Text has hard edges which easily causes artifacting for MPEG/JPEG, so setup should have a larger font than default and low compression.  This is XviD converted to jpeg.
 

  

 

OBD-II Setup is easy.  Set the COM port to your ELM327 compatible device (it will initialize), enable "Start with Windows" from the menu in the taskbar and close the window.  The GPS filter and Compass will automatically connect with it.

Reset ELM resets the COM port, and restarts the init.  Just in case it ever gets hung up.  Hopefully not.
The "ATE0,ATH0" is the initialization set.  These are comma delimited and sent after ATZ.
The checkbox next to "C:\OBDLog\OBD" enables logging.  The "DTCs 2" will probably show something else for you. :-)  It shows DTCs, system status and has a reset (clear DTC) button.

"Replay Log" in the menu will replay an OBD-II log.  Useful for testing skins mostly.

Example insertion of DSGPS into a capture+preview graph as viewed by GraphEdit:

Object GUID:

#include <initguid.h>
DEFINE_GUID(CLSID_DSGPS, 0x8b4a194c, 0x61f, 0x4e53, 0xbe, 0xe5, 0x8, 0xb5, 0x51, 0x29, 0xcb, 0x9d);