From 483805f79570115ab95c69698792d238c1719b1b Mon Sep 17 00:00:00 2001 From: Jason Parker Date: Mon, 11 Mar 2013 15:09:56 -0500 Subject: Import pjproject-2.1 --- pjmedia/src/pjmedia-videodev/dshow_dev.c | 17 +++++++++++------ pjmedia/src/pjmedia-videodev/sdl_dev.c | 6 ++++-- pjmedia/src/pjmedia-videodev/v4l2_dev.c | 5 ++++- 3 files changed, 19 insertions(+), 9 deletions(-) (limited to 'pjmedia/src/pjmedia-videodev') diff --git a/pjmedia/src/pjmedia-videodev/dshow_dev.c b/pjmedia/src/pjmedia-videodev/dshow_dev.c index 6fb7c0b..f05d94a 100644 --- a/pjmedia/src/pjmedia-videodev/dshow_dev.c +++ b/pjmedia/src/pjmedia-videodev/dshow_dev.c @@ -1,4 +1,4 @@ -/* $Id: dshow_dev.c 3953 2012-02-16 08:49:33Z ming $ */ +/* $Id: dshow_dev.c 4253 2012-09-13 08:35:24Z ming $ */ /* * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) * @@ -33,6 +33,7 @@ #include #define COBJMACROS #include +#include #ifdef _MSC_VER # pragma warning(pop) @@ -64,14 +65,16 @@ typedef struct dshow_fmt_info { pjmedia_format_id pjmedia_format; const GUID *dshow_format; + pj_bool_t enabled; } dshow_fmt_info; static dshow_fmt_info dshow_fmts[] = { - {PJMEDIA_FORMAT_YUY2, &MEDIASUBTYPE_YUY2} , - {PJMEDIA_FORMAT_RGB24, &MEDIASUBTYPE_RGB24} , - {PJMEDIA_FORMAT_RGB32, &MEDIASUBTYPE_RGB32} , - {PJMEDIA_FORMAT_IYUV, &MEDIASUBTYPE_IYUV} , + {PJMEDIA_FORMAT_YUY2, &MEDIASUBTYPE_YUY2, PJ_FALSE} , + {PJMEDIA_FORMAT_RGB24, &MEDIASUBTYPE_RGB24, PJ_FALSE} , + {PJMEDIA_FORMAT_RGB32, &MEDIASUBTYPE_RGB32, PJ_FALSE} , + {PJMEDIA_FORMAT_IYUV, &MEDIASUBTYPE_IYUV, PJ_FALSE} , + {PJMEDIA_FORMAT_I420, &WMMEDIASUBTYPE_I420, PJ_FALSE} }; /* dshow_ device info */ @@ -329,6 +332,8 @@ static void enum_dev_cap(IBaseFilter *filter, &rpcstatus2) == 0 && rpcstatus2 == RPC_S_OK) { + if (!dshow_fmt) + dshow_fmts[j].enabled = PJ_TRUE; if (sup_fmt) sup_fmt[j] = PJ_TRUE; if (pSrcpin) { @@ -640,7 +645,7 @@ static dshow_fmt_info* get_dshow_format_info(pjmedia_format_id id) unsigned i; for (i = 0; i < sizeof(dshow_fmts)/sizeof(dshow_fmts[0]); i++) { - if (dshow_fmts[i].pjmedia_format == id) + if (dshow_fmts[i].pjmedia_format == id && dshow_fmts[i].enabled) return &dshow_fmts[i]; } diff --git a/pjmedia/src/pjmedia-videodev/sdl_dev.c b/pjmedia/src/pjmedia-videodev/sdl_dev.c index 7e40da1..9c0944b 100644 --- a/pjmedia/src/pjmedia-videodev/sdl_dev.c +++ b/pjmedia/src/pjmedia-videodev/sdl_dev.c @@ -1,4 +1,4 @@ -/* $Id: sdl_dev.c 4157 2012-06-06 09:37:25Z nanang $ */ +/* $Id: sdl_dev.c 4414 2013-03-05 08:21:02Z riza $ */ /* * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) * @@ -1418,7 +1418,9 @@ static pj_status_t job_queue_destroy(job_queue *jq) } #ifdef _MSC_VER -# if SDL_VERSION_ATLEAST(2,0,0) +# if defined(PJMEDIA_SDL_LIB) +# pragma comment( lib, PJMEDIA_SDL_LIB) +# elif SDL_VERSION_ATLEAST(2,0,0) # pragma comment( lib, "sdl2.lib") # elif SDL_VERSION_ATLEAST(1,3,0) # pragma comment( lib, "sdl.lib") diff --git a/pjmedia/src/pjmedia-videodev/v4l2_dev.c b/pjmedia/src/pjmedia-videodev/v4l2_dev.c index 880d47b..5b9c5e0 100644 --- a/pjmedia/src/pjmedia-videodev/v4l2_dev.c +++ b/pjmedia/src/pjmedia-videodev/v4l2_dev.c @@ -1,4 +1,4 @@ -/* $Id: v4l2_dev.c 3901 2011-12-07 10:43:28Z nanang $ */ +/* $Id: v4l2_dev.c 4310 2012-12-19 05:38:28Z nanang $ */ /* * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) * @@ -670,6 +670,7 @@ static pj_status_t vid4lin_stream_get_frame_mmap(vid4lin_stream *stream, struct v4l2_buffer buf; pj_time_val time; pj_status_t status = PJ_SUCCESS; + unsigned tmp_idx; pj_bzero(&buf, sizeof(buf)); buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; @@ -697,9 +698,11 @@ static pj_status_t vid4lin_stream_get_frame_mmap(vid4lin_stream *stream, pj_memcpy(frame->buf, stream->buffers[buf.index].start, buf.bytesused); on_return: + tmp_idx = buf.index; pj_bzero(&buf, sizeof(buf)); buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; buf.memory = V4L2_MEMORY_MMAP; + buf.index = tmp_idx; xioctl(stream->fd, VIDIOC_QBUF, &buf); return status; -- cgit v1.2.3