2012亲身的面试题目

 

一、前言

(1)2012年经济不景气,身为软件工程师这次我体会到了找工作的难。

炎热的七月,找工作真是件费劲的事情;一个下午接到好几个电话,问到的问题真的另人头疼。

(2)由于从车载行业转到互联网行业,且想拿高工资,我经历了转行的困境;

(3)上一次找工作时的容易,和这次找工作的困难使我更加体会到了什么是失败和落魄;

(4)如果正在进行网络营销的培训,而又重新入职,这让我力不重心;

(5)有的公司先HR,等HR花了1小时,HR面完再推给技术主管,又是等半个小时,我等不及了,撇下走人好几次;

 

4.、熟悉opencv编程。

二、题目及答案  

线程池的使用

1、COM中的类型库 typeLib

2、COM的双向机制  COM的调度

解决答案请看我的文章: <<http://blog.csdn.net/chenyujing1234/article/details/7753863>>

3、Direct UI    无窗口

4、反编译

5、COM与ATL的关系

 解决答案请看我的文章:<<http://blog.csdn.net/chenyujing1234/article/details/7753930>>

6、COM中分发机制 dispatch

7、COM在电脑上的用例

8、COM做过什么东西

9、vector、list、map之间区别?

(1)vector 动态数组,多用于容器,增加删除操最好在结尾处使用;

中的元素是顺序存放的,所以随机访问很快,但是要插入和删除,这个时间复杂度就很高了,vector初始化时有一个capacity,如果元素个数超出capacity,那vector就会重新分配一个新的空间,并把旧值复制到新的空间中,释法原空间,这个也要耗费很多时间,所以如果你知道元素的最大值,最好用reserve()函数初始最大空间,避免重新分配空间造成的时间。

(2)list 双向链表, 多用于从中间增加删除的操作,可以随机访问;

元素在内存中是分散的不连续的,它使用指针left,right,指向前一个元素和后一个元素。所以要删除和添加只要动动指针,所以很快,但是因为是不连续的所以要访问一个元素,你只能遍历序列
(3)map 二路平衡查找树,哈希结构,用来映射;

元素是一个pair类型,具有public成员first和second,第一个的类型是key_type,第二个的类型是mapped_type,
两个的类型可以相同,

map用来当做关联式数组.索引操作会创建新元素然后再对数值部分赋值.make_pair是用来构造该map中的元素的,insert操作,如果是具有同样键的map,

那么只会在map中存在一个这样的键,因为map不允许重复键,并且元素是自动排序好的,默认是用一个less_than函数对象来排序的,还有一个默认存储器allocator吧.

10、网络I/O模型有几种?

window 下的套接字以来两种方式执行I/O操作,阻塞IO 非阻塞IO,一般默认使用的是阻塞IO 即线程会等待不会把控制权利立刻返回给程序,这就意为一个线程在某一个时候只能够去执行一个IO操作。

如果服务端想和多个客户端同时进行通信的话就要使用多线程编程,但是会增加开销,如果采用非阻塞IO程序不会等待,会立刻返回结果但是在大部分情况下返回的结果是错误的,并返回一个WSAEWOULDBLOCK的错误,所以程序员要不断的检测函数返回的代码以判断一个套接字何时可供读写。

为了避免麻烦 winsock 提供了不同的套接字模型对IO进行管理 select (),WSAAsyncSelect(),WSAEventSelect(),Overlapped()。

Windows操作系统提供了选择模型、异步选择模型、事件选择模型、重叠I/O模型和完成端口共五种I/O模型。每一种模型均适用于一种特定的应用场景。编程人员应综合考虑到程序的扩展性和可移植性等因素,做出自己的选择

(1)选择模式(Select)

选择模型是Winsock中最常见的I/O模型。之所以称其为“select模型,是由于它的中心思想便是利用select函数,实现对I/O的管理!最初设计该模型时,主要面向的是某些使用Unix操作系统的计算机,它们采用的是 Berkeley套接字方案。select模型已集成到Winsock 1.1中,它使那些想避免在套接字调用过程中被无辜锁定的应用程序,采取一种有序的方式,同时进行对多个套接字的管理。

