Index: applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/GpsPlayer.java
===================================================================
--- applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/GpsPlayer.java	(revision 25385)
+++ applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/GpsPlayer.java	(revision 25742)
@@ -15,5 +15,7 @@
     private WayPoint prev,curr,next;
     private WayPoint start;
-    private boolean autoCenter;
+    private boolean autoCenter;    
+    private List<WayPoint> ipos; //TODO can become optiized hashtable
+    private WayPoint ipo;
     
 
@@ -45,4 +47,5 @@
         curr=ls.get(0);
         next=ls.get(1);
+        ipo=curr;
     }
     
@@ -230,5 +233,5 @@
             timeSeg=-(getPrev().getTime().getTime()-getCurr().getTime().getTime());
         }
-        WayPoint w =new WayPoint(Main.map.mapView.getLatLon(m.x, m.y));
+        WayPoint w =new WayPoint(Main.map.mapView.getLatLon(m.x, m.y));        
         //calc total traversal length
         lengthSeg = getTraversalLength(p2, curr);
@@ -329,34 +332,4 @@
         return p.getTime().getTime()-start.getTime().getTime(); //TODO assumes timeintervall is constant!!!!
     }
-    
-    
-
-    //toggles walking along the track
-    /* public void play(){
-    
-        if (t==null)
-        {
-            //start
-            t= new Timer();
-            ani=new TimerTask() {           
-                @Override
-                //some cheap animation stuff
-                public void run() {             
-                    next();
-                    if(autoCenter) Main.map.mapView.zoomTo(getCurr().getEastNorth());
-                    Main.map.mapView.repaint();
-                }
-            };
-            t.schedule(ani,1000,1000);          
-        }
-        else
-        {
-            //stop
-            ani.cancel();
-            ani=null;
-            t.cancel();
-            t=null;                 
-        }
-    }*/
 
     public long getLength() {
@@ -374,4 +347,30 @@
     }
 
