summaryrefslogtreecommitdiff
path: root/pjmedia/src
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2011-09-20 10:07:55 +0000
committerBenny Prijono <bennylp@teluu.com>2011-09-20 10:07:55 +0000
commitbe8d37186b16150716f752883ae6857a0161db40 (patch)
tree269fb1f2c16f90e539cf9534163dde56594bcb89 /pjmedia/src
parentb9aa69da263759ce63593adae3327b8de25cd388 (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')
-rw-r--r--pjmedia/src/pjmedia-videodev/videodev.c14
-rw-r--r--pjmedia/src/pjmedia/vid_port.c5
2 files changed, 18 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);
}
diff --git a/pjmedia/src/pjmedia/vid_port.c b/pjmedia/src/pjmedia/vid_port.c
index 56694cd7..fa5c2da6 100644
--- a/pjmedia/src/pjmedia/vid_port.c
+++ b/pjmedia/src/pjmedia/vid_port.c
@@ -479,6 +479,11 @@ on_error:
return status;
}
+PJ_DEF(pj_bool_t) pjmedia_vid_port_is_running(pjmedia_vid_port *vp)
+{
+ return pjmedia_vid_dev_stream_is_running(vp->strm);
+}
+
PJ_DEF(pj_status_t) pjmedia_vid_port_stop(pjmedia_vid_port *vp)
{
pj_status_t status;