(2 ) 异步选择模式(WSAAsyncSelect)

使用异步选择模型,应用程序可在一个套接字上,接收以Windows消息为基础的网络事件通知。具体的做法是在建好一个套接字后,调用WSAAsyncSelect函数。

(3 )事件选择模式(WSAEventSelect)

WSAEventSelectWSAAsyncSelect模型类似,它也允许应用程序在一个或多个套接字上,接收以事件为基础的网络事件通知。对于WSAAsyncSelect模型采用的网络事件来说,它们均可原封不动地移植到事件选择模型上。在用事件选择模型开发的应用程序中,也能接收和处理所有那些事件。该模型最主要的差别在于网络事件会投递至一个事件对象句柄,而非投递至一个窗口例程

(4 ) 重叠I/O模式(Overlapped I/O)

Winsock中,相比我们迄今为止解释过的其他所有I/O模型,重叠I/O模型使应用程序能达到更佳的系统性能。重叠模型的基本设计原理便是让应用程序使用一个重叠的数据结构一次投递一个或多个Winsock I/O请求。针对那些提交的请求,在它们完成之后,应用程序可为它们提供服务。该模型适用于除Windows CE之外的各种Windows平台。模型的总体设计以Win32重叠I/O机制为基础。那个机制可通过ReadFileWriteFile两个函数,针对设备执行I/O操作。

(5 ) 完成端口模式(Completion Port)

完成端口模型是迄今为止最为复杂的一种I/O模型。然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!但不幸的是,该模型只适用于Windows NTWindows 2000操作系统。

因其设计的复杂性,只有在你的应用程序需要同时管理数百乃至上千个套接字的时候,而且希望随着系统内安装的CPU数量的增多,应用程序的性能也可以线性提升,才应考虑采用完成端口模型。要记住的一个基本准则是,假如要为Windows NTWindows 2000开发高性能的服务器应用,同时希望为大量套接字I/O请求提供服务(Web服务器便是这方面的典型例子),那么I/O完成端口模型便是最佳选择

11、IRQL、可分页内存这些基础要熟悉

 


12、熟悉OD/WINDBG/IDA等反编译或调试工具

 

13、Window XP的开机过程

参考<<windowsxp登陆过程>>

 

14、熟悉 directshow 应用开发, 有一年以上directshow开发经验;

15.熟悉cuda、filter开发,ffmpeg二次开发; 有window 本地播放器开发经验; 有 mpc二次开发经验或裁剪过mp,熟悉转码相关技术者优先;

    .熟悉h264,mpeg2算法者优先; 熟悉 avi, mkv,rmvb等媒体文件格式者优先; 了解 rtp/rtcp/rtsp/rtmp 等流媒体网络协议者优先;

    了解 windows media , real , flash 等主流媒体 sdk 应用开发者优先;对com, atl, wtl, stl ,mfc了解,且能熟练运用,有二年以上开发经验者优先。
 

 16、

17、 malloc与new的区别

malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。

      对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free

      因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理与释放内存工作的运算符delete。注意new/delete不是库

函数

      内存泄漏对于malloc或者new都可以检查出来的,区别在于new可以指明是那个文件的那一行,而malloc没有这些信息。

我们先看一看malloc/free和new/delete如何实现对象的动态内存管理

class Obj
{
public :
    Obj(void){ cout << “Initialization” << endl; }
    ~Obj(void){ cout << “Destroy” << endl; }

    void Initialize(void){ cout << “Initialization” << endl; }

    void Destroy(void){ cout << “Destroy” << endl; }
};

void UseMallocFree(void)
{
    Obj *a = (obj *)malloc(sizeof(obj));   // 申请动态内存
    a->Initialize();                        // 初始化

    //…

    a->Destroy();   // 清除工作
    free(a);        // 释放内存
}

