Add an asynchronous message callback to accept socket connection status for RTSPPlayer

Add an asynchronous message handler to accept NDK library’s socket connection status callback for RTSPPlayer. I’m not so familiared with messages mechenism, I turned to the article for guidance.

Continue reading “Add an asynchronous message callback to accept socket connection status for RTSPPlayer”

April, 2013: A fresh new start

Work

After 3 weeks so called “rest”, watching movies, picking up Catherine after her classes are over, I finally got to check in Kedacom on April 18.

A life fresh new starts, surrounding with lots of “strangers”, without any IM tools allowed in the office, doing works by a PC rather than a notebook, coding on Windows and MFC only instead of all the OSs I familiar with, and I’m no longer the one who makes call in the team and no longer need to chair the meetings now, and there will be formal/required overtime working (every Tuesday & Thursday, and two Saturdays every month),  even more I can not visit my kedacom’s mailbox when out of the office, everything is so different with what I used to be in the past decades. Simply put, in my current understanding, Kedacom is a typical Chinese company, while UniSVR seems more Western in working style.

Still working on adapting to the all new environments and the team.

However, what I dont need to change myself to be is, the works are still audio/video related. My current job responsibility is get into an existing MediaSDK for the VoIP products of Kedacom, which including  audio/video capturing, pre-processing, encoding, muxing, transmitting for the caster side, and demuxing, decoding, post-processing, render for the player side, and the first step is implement a full functioned audio processing module for the MediaSDK, including but not limitted to AEC, AGC, Noise Supression, High pass filter(which will be simply implemented by wrapping the codes from WebRTC project).

I believe what I need to care is how to adjust myself to get into the role rather than programming skills or anything programming technical related.

Wish I can pass the probation soon.

Study

Easlier in this month, USTC posted a notice that the 5th MSE entrance exam will be held on May 26. It’s a really good news to me, after postponed for over 6 months.

Family

Dad’s work finally got confirmed too, and he will on his way to Hangzhou days later, so I don’t have so much more oppotunities to drink with him later. Enjoy the father-son drinking time.

NullPointerException error when polling down the preset url list spinner

There was a bug in RTSPPlayer, that is when you poll down the preset RTSP stream source  list spinner, the APP will crash with an NullPointerException. Today, I finally have it fixed.

Continue reading “NullPointerException error when polling down the preset url list spinner”

First week in the new company

Phase 1:  Learn & master the existing MediaSDK & the sample programs.

—————————————————————————-
1. Add audio output device enumlation and selection option for playertester
2. Add audio input device enumlation and selection option for castertester
3. Add Mute setting for castertester
4. Add Microphone boost option for castertester.
5. UI adjustment for castertester to be more easier to be understand the working flow.
—————————————————————————-
Osp command: kdvmedianethelp
—————————————————————————-
Phase 2: WebRTC audio engine : audio device module & audio processing module research

—————————————————
Current status:
—————————————————
1. AGC settings and proccessing should be working now.
2. Microphone volume control still not undering coding.

—————————————————
How does AGC works?
—————————————————
Step 1: Audio capture(audio_device_wave_win.cc)
bool AudioDeviceWindowsWave::ThreadProcess()
Step 2: put into AudioBuffer and NewMicLevel()
WebRtc_Word32 AudioDeviceWindowsWave::RecProc(LONGLONG& consumedTime)
Step 3: Do audio processing/encoding/transmit tasks….
{
This is the key!!!
}
Step 4: Set new microphone volume thru _mixerManager(AudioMixerManager).
audio_mixer_manager_win.cc

—————————————————
Issues encounterred with
—————————————————
There are lot’s of differences between the Kdv audio modules and the WebRTC audio modules(audio device module and

maybe some others)

—————————————————
About microphone volume control(not relevant, curious only):
—————————————————
1. Client side audio mixing?
2. AGC may bring with side-effects with audio signal(audience only)?
3.

—————————————————

WebRTC音视频引擎研究(1)–整体架构分析

WebRTC: how to use audio process module?

WebRTC
WebRTC

My current job responsiblity is researching on WebRTC, and the first task is wrapping a class from WebRTC to process audio frames to implement functions of audio AEC, AGC, NS, High pass filter etc.

Information list below is from WebRTC.org, you can also view it by visiting http://www.webrtc.org, or it’s code.

Continue reading “WebRTC: how to use audio process module?”

Windows下编译WebRTC全步骤

1. 下载安装svn客户端,例如TortoiseSVN。安装完后,svn执行目录自动被添加入系统环境变量PATH中。

2. 下载并安装msysgit和Tortoisegit

Tortoisegit下载地址:http://code.google.com/p/tortoisegit/downloads/list

