资源简介
MFC实现的窗口程序,集成了发送和接收RTP包的功能,接收到的视频用FFmpeg解码并显示出来。该例子代码对应我博客上的一篇文章:https://blog.csdn.net/zhoubotong2012/article/details/86510032
代码片段和文件信息
// VideoDrawer.cpp: implementation of the CDDrawData class.
//
//////////////////////////////////////////////////////////////////////
#include “DDrawData.h“
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
#define SAFE_RELEASE(p) { if ( (p) ) { (p)->Release(); (p) = 0; } }
CDDrawData::CDDrawData()
{
m_pDD = NULL;
m_pddsFrontBuffer = NULL;
m_pddsBackBuffer = NULL;
m_dwWidth = 0;
m_dwHeight = 0;
}
CDDrawData::~CDDrawData()
{
Destroyobjects();
}
HRESULT CDDrawData::Init(HWND hWndRECT rect)
{
HRESULT hr;
// Cleanup anything from a previous call
Destroyobjects();
// DDraw stuff begins here
if( FAILED( hr = DirectDrawCreateEx( NULL (VOID**)&m_pDD
IID_IDirectDraw7 NULL ) ) )
return E_FAIL;
// Set cooperative level
hr = m_pDD->SetCooperativeLevel( hWnd DDSCL_NORMAL );
if( FAILED(hr) )
return E_FAIL;
DWORD dwWidthdwHeight;
dwWidth = rect.right-rect.left;
dwHeight = rect.bottom - rect.top;
/* RECT rcWork;
RECT rc;
DWORD dwstyle;
// If we are still a WS_POPUP window we should convert to a normal app
// window so we look like a windows app.
dwstyle = GetWindowstyle( hWnd );
dwstyle &= ~WS_POPUP;
dwstyle |= WS_OVERLAPPED | WS_CAPTION | WS_THICKframe | WS_MINIMIZEBOX;
SetWindowLong( hWnd GWL_style dwstyle );
// Aet window size
SetRect( &rc 0 0 dwWidth dwHeight );
AdjustWindowRectEx( &rc GetWindowstyle(hWnd) GetMenu(hWnd) != NULL
GetWindowExstyle(hWnd) );
SetWindowPos( hWnd NULL 0 0 rc.right-rc.left rc.bottom-rc.top
SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE );
SetWindowPos( hWnd HWND_NOTOPMOST 0 0 0 0
SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE );
// Make sure our window does not hang outside of the work area
SystemParametersInfo( SPI_GETWORKAREA 0 &rcWork 0 );
GetWindowRect( hWnd &rc );
if( rc.left < rcWork.left ) rc.left = rcWork.left;
if( rc.top < rcWork.top ) rc.top = rcWork.top;
SetWindowPos( hWnd NULL rc.left rc.top 0 0
SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE );
*/
GetWindowRect( hWnd &m_rcWindow );
LPDIRECTDRAWCLIPPER pcClipper;
// Create the primary surface
DDSURFACEDESC2 ddsd;
ZeroMemory( &ddsd sizeof( ddsd ) );
ddsd.dwSize = sizeof( ddsd );
ddsd.dwFlags = DDSD_CAPS;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
if( FAILED( m_pDD->CreateSurface( &ddsd &m_pddsFrontBuffer NULL ) ) )
return E_FAIL;
if( FAILED( hr = m_pDD->CreateClipper( 0 &pcClipper NULL ) ) )
return E_FAIL;
if( FAILED(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7995 2014-03-10 15:46 yuvdisplay.cpp
文件 904 2014-03-10 15:46 yuvdisplay.h
文件 13969 2014-03-10 15:46 DDrawData.cpp
文件 2169 2014-03-10 15:46 DDrawData.h
文件 6431 2014-10-21 09:49 DecoderRtp.cpp
文件 1073 2014-10-21 09:49 DecoderRtp.h
----------- --------- ---------- ----- ----
32541 6
- 上一篇:基于TCP协议的网络聊天室
- 下一篇:mfc课程设计 通讯录
相关资源
- ffmpeg for MFC 1.2 测试版
- RTSP PUSH tcp udp h264 easydarwin
- Qt/C++模仿酷狗音乐播放器执行文件
- C#开发FFMPEG(API方式) FFmpeg拉取RTMP流
- FFMpeg_FFPlay 源码剖析(杨书良)
- H264视频解压缩封装 c++
- ffmpeg-20191004-e6625ca-win64-static.rar
- VS2019编译的32位最新版ffmpeg类库文件
- C++ RTSP/RTP流媒体客户端源码
- RTSP服务器 C语言
- libx264最新稳定版本附WINDOWS下编译步骤
- 最小RTSP服务器,C语言代码
- rtp实现C 语言
- yasm FFmpeg必备
- RTSPRTP服务器+客户端 C++ 源代码
- RTSPRTP C++ 源代码
- FFmpeg basic
- FFmpeg+sdl for mac
- FFmpeg参数大全说明文档.pdf
- ffmpeg完整开发文档
- mp4v2封装h264 AAC
- ffmpeg的tutorial中文版
- ffmpeg视频生成jpg图片
- FFMPEG Qt视频播放器之播放控制
- ffmpeg获取RTSP视频流信息
- C++ 解码h264
- FFMPEG完美入门资料
- FFMPEG/FFPLAY 源码剖析()
- ffmpeg基础库编程开发》20140307
- h.264编解码程序
评论
共有 条评论