- 博客(34)
- 资源 (2)
- 收藏
- 关注
原创 FFMPEG学习(四)ffmpeg+SDL2.0制作简单的视频播放器(图像+声音,视屏播放同步音频播放时间)
在上一篇文章中FFMPEG学习(三)ffmpeg+SDL2.0制作简单的视频播放器(图像+声音),我们的代码里播放了MP4文件的音频跟视屏,但是会有音频晚于视屏的问题。这里我们进进行修改,使得视屏的播放基于音频播放时间进行同步这次的代码我们主要解决了如下问题1、播放完成无法自动结束的问题2、音频与视屏播放无法同步时间问题代码逻辑大致如下(暂时未考虑存在B帧的情况,认为视屏的dts与pts相同的前提下)与之前文章的差异点1、主线程是等待video播放线程结束再退出的,解决了..
2020-07-08 23:01:53
1939
9
原创 FFMPEG学习(三)ffmpeg+SDL2.0制作简单的视频播放器(图像+声音)
FFMPEG 学习(二) ffmpe+SDL2.0制作简单的播放器(基本流程梳理)写的播放程序,仅仅支持图像的播放。这次我们把声音加上参考文章:http://blog.yundiantech.com/?log=blog&id=10
2020-06-01 22:11:08
1030
原创 Ubuntu 14.04循环登录问题解决
翻看了一下前辈们遇到这个问题的解决方案,大部分是说要删除用户目录下的.Xaut*文件方案一:1、进入tty:ctrl+alt+F1(F1-F6都行)2、进入家目录:cd ~3、删除文件:、usr/bin/rm -rf .Xaut* (tty模式下命令要加完整的路径)方案二:(我遇到两次都是因为这个原因导致的)1、进入tty:ctrl+alt+F1(F1-F6都行)2、进入目录:/usr/bin/vim /etc/profile3、把关机之前修改了的环境变量改回来...
2020-05-15 10:48:46
378
原创 FFMPEG 学习(二) ffmpe+SDL2.0制作简单的播放器(基本流程梳理)
#include <stdio.h>#include <stdlib.h>//#include <libavcodec/avcodec.h>//#include <libavformat/avformat.h>//#include <libswscale/swscale.h>#ifdef __cplusplusextern"C"{#endif#include <libavcodec/avcodec.h>#incl.
2020-05-15 10:01:31
795
原创 FFMPEG 学习(一) ffmpe+SDL2.0环境安装(爬坑记录)
一、安装ffmpeg如果需要安装的ffplay的话,由于ffplay依赖SDL,所以需要先安装SDL库
2020-05-14 13:57:48
1205
原创 MQTT学习【二】通信协议浅析
测试环境可以看之前的文章:MQTT学习【一】安装.有位大神写了单片机上TCP与MQTT之间的转换。对于我理解协议有很大帮助:https://www.cnblogs.com/yangfengwu/p/9124299.htmMQTT协议的值以及流向一、MQTT连接协议。wireshark抓取到的包如下:在完成了TCP的三次握手之后,发起了连接请求。我们打开connect...
2020-03-31 16:10:38
275
原创 MQTT学习【一】安装(mqttfx+Apache artemis)
1、下载地址1.7.1版本:http://www.jensd.de/apps/mqttfx/1.7.1/
2020-03-28 18:51:41
1057
原创 Redis学习【九】hiRedis
一、何为hiRedisredis的C语言操作库hiredis。放在redis安装包的/deps/hiredis路径下。是C语言连接redis的接口。安装完redis之后,将此路径下的hiredis.h文件拷贝到/user/include下。libhiredis.so拷贝到/usr/local/lib。二、/* *************************************...
2020-03-27 20:35:26
525
原创 Redis学习【八】 问题汇总
一、Redis数据过期策略和内存回收策略针对已经过期的数据Redis采用定期删除和延迟删除结合的策略,但是两者都有缺陷;由于定期检查所有的key是否过期会带来性能问题,因此定期删除策略使用的是随机抽查,另外在操作Key前会判断是否已经过期,如过期则立即删除;这样的策略会导致一些已经过期的key还堆积在内存里,使得redis server内存占用率居高不下,因此需要结合redis.conf中的ma...
2020-03-24 16:52:08
117
原创 Redis学习【七】数据持久化
Redis数据持久化两种方式。RDB与AOF。1、RDBRDB是通过快照方式进程持久化的。满足特定的调价拿下,会将内存中的数据快照到硬盘上。RDB进行快照的条件如下1.1、redis.conf文件配置(windows文件的是redis.windows-service.conf)################################ SNAPSHOTTING #####...
2020-03-22 21:17:56
121
转载 Redis学习【六】数据类型总结
转载文章转载出处:https://www.cnblogs.com/xiaoxi/p/6972104.html目录字符串类型(String) 散列类型(Hash) 列表类型(List) 集合类型(Set) 有序集合类型(SortedSet) 其它命令一、字符串类型(String)1.介绍: 字符串类型是 Redis 中最基本的数据类型,可以存储二进制数据、图片...
2020-03-21 21:09:46
84
原创 Redis学习(五)sorted-set有序集合
一、概述Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232- 1 (4294967295...
2020-03-20 21:00:31
157
原创 Redis学习(四)set集合
一、概述Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。集合中最大的成员数为 232- 1 (4294967295, 每个集合可存储40多亿个成员)。二、常用命令 示例:sadd key val1...valn 用法:将一个或多个成...
2020-03-19 22:01:42
127
原创 Redis学习(三)list
一、概述在Redis中,List类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素。在插入时,如果该键并不存在,Redis将为该键创建一个新的链表。与此相反,如果链表中所有的元素均被移除,那么该键也将会被从数据库中删除。List中可以包含的最大元素数量是4294967295。 从元素插入和删除的效率视角来看,...
2020-03-18 22:42:59
242
原创 Redis学习(二)哈希
一、概述我们可以将Redis中的Hash类型看成具有String Key和String Value的map容器。所以该类型非常适合于存储值对象的信息。如Username、Password和Age等。如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。每一个Hash可以存储4294967295个键值对。二、相关命令1、赋值 示例:hset hash fiel...
2020-03-17 13:55:55
129
原创 Redis学习(一)string类型
一、类型概述字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。二、相关命令使用1、...
2020-03-16 21:29:23
98
1
转载 adb 5037端口报错
问题:win7 64位系统使用adb命令连接模拟器,在5037端口未被占用情况下,报以下错误:* daemon not running. starting it now on port 5037 *CreateProcess failure, error 2* failed to start daemon *error: cannot connect to d...
2019-04-14 11:09:02
949
2
转载 LINUX 下C实现线程池《转载》
原文转载自:https://blog.csdn.net/hubi0952/article/details/80450941.线程池基本原理 在传统服务器结构中, 常是 有一个总的 监听线程监听有没有新的用户连接服务器, 每当有一个新的 用户进入, 服务器就开启一个新的线程用户处理这 个用户的数据包。这个线程只服务于这个用户 , 当 用户与服务器端关闭连接以后, 服务器端销毁这个线程。然而...
2019-04-01 10:13:45
143
转载 Linux sock客户端离线的检测
---------------------作者:GodQ来源:CSDN原文:https://blog.csdn.net/god2469/article/details/8801356版权声明:本文为博主原创文章,转载请附上博文链接!下面来罗列一下判断远端已经断开的方法:法一:当recv()返回值小于等于0时,socket连接断开。但是还需要判断 errno是否等于...
2019-03-29 17:57:10
462
原创 C断言-封装assert
C语言代码经常要进行出错处理。调用assert,系统自带的assert输出统一。所以我们需要自己分装一个assert,来输出更多我们自己想要的信息#include <stdio.h>//#undef _EXAM_ASSERT_TEST_ //禁用#define _EXAM_ASSERT_TEST_ //启用#ifdef _EXAM_ASSERT_TEST...
2019-03-24 22:42:42
335
原创 linux进程间通信-信号
信号设置SIG_BLOCK当内核发送的信号来时,不会发送到进程。但是当阻塞被清除时,阻塞的信号还是会发送到进程中。未决信号可以如下方式检测//获取当前的阻塞未决信号if(sigpending(&pendset) < 0){ perror("sigpending error!"); exit(1);}else{ //查询当前的未决信号中是否有SIGINT中...
2019-03-24 15:45:06
207
原创 Linux共享内存与信号量
最近在学习Linux进程间的通信。写了一段代码,加深学习印象1、信号量操作的封装//sem_com.c#include "sem_com.h"//初始化信号量int init_sem(int sem_id, int init_value){ union semun sem_union; sem_union.val = init_value; if(semctl(sem_...
2019-03-24 15:38:22
831
2
原创 记录一次Linux应用开发面试
1、以太网帧结构2、TCP包结构3、TCP/IP三次握手中的SYN的作用请求同步4、TCP协议如何保证可靠性三次握手,自动重发,滑动窗口5、握手发生的时机1、阻塞方式socketaccept之前2、非阻塞方式socketaccept之后select之前6、Linux下信号的处理方式1)忽略2)默认处理3、si...
2019-03-22 16:06:08
813
原创 6531E平台HTTPS接口调试
平台SSL协议一、协议部分SSL_AsyncRegCallback注册回调http_SecurityRecvDataCllback加密成功回调http_SecuritySendDataCllback解密成功回调http_SecurityPostMessageCllback握手信息回调http_SecurityShowCertInfoCllba...
2019-03-03 11:32:58
1554
3
原创 socket封装HTTP请求
之前写过两个socket封装的HTTP GET请求,可是知其然,不知所以然。这次写POST请求就有点懵逼了。还是从大佬的文章出发:https://blog.csdn.net/a19881029/article/details/14002273请求的格式如图,严格按照这个格式,否则服务器返回4001、每个HTTP选项末尾都加\r\n2、HTTP选项的末尾要加上一个空白行,所以末尾...
2019-02-21 22:36:09
1523
原创 bat脚本,复制替换文件
每次替换表格都要挨个项目手动ctrl+V,那不如写个脚本自己copy替换rem::date 2018-10-17rem::author ljiemin@echo offsetlocal enabledelayedexpansionSET source_patch=.\Replace\str_table.xlsSET source_fload=.\Replace\SET s...
2018-10-18 09:59:05
9980
1
原创 关于斐波那契数列计算引发的效率思考
斐波那契数列的算法如下:int FibonacciFunc(int val){ if(0 == val) return 0; else if(1 == val) return 1; return FibonacciFunc(val - 1) + FibonacciFunc(val - 2);} 算法上并不复杂,就是一个递归。但是递归一直在调用自己,这就要涉及到建栈和...
2018-10-09 14:17:34
318
原创 EasyX学习
天天玩黑白界面,前段时间突然看到一个图形界面库,虽然是各位前辈玩烂的东西,但是还是勾起了我的兴致。做了一个音乐播放器的。(有点像工作中在展讯平台画MMI)。还有几个问题未解决的问题以及纰漏的地方,要是被大佬翻到了,还请帮忙指正。先来一张定妆照,界面比较丑,就随便找了几张现有的UI画了一下EasyX的绘制函数,可以看看EasyX_Help,里面分类的也比较清楚。贴吧也有很多大佬踩过的坑可...
2018-10-09 11:29:48
3754
3
原创 展讯功能机平台窗口建立
PUBLIC MMI_HANDLE_T MMK_CreateWin( uint32* win_table_ptr, ADD_DATA add_data_ptr ...
2018-10-08 16:59:50
951
原创 展讯功能机平台MMK消息流转
展讯功能机平台是一种消息驱动机制。各窗口(控件)向MMI kernel发送消息。然后MMI kernel通过消息分发,分发到对应的handle处理。下面将以按键消息为例,大致的了解一下展讯平台的消息机制。1、消息的产生:MMI主线程THREAD_ENTRY(P_APP)。这里从开机开始运行。然后各个模块的初始化。以及服务的初始化。接着主线程进入一个while(1)的死循环。MmiReceive...
2018-10-08 16:05:01
1330
原创 malloc(0)
最近看到一个很奇怪的问题,就是malloc(0),返回的却不是NULL,但是free这块内存时却报错。程序跑起来的内存可以分为栈和堆,栈有自己的机器指令,是一个先进后出的数据结构,我就在这里不再过多解释了,malloc分配的内存是堆内存,由于堆没有自己的机器指令,所以要有系统自己编写算法来管理这片内存,通常的做法是用链表,在每片被分配的内存前加个表头,里面存储了被分配内存的起始地址和大小,你的ma...
2018-05-13 14:32:32
548
原创 展讯SC7703天气预报功能总结
天气预报功能在我之前的文章https://blog.csdn.net/ljm_c_bok/article/details/78764305已经做过一些总结。这次在7703平台上,再开发一个天气预报功能,网络socket框架还是跟之前的文章一样的。还有一些问题点还需要重新认识一下。一、socket封装HTTP协议,要封装好请求报文 在CSDN上看到了大佬的文章https://blog.cs...
2018-04-14 16:32:38
338
原创 SC7703 健康管理开发
公司项目最近开发一个健康管理的功能。不能透露过多信息,所以只截取了部分的UI界面。在7703上实现这个功能。 一、需求概述1、吃药提醒: 吃药模式(口服。注射),药物名称,时间,用量、重复、铃声2、健康数据:1)血压数据 :高压、低压、心率、时间2)血糖数据 :浓度、条件(空腹。早餐前。午饭前、、、),时间3、测量提醒测量时间设置 二、初步需求...
2018-04-14 16:31:55
304
原创 展讯6531平台socket
最近公司接到一个新项目,搞展讯6531E平台的天气预报,基本流程其实也简单,就是手机端发送一个请求到服务器,然后服务器把数据发送回来,手机端接收并且解析就可以了,由于之前没有做过展讯socket相关的东西,网上能搜索到的资源非常有限,所以在此做个总结,非常欢迎展友给我指出其中的错误以及纰漏。功能基本流程如下:1、激活PDP、拿到net_id2、socket 通信3、关闭socket...
2017-12-10 14:52:29
4094
3
sync_play.c
2020-07-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人