h264视频流解码并通过D3D显示


通过RTSP协议获取到视频帧数据,输入到h264解码模块中解码为yv12数据,通过D3D显示 vs2008 工程 选择RTSP源时 查看是什么分辨率 在stdafx.h 中修改宏定义
资源截图
代码片段和文件信息
/*
Author: dengzikun

http://hi.csdn.net/dengzikun

注意:在保留作者信息和出处链接的前提下,您可以任意复制、修改、传播本文件。

*/



#include “stdafx.h“
#include “CommonFunctions.h“

extern “C“ void __cdecl memcpyMMX(void *Dest void *Src size_t nBytes)
{
    __asm 
    {
        mov     esi dword ptr[Src]
        mov     edi dword ptr[Dest]
        mov     ecx nBytes
        shr     ecx 6                      // nBytes / 64
cmp     ecx 0
je      Myloop 
align 8
CopyLoop:
        movq    mm0 qword ptr[esi]
        movq    mm1 qword ptr[esi+8*1]
        movq    mm2 qword ptr[esi+8*2]
        movq    mm3 qword ptr[esi+8*3]
        movq    mm4 qword ptr[esi+8*4]
        movq    mm5 qword ptr[esi+8*5]
        movq    mm6 qword ptr[esi+8*6]
        movq    mm7 qword ptr[esi+8*7]
        movq    qword ptr[edi] mm0
        movq    qword ptr[edi+8*1] mm1
        movq    qword ptr[edi+8*2] mm2
        movq    qword ptr[edi+8*3] mm3
        movq    qword ptr[edi+8*4] mm4
        movq    qword ptr[edi+8*5] mm5
        movq    qword ptr[edi+8*6] mm6
        movq    qword ptr[edi+8*7] mm7
        add     esi 64
        add     edi 64
        loop CopyLoop
// emms
align 8
Myloop:
        mov     ecx nBytes
        and     ecx 63
        cmp     ecx 0
        je EndCopyLoop
;align 8
;CopyLoop2:
        mov dl byte ptr[esi] 
        mov byte ptr[edi] dl
;        inc esi
;        inc edi
;        dec ecx
;        jne CopyLoop2
 rep movsb
EndCopyLoop:
    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1568  2010-08-19 11:41  解码库D3D_YV12D3DVideoRenderCommonFunctions.cpp

     文件        649  2010-08-19 11:38  解码库D3D_YV12D3DVideoRenderCommonFunctions.h

     文件      30419  2010-07-08 09:52  解码库D3D_YV12D3DVideoRenderd3dfont.cpp

     文件       2772  2010-06-30 13:13  解码库D3D_YV12D3DVideoRenderd3dfont.h

     文件      12947  2010-08-19 11:41  解码库D3D_YV12D3DVideoRenderD3DManager.cpp

     文件       2497  2010-08-19 11:38  解码库D3D_YV12D3DVideoRenderD3DManager.h

     文件       7237  2009-08-04 17:30  解码库D3D_YV12D3DVideoRenderd3dutil.h

     文件       2709  2010-08-19 11:42  解码库D3D_YV12D3DVideoRenderD3DVideoRender.cpp

     文件        120  2010-07-08 08:52  解码库D3D_YV12D3DVideoRenderD3DVideoRender.def

     文件     243712  2014-02-28 13:05  解码库D3D_YV12D3DVideoRenderD3DVideoRender.dll

     文件        819  2014-02-28 13:05  解码库D3D_YV12D3DVideoRenderD3DVideoRender.exp

     文件       2196  2014-02-28 13:05  解码库D3D_YV12D3DVideoRenderD3DVideoRender.lib

     文件        893  2014-02-20 13:59  解码库D3D_YV12D3DVideoRenderD3DVideoRender.sln

     文件        892  2010-08-19 10:59  解码库D3D_YV12D3DVideoRenderD3DVideoRender.sln.old

    ..A..H.     28160  2014-02-28 17:42  解码库D3D_YV12D3DVideoRenderD3DVideoRender.suo

    ..A..H.     27136  2014-02-20 13:58  解码库D3D_YV12D3DVideoRenderD3DVideoRender.suo.old

     文件       6973  2014-02-28 14:05  解码库D3D_YV12D3DVideoRenderD3DVideoRender.vcproj

     文件       6729  2010-08-10 14:26  解码库D3D_YV12D3DVideoRenderD3DVideoRender.vcproj.8.00.old

     文件       1387  2014-02-20 16:11  解码库D3D_YV12D3DVideoRenderD3DVideoRender.vcproj.cwliu-PC.cwliu.user

     文件       1387  2014-02-28 17:42  解码库D3D_YV12D3DVideoRenderD3DVideoRender.vcproj.cwliu_pc.cwliu.user

     文件       1401  2010-08-19 11:00  解码库D3D_YV12D3DVideoRenderD3DVideoRender.vcproj.SINOWAVE-B96804.dengdp.user

     文件       5425  2010-08-19 12:59  解码库D3D_YV12D3DVideoRenderD3DVideoRenderInterface.h

     文件       6116  2014-02-28 13:33  解码库D3D_YV12D3DVideoRenderDebugBuildLog.htm

     文件        663  2014-02-28 13:33  解码库D3D_YV12D3DVideoRenderDebugD3DVideoRender.dll.embed.manifest

     文件        621  2014-02-28 13:33  解码库D3D_YV12D3DVideoRenderDebugD3DVideoRender.dll.intermediate.manifest

     文件         65  2014-02-28 13:33  解码库D3D_YV12D3DVideoRenderDebugmt.dep

     文件        546  2010-08-19 11:39  解码库D3D_YV12D3DVideoRenderdebuginterface.h

     文件       1381  2010-08-19 11:39  解码库D3D_YV12D3DVideoRenderDisplay.h

     文件      17531  2010-08-19 11:39  解码库D3D_YV12D3DVideoRenderDisplay_NV12.h

     文件      14412  2010-08-19 11:39  解码库D3D_YV12D3DVideoRenderdisplay_rgb24.h

............此处省略492个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)