SDL播放视频 [问题点数:50分]

Bbs1
本版专家分:0
结帖率 20%
SDL读文件播放视频
这是一个SDL读取本地文件显示视频代码,开发平台是VS,C++
ffmpeg SDL播放视频
使用<em>sdl</em>显示解码后的数据// tutorial02.c // A pedagogical video player that will stream through every video frame as fast as it can. // // Code based on FFplay, Copyright (c) 2003 Fabrice Bellard, // and a tutori
FFMPEG和SDL播放视频(Android)
使用SDL 2.x和FFMPEG<em>播放视频</em>,简单的例子
[2] SDL的基础知识以及利用SDL播放视频
SDL 的基础知识以及利用SDL<em>播放视频</em>此博文相关知识点从雷神的博客以及视频学习,截图也是用了他的课件, 雷神博客地址:http://blog.csdn.net/leixiaohua1020/日期:2016.10.1 作者:isshe github:github.com/isshe 邮箱:i.sshe@outlook.com SDL基础知识 SDL结构图 SDL函数调用的一般流程 最最主
FFMPEG小白-day09(sdl项目播放视频)
首先,向雷神,雷霄骅致敬!mib.jpg今天我们来点硬货,就是将视频给播放出来,这里我们即将播放的是yuv视频,废话不多说,我们直接上代码,前边两天我们已经对<em>sdl</em>库进行了配置了,所以现在我们这里就专门来解释代码了,为了便于阅读,我这里直接贴图了,有需要代码的可以评论,我会给你的哦代码1.png代码2.pngok,为了大家能够看懂,在必要的地方做了注释。然后在cpp文件的目录下方,我放了一个yuv...
FFMPEG小白-day10(sdl项目播放视频进阶)
首先,向雷神,雷霄骅致敬!星河战队.png我们上篇文章已经介绍了<em>sdl</em>的<em>播放视频</em>的知识了,但是不知道试验过的同学有没有发现,我们在<em>播放视频</em>时的状态是这样的细心的同学应该能看到,鼠标现在是加载中的一个状态,知道我们关闭程序,鼠标才能恢复到可用的状态,那么为什么是这种情况呢?拿到程序一跑起来电脑就卡掉了?因为是mac下放的虚拟机,暂时无法截到鼠标忙碌的状态,大家脑补一下吧~~~乖做过编程的朋友都知道,...
SDL播放视频的问题,SDL_DisplayYUVOverlay一定调用吗?
我最近在用MFC Activex做了一款控件,用于安装在ie上显示实时流视频。ffmpeg编解码,<em>sdl</em>1.2<em>播放视频</em>。rn但是,最近出了一个问题,界面黑屏,流能够正常推过来。rn我想查找原因,然后,SDL_DisplayYUVOverlay没有被调用,后来我发现,无论能够正常<em>播放视频</em>,SDL_DisplayYUVOverlay这个函数都没有被调用。rn那么问题来了。rnrnrn1.用SDL显示视频,SDL_DisplayYUVOverlay一定要被调用吗?rn2.问题的可能原因是什么?rn
VC++实现视频聊天:FFmpeg解码+SDL播放视频
经过网络传输接收到的码流,已经存放在公共链表 PacketNode_t 中,码流经过解码成YUV或RGB后才能播放,接下来就介绍FFmpeg解码过程和 SDL <em>播放视频</em>
ffmpeg回调函数方式解码本地文件+SDL播放视频
这是在雷神的代码基础上,修改的按回调方式播放的示例
[SDL] SDL 游戏开发教程 (英文版)
☆ 资源说明:☆ [Packt Publishing] SDL 游戏开发教程 (英文版) [Packt Publishing] SDL Game Development (E-Book) ☆ 出版信息:☆ [作者信息] Shaun Mitchell [出版机构] Packt Publishing [出版日期] 2013年06月24日 [图书页数] 256页 [图书语言] 英语 [图书格式] PDF 格式
SDL SDK + SDL Image
SDL_Image SDL SDLProgram SDL_Image SDL SDLProgram SDL_Image SDL SDLProgram SDL_Image SDL SDLProgram
sdl
能不能在<em>sdl</em>图形化界面中弹出一个窗口
qt使用SDL播放视频 窗口拉伸 视频闪烁
QT在使用SDL渲染窗口的时候 拉伸界面 会导致整个视频窗口不停的闪烁 这里要感谢 @傻子,嗤的指导
有关QT控件上(QLabel)使用SDL播放视频的问题
QT控件上(QLabel)使用SDL<em>播放视频</em>时,如何是视频随着控件大小的变化而跟着改变。本人现在是用SDL_SetVideoMode(nWidth, nHeight, 0, flags)函数重新设置显示视频的宽高,当控件大小改变的时候。然后有个问题就是在使用了SDL_SetVideoMode一次之后,QLabel的resizeEvent事件不能被触发了。导致SDL_SetVideoMode函数没有再被调用。有知道的指导指导,谢谢!
FFMPEG小白-day08(sdl项目播放视频流程及结构体关系图)
首先,像雷神:雷霄骅致敬!黑客帝国.jpg今天我们来讲解一下<em>sdl</em>库<em>播放视频</em>的步骤。我们先来下下<em>sdl</em>视频显示的流程图<em>sdl</em>视频显示的流程图.png流程图介绍 * SDL_Init():初始化SDL系统 * SDL_CreateWindow() :创建窗口SDL_Window * SDL_CreateRenderer():创建渲染器SDL_Renderer * SDL_CreateT...
如何在多个窗口中同时利用SDL播放视频
利用SDL技术来<em>播放视频</em>,现在的问题是,不能在绘制的多个窗口对话框中(窗口对话框界面是java编写的,本程序为C语言编写,这些没太大关系)同时<em>播放视频</em>,请教各位高手了,急!!还望多多指教,感激不尽!rn补充:1、在指定的单个对话框窗口播放时没问题的rn 2、通过创建线程机制,还是不能解决上述问题rn
SDL alien 入门级SDL编程
一个SDL的入门级游戏,包含文档,有声音,图像,代码资源,注释很详尽,代码风格很好
SDL游戏开发之一-SDL的简介
本教程为一个长系列,旨在于从零开始边学习SDL边开发游戏。 一.什么是SDL? SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放...
播放视频
使用mciSendCommand()函数<em>播放视频</em>文件时,弹出的对话框位置和窗口样式怎么控制
播放视频
怎么在ASP.NET页面中放入本地的视频文件并且能播放?求详细的步骤有么??
【SDL】SDL学习笔记一 SDL的子系统的初始化和退出
使用SDL库之前需要装载各个子系统,就像要放电影,必须给播放器提供影片一样,程序退出的时候,应该先退出子系统,释放资源。 1. 初始化SDL函数 该函数必须是在程序开始的地方调用 int SDL_Init(Uint32 flags) flags参数的取值: /* As of version 0.5, SDL is loaded dynamically into the appli
SDL (四)SDL YUV播放和PCM播放
SDL 中播YUV和PCM数据的步骤比较简单: 1,播放YUV数据 //1 打开文件 video_file = fopen(path, "r"); //2 读取数据 video_buff_len = fread(video_buf, 1, yuv_frame_len, video_file) //3 更新纹理 SDL_UpdateTexture(texture, NULL, video_pos...
SDL配置文件
bochs软件,SD卡建文件夹SDL,还需下载windows镜像文件
Focus on SDL
关于SDL的英文电子书。。。。。。。。。。。。
MSC,SDL
谁会MSC,SDLrn
sdl学习笔记
c语言bug积累: 1、土豆视频:SDL tutorial 2、编程错误:忘了将所需图片粘到工程目录下,导致出现了段错误。 3、将条件语句中的相等判断的==写成=。
SDL安装
编译ffmpeg无法生成ffplay的问题解决 好多人问编译ffmpeg时无法生成ffplay,其具体原因多数是由于没有SDL或者SDL版本不正确所导致。 解决办法如下: 安装正确的SDL库既可解决 点击(此处)折叠或打开 wget http://lib<em>sdl</em>.org/release/SDL-1.2.15.tar.gz tar z
SDL简介
由于之前玩ffmpeg的时候,经常遇到的就是SDL。但是当时没有时间来细化的学习SDL,也没有什么概念。现在就来记录下自学的过程首先我们需要知道  什么是SDLSDL是 “Simple DirectMedia Layer”的缩写,它是一个开源的项目SDL可以用来做啥?为多媒体编程而设计SDL是一个跨平台的多媒体库,它通过OpenGL和2D视频帧缓冲,提供了针对音频、视频、键盘、鼠标、控制杆及3D硬...
SDL交叉编译
1. SDL常用依赖库 1.1 zlib       IP:http://www.zlib.net/index.html        参考:ARM下一些常用库的移植 1.2 iconv      iP: http://www.gnu.org/software/libiconv       1.3 jpeg      ftp://ftp.eenet.e...
SDL编程
SDL中文入门教程:   http://kelvmiao.info/<em>sdl</em>-tutorial-cn/index.html
SDL 垂直同步
我用SDL来显示视频,都会出现撕裂的情况,我想问问大家SDL中有没有提供垂直同步的办法。rn如果我用directdraw来显示视频就可以解决垂直同步的问题。rn希望有知道答案的朋友帮帮忙,这个问题困扰了我很久。
关于sdl
我有一个程序,基于<em>sdl</em>,我的系统也有libSDL,我如何在不启动x的情况下运行这个程序?事先要运行什么?
sdl的安装问题
用vs2010 通过网上的教程已经将SDl.dll文件粘贴到c盘的windows\system32下 但是在测试的时候发现提示找不到SDL.dllrn各位大虾谁能帮下忙啊rn
SDL的编程
基于FFmpeg+SDL的视频播放器的制作的入门级课程,视频资料、ppt、代码、使用到的工具、测试音视频上传到百度云,方便您的下载。rn这个课程通俗易懂,内容翔实,是您从ffmpeg、<em>sdl</em>门外汉到高手的很好的一课。学习ffmpeg已经3年,我从一个菜鸟的角度,提供了这趟课程,从简单到复杂,从入门到进阶,让您迅速掌握ffmpeg和<em>sdl</em>的使用。
SDL游戏开发系列第一话:Hello SDL
各位读者朋友大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是http://qinyuanpei.com。从今天起博主将带领大家一起走进SDL游戏开发的世界,如果说此前的Unity3D游戏开发系列文章让大家感受到的是游戏引擎工具化开发的方便与快捷,那么这一次就让我们以SDL库为基础,通过了解游戏开发中的底层图形渲染、输入事件响应等内容来全面认识游戏引擎,博主为SDL游戏开发系列文章建立了专栏,
linux sdl segmentation fault (SDL Parachute Deployed)
有谁知道怎么样能使linux下的SDL程序在发生segmentation fault (SDL Parachute Deployed),的时候产生core文件?ulimit已经设置成unlimited了。
[SDL 问题] Delphi SDL 开发遇到问题
[code=Delphi(Pascal)]rnunit Unit1;rninterfacernusesrn Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,rn Dialogs, SDL, StdCtrls;rnrntypern TForm1 = class(TForm)rn Button1: TButton;rn procedure FormCreate(Sender: TObject);rn procedure Button1Click(Sender: TObject);rn privatern Private declarations rn publicrn Public declarations rn end;rnrnrnvarrn Form1: TForm1;rnrnimplementationrn usesrn avformat, avcodec, avutil, mem, swscale,FFMPEGDynamiccall;rn$R *.dfmrnfunction SDL_Auxilipitary_ForDelphi(var pict:PAVPicture;var bmp:PSDL_Overlay):Integer;stdcall;external 'delphiSDL.dll';rnfunction SDL_GetOverlayPix(const bmp:PSDL_Overlay;const i : integer):System.PByte;stdcall;external 'delphiSDL.dll';rnfunction SDL_GetOverlayPit(const bmp:PSDL_Overlay;const i : integer):Integer;stdcall;external 'delphiSDL.dll';rnprocedure TForm1.FormCreate(Sender: TObject);rnbeginrn // 初始化 SDLrn if(SDL_Init(SDL_INIT_VIDEO or SDL_INIT_AUDIO or SDL_INIT_TIMER) < 0) thenrn showmessage(Format('Couldn''t initialize SDL : %s',[SDL_GetError]));rn // 初始化 FFMPEG 库rn // 动态调用rn FFCall_AddLibrary('D:\Delphi\ffmpeg 研究工程\avcodeclib\pthreadGC2.dll');rn FFCall_AddLibrary('D:\Delphi\ffmpeg 研究工程\avcodeclib\xvidcore.dll');rn FFCall_AddLibrary('D:\Delphi\ffmpeg 研究工程\avcodeclib\avutil.dll');rn FFCall_AddLibrary('D:\Delphi\ffmpeg 研究工程\avcodeclib\swscale.dll');rn FFCall_AddLibrary('D:\Delphi\ffmpeg 研究工程\avcodeclib\avcodec.dll');rn FFCall_AddLibrary('D:\Delphi\ffmpeg 研究工程\avcodeclib\avfilter.dll');rn FFCall_AddLibrary('D:\Delphi\ffmpeg 研究工程\avcodeclib\avformat.dll');rn FFCall_AddLibrary('D:\Delphi\ffmpeg 研究工程\avcodeclib\avdevice.dll');rn FFCall_Init;rnend;rnrnprocedure TForm1.Button1Click(Sender: TObject);rnconstrn filename = 'E:\Sample.avi'; // 得到 H.264 也可以 保存为图片rnvarrn pFormatCtx: PAVFormatContext;rn pCodecCtx: PAVCodecContext;rn pCodec: PAVCodec;rn pFrame: PAVFrame;rn pScaleCtx: PSwsContext;rn numBytes: integer;rn buffer: PByte;rn frameFinished : int ;rn pict: TAVPicture;rn i, videoStream: integer;rn ptk : TAVPacket;rn CRect : TRect;rn // <em>sdl</em>rn screen : PSDL_Surface;rn bmp:PSDL_Overlay;rnbeginrn av_register_all();rn // Open video filern if av_open_input_file ( pFormatCtx, filename, nil, 0, nil ) <> 0 thenrn raise exception.Create ( 'WTF?! Couldn''t open file!!!' );rn // Retrieve stream informationrn if av_find_stream_info ( pFormatCtx ) < 0 thenrn raise exception.Create ( 'WTF?! Couldn''t find stream information!!!' );rn dump_format ( pFormatCtx, 0, filename, 0 ); // <<<<<< i dont know how its worksrn // Get a pointer to the codec context for the video streamrn videoStream := -1;rn for i := 0 to pFormatCtx.nb_streams - 1 dorn beginrn if pFormatCtx.streams [i].codec.codec_type = CODEC_TYPE_VIDEO thenrn beginrn videoStream := i;rn break;rn end;rn end;rnrn if videoStream = -1 thenrn raise exception.Create ( 'WTF?! Didn''t find a video stream!' );rnrn pCodecCtx := pFormatCtx.streams [videoStream].codec;rn // Open codecrn pCodec := avcodec_find_decoder ( pCodecCtx.codec_id );rn rn if pCodec = nil thenrn raise exception.Create ( 'WTF?! Codec not found!' );rn if avcodec_open(pCodecCtx,pCodec) < 0 thenrn raise exception.Create ( 'WTF?! Could not open codec!');rn // Allocate video framern pFrame:=avcodec_alloc_frame();rn // Determine required buffer size and allocate bufferrn numBytes := avpicture_get_size(PIX_FMT_RGB24, pCodecCtx.width,pCodecCtx.height);rn$ifndef __DARWIN__rn screen := SDL_SetVideoMode(pCodecCtx.width, pCodecCtx.height, 0, 0);rn$elsern screen := SDL_SetVideoMode(pCodecCtx.width, pCodecCtx.height, 24, 0);rn$endifrn if not assigned(screen) then showmessage(Format('SDL: could not set video mode : %s',[SDL_GetError]));rn bmp := SDL_CreateYUVOverlay(pCodecCtx.width, pCodecCtx.height,rn SDL_YV12_OVERLAY, screen);rn // pFrameRGB := avcodec_alloc_frame;rn // avpicture_alloc ( PAVPicture (pFrameRGB), PIX_FMT_RGB32, pCodecCtx.width, pCodecCtx.height );rn pScaleCtx := sws_getContext ( pCodecCtx.width, pCodecCtx.height, pCodecCtx.pix_fmt,rn pCodecCtx.width, pCodecCtx.height, PIX_FMT_RGB32, SWS_BICUBIC, nil, nil, nil );rn i := 0;rn while(av_read_frame(pFormatCtx, @ptk)>=0) do beginrn i := i + 1;rn if(ptk.stream_index = videoStream) then beginrn // Decode video framern avcodec_decode_video(pCodecCtx, pFrame, @frameFinished,ptk.data, ptk.size);rn // Did we get a video frame?rn if frameFinished <> 0 then beginrn rn //*************************************************************rn// 问题来了rn// SDL_GetOverlayPix 我用 C++ 写的动态链接库rn rn pict->data[0] = bmp->pixels[0];rn pict->data[1] = bmp->pixels[2];rn pict->data[2] = bmp->pixels[1];rn pict->linesize[0] = bmp->pitches[0];rn pict->linesize[1] = bmp->pitches[2];rn pict->linesize[2] = bmp->pitches[1];rn return 1;rn 问题就是 这样 黑屏 无法播放!rn 如果用 delphi 实现 rn delphi SDLrn TSDL_Overlay = recordrn format: UInt32; // Overlay formatrn w, h: Integer; // Width and height of overlayrn planes: Integer; // Number of planes in the overlay. Usually either 1 or 3rn pitches: PUInt16;rn // An array of pitches, one for each plane. Pitch is the length of a row in bytes.rn pixels: PPUInt8; // 可以看出来 是 数组指针 不是数值rn // An array of pointers to the data of each plane. The overlay should be locked before these pointers are used.rn hw_overlay: UInt32;rn // This will be set to 1 if the overlay is hardware accelerated.rn end;rnrn 如何还原为数组呢???rnrn //*************************************************************rnrnrn SDL_LockYUVOverlay(bmp);rn showmessage(inttostr(integer(SDL_GetOverlayPix(bmp,0))));rn showmessage(inttostr(integer(SDL_GetOverlayPix(bmp,1))));rn showmessage(inttostr(integer(SDL_GetOverlayPix(bmp,2))));rn OutputDebugString(PChar(inttostr(SDL_GetOverlayPit(bmp,1))));rn // pict := getpict(bmp)^;rn pict.data[0] := SDL_GetOverlayPix(bmp,0);rn pict.data[1] := SDL_GetOverlayPix(bmp,2);rn pict.data[2] := SDL_GetOverlayPix(bmp,1);rn pict.linesize[0] := SDL_GetOverlayPit(bmp,0);rn pict.linesize[1] := SDL_GetOverlayPit(bmp,2);rn pict.linesize[2] := SDL_GetOverlayPit(bmp,1);rn OutputDebugString(PChar(inttostr(pict.linesize[2])));rn OutputDebugString(PChar(inttostr(integer(SDL_GetOverlayPix(bmp,1)))));rn OutputDebugString(PChar(inttostr(integer(pict.data[2]))));rn img_convert(@pict, PIX_FMT_YUV420P,rn PAVPicture(pFrame), pCodecCtx.pix_fmt, pCodecCtx.width, pCodecCtx.height);rnrn sws_scale(pScaleCtx, @pFrame.data, @pFrame.linesize,rn 0, pCodecCtx.height, @pict.data, @pict.linesize);rn SDL_UnlockYUVOverlay(bmp);rn Crect.Left := 0;rn Crect.top := 0;rn Crect.Right := pCodecCtx.width;rn Crect.Bottom := pCodecCtx.height;rn SDL_DisplayYUVOverlay(bmp, @CRect);rn Sleep(4);rn if i > 1000 then break;rn end;rn end;rn end;rn rn // Convert the image from its native format to RGBrn /*sws_scale(img_convert_ctx, pFrame->data, pFrame->linesize,rn 0, pCodecCtx->height, pFrameRGB->data, pFrameRGB->linesize);*/rn // Save the frame to diskrn /*if(++iwidth, pCodecCtx->height, i);*/rn SDL_LockYUVOverlay(bmp);rn AVPicture pict;rnrnrn // Convert the image into YUV format that SDL usesrn /*img_convert(&pict, PIX_FMT_YUV420P,rn (AVPicture *)pFrame, pCodecCtx->pix_fmt,rn pCodecCtx->width, pCodecCtx->height);*/rn sws_scale(img_convert_ctx, pFrame->data, pFrame->linesize,rn 0, pCodecCtx->height, pict.data, pict.linesize);rn SDL_UnlockYUVOverlay(bmp);rn rect.x = 0;rn rect.y = 0;rn rect.w = pCodecCtx->width;rn rect.h = pCodecCtx->height;rn SDL_DisplayYUVOverlay(bmp, &rect);rn //Sleep(60);rnrn rnend;rnrnend.rn[/code]
SDL开发文档
SDL的使用手册和编程手册,学习SDL的一份很好的资料,讲的很详细,SDL 入门教程
sdl resource
Sdl.MultiTerm.Client.UI.WPF.resources.dll
SDL系列教程
SDL 1.2的系列教程,共15章,教程后附有每个章节的原发布地址。通过本教程,可以系统地了解SDL 1.2的架构和应用,对想采用SDL进行游戏开发的有很大帮助。
SDL基础教程
SDL入门教程,发上来看有人要的话拿去。
SDL2.0的VS开发环境搭建
SDL2.0的VS开发环境搭建 【前言】 我是用的是VS2012,VS的版本应该大致一样。 【开发环境搭建】 &gt;&gt;&gt;SDL2.0开发环境配置:1、从www.lib<em>sdl</em>.org 下载SDL2.0开发工具,主要是include头文件目录及编译好的lib和dll文件,并解压;2、打开VS2012,新建空白工程;3、添加头文件路径。在工程上点击右键--&gt;属性-...
SDL 文本框
想用SDL做个文本框,大家能否给点代码。谢谢rn
SDL中文手册
SDL中文手册SDL-1.0-chinese-intro.rar
FFMPEG +SDL
打开音频:int audio_stream_component_open(VideoState *is, int stream_index)rnrn AVFormatContext *ic = is->ic;rn AVCodecContext *codecCtx;rn AVCodec *codec;rn SDL_AudioSpec wanted_spec, spec;rn int64_t wanted_channel_layout = 0;rn int wanted_nb_channels;rn const int next_nb_channels[] = 0, 0, 1, 6, 2, 6, 4, 6 ;rn if (stream_index < 0 || stream_index >= ic->nb_streams) rn return -1;rn rn codecCtx = ic->streams[stream_index]->codec;rn wanted_nb_channels = codecCtx->channels;rn if (!wanted_channel_layoutrn || wanted_nb_channelsrn != av_get_channel_layout_nb_channels(rn wanted_channel_layout)) rn wanted_channel_layout = av_get_default_channel_layout(rn wanted_nb_channels);rn wanted_channel_layout &= ~AV_CH_LAYOUT_STEREO_DOWNMIX;rn rn wanted_spec.channels = av_get_channel_layout_nb_channels(rn wanted_channel_layout);rn wanted_spec.freq = codecCtx->sample_rate;rn if (wanted_spec.freq < 0)rn rn return 0;rn rn if (spec.format != AUDIO_S16SYS) rn return -1;rn rn if (spec.channels != wanted_spec.channels) rn wanted_channel_layout = av_get_default_channel_layout(spec.channels);rn if (!wanted_channel_layout) rn return -1;rn rn rn is->audio_hw_buf_size = spec.size;rn is->audio_src_fmt = is->audio_tgt_fmt = AV_SAMPLE_FMT_S16;rn is->audio_src_freq = is->audio_tgt_freq = spec.freq;rn is->audio_src_channel_layout = is->audio_tgt_channel_layout =rn wanted_channel_layout;rn is->audio_src_channels = is->audio_tgt_channels = spec.channels;rn codec = avcodec_find_decoder(codecCtx->codec_id);rn if (!codec || (avcodec_open2(codecCtx, codec, NULL) < 0)) rn fprintf(stderr,"Unsupported codec!\n");rn return -1;rn rn ic->streams[stream_index]->discard = AVDISCARD_DEFAULT;rn switch (codecCtx->codec_type) rn case AVMEDIA_TYPE_AUDIO:rn is->audio_st = ic->streams[stream_index];rn is->audio_buf_size = 0;rn is->audio_buf_index = 0;rn memset(&is->audio_pkt, 0, sizeof(is->audio_pkt));rn packet_queue_init(&is->audioq);rn SDL_PauseAudio(0); rn break;rn default:rn break;rn rn return 0;rnrn回调函数:static void audio_callback(void *userdata, Uint8 *stream, int len) rn VideoState *is = (VideoState *) userdata;rn int len1, audio_data_size;rn double pts;rn SDL_memset(stream, 0, len);rn while (len > 0) rn if (is->audio_buf_index >= is->audio_buf_size) rn audio_data_size = audio_decode_frame(is, &pts);rn if (audio_data_size < 0) rn is->audio_buf_size = 1024;rn if (is->audio_buf == NULL) return;rn memset(is->audio_buf, 0, is->audio_buf_size);rn else rn is->audio_buf_size = audio_data_size;rn rn is->audio_buf_index = 0;rn rn len1 = is->audio_buf_size - is->audio_buf_index;rn if (len1 > len) rn len1 = len;rn rn if (is->audio_buf == NULL) return;rn memcpy(stream, (uint8_t *) is->audio_buf + is->audio_buf_index, len1);rn len -= len1;rn stream += len1;rn is->audio_buf_index += len1;rn rnrn解码:static int audio_decode_frame(VideoState *is, double *pts_ptr)rnrn int len1, len2, decoded_data_size;rn AVPacket *pkt = &is->audio_pkt;rn int64_t dec_channel_layout;rn int wanted_nb_samples, resampled_data_size, n;rn double pts;rn for (;;) rn while (is->audio_pkt_size > 0) rn if (!is->audio_frame) rn if (!(is->audio_frame = av_frame_alloc())) rn return AVERROR(ENOMEM);rn rn rn int got_frame = 0;rn len1 = avcodec_decode_audio4(is->audio_st->codec, is->audio_frame,rn &got_frame, pkt);rn is->audio_pkt_data += len1;rn is->audio_pkt_size -= len1;rn decoded_data_size = av_samples_get_buffer_size(NULL,rn is->audio_frame->channels, is->audio_frame->nb_samples,rn (AVSampleFormat)is->audio_frame->format, 1);rn dec_channel_layout =rn (is->audio_frame->channel_layoutrn && is->audio_frame->channelsrn == av_get_channel_layout_nb_channels(rn is->audio_frame->channel_layout)) ?rn is->audio_frame->channel_layout :rn av_get_default_channel_layout(rn is->audio_frame->channels);rn wanted_nb_samples = is->audio_frame->nb_samples;rn if (is->audio_frame->format != is->audio_src_fmtrn || dec_channel_layout != is->audio_src_channel_layoutrn || is->audio_frame->sample_rate != is->audio_src_freqrn || (wanted_nb_samples != is->audio_frame->nb_samplesrn && !is->swr_ctx)) rn if (is->swr_ctx)rn swr_free(&is->swr_ctx);rn is->swr_ctx = swr_alloc_set_opts(NULL,rn is->audio_tgt_channel_layout, (AVSampleFormat)is->audio_tgt_fmt,rn is->audio_tgt_freq, dec_channel_layout,rn (AVSampleFormat)is->audio_frame->format, is->audio_frame->sample_rate,rn 0, NULL);rn if (!is->swr_ctx || swr_init(is->swr_ctx) < 0) rn break;rn rn is->audio_src_channel_layout = dec_channel_layout;rn is->audio_src_channels = is->audio_st->codec->channels;rn is->audio_src_freq = is->audio_st->codec->sample_rate;rn is->audio_src_fmt = is->audio_st->codec->sample_fmt;rn rn if (is->swr_ctx) rn const uint8_t **in =rn (const uint8_t **) is->audio_frame->extended_data;rn uint8_t *out[] = is->audio_buf2 ;rn if (wanted_nb_samples != is->audio_frame->nb_samples) rn if (swr_set_compensation(is->swr_ctx,rn (wanted_nb_samples - is->audio_frame->nb_samples)rn * is->audio_tgt_freqrn / is->audio_frame->sample_rate,rn wanted_nb_samples * is->audio_tgt_freqrn / is->audio_frame->sample_rate) < 0) rn break;rn rn rn len2 = swr_convert(is->swr_ctx, out,rn sizeof(is->audio_buf2) / is->audio_tgt_channelsrn / av_get_bytes_per_sample(is->audio_tgt_fmt),rn in, is->audio_frame->nb_samples);rn if (len2 < 0) rn break;rn rn if (len2rn == sizeof(is->audio_buf2) / is->audio_tgt_channelsrn / av_get_bytes_per_sample(is->audio_tgt_fmt)) rn swr_init(is->swr_ctx);rn rn is->audio_buf = is->audio_buf2;rn resampled_data_size = len2 * is->audio_tgt_channelsrn * av_get_bytes_per_sample(is->audio_tgt_fmt);rn else rn resampled_data_size = decoded_data_size;rn memcpy(is->audio_buf, is->audio_frame->data[0], decoded_data_size);rn rn pts = is->audio_clock;rn *pts_ptr = pts;rn n = 2 * is->audio_st->codec->channels;rn is->audio_clock += (double) resampled_data_sizern / (double) (n * is->audio_st->codec->sample_rate);rn if (is->seek_flag_audio)rn rn if (is->audio_clock < is->seek_time)rn rn break;rn rn elsern rn is->seek_flag_audio = 0;rn rn rn return resampled_data_size;rn rn if (pkt->data)rn rn av_free_packet(pkt);rn rn if (is->quit)rn return -1;rn if (packet_queue_get(&is->audioq, pkt, true) data,FLUSH_DATA) == 0)rn rn avcodec_flush_buffers(is->audio_st->codec);rn av_free_packet(pkt);rn continue;rn rn is->audio_pkt_data = pkt->data;rn is->audio_pkt_size = pkt->size;rn if (pkt->pts != AV_NOPTS_VALUE) rn is->audio_clock = av_q2d(is->audio_st->time_base) * pkt->pts;rn rn rn return 0;rnrn获得数据:static int packet_queue_get(PacketQueue *q, AVPacket *pkt, int block) rn AVPacketList *pkt1;rn int ret;rn SDL_LockMutex(q->mutex);rn for (;;) rn pkt1 = q->first_pkt;rn if (pkt1) rn q->first_pkt = pkt1->next;rn if (!q->first_pkt)rn q->last_pkt = NULL;rn q->nb_packets--;rn q->size -= pkt1->pkt.size;rn *pkt = pkt1->pkt;rn av_free(pkt1);rn ret = 1;rn break;rn else if (!block) rn ret = 0;rn break;rn else rn SDL_CondWaitTimeout(q->cond, q->mutex,1);rn rn rn SDL_UnlockMutex(q->mutex);rn return ret;rnrn最后是关闭:stop(bool isWait)rnrn SDL_CloseAudio();rn return true;rnrn问题:播放本地视频没问题。播放网络流的话,最后播放完了要关闭音频,但是执行到SDL_CloseAudio函数,就卡死了。大神们帮忙看看怎么回事。rn
SDL Architecture
SDL Tridion is based on a decoupled architecture: the Content Management environment and the Content Delivery environment are architecturally and usually physically separated from each other.
SDL封装(SDL:二维图形类库)
SDL 封装 代码 SDL是一个二维图形类库,它跨平台,在LINUX和WINDOWS都能使用
SDL文字显示问题!!!求助SDL高手
SDL写的一个显示文字的函数,但是有的时候在同一个程序中用它有的地方不出错,有的地方老是出错,出错后就有时提示rn就有个绿色的小箭头指到这个函数里(每次指的都是同一句),把他注释了就没错!!!rn这个函数我在好几个项目里使用了,但是经常出错,我找不出来,希望大虾帮忙看看,这个写的是不是有Bugrnrnvoid TextShow(char * input, const int x, const int y, const int size, SDL_Color textColor, char *fontTTF)rnrn TTF_Font * Font = NULL;rn SDL_Surface * text = NULL; rnrn Font = TTF_OpenFont(fontTTF, size);rn if(NULL == Font)rn rn printf("未打开字体!\n");rn return;rn rn text= TTF_RenderUTF8_Blended(Font,input,textColor);//每次bug都指向这句,说“这是当该线程从当前函数返回时要执行的下一条语句”;rn if(NULL == text)rn rn printf("文字初始化失败!\n");rn return;rn rn //检验是否成功rn if(NULL != text)rn applySurface(x,y,text,screen);rnrn SDL_FreeSurface(text);rn text = NULL;rn TTF_CloseFont(Font);rn Font = NULL;rn
SDL自学教程-SDL的安装与测试
1、在SDL官网下载SDL2-devel-2.0.4-VC.zip和SDL2-2.0.4.zip。分别解压。 2、打开Visual Studio 2010,新建一个Win32控制台应用程序的空项目。 名字为SDLDemo 3、新建项目完成后,在源文件上右击,添加现有项。 4、选择SDL2-2.0.4 -> test文件夹中的testsprite2.c,点击添加。 5、点击解决方案资源管理
SDL游戏开发教程04(C++封装SDL)
NULL 博文链接:https://public0821.iteye.com/blog/292056
SDL 官方中文资料 介绍SDL用法
SDL官方中文资料,介绍SDL基本用法,并附有一些实例。
音视频处理-SDL库-SDL的安装-宿主机
SDL:开源跨平台多媒体开发库题记:SDL的使用我认为类似于Qt,都是界面库。但是SDl是多媒体开发库,直接和多媒体资源挂钩,相比Qt针对性更强。并且SDL是采用C语言开发的,于我来说更加熟奚。 Linux下SDL库的安装 最新版SDL库下载 然而我在官网下载SDL2.05版本时总是出错,下载到的SDL源码文件不完整。只好退求其次在csdn上下载了SDL2.02版本的源码,在我的CSDN资源
sdl图片浏览器
对于图片展示有简单的操作 内含具体的详细解析 步骤
SDL tutorials
SDL 图形库经典教材,详细,step by step.
SDL的相关资料
这是关于c/c++的图形库,可以使用它来进行游戏的开发,当然还需要下载其他的声音库和图像库
SDL for c4droid
c4droid插件。Remix mini运行成功 配合 c4droid。gcc for c4droid 使用
C4driod SDL
C4driod的SDL插件,这里只提供这个插件
SDL帮助文档
SDL中API函数简介,包含帮助手册
SDL技术
SDL技术相关,SDL开发包及其应用方法
SDL俄罗斯方块
SDL俄罗斯方块,自己做的,6410开发板完美运行,内含SDLTetris-mouse文件夹和SDLTetris-ts文件夹,SDLTetris-mouse是鼠标控制的,SDLTetris-ts是触摸控制的,另附实验报告册,包括需求分析、系统设计等。
sdl的问题
我把<em>sdl</em>装好后,rn#include rn#include rnrnint main(int argc, char **argv)rnrn return 0;rnrnrn编译报错说有无法解析的外部符号 _main, 请问是怎么回事?怎么解决?rn我用的是vc 2005,貌似没装SP1
SDL SMPEG.lib
请问SDL 的SMPEG库是否 包含它的.lib文件 我在网上找到的都是只有.cpp之类的库文件 没有找到.lib文件 导致现在无法运用。。。。。rn因为我现在是在windows下开发,所以下的很多资料都是liunx下的,压缩包我也打不开。。。rn请问是否存在这样的.lib库? windows下能使用吗?rn并且我下的这个包 makefile 也不能运行 rn跪求.lib文件下载的链接 或者 那位大哥能够传给我 谢谢QQ:35327171rnmail:mangshe0@163.comrnrn急需smpeg.librnrnrn分不够 我还可以加 我把我全家的分给你都成!!!只求smpeg的库rnrn这个问题我也不清楚应该发到那个区合适,有朋友认识的帮我问下吧 谢谢了 5555555555555555 我都找了3天了。。。。
SDL功能
视频   ·设置8bpp或更高的任意色彩深度的视频模式。如果某个模式硬件不支持,可以选择转化为另一模式。   ·直接写入线性的图像帧缓冲(framebuffer)。   ·用颜色键值(colorkey)或者alpha混合属性创建用于绘图的表面(surface)。   ·Surface的blit能自动的转化为目标格式。blit是优化过的,并能使用硬件加速。x86平台上有针对MMX优化过的blit。
SDL 编程指南
<em>sdl</em>编程指南,各种元素显示指南。简单易学。。。。。。
SDL Component
Components for DSP/Math Applications.
SDL多点触控
SDL多点触控,从一位大神拿过来的代码,有兴趣的童鞋可以看看。
SDL问题
本人在本机上有个SDL的测试程序,运行没问题。但是在其他人的机器上,除一台外,其他运行时就会出现Fatal signal: Segmentation Fault (SDL Parachute Deployed)这种错误,不知到为什么。大家都是完全安装,<em>sdl</em>库的版本是linux8.0 的默认版本,kde环境。谁能知道啊?能给个意见就行。我在程序中就只用到了,初始化timer和delay和quit函数。
关于SDL
我用的是DEV-CPP,请问如何设置SDL,和如何设置SGE
sdl 开发教程
本文为SDL图形库的教程
SDL introduction
SDL,即Specification and Design Language.是用于描述协议和协议开发的语言,融合了UML。此文章详细介绍了SDL的背景和开发工具
SDL for S60
SDL图形库的S60移植,做Symbian多媒体和游戏的朋友很需要,这是官网下载的最新版。
SDL图片浏览器
使用SDL实现图片浏览器,可以移植到开发板和windows,但需要重新编译。包里面有相应的图片
SDL环境配置
SDL的视频显示流程SDL的环境配置与上一篇ffmpeg的配置方式步骤相同ffmpeg环境配置方法SDL函数介绍SDL_Init() ; 初始化SDLSDL_CreateWindow() 创建窗口SDL_WindowSDL_CreateRender() 创建渲染器 SDL_RendererSDL_CreateTexture() 创建纹理 SDL_TextureSDL_UpdateTexture(
SDL开发资源
SDL开发资源,SDL203版,源码,英文版API手册,lib库及头文件
SDL源代码下载
当前操作系统自带的播放器功能太少,支持文件格式,如果想自行开发播放器,则ffmpeg+<em>sdl</em>是一个不错的选择
SDL 小游戏
小弟现在在学用SDL做小游戏,但是网上找了点例子后自己调试了下都编译不通过,好多链接错误,有哪位大侠能给我个SDL小游戏的例子啊,不要太复杂的,谢谢啊,拜求拜求!!!
focus on sdl
focus on <em>sdl</em>, <em>sdl</em>是一种跨平台的多媒体开发库,简单易用
安装SDL
2.安装SDL: 因为ubuntu里面有SDL,所以直接在命令窗口输入以下就可以了: sudo apt-get install lib<em>sdl</em>1.2-dev lib<em>sdl</em>-image1.2-dev lib<em>sdl</em>-ttf2.0-dev lib<em>sdl</em>-mixer1.2-dev lib<em>sdl</em>-net1.2-dev lib<em>sdl</em>-sound1.2-dev 检测SDL装上了没有:<em>sdl</em>-co
和SDL有关
我在LINUX做的程序移植到ARM 9315上,运用的是SDL库,原来的程序背景图片是 5张 300KB一张的 32位 BMP图首尾相连接来实现背景移动,游戏速度尚可,因为做的是比赛游戏,为了增加背景真实感,另加了 5张300KB一张的 32位 BMP图 实现2层背景,游戏速度急剧下降,不能忍受。
SDL入门教程
C语言下的图形资源库! SDL入门教程
SDL中文文档
SDL是一个跨平台的多媒体库,它通过OpenGL和2D视频帧缓冲,提供了针对音频、视频、键盘、鼠标、控制杆及3D硬件的低级别的访问接口
sdl游戏开发
SDL Game Development.pdf 是指定学习SDL开发游戏入门的教程
SDL & OPENGL
SDL与OPENGL 经典教程 学习SDL必备教程
SDL的安装包
SDL的安装包及安装过程讲解,搭配FFmpeg可以在Linux下编写视音频播放器,已经在Centos6.5上安装成功。
最新版Android eclipse ADT-23.0.6_(1)下载
上传文件限制,压缩成两个文件,文件ADT-23.0.6.part2.rar 下载地址http://download.csdn.net/detail/u010811143/8649647 相关下载链接:[url=//download.csdn.net/download/u010811143/8871483?utm_source=bbsseo]//download.csdn.net/download/u010811143/8871483?utm_source=bbsseo[/url]
dom4j_1.7.jar下载
dom4j-1.7.jar 用于对xml文档的解析 相关下载链接:[url=//download.csdn.net/download/niuben2008/2475645?utm_source=bbsseo]//download.csdn.net/download/niuben2008/2475645?utm_source=bbsseo[/url]
vc socket服务器,客户端下载
自己做的一个socket 多线程服务器,客户端小程序.用来验证一些socket开发方法. 服务器端采用指针数组记录客户端.为每个客户端单开启一个接收发送线程. 功能:服务器转发一个客户端的文本信息到另一个客户端 客户端只是发送接收文件信息. 功能:发送接收文本信息 程序功能不复杂,入门者有一定参考价值. 欢迎下载 相关下载链接:[url=//download.csdn.net/download/cl6123456/2684063?utm_source=bbsseo]//download.csdn.net/download/cl6123456/2684063?utm_source=bbsseo[/url]
我们是很有底线的