主管叫我看tcpmp播放器,找出解码代码的接口!!
该如何去找关于音视频解码部分接口呢?

它是由14个项目组成的,其中主工程是一个叫player的,里面代码如下:

#include "../common/common.h"

static const tchar_t ProgramName[] = T("TCPMP");
static const tchar_t ProgramVersion[] = 
#include "../version"
;

#ifndef STRICT
#define STRICT
#endif
#include <windows.h>

#if defined(TARGET_WINCE)
#define TWIN(a) L ## a
extern int ProgramId;
#else
#define TWIN(a) a
static int ProgramId = 0;
#endif

// don't want to use common.dll, but don't want to collide with DLL import function either
#define tcscpy_s _tcscpy_s

#if !defined(NO_PLUGINS) || defined(NDEBUG)
static void tcscpy_s(tchar_t* Out,int OutLen,const tchar_t* In)
{
if (OutLen>0)
{
int n = min((int)tcslen(In),OutLen-1);
memcpy(Out,In,n*sizeof(tchar_t));
Out[n] = 0;
}
}
#endif

#ifdef NDEBUG
static BOOL CALLBACK EnumWindowsProc(HWND Wnd,LPARAM Param)
{
HWND* p = (HWND*)Param;
if (GetWindow(Wnd,GW_OWNER) == *p)
{
*p = Wnd;
return 0;
}
return 1;
}

static bool_t FindRunning(const tchar_t* CmdLine)
{
HWND Wnd;
tchar_t ClassName[32];
int n = tcslen(ProgramName);
tcscpy_s(ClassName,TSIZEOF(ClassName),ProgramName);
tcscpy_s(ClassName+n,TSIZEOF(ClassName)-n,T("_Win"));
Wnd = FindWindow(ClassName, NULL);
if (Wnd)
{
HWND WndMain = Wnd;

while (!IsWindowEnabled(Wnd))
{
HWND Last = Wnd;
EnumWindows(EnumWindowsProc,(LPARAM)&Wnd);
if (Wnd == Last)
break;
}

SetForegroundWindow(Wnd);

if (CmdLine && CmdLine[0])
{
COPYDATASTRUCT Data;
Data.dwData = 0;
Data.cbData = (tcslen(CmdLine)+1)*sizeof(tchar_t);
Data.lpData = (PVOID)CmdLine;
SendMessage(WndMain,WM_COPYDATA,(WPARAM)WndMain,(LPARAM)&Data);
}

return 1;
}
return 0;
}
#endif

#ifdef NO_PLUGINS
extern void Main(const tchar_t* Name,const tchar_t* Version,int Id,const tchar_t* CmdLine);
#else
static HANDLE Load(const tchar_t* Name)
{
HANDLE Module;
tchar_t Path[MAXPATH];
tchar_t *s;
GetModuleFileName(NULL,Path,MAXPATH);
s = tcsrchr(Path,'\\');
if (s) s[1]=0;
tcscpy_s(Path+tcslen(Path),TSIZEOF(Path)-tcslen(Path),Name);
Module = LoadLibrary(Path);
if (!Module)
Module = LoadLibrary(Name);
return Module;
}
#endif

#if !defined(TARGET_WINCE) && defined(UNICODE)
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hParent,LPSTR CmdA,int CmdShow)
{
WCHAR Cmd[2048];
mbstowcs(Cmd,CmdA,sizeof(Cmd)/sizeof(WCHAR)); //!!!
#else
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hParent,TCHAR* Cmd,int CmdShow)
{
#endif

#ifndef NDEBUG
// DLLTest(); // just to help debugging plugins. comment out if not needed
Context();
#endif

#if defined(TARGET_WINCE) && defined(ARM)
if (ProgramId == 2)
{
OSVERSIONINFO Ver;
Ver.dwOSVersionInfoSize = sizeof(Ver);
GetVersionEx(&Ver);
if (Ver.dwMajorVersion*100 + Ver.dwMinorVersion >= 421)
{
// old shell menu not supported after WM2003SE
MessageBox(NULL,T("This ARM_CE2 version of the player is not compatible with this device. Please install ARM_CE3 version."),NULL,MB_OK|MB_ICONERROR); 
return 1; 
}
}
#endif

#ifdef NDEBUG
if (!FindRunning(Cmd))
{
HANDLE Handle = CreateMutex(NULL,FALSE,ProgramName);
if (GetLastError() != ERROR_ALREADY_EXISTS)
#endif
{
#ifndef NO_PLUGINS
HMODULE Module;
SetCursor(LoadCursor(NULL, IDC_WAIT));
Module = Load(T("interface.plg"));
if (Module)
{
void (*Main)(const tchar_t* Name,const tchar_t* Version,int Id,const tchar_t* CmdLine);
*(FARPROC*)&Main = GetProcAddress(Module,TWIN("Main"));
if (!Main)
*(FARPROC*)&Main = GetProcAddress(Module,TWIN("_Main@16"));
if (Main)
Main(ProgramName,ProgramVersion,ProgramId,Cmd);
FreeLibrary(Module);
}
#else
Main(ProgramName,ProgramVersion,ProgramId,Cmd);
#endif
#ifdef NDEBUG
CloseHandle(Handle);
#endif
SetCursor(LoadCursor(NULL, IDC_ARROW));
}
#ifdef NDEBUG
}
#endif
return 0;
}

