ffplay——QT项目移植

一、ffmpeg源码编译

参考:

https://blog.csdn.net/sgzed/article/details/119850119

在生成时做了一些修改:

./configure --toolchain=msvc --enable-shared --enable-postproc --enable-gpl --prefix=windows

二、对文件做调整

ffplay只需要三个文件,cmduti.c、cmduti.h、ffplay.c

调整ffplay.c文件,创建新的头文件用来声明ffplay.c中的所有函数,修改.c为.cpp

三、编译、修改编译错误

修改方法:这个ShowMode 来源是在VideoState的结构体中

修改时只需添加上VideoState确定变量的应用位置。

在整个文件中有很多处这样的问题

还有一些暂时处理不了的错误,暂时屏蔽掉

四、SDL窗口嵌入到qt控件显示

// window = SDL_CreateWindow(program_name, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, default_width, default_height, flags);

window = SDL_CreateWindowFrom (handle);

将SDL_CreateWindow用SDL_CreateWindowFrom替换,handle是插件的WID;

都在main函数中,这个函数是需要的修改的

五、SDL的按键事件不再生效

需要做一些调整来响应桌面的基本控制命令,实现快退、快进、暂停等功能

六、界面展示

七、存在的问题

只是简单的实现了基本控制,但是存在一些小bug,控制命令还需依附于鼠标事件才能实现

相关推荐
前端不太难几秒前
RN 项目安全如何强化?(逆向、API安全、JS泄露)
开发语言·javascript·安全
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ2 分钟前
throw new Exception 如何指定返回code
java·开发语言
fegggye10 分钟前
创建一个rust写的python库
开发语言·后端·rust
全靠bug跑13 分钟前
Spring Cloud Gateway 实战:统一鉴权与用户信息全链路透传
java·开发语言·gateway·拦截器
往今~1 小时前
Matlab: 绘制GDS图纸
开发语言·matlab
喵了meme9 小时前
C语言实战4
c语言·开发语言
码界奇点9 小时前
Python从0到100一站式学习路线图与实战指南
开发语言·python·学习·青少年编程·贴图
9ilk9 小时前
【C++】--- 特殊类设计
开发语言·c++·后端
sali-tec10 小时前
C# 基于halcon的视觉工作流-章68 深度学习-对象检测
开发语言·算法·计算机视觉·重构·c#
生骨大头菜11 小时前
使用python实现相似图片搜索功能,并接入springcloud
开发语言·python·spring cloud·微服务