选择适合自己系统的版本,下载并安装(注:Tortoisegit只是一个gui,必须安装msysgit)
Tortoisegit安装时会找到git目录并自动配置好。把msysgit中bin目录手动添加到系统环境变量PATH中,比如我的目录是“D:/Program Files/Git/bin”
3. 下载并安装Python,建议安装Python2.6
下载地址:http://www.python.org/download/releases/2.6/。安装后Python执行目录自动被添加入系统环境变量PATH中。
4. 下载并配置depot_tools
    建立一个存放depot_tools的目录,command进入该目录
    svn co http://src.chromium.org/svn/trunk/tools/depot_tools
    下载后把depot_tools目录手动添加到系统环境变量PATH中
5. 建立WebRTC的源码目录
    比如E:/Developer/WebRTC/
6. 打开cmd,进入第5步建立的源码目录
7. 执行:  gclient config https://webrtc.googlecode.com/svn/trunk
        或者 gclient.bat config https://webrtc.googlecode.com/svn/trunk
8. 执行:  gclient sync –force (注意这里是两个- -,wordpress会把它变成一个全角的长—)
        或者 gclient.bat sync –force (注意这里是两个- -,wordpress会把它变成一个全角的长—)
9. 执行:  gclient runhooks –force (注意这里是两个- -,wordpress会把它变成一个全角的长—)
        或者 gclient.bat runhooks –force (注意这里是两个- -,wordpress会把它变成一个全角的长—)
10. 源码目录下应该已经含有webrtc.sln
  • webrtc 会用到Windows SDK 7.1,如果不想安装SDK,可以从这里下所依赖的文件:svn co http://vsfiltermod.googlecode.com/svn/trunk/src/BaseClasses,然后把文件放置在这个路 径:C:/Program Files/Microsoft SDKs/Windows/v7.1/Samples/multimedia/directshow/baseclasses (感谢乐得思蜀的方案)我的系统为Windows 7 32bit,不知为何在第8步只能执行gclient.bat sync –force才成功,直接执行gclient sync –force无法成功。
  • 如果你只安装了Visual Studio 2010,那么在gclient sync –force执行到最后会提示”Do not know how to convert MSVS attribute UseOfMFC”,可能对2010支持还不好,因为我系统里还有Visual Sduidio 2005,所以没有碰到这个问题,但是不用担心,因为最终的webrtc.sln照样会生成的,不影响看代码。
  • 如果遇到git –version return 1错误,应该是git目录没配置到PATH环境变量中,配置好后重启机器。
  • 如果你用的是Visual C++ express,那对不起,你还需要安装一下WinDDK。
  • 如果你碰到下面这个错误,我可以很高兴的告诉你,你的问题跟我碰到的一模一样,不一样的可能是,我花了N长时间才找出原因,你只要看到我这篇文章就可以搞定了。
[code]—— Build started: Project: peerconnection_client, Configuration: Debug Win32 ——
video_render_module.lib(video_render_windows_impl.obj) : error LNK2001: unresolved external symbol _CLSID_DxDiagProvider
video_render_module.lib(video_render_windows_impl.obj) : error LNK2001: unresolved external symbol _IID_IDxDiagProvider
video_render_module.lib(video_render_direct3d9.obj) : error LNK2019: unresolved external symbol _Direct3DCreate9@4 referenced in function "private: int __thiscall webrtc::VideoRenderDirect3D9::InitializeD3D(struct HWND__ *,struct _D3DPRESENT_PARAMETERS_ *)" (?InitializeD3D@VideoRenderDirect3D9@webrtc@@AAEHPAUHWND__@@PAU_D3DPRESENT_PARAMETERS_@@@Z)
E:\workspace\webtrc\trunk\Debug\peerconnection_client.exe : fatal error LNK1120: 3 unresolved externals</div>
<div>[/code]

错误原因:安装了错误版本的DirectX SDK,去下载安装Microsoft DirectX SDK (June 2010)

大联网,博融合——科达图像联网解决方案在沈阳安防展大放异彩

—-文/刘凌浩
近年来随着安防新技术、新应用的不断涌现,大量安防产品的更新换代,各厂商之间产品和系统差异造成的兼容性、图像调用等问题成为当下平安城市建设的巨大瓶颈。作为IP高清监控的引领者,科达在这方面做了不懈努力和探索,同时响应公安部的号召,推出了一系列符合GB28181新国标的产品,并提供了全面的国标化改造方案,解决了兼容互通及图像非标等问题,为安防行业的发展推进了一大步。
在2013年4月16日-19日的第十五届东北国际公共安全防范产品博览会(以下简称沈阳安防展)上,科达展示了图像联网解决方案、支持ONVIF协议的产品及系统,向观众展示了科达的实力。

Continue reading “大联网,博融合——科达图像联网解决方案在沈阳安防展大放异彩”

科达远程会诊系统为四川雅安灾区提供远程手术指导

——成都、北京两地专家为灾区12岁女孩成功进行手术