void UseNewDelete(void)
{
    Obj *a = new Obj; // 申请动态内存并且初始化

    //…

    delete a;           // 清除并且释放内存
}


 

      类Obj的函数Initialize模拟了构造函数的功能,函数Destroy模拟了析构函数的功能。函数UseMallocFree中,由于malloc/free不能执行构造函数与析构函数,必须调用成员函数Initialize和Destroy来完成初始化与清除工作。函数UseNewDelete则简单得多。

      所以我们不要企图用malloc/free来完成动态对象的内存管理,应该用new/delete。由于内部数据类型的“对象”没有构造与析构的过程,对它们而言

malloc/free和new/delete是等价的。

     既然new/delete的功能完全覆盖了malloc/free,为什么C++不把malloc/free淘汰出局呢?这是因为C++程序经常要调用C函数,而C程序只能用

malloc/free管理动态内存

如果用free释放“new创建的动态对象”,那么该对象因无法执行析构函数而可能导致程序出错---(还没用过)

如果用delete释放“malloc申请的动态内存”,理论上讲

程序不会出错,但是该程序的可读性很差。所以new/delete必须配对使用,malloc/free也一样。

*********************************************************************************************

总之:

new 是个操作符,和什么"+","-","="...有一样的地位.
malloc是个分配内存的函数,供你调用的.
new是保留字,不需要头文件支持.
malloc需要头文件库函数支持.

new 建立的是一个对象,
malloc分配的是一块内存.
new建立的对象你可以把它当成一个普通的对象,用成员函数访问,不要直接访问它的地址空间
malloc分配的是一块内存区域,就用指针访问好了,而且还可以在里面移动指针.

 

 

 -精通 c/c++,熟悉 linux下的编程,计算机基础知识扎实;熟悉常用开源软件,热爱技术研究;

-具有较大型软件构架设计和实现经验优先;研读过常用开源软件源代码优先。

 

18、熟悉网络通讯底层的开发,有完成端口应用于大规模人数在线的实际项目经验;

 

19、熟悉TCP/IP协议;


20、熟悉P2P/P2SP软件工作原理者优先;

 

21、用驱动去禁止某个进程启动;禁止访问某个IP地址;

22、用驱动分析网络数据。

参考文章:<<NDIS网络数据监控程序NDISMonitor(1)-----驱动程序(编译过程与源码讲解)>>

23、NDIS驱动有做过吗?

参考文章:<<NDIS网络数据监控程序NDISMonitor(1)-----驱动程序(编译过程与源码讲解)>>

 

24、Win7驱动开发与XP驱动开发的区别?

25、设备驱动与非设备驱动的区别?

26、线程A与线程B共享一块共同的堆区内存,防止A把内存释放了,而B还去访问它的机制是什么?

采用COM的引用计数方法

例子
(1)原理

以下是一个引用计数的类IReferenceCounted,请注意在Drop()里有delete this;这里的this指从IReferenceCounted继承的类

说明在从IReferenceCounted继承的类当计数减为0时会把自己销毁掉。

class IReferenceCounted
{
public:
	//! Constructor.
	IReferenceCounted():ReferenceCounter(1)
	{
	}
	//! Destructor.
	virtual ~IReferenceCounted()
	{
	}
	
	unsigned int GetReferenceCount() const
	{
		return ReferenceCounter;
	}
	virtual void Grab() { ++ReferenceCounter; }
	virtual bool Drop()
	{
		--ReferenceCounter;
		if (!ReferenceCounter)
		{
			delete this;
			return true;
		}
		return false;
	}
protected:
	//! The reference counter. Mutable to do reference counting on const objects.
	unsigned int ReferenceCounter;
};
(2)继承方法
class GUI_EXPORTS_CLASS IObject : public IReferenceCounted
{
protected:
	IObject();
	virtual ~IObject();
public:
	/** @brief 获取GUI的类标识名. */
	const char * GetClassName() const;
protected:
	char         m_strClassName[64]; ///< 类名称
};


 

class GUI_EXPORTS_CLASS IGUIBase : public IEventReceiver,public IObject
{
};
(3)使用方法

(3、1)在赋值时

void GUIFrameAnimator::SetImageList(ImageList * pImgList)
{
	SAFECALL(m_pImageList)->Drop();

	m_pImageList = pImgList;
	
	SAFECALL(m_pImageList)->Grab();
}


(3、2)刚生成一个对象时

