• 大小: 15.32MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-10
  • 语言: 其他
  • 标签: jrtplib  rtp  

资源简介

基于jrtplib实现了RTP发送和接收功能,支持发送H264、PS、TS等文件流,接收端读取发送端发来的数据后,取Payload数据,通过FFmpeg分离、解码出视频,将RGB格式的视频在窗口中显示。 了解更多内容请参阅我博客上的相关文章:https://blog.csdn.net/zhoubotong2012/article/category/7467116

资源截图

代码片段和文件信息

// 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( 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-06-14 16:37  class\
     目录           0  2016-06-14 16:37  class\DirectDraw\
     文件       13969  2014-03-10 15:46  class\DirectDraw\DDrawData.cpp
     文件        2169  2014-03-10 15:46  class\DirectDraw\DDrawData.h
     文件       10757  2014-10-21 09:52  class\DirectDraw\Dec.rar
     文件        6431  2014-10-21 09:49  class\DirectDraw\DecoderRtp.cpp
     文件        1073  2014-10-21 09:49  class\DirectDraw\DecoderRtp.h
     文件          39  2014-03-10 15:46  class\DirectDraw\directdraw.h
     文件        7959  2014-03-10 15:46  class\DirectDraw\DirectDraw.rar
     文件        8016  2016-05-05 13:01  class\DirectDraw\yuvdisplay.cpp
     文件         865  2014-10-21 10:05  class\DirectDraw\yuvdisplay.h
     目录           0  2016-06-14 16:37  class\thread\
     文件        1397  2014-03-10 15:46  class\thread\Thread.cpp
     文件        1172  2014-03-10 15:46  class\thread\Thread.h
     文件        5155  2014-03-10 15:46  class\thread\TThread.h
     目录           0  2018-11-29 16:20  Debug\
     文件    18936320  2015-07-15 16:19  Debug\avcodec-55.dll
     文件     1340928  2015-07-15 16:19  Debug\avdevice-55.dll
     文件     2034688  2015-07-15 16:19  Debug\avfilter-4.dll
     文件     5342720  2015-07-15 16:19  Debug\avformat-55.dll
     文件      418304  2015-07-15 16:19  Debug\avutil-52.dll
     文件      832512  2018-11-29 16:18  Debug\PlayStream.exe
     文件      121344  2015-07-15 16:19  Debug\postproc-52.dll
     文件     1007104  2015-07-15 16:19  Debug\SDL2.dll
     文件      275968  2015-07-15 16:19  Debug\swresample-0.dll
     文件      434176  2015-07-15 16:19  Debug\swscale-2.dll
     目录           0  2018-11-11 19:51  jrtplib\
     目录           0  2018-11-11 19:52  jrtplib\jrtplib\
     文件         757  2017-03-29 00:59  jrtplib\jrtplib\reformaterrors.py
     文件        2697  2017-03-29 00:59  jrtplib\jrtplib\rtcpapppacket.cpp
     文件        3703  2017-03-29 00:59  jrtplib\jrtplib\rtcpapppacket.h
............此处省略302个文件信息

评论

共有 条评论