主管叫我看tcpmp播放器,下面几行代码1月没看懂,求求你了,相关推荐

  1. WINCE应用层设计经验总结-关于TCPMP播放器制作编译篇

    //===========================================================// //标题:WINCE应用层设计经验总结-关于TCPMP播放器制作(一) ...

  2. Vue介绍以及练手案例——音乐播放器(搜索音乐、听歌、看评论、看mv等)(持续更新)

    Vue概述 它是一种 javascript框架 可以简化DOM操作 进行响应式数据驱动 el: 挂载点 vue实例的作用范围:vue会管理 el 选项所命中的元素及其内部的后代元素. 可以使用其他选择 ...

  3. 酷播v4.0免费播放器最新最简短代码范例

    酷播v4.0免费播放器最新最简短代码范例 1. 增加播放器优先级选项: 2. 增加支持PC端和移动端的视频预览功能(收费预览视频功能): 3. 增加微信中的logo显示 ( iOS下支持): 4. 配 ...

  4. 音乐播放器App界面优秀案例,通过案例看大咖如何设计?

    音乐播放器 App 界面要怎么设计?集设网 www.ijishe.ccom精选的 12 款移动端音乐播放器,学习一下如何设计出一个易用性和交互性良好.设计感受舒适.展示层级清晰的界面. 看这里

  5. 为对象开发一款专属看剧播放器

    特殊的小日子里为大家分享一个 LeanCloud 用户 liyang5945 开发的浪漫小项目 这是我两年前想跟一个相亲对象一起看美剧弄的,之前也研究了一些方案,不过都不太满足我的需求,我的需求就是双 ...

  6. 优酷播放器右侧的导航html,优酷新版播放器站外调用代码详解

    优酷现在更新的优酷播放器,增加了开灯关灯特效,蓝叶看着很漂亮,就花了点时间,把这个调用代码找了出来,现在就分享个需要的同学.优酷附带开灯关灯特效新版播放器的站外调用代码如下: 复制代码的时候,把代码复 ...

  7. 基于微信小程序java音乐播放器毕业设计论文/程序代码

    摘  要 5G时代已经慢慢的融入了我们的日常生活,随着国家的通信政策以及各大运营商的宣传的影响,5G手机已经随处可见,面对全球信息.技术空前高速发展,信息高速化发展更是社会进步的一个标志.在全球信息化 ...

  8. 极酷阳光(酷播)播放器的前置广告代码(flash和视频两种模式)

    <!--[HTML代码参数]--> <div class="video" id="CuPlayer"> <b>网页视频播放器 ...

  9. 超级炫酷界面C++编写音乐播放器,免费开源代码!

    VB编写的一套MP3音乐播放机程序,界面模仿了鼎鼎大名的Winamp播放器,使用了增强型的皮肤插件,资源文件完整.打开Qt Creator,创建一个new project,项目名称随你喜欢(我的是Mu ...

  10. 对你没有看错!不到 10 行代码完成抖音热门视频的爬取!

    [摘要] 最近研究了一下抖音的爬虫,目前实现了热门话题和热门音乐下面所有相关视频的爬取,并且我已经将该爬虫打包成了一个 Python 库并发布,名称就叫做 douyin,利用该库可以使用不到 10 行 ...

最新文章

  1. 再译《A *路径搜索入门》之二
  2. 超级计算机和人比,和超级计算机相比,人类的大脑很弱吗
  3. struts2中的method
  4. 【报告分享】2020金融兴趣人群内容消费及理财意识洞察报告.pdf(附下载链接)...
  5. C#编程(六十六)----------表达式树总结
  6. 重构:改善既有代码的设计 精彩书评一
  7. bigdecimal js 判断等于0_Js BigDecimal实现精确加减乘除运算的方法
  8. 复化辛普森公式求二重积分matlab源码及例题
  9. BZOJ3711 : [PA2014]Druzyny
  10. 如何评价伊隆·马斯克创办的脑机接口公司 Neuralink ?
  11. 数据平台作业调度系统详解-理论篇
  12. 水光半导体于2017 CES展示全方位通讯网络、多媒体及消费性电子芯片解决方案
  13. 控制网平差(C++实现)
  14. filezilla,filezilla下载文件
  15. 4.IPv4和IPv6地址长度
  16. 【每日新闻】国内首款3D AI/MR芯片即将量产
  17. 如何在Apache-Maven官网下载到自己想要的版本
  18. armv7与armv8 cp15 cache指令
  19. 2)速卖通商品信息采集(进阶)
  20. 蓝桥杯 算法训练 Cowboys DP

热门文章

  1. 利用plot_surface命令绘制复杂曲面入门详解
  2. Unity SRP初识笔记
  3. matlab安卓官方下载,手机matlab软件下载-MATLAB Mobile手机版下载v5.1.0 安卓官方版-单机手游网...
  4. Linux 利用date命令进行时间戳转换
  5. python 论文降重_我用Python写了一个论文降重工具-Go语言中文社区
  6. linux双网卡同时访问内外网
  7. 微信小程序发布全流程
  8. java实训任务_java实训任务
  9. DMG计算机,dmg文件怎么打开?dmg是什么意思?
  10. JavaScript判断当前浏览器类型(包括判断移动端浏览器类型)