pWndPage3 = FrameWork::PushWndPageFromXml(".\\page3.xml", true);
 				pWndPage3->Grab();

(3、3)在操作时,进行保护

void UIManage::ParseEventHandlerNodeAndSetEventCallBackToGUI(IGUIBase * pGUI, TiXmlNode * pGUIXmlNode)
{
	if (pGUI && pGUIXmlNode)
	{
		pGUI->Grab();
		//.....
		pGUI->Drop();
	}
}

 

27、捕获数据包的接收比发送复杂,什么原理?

28、两年前做的网络TCP/IP,能不能说一说?

29、VS上的汇编调试方法及必要性?

30、USB驱动里的等待是等待什么?

等待上一个IRP发出后的执行返回。

31、CodeCproject上的RDP源码。

32、win7下的凭据验证都是用com做的。

http://msdn.microsoft.com/zh-cn/magazine/cc163489.aspx

33、DLL注入

参考:<<DLL的远程注入技术>> 、 <<DLL注入技术>>

 

34、两个键盘驱动同时加载时,民生银行的键盘驱动就会无效。

35、 IoQueueWorkItem的使用

36、驱动中的电源管理。

37、如果想加一层虚拟USB驱动,那么该加在哪一层上?

38、HTTP数据包怎么在NDIO识别?

39、COM接口里直接调用DLL导出函数会有什么问题吗?

调用不带参数的函数没事。带参的就报就报错误 无法解析的外部命令
参数是一个自定义的结构,参数如果是系统类型。好像也没事。。。
我写com,参数从来都是用bstr的

40、用什么方法可以将该控件弄成com组件?

 

41、Javascript中调用COM的方法?在COM组件中调用JavaScript函数的方法?

参考我的文章<<在javascript中使用com组件的方法>>;<<在COM组件中调用JavaScript函数>>

42、static修饰局部变量、全局变量、全局函数、类函数各有什么意义?

参考文章<<static作用(修饰函数、局部变量、全局变量)>>

43、类默认的函数有几种?

44、写出CString类。

45、类与struct的区别是什么?

关于使用大括号初始化
class和struct如果定义了构造函数的话,都不能用大括号进行初始化
如果没有定义构造函数,struct可以用大括号初始化。

eg:A a = {1, 2, 3};
如果没有定义构造函数,且所有成员变量全是public的话,class可以用大括号初始化。

 

关于默认访问权限
class中默认的成员访问权限是private的,而struct中则是public的。

关于继承方式
class继承默认是private继承,而struct继承默认是public继承。

为什么在C++中存在struct?很多人都会想到这是为了让C++和C兼容,那么问题就是如何使用C++中的struct和C兼容起来。

讨论一下结构(struct)与类(class)的区别,你认为结构(struct)有些什么作用,可以完全用类(class)取代么??

---------------------------------------------------------------

首先,讨论这个问题应该仅从语法上讨论,如果讨论不同人之间编程风格上的差异,那这个问题是没有答案的。毕竟不同的人偏好不同。

语法上,在C++中(只讨论C++中)。class和struct做类型定义时只有两点区别
(一)默认继承权限。如果不明确指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理;
(二)成员的默认访问权限。class的成员默认是private权限,struct默认是public权限。
除了这两点,class和struct基本就是一个东西。语法上没有任何其它区别。

不能因为学过C就总觉得连C++中struct和class都区别很大,下面列举的说明可能比较无聊,因为struct和class本来就是基本一样的东西,无需多说。但这些说明可能有助于澄清一些常见的关于struct和class的错误认识:
(1)都可以有成员函数;包括各类构造函数,析构函数,重载的运算符,友元类,友元结构,友元函数,虚函数,纯虚函数,静态函数
(2)都可以有一大堆public/private/protected修饰符在里边;
(3)虽然这种风格不再被提倡,但语法上二者都可以使用大括号的方式初始化:A a = {1, 2, 3};不管A是个struct还是个class,前提是这个类/结构足够简单,比如所有的成员都是public的,所有的成员都是简单类型,没有显式声明的构造函数。
(4)都可以进行复杂的继承甚至多重继承,一个struct可以继承自一个class,反之亦可;一个struct可以同时继承5个class和5个struct,虽然这样做不太好。
(5)如果说class的设计需要注意OO的原则和风格,那么没任何理由说设计struct就不需要注意。
(6)再次说明,以上所有说法都是指在C++语言中,至于在C里的情况,C里是根本没有“class”,而C的struct从根本上也只是个包装数据的语法机制。
---------------------------------------------------------------