2013年4月20日8时2分,四川雅安突如其来的7.0级地震牵动了全球华人的心,目前搜救工作仍在紧张进行中,但因地震造成山体滑坡、道路受阻使得诸多医护人员无法进入灾区进行直接医疗支援。面对各种自然阻碍,科达远程会诊系统在雅安救灾中突破了空间限制,陪伴12岁的女孩高诗琴经历了震中第一例重大手术。

Continue reading “科达远程会诊系统为四川雅安灾区提供远程手术指导”

科达视讯为江西交警总队打造科技强警项目

文/张飞飞

随着经济的发展和社会进步,信息化正改变着传统的警务方式。这其中,视频会议系统的建设无疑是信息化的一项重要内容。据了解,为了满足江西全省交通警察处置重特大案(事)件、交通应急事件的需要,江西省公安厅交通警察总队联手科达,部署了一套最新的视频会议系统,在“科技强警”的道路上迈出了坚实的一步。

此前,江西省公安厅交通警察总队已建成了省公安厅到省总队以及二支队、三支队到基层单位的视频会议系统。根据交警总队的实际需求,同时考虑交警系统对视频会议系统的中长期发展计划,科达最大程度地保护了已有的这些资源,新建、扩建了交警总队及高速各支队的视频会议系统,涉及5个直属支队和23个基层单位。

在组网建设方面,本次视频会议系统的建设采用了H.323方式,各单位视频会议终端通过IP网络接入支队、总队级MCU。据悉,该系统建成后可实现1080P/4CIF高标清混网的视频传输,总队、直属各支队、直属各支队所属大队、驻外中队能随时召开视频会议,并与省厅无障碍数字级联,同时还能提供可视化的应急指挥服务。

该视频会议系统建成后,更好地满足了江西省公安厅交警总队及指挥中心的需要,特别是总队领导指挥处置重特大案(事)件的需要,有效提升了全省交警快速反应、处置突发事件的能力。

RTSPPlayer v2.0 launched with ONVIF device supports

Because most of the public online RTSP streaming source are no long availible now, so I decided to
remove most of the preset RTSP streaming sources, change to a configurable user input xml(saved
in /mnt/sdcard/RG4.NET/RTSPPlayer/RTSPPlayer.xml).
And from now on, RTSPPlayer will start to support ONVIF devices. I will also change the app name to
ONVIFPlayer later.

SVN version code: 66

由于原先在RTSP流媒体播放器中的大部分地址已经不复存在,或者无法从外网连接,所以,我把里边的大部分地址都移除掉了。同时为RTSPPlayer增加了可自行通过配置XML来显示流媒体源的功能(XML配置文件存放于sdcard的RG4.NET/RTSPPlayer/RTSPPlayer.xml,通常对应于Android OS的全地址路径为/mnt/sdcard/RG4.NET/RTSPPlayer/RTSPPlayer.xml)。

同时,从此以后RTSPPlayer将提供ONVIF设备的支持,而且我也将在后期的版本里开始将这个应用的名字也改为ONVIFPlayer。

具体信息可关注:RTSPPlayer网页(Android/iOS版:http://rg4.net/rtspplayer)和ONVIFPlayer网页(Windows版:http://rg4.net/onvifplyaer)。

相关版本已经上传至服务器,欢迎下载使用。

[wpdm_file id=2 template=”bluebox ” ]

VC++ 2008 Google Test:gtest 测试项目与正式项目分离方案

1、VC++ 环境下测试项目与正式项目混杂的弊端

  • 测试项目和正式项目无法共存
  • 无法独立运行测试项目或者正式项目

图 1 :测试与正式项目混杂

2、测试项目与正式项目分离方案

Visual Studio 集成环境并不像 Linux 下的构建方式那样来的方便, 可以直观的使用 Make 或 Auto Tool 构造自己需要的编译方式,让多个项目相互协作,互不干扰。但是, VS 中通过在各个配置界面中的配置,也是可以用简单且很不直观的方式实现测试项目与正式项目的分离。

初始的混杂方案如上图 1 所示,请参考:VC++ 2008 Google Test:gtest 安装与配置 进行项目的创建。接下来进行测试与正式项目的分离。

Continue reading “VC++ 2008 Google Test:gtest 测试项目与正式项目分离方案”

某公司的HTTP实时流媒体分析仪

专业网络电视HTTP实时流媒体(HLS)分析仪,用于验证HLS流媒体格式和全面分析MPEG传输流的合规性及音视频的质量,适用于测试HLS视频服务基础设施和实时监测HLS视频服务质量。

随着智能手机和平板电脑的流行,人们将越来越多地利用这些设备观看电视节目。视频内容提供商估计在未来几 年内高达75%的电视节目将在电视机以外的其他设备上观看。在移动设备和计算机上传输视频的最常用方法是通过互联网、利用下列某种媒体流协议: RTCP,RTMP,HTTP实时流媒体(HTTP Live Streaming),和平滑流媒体(Smooth Streaming)。

Continue reading “某公司的HTTP实时流媒体分析仪”