diff options
author | Benny Prijono <bennylp@teluu.com> | 2011-09-20 10:07:55 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2011-09-20 10:07:55 +0000 |
commit | be8d37186b16150716f752883ae6857a0161db40 (patch) | |
tree | 269fb1f2c16f90e539cf9534163dde56594bcb89 /pjmedia/src/pjmedia-videodev/videodev.c | |
parent | b9aa69da263759ce63593adae3327b8de25cd388 (diff) |
Related to preview (re #1340): handle problems with starting or stopping preview during a call
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3758 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia/src/pjmedia-videodev/videodev.c')
-rw-r--r-- | pjmedia/src/pjmedia-videodev/videodev.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/pjmedia/src/pjmedia-videodev/videodev.c b/pjmedia/src/pjmedia-videodev/videodev.c index a88e91c4..f2523d79 100644 --- a/pjmedia/src/pjmedia-videodev/videodev.c +++ b/pjmedia/src/pjmedia-videodev/videodev.c @@ -781,7 +781,17 @@ pjmedia_vid_dev_stream_get_event_publisher(pjmedia_vid_dev_stream *strm) /* API: Start the stream. */ PJ_DEF(pj_status_t) pjmedia_vid_dev_stream_start(pjmedia_vid_dev_stream *strm) { - return strm->op->start(strm); + pj_status_t status = strm->op->start(strm); + if (status == PJ_SUCCESS) + strm->sys.is_running = PJ_TRUE; + return status; +} + +/* API: has it been started? */ +PJ_DEF(pj_bool_t) +pjmedia_vid_dev_stream_is_running(pjmedia_vid_dev_stream *strm) +{ + return strm->sys.is_running; } PJ_DEF(pj_status_t) pjmedia_vid_dev_stream_get_frame( @@ -803,6 +813,7 @@ PJ_DEF(pj_status_t) pjmedia_vid_dev_stream_put_frame( /* API: Stop the stream. */ PJ_DEF(pj_status_t) pjmedia_vid_dev_stream_stop(pjmedia_vid_dev_stream *strm) { + strm->sys.is_running = PJ_FALSE; return strm->op->stop(strm); } @@ -810,6 +821,7 @@ PJ_DEF(pj_status_t) pjmedia_vid_dev_stream_stop(pjmedia_vid_dev_stream *strm) PJ_DEF(pj_status_t) pjmedia_vid_dev_stream_destroy( pjmedia_vid_dev_stream *strm) { + strm->sys.is_running = PJ_FALSE; return strm->op->destroy(strm); } |