switch( property_id )
{
case CV_CAP_PROP_POS_MSEC:
+ if(video_st->parser && video_st->parser->dts != AV_NOPTS_VALUE_)
+ return (((double)video_st->parser->dts-1) *1000.0f) * av_q2d (video_st->time_base);
if(video_st->cur_dts != AV_NOPTS_VALUE_)
return (((double)video_st->cur_dts-1) *1000.0f * av_q2d (video_st->time_base));
// return (((double)video_st->cur_dts-1) *1000) / av_q2d (video_st->r_frame_rate);
break;
case CV_CAP_PROP_POS_FRAMES:
+ if(video_st->parser && video_st->parser->dts != AV_NOPTS_VALUE_)
+ return (double)video_st->parser->dts-1;
if(video_st->cur_dts != AV_NOPTS_VALUE_)
return (double)video_st->cur_dts-1;
break;
case CV_CAP_PROP_POS_AVI_RATIO:
+ if(video_st->parser && video_st->parser->dts != AV_NOPTS_VALUE_)
+ return (double)(video_st->parser->dts-1)/(double)video_st->duration;
if(video_st->cur_dts != AV_NOPTS_VALUE_ && video_st->duration != AV_NOPTS_VALUE_)
return (double)(video_st->cur_dts-1)/(double)video_st->duration;
break;