From eb474f0faf3230615b9e3eb41ec0db87748587b9 Mon Sep 17 00:00:00 2001 From: Liong Sauw Ming Date: Thu, 16 Feb 2012 08:49:33 +0000 Subject: Re 1446#: Fix division by zero error caused by DShow if video device does not supply AvgTimePerFrame information (AvgTimePerFrame=0). git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3953 74dad513-b988-da41-8d7b-12977e46ad98 --- pjmedia/src/pjmedia-videodev/dshow_dev.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'pjmedia/src/pjmedia-videodev/dshow_dev.c') diff --git a/pjmedia/src/pjmedia-videodev/dshow_dev.c b/pjmedia/src/pjmedia-videodev/dshow_dev.c index 30fd0ccb..85a1375d 100644 --- a/pjmedia/src/pjmedia-videodev/dshow_dev.c +++ b/pjmedia/src/pjmedia-videodev/dshow_dev.c @@ -769,10 +769,13 @@ static pj_status_t create_filter_graph(pjmedia_dir dir, video_info->bmiHeader.biWidth = vfd->size.w; video_info->bmiHeader.biHeight = vfd->size.h; } - if (!use_def_fps && vfd->fps.num != 0) + if (video_info->AvgTimePerFrame == 0 || + (!use_def_fps && vfd->fps.num != 0)) + { video_info->AvgTimePerFrame = (LONGLONG) (10000000 * (double)vfd->fps.denum / vfd->fps.num); + } video_info->bmiHeader.biSizeImage = DIBSIZE(video_info->bmiHeader); mediatype->lSampleSize = DIBSIZE(video_info->bmiHeader); if (graph->csource_filter) -- cgit v1.2.3