summaryrefslogtreecommitdiff
path: root/pjmedia/src/pjmedia/vid_port.c
diff options
context:
space:
mode:
Diffstat (limited to 'pjmedia/src/pjmedia/vid_port.c')
-rw-r--r--pjmedia/src/pjmedia/vid_port.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/pjmedia/src/pjmedia/vid_port.c b/pjmedia/src/pjmedia/vid_port.c
index 289e3e5..017e867 100644
--- a/pjmedia/src/pjmedia/vid_port.c
+++ b/pjmedia/src/pjmedia/vid_port.c
@@ -1,4 +1,4 @@
-/* $Id: vid_port.c 4168 2012-06-18 05:59:08Z ming $ */
+/* $Id: vid_port.c 4290 2012-11-01 03:06:33Z ming $ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
*
@@ -332,9 +332,7 @@ PJ_DEF(pj_status_t) pjmedia_vid_port_create( pj_pool_t *pool,
PJMEDIA_SIG_VID_PORT,
prm->vidparam.dir, &prm->vidparam.fmt);
- if (vp->stream_role == ROLE_ACTIVE) {
- need_frame_buf = PJ_TRUE;
- }
+ need_frame_buf = PJ_TRUE;
}
if (need_frame_buf) {
@@ -654,8 +652,10 @@ static pj_status_t convert_frame(pjmedia_vid_port *vp,
pj_status_t status = PJ_SUCCESS;
if (vp->conv.conv) {
- dst_frame->buf = vp->conv.conv_buf;
- dst_frame->size = vp->conv.conv_buf_size;
+ if (!dst_frame->buf || dst_frame->size < vp->conv.conv_buf_size) {
+ dst_frame->buf = vp->conv.conv_buf;
+ dst_frame->size = vp->conv.conv_buf_size;
+ }
status = pjmedia_converter_convert(vp->conv.conv,
src_frame, dst_frame);
}
@@ -922,6 +922,7 @@ static pj_status_t vid_pasv_port_put_frame(struct pjmedia_port *this_port,
pj_status_t status;
pjmedia_frame frame_;
+ pj_bzero(&frame_, sizeof(frame_));
status = convert_frame(vp, frame, &frame_);
if (status != PJ_SUCCESS)
return status;