最后,作为语言的两个关键字,除去定义类型时有上述区别之外,另外还有一点点:“class”这个关键字还用于定义模板参数,就像“typename”。但关键字“struct”不用于定义模板参数。

 

46、C++的四大特性?

(1)、抽象
eg:用c++的变量和函数可以将抽象后的时钟属性设置如下:
数据抽象:
int Hour,int Minute,int Second
功能抽象:
ShowTime(),SetTime()

(2)、封装
eg:

class Clock
{
public:
void SetTime(int NewH,int NewM,int NewS);
void SetTime();
private:
int Hour,Minute,Second;
};


将时钟的数据和功能封装起来,构成一个时钟类
(3)、继承
C++语言提供了继承机制,允许程序员在保持原有类特征的基础上,进行更具体,更详细的说明。
eg:

class 学生 :public 人
{
……
};

(4)、多态
在c++语言中,这种多态性可以通过强制多态、重载多态、类型参数多态包含多态4种形式来实现。
eg:2中的两个SetTime()函数

47、继承类?一个CBase、CDerice

48、

 


 

3、熟练使用windows和linux开发工具,可以在windows和linux进行软件开发;
 5、熟悉TCP/IP,Http等协议,能利用Socket API进行编程,熟悉ACE或者Boost::asio者优先,
具有网络编程经验和大规模并发服务器编程经验者优先。

 

  • 负责QQ网购营销平台服务系统架构设计以及后台开发工作。
工作要求:
  • 计算机相关专业本科以上学历;
  • PHP/C/C++ 3年以上开发经验, 精通一至两门语言;
  • 精通TCP/IP协议,进程间通讯编程,熟悉Unix/Linux下常用架构设计方法;
  • 熟悉Unix/Linux编程环境,常用工具;
  • 熟悉Mysql/Oracle等数据库开发,了解Linux内核;
  • 全面的软件知识结构(操作系统、软件工程、设计模式、数据结构、数据库系统、网络安全);
  • 具备良好的分析解决问题能力,能独立承担任务和有系统进度把控能力;
  • 责任心强,良好的对外沟通和团队协作能力。

 

工作职责:

  • 负责手机QQ后台server架构,开发与维护。

工作要求:

  • 大学本科及以上学历;
  • 责任感强、有较强的逻辑思维能力、沟通能力、能够承担工作压力;
  • 具有两年以上互联网业务开发经验和大容量网络服务相关经验;
  • 精通C/C++,熟悉LINUX/UNIX开发环境,熟悉MYSQL数据库;
  • 计算机或相关专业本科以上学历,二年以上相关工作经验;
  • 有大型分布式系统的开发、维护经验,无线业务开发、维护经验者优先。

 

 

 

工作职责:

  • 负责互联网语音应用的引擎开发,音频处理算法的设计和实现;负责语音编解码和特效开发;
  • 负责工作任务包括但不限于以下内容:高音质和重采样;
  • 可变码率和网络自适应;
  • FEC和网络自适应。
  • AGC;
  • AEC;
  • NS;
  • CNG;
  • Low Delay FEC (codec level);
  • 分层编码;
  • codec;
  • AV Sync;
  • 分层转发;
  • 混音
  • 引擎去浮点(移植)擎去浮点(移植);
  • CPU优化(移植,ARM,MIPS,x86);
  • 多平台音频设备封装(移植);
  • Beam Formi

工作要求:

  • 计算机、通信等相关专业,硕士及以上学历;
  • 2年以上工作经验;
  • 沟通交流能力强,良好的团队合作精神,工作积极主动;
  • 有音频编解码,信号处理,语音处理的相关经验,具体包括: Generic DSP, Time domain / frequency domain modification for audio。
  • 音频编解码;
  • 语音处理技术,语音编解码技术;
  • 流媒体处理技术,DirectShow,DSound;
  • CPU/DSP优化,MMX,SSE,SSE2,etc;
  • 多线程编程;
  • 嵌入式开

 

 

