- demux_sys_t *p_sys = p_demux->p_sys;
- int64_t *pi64;
-
- switch( i_query )
- {
-#if 0
- case DEMUX_GET_TIME:
- pi64 = (int64_t*)va_arg( args, int64_t * );
- *pi64 = date_Get( &p_sys->pts );
- return VLC_SUCCESS;
-#endif
- default:
- return demux2_vaControlHelper( p_demux->s, 0, -1,
- 8*CDG_FRAME_SIZE*CDG_FRAME_RATE, CDG_FRAME_SIZE, i_query, args );
- }
+ int i_ret = demux_vaControlHelper( p_demux->s, 0, -1,
+ 8*CDG_FRAME_SIZE*CDG_FRAME_RATE, CDG_FRAME_SIZE,
+ i_query, args );
+ if( !i_ret && ( i_query == DEMUX_SET_POSITION || i_query == DEMUX_SET_TIME ) )
+ date_Set( &p_demux->p_sys->pts,
+ stream_Tell( p_demux->s ) / CDG_FRAME_SIZE *
+ INT64_C(1000000) / CDG_FRAME_RATE );
+
+ return i_ret;