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,控制命令还需依附于鼠标事件才能实现

相关推荐
Watermelo6173 分钟前
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
开发语言·前端·javascript·算法·数据挖掘·数据分析·ecmascript
半盏茶香1 小时前
在21世纪的我用C语言探寻世界本质 ——编译和链接(编译环境和运行环境)
c语言·开发语言·c++·算法
Evand J2 小时前
LOS/NLOS环境建模与三维TOA定位,MATLAB仿真程序,可自定义锚点数量和轨迹点长度
开发语言·matlab
LucianaiB2 小时前
探索CSDN博客数据:使用Python爬虫技术
开发语言·爬虫·python
Ronin3052 小时前
11.vector的介绍及模拟实现
开发语言·c++
计算机学长大白3 小时前
C中设计不允许继承的类的实现方法是什么?
c语言·开发语言
PieroPc4 小时前
Python 写的 智慧记 进销存 辅助 程序 导入导出 excel 可打印
开发语言·python·excel
2401_857439697 小时前
SSM 架构下 Vue 电脑测评系统:为电脑性能评估赋能
开发语言·php
SoraLuna7 小时前
「Mac畅玩鸿蒙与硬件47」UI互动应用篇24 - 虚拟音乐控制台
开发语言·macos·ui·华为·harmonyos
xlsw_7 小时前
java全栈day20--Web后端实战(Mybatis基础2)
java·开发语言·mybatis