工作职责:
  • 负责QQ客户端底层开发;
  • 负责实现客户端软件平台的各种逻辑特性;
  • 负责包含封装对服务器的交互,封装操作系统相关的操作等,
  • 不包含界面和皮肤开发。
工作要求:
  • 本科以上学历;
  • 熟练使用vc。2年以上相关工作经验;
  • 精通Windows编程,windows SDK使用;
  • 扎实的数据结构/算法基础。;
  • 了解MFC/windows界面实现机制。;
  • 有一定网络编程经验。
  • 同时具备有windows和linux开发经验优先。
  • 有平台化开发经验优先。

 

 

工作要求:
  • 本科及以上学历,计算机相关专业,2年以上软件开发类工作经验;
  • 精通C/C++、STL,熟悉网络编程;
  • 熟练使用VC,了解MFC/ATL/WTL等界面开发框架和界面设计机制;
  • 深刻理解windows操作系统的内存管理、文件系统、进程线程调度;
  • 熟悉流媒体、数字音乐、Web开发、Flash开发之一更佳;
  • 具备良好的分析、设计、表达能力。

 

工作要求:
  • 计算机相关专业本科以上学历,具备Unix/Linux下C/C++ 4年以上开发经验;
  • 精通TCP/IP协议,进程间通讯编程,熟悉Unix/Linux下常用架构设计方法;
  • 熟悉Unix/Linux操作系统原理,常用工具;
  • 熟悉Mysql/Oracle等数据库管理、开发,SQL调优;
  • 精通面向对象设计,熟悉UML等建模工具;
  • 要求精通C++,对Java有一定的理解和实践经验熟悉面向对象的大型分布式系统设计与开发,了解中间件的技术以及基于中间件的开发模式;
  • 全面的软件知识结构(操作系统、软件工程、设计模式、数据结构、数据库系统、网络安全);
  • 具备良好的分析解决问题能力,能独立承担任务和有系统进度把控能力;
  • 责任心强,良好的对外沟通和团队协作能力,主动,好学;
  • 有以下经验者优先:Mysql数据库相关优化经验;大容量通信系统开发经验。
工作要求:
  • 计算机相关专业本科以上学历,具备Unix/Linux下C/C++ 4年以上开发经验;
  • 精通TCP/IP协议,进程间通讯编程,熟悉Unix/Linux下常用架构设计方法;
  • 熟悉Unix/Linux操作系统原理,常用工具;
  • 熟悉Mysql/Oracle等数据库管理、开发,SQL调优;
  • 精通面向对象设计,熟悉UML等建模工具;
  • 要求精通C++,对Java有一定的理解和实践经验熟悉面向对象的大型分布式系统设计与开发,了解中间件的技术以及基于中间件的开发模式;
  • 全面的软件知识结构(操作系统、软件工程、设计模式、数据结构、数据库系统、网络安全);
  • 具备良好的分析解决问题能力,能独立承担任务和有系统进度把控能力;
  • 责任心强,良好的对外沟通和团队协作能力,主动,好学;
  • 有以下经验者优先:Mysql数据库相关优化经验;大容量通信系统开发经验。
工作要求:
  • 熟练使用C/C++编程语言;
  • 三年以上Windows驱动开发经验;
  • 熟悉Windows底层开发,熟悉DDK开发环境,熟练使用ollydbg, windbg等调试环境;
  • 熟悉windows网卡驱动,磁盘驱动,PCI驱动等;
  • 了解虚拟化技术者优先;
  • 熟悉tcpip者优先;
  • 了解业界新技术优先。

SD4-FPS客户端开发工程师(深圳)
工作地点:深圳职位类别:技术类招聘人数:1人
工作职责:
  • 在FPS项目中,使用UE3引擎,进行客户端程序开发。