+	public List<WayPoint> interpolate() {
+		ipos = new LinkedList<WayPoint>();
+		WayPoint old = getCurr();
+		for (int i=1;i<ls.size();i++)
+		{			
+			ipos.addAll(getInterpolatedLine(5));
+			next();
+		}
+		goTo(old);
+		return ipos;
+	}
+
+	public void jumpIPO(long relTime) {
+		int pos = Math.round(relTime/1000);//TODO assumes the time is constant
+        goTo(pos); 
+        pos=Math.round(relTime/200);
+        ipo= ipos.get(pos);
+        if (autoCenter) Main.map.mapView.zoomTo(curr.getCoor());
+		
+	}
+	
+	public WayPoint getIPO()
+	{
+		return ipo;
+	}
+
 
     
Index: applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/PositionLayer.java
===================================================================
--- applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/PositionLayer.java	(revision 25385)
+++ applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/PositionLayer.java	(revision 25742)
@@ -38,4 +38,5 @@
 public class PositionLayer extends Layer implements MouseListener,MouseMotionListener {
     private List<WayPoint> ls;
+    private List<WayPoint> ipos;
     public GpsPlayer gps;
     private boolean dragIcon=false; //do we move the icon by hand?
@@ -48,6 +49,6 @@
     public PositionLayer(File video, GpxLayer GpsLayer) {
         super(video.getName());
-        ls=copyGPSLayer(GpsLayer.data); //TODO This might be outsourced to a seperated track
-        gps= new GpsPlayer(ls);
+        ls=copyGPSLayer(GpsLayer.data); //TODO This might be outsourced to a seperated track        
+        gps= new GpsPlayer(ls);        
         icon = new ImageIcon("images/videomapping.png");
         gpsTimeCode= new SimpleDateFormat("HH:mm:ss");//TODO replace with DF small
@@ -55,5 +56,7 @@
         Main.map.mapView.addMouseMotionListener(this);                          
         gpsVP = new GPSVideoPlayer(video, gps);
-        iconPosition=gps.getCurr();
+        gps.goTo(0);
+        ipos=gps.interpolate();
+        iconPosition=gps.getCurr();        
     }
     
@@ -158,6 +161,6 @@
         g.setColor(Color.CYAN);
         g.setBackground(Color.CYAN);
-        LinkedList<WayPoint> ipo=(LinkedList<WayPoint>) gps.getInterpolatedLine(5);
-        for (WayPoint wp : ipo) {
+        //LinkedList<WayPoint> ipo=(LinkedList<WayPoint>) gps.getInterpolatedLine(5);
+        for (WayPoint wp : ipos) {
             p=Main.map.mapView.getPoint(wp.getEastNorth());
             g.fillArc(p.x, p.y, 4, 4, 0, 360);
@@ -179,5 +182,5 @@
         {
             if (gps.getCurr()!=null){
-            p=Main.map.mapView.getPoint(gps.getCurr().getEastNorth());
+            p=Main.map.mapView.getPoint(gps.getIPO().getEastNorth());
             icon.paintIcon(null, g, p.x-icon.getIconWidth()/2, p.y-icon.getIconHeight()/2);         
             g.drawString(gpsTimeCode.format(gps.getCurr().getTime()),p.x-15,p.y-15);
@@ -289,5 +292,4 @@
             //restrict to GPS track
             iconPosition=gps.getInterpolatedWaypoint(mouse);
-
             Main.map.mapView.repaint();
         }
Index: applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/VideoMappingPlugin.java
===================================================================
--- applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/VideoMappingPlugin.java	(revision 25385)
+++ applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/VideoMappingPlugin.java	(revision 25742)
@@ -34,4 +34,8 @@
 import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
 import org.openstreetmap.josm.gui.layer.*;
+
+import uk.co.caprica.vlcj.runtime.windows.WindowsRuntimeUtil;
+
+import com.sun.jna.NativeLibrary;
 
 import static org.openstreetmap.josm.tools.I18n.*;
@@ -78,4 +82,6 @@
         applySettings();
         //further plugin informations are provided by build.xml properties
+        //NativeLibrary.addSearchPath("vlc", "C:\\Programme\\Video\\VLC"); // this should be the directory that contains libvlc.dll
+        NativeLibrary.addSearchPath("libvlc", WindowsRuntimeUtil.getVlcInstallDir());
     }
             
Index: applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/GPSVideoPlayer.java
===================================================================
--- applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/GPSVideoPlayer.java	(revision 25385)
+++ applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/GPSVideoPlayer.java	(revision 25742)
@@ -77,4 +77,5 @@
                 if(synced) {
                 	gps.jump(getGPSTime(time));
+                	gps.jumpIPO(getGPSTime(time));
                 }
                 
Index: applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/SimpleVideoPlayer.java
===================================================================
--- applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/SimpleVideoPlayer.java	(revision 25385)
+++ applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/SimpleVideoPlayer.java	(revision 25742)
@@ -118,5 +118,5 @@
 				      });
 				}
-			}, 0L, 200L, TimeUnit.MILLISECONDS);
+			}, 0L, 500L, TimeUnit.MILLISECONDS);
             //setDefaultCloseOperation(EXIT_ON_CLOSE);
             addWindowListener(this);
@@ -512,5 +512,5 @@
 
 		public void buffering(MediaPlayer arg0) {
-			// TODO Auto-generated method stub
+			System.out.println("buffering!");
 			
 		}
@@ -523,4 +523,5 @@
 		public void opening(MediaPlayer arg0) {
 			// TODO Auto-generated method stub
+			System.out.println("opening!");
 			
 		}
@@ -532,5 +533,5 @@
 
 		public void seekableChanged(MediaPlayer arg0, int arg1) {
-			// TODO Auto-generated method stub
+			System.out.println("seeking!");
 			
 		}