工作要求:
  • 精通C/C++(3年以上);
  • 有过大中型游戏逻辑开发经验;
  • 熟悉至少一门脚本语言;
  • 对D3D有一定了解;
  • 熟悉STL、WIN32、多线程;
  • 使用过ue3引擎者优先,有FPS项目经验者优先。

 

SNG01-视频内核技术高级研发工程师(深圳)
工作地点:深圳职位类别:技术类招聘人数:1人
工作职责:
  • 负责互联网视频应用的引擎开发,视频编码优化、网络流控,前后处理算法的设计和开发,工作任务包括但不限于以下内容:视频编解码优化;
  • 负责视频流抗丢包抗抖动;
  • 负责视频流自适应流控;
  • 负责视频多维分层框架。
  • 负责视频多平台移植;
  • 负责音画同步;
  • 负责音视频联合流控;
  • 负责视频前后处理.
工作要求:
  • 本科以上学历;
  • 两年以上工作经验;
  • 掌握视频编解码技术原理,有;
  • 编码效率和编码性能优化经验;
  • 较好的网络功底,熟悉RTP/RTCP/SIP等相关协议;
  • 有一定的数字图像处理技术功底;
  • 熟练使用DirectShow、D3D等视频相关框架;
  • 有一定的多线程编程功底;
  • 二年以上视频相关产品开发经验。

 

ECC05-移动电商后台C++高级开发工程师
工作地点:深圳职位类别:技术类招聘人数:1人
工作职责:
  • 移动电子商务后台运行系统架构设计,方案分析,核心部件开发承担技术管理和人员培养职责
工作要求:
  • 计算机相关专业本科以上学历,具备Unix/Linux下C/C++ 4年以上开发经验;
  • 精通TCP/IP协议,进程间通讯编程,熟悉Unix/Linux下常用架构设计方法;
  • 熟悉Unix/Linux操作系统原理,常用工具;
  • 熟悉Mysql/Oracle等数据库管理、开发,SQL调优;
  • 精通面向对象设计,熟悉UML等建模工具;
  • 要求精通C++,对Java有一定的理解和实践经验
  • 熟悉面向对象的大型分布式系统设计与开发,了解中间件的技术以及基于中间件的开发模式;
  • 全面的软件知识结构(操作系统、软件工程、设计模式、数据结构、数据库系统、网络安全);
  • 具备良好的分析解决问题能力,能独立承担任务和有系统进度把控能力;
  • 责任心强,良好的对外沟通和团队协作能力,主动,好学;
  • 有以下经验者优先:Mysql数据库相关优化经验;大容量通信系统开发经验。

 

OMG10-腾讯视频Windows客户端研发(深圳)
工作地点:深圳职位类别:技术类招聘人数:2人
工作职责:
  • 负责腾讯视频客户端Windows平台系列软件的研发、维护;
  • 负责微软平台新技术的跟踪、预研;
工作要求:
  • 本科及以上学历,计算机相关专业,2年以上软件开发类工作经验;
  • 熟练掌握C++/VC,对算法、数据结构有深刻理解;
  • 熟悉Visual Studio开发平台,熟练掌握Windows系统编程/UI编程/网络编程;
  • 熟悉流媒体、视频编解码,Linux编程之一更佳;
  • 具备良好的分析、设计、表达能力,善于沟通;

 

 

 2、熟练掌握C/C++,熟练使用STL容器和算法;
3、熟悉usb传输协议,mfc编程;
4.、熟悉opencv编程。

 

 

3、 深入了解windows内核。
4、有驱动开发相关经验.,熟悉DDK开发,熟练使用windbg、softice调试驱动。
5、责任心强,承受压力能力强,具有良好的沟通能力及团队精神 。

 

 

 

 

 

 

 

 

 

1、虚拟串口怎么实现,如果真实的串口有数据,那么内存共享怎么做?

参考我的文章<<winCE中实现虚拟串口的方法>>

 

2、TCPMP的音频与视频的同步方法;

3、做的东西很多,但都不深入;

4、camera经7180出来的视频数据是什么格式的?

5、WCE的启动过程是什么?

6、用什么样的GPS

 

 

 

 

 

 

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值