- 博客(115)
- 资源 (9)
- 收藏
- 关注
原创 FFmpegsample 分析:demux_decode_audio.c
FFmpegsample 分析:demux_decode_audio.c#include <libavutil/samplefmt.h>#include <libavutil/timestamp.h>#include <libavformat/avformat.h>#include <libavutil/log.h>static AVFormatContext *fmt_ctx = NULL;static AVCodecContext *aud
2022-05-24 16:42:53
330
原创 FFmpeg 1
ffmpeg 1代码结构libavcodec编码器的实现libavformat流协议,容器格式实现libavutilhash器,解码器和各种工具函数libavfileter各种音视频过滤器libavdevice访问捕获设备和播放设备的接口libswresample实现混音和重采样libswscale实现色彩转换和缩放功能日志的使用头文件 libavutil/log.h基本文件操作头文件 libavformat/avform
2022-05-10 12:20:21
241
原创 ffmpeg 关键数据结构
ffmpeg 关键数据结构AVFormatContextlibavformat/avformat.h/** * Format I/O context. * New fields can be added to the end with minor version bumps. * Removal, reordering and changes to existing fields require a major * version bump. * sizeof(AVFormatContext
2022-05-10 12:14:53
736
原创 JM ldecod分析:关键数据结构
JM ldecod分析:关键数据结构slice//! Slicetypedef struct slice{ struct video_par *p_Vid; struct inp_par *p_Inp; pic_parameter_set_rbsp_t *active_pps; seq_parameter_set_rbsp_t *active_sps; int svc_extension_flag; //svc 扩展 // dpb pointer str
2022-05-07 13:33:02
854
原创 singleton模式 C++
singleton 模式 C++基本形态#include <iostream>#include <string>class TestSingleton{public: static TestSingleton *create_instance(void) { if (instance_ == nullptr) { instance_ = new TestSingleton();
2022-05-02 12:46:37
830
原创 the difference between unique_lock and lock_guard
the difference between unique_lock and lock_guardunique_lock 和 lock_guard 都提供RAII style的编程方式,就是在构造函数中加锁,在析构函数中解锁。lock_guard 只有构造函数和析构函数,不提供其他成员方法。unique_lock 提供成员函数形式的lock和unlockcondition_varible的lock参数必须是unique_locklock_guard#include <thread>
2022-04-12 11:57:26
260
原创 有名管道操作
有名管道fifo的读端阻塞,写端关闭后,读端返回0,表示写端结束。当写端没有关闭时,无数据时,读端阻塞。fifo读端非阻塞时,read 返回Resource temporarily unavailable 错误。
2021-11-30 20:00:47
164
原创 Understanding The Digital Image Sensor
Understanding The Digital Image Sensor图像sensor 可以根据多种方式来进行分类,比如根据结构类型分为CCD 和CMOS, 根据色彩类型分为(color 和 monochromatic),根据快门类型分为(global 和 rolling shutter)。也可以根据分辨率,帧率,pixel size和sesnor format来分。理解这些术语能帮助理解哪种sensor能更适合自己的应用。...
2021-10-15 12:09:44
192
原创 Understanding Camera exposure
cameracamera EXPOSURE人眼感知光的亮度,感知的是单位面积的辐射功率。相机 sensor采集的是光的能量,从早期的溴化银到现在cmos sensor。这里就会有曝光的概念。对曝光形象的解释,曝光就好像在一个通里边收集雨水,收集雨水相当于收集光能量。当下雨的速率没法控制的时候,有三个因素就会影响对雨水的收集,桶的宽度,放在那里收集雨水的时间,还有雨点的大小。目标是保证不要收集太少(低曝光),或者收集太多(过曝光)。实现这个目标的关键就是选择桶宽度,收集雨水时间和雨点大小的不同组合。例如
2021-10-13 18:12:01
794
原创 JM ldecod分析: 分帧处理
JM ldecod分析: 分帧处理slice 和IDR case NALU_TYPE_SLICE: case NALU_TYPE_IDR: if (p_Vid->recovery_point || nalu->nal_unit_type == NALU_TYPE_IDR) { if (p_Vid->recovery_point_found == 0) { if (nalu->nal_unit_t
2021-10-09 17:15:20
728
原创 Google C++ Style Guide
Google C++ Style GuideHead filesThe #define GuardAll header files should have #define guards to prevent multiple inclusion. The format of the symbol name should be H.#ifndef FOO_BAR_BAZ_H_#define FOO_BAR_BAZ_H_...#endif // FOO_BAR_BAZ_H_Include
2021-10-08 15:23:15
171
原创 linux network 实现
linux network 实现static int __init sock_init(void){ int err; /* * Initialize the network sysctl infrastructure. */ err = net_sysctl_init(); if (err) goto out; /* * Initialize ...
2021-10-08 11:22:47
444
原创 动态分配多维数组
动态分配多维数组typedef uint16 imgpel;/*! ************************************************************************ * \brief * Allocate 1D memory array -> imgpel array1D[dim0 * * \par Output: * memory size in bytes ********************************
2021-09-24 11:25:23
133
原创 JM ldecod分析
JM ldecod分析ldecod简单分析解码是规范中定义的涉及参数比较少。输入参数// input parameters from configuration filetypedef struct inp_par{ char infile[FILE_NAME_SIZE]; //!< H.264 inputfile char outfile[FILE_NAME_SIZE]; //!< Dec
2021-07-20 20:09:48
407
原创 H264-源数据,编码,解码和输出数据格式
H264-源数据,编码,解码和输出数据格式source,decoded and output picture format跟输入源格式有关的变量如上图,变量SubWidthC 和SubHeightC根据chroma_format_idc 和separate_colour_plane_flag 的设定值。单通道时,这里只有一个采样数组,这个就是亮度数组。4:2:0 采样时,色度通道数组的宽度和高度都是亮度数组的一半,数据量是亮度的四分之一。4:2:2采样时,色度通道数组的高度和亮度数组相同,宽度是
2021-07-19 19:54:13
766
原创 JM ldecod分析:获取slice
JM ldecod分析:解码slice/*! ************************************************************************ * \brief * Reads new slice from bit_stream_dec ************************************************************************ */int read_new_slice(Slice *cu
2021-07-15 20:27:23
433
原创 MIPI CSI接口
MIPI CSI接口MIPI CSI-2 1.3D-PHY 1.2, C-PHY 1.0 or “combo PHY” is possible4 Virtual ChannelsI2C based control interfaceLine based transmission: Easy implementation, Low gate count, Matched data rates for sensor and linkIn-band interruptsRGB, YUV, RAW,
2021-07-14 11:45:53
2729
原创 JM ldecod分析:AVC bitstream & Nalu
JM ldecod分析:AVC bitstream & NaluAVC streamannexb.h/*! ************************************************************************************* * \file annexb.h * * \brief * Annex B byte stream buffer handling. * *****************************
2021-07-12 20:02:42
298
原创 AVL Tree
AVL Tree头文件/* * PacketBB handler library (see RFC 5444) * Copyright (c) 2010 Henning Rogge <hrogge@googlemail.com> * Original OLSRd implementation by Hannes Gredler <hannes@gredler.at> * All rights reserved. * * Redistribution and use i
2021-07-08 19:41:44
190
原创 The Top 323 Ffmpeg Open Source Projects
The Top 323 Ffmpeg Open Source ProjectsThe Top 323 Ffmpeg Open Source Projects
2021-07-08 16:34:28
115
原创 ubus 源码解析
ubus 源码解析1. ubus 安装2. ubusdubus 是使用epoll 来处理IO的很好的例子。ubus_main.c 中int main(int argc, char **argv){ const char *ubus_socket = UBUS_UNIX_SOCKET; int ret = 0; int ch; signal(SIGPIPE, SIG_IGN); signal(SIGHUP, sighup_handler); openlog("ubusd", LOG
2021-07-05 11:33:36
3027
原创 WM8960声卡相关问题
参考:https://blog.youkuaiyun.com/zhong0985/article/details/8549688
2021-06-03 18:03:30
509
原创 DEBUG系统
DEBUG信息加颜色#ifndef __HTTP_DEBUG_H__#define __HTTP_DEBUG_H__#include <stdio.h>enum { E_NOTICE = 0, E_DEBUG, E_WARRN, E_ERROR,};#define LOG_LEVEL 0#ifdef LOG_LEVEL #define LOG_OUT(level, color, tag, str, ...) (\
2021-05-11 18:58:36
210
原创 flex&bison 高级计算器
flex&bison 高级计算器fb3_2.h#ifndef _FB3_2_H_#define _FB3_2_H_extern int yylineno;void yyerror(char *s, ...);#define NHASH 9997enum bifs { B_sqrt = 1, B_exp, B_log, B_print,};struct ast { int nodetype; struct ast *l;
2021-03-03 12:45:49
496
原创 FFmpeg sample 分析:muxing.c
FFmpeg sample 分析:muxing.c本文通过分析ffmpeg中的sample梳理下ffmpeg中各结构的关系。sample muxing.c/* * Copyright (c) 2003 Fabrice Bellard * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation fil
2020-12-15 14:52:24
869
原创 OTA 升级中的跟文件系统切换
OTA 升级中跟文件系统切换贴脚本#!/bin/shkill -9 -1echo 3 > /proc/sys/vm/drop_cachessync#/tmp/是新的最小文件系统#创建相应目录mkdir /tmp/bin/mkdir /tmp/sbin/mkdir /tmp/proc/mkdir /tmp/dev/mkdir /tmp/sys/mkdir /tmp/lib/mkdir /tmp/root/#拷贝必要的库cp /lib/libc* /tmp/lib
2020-11-23 14:09:58
444
1
原创 H264-解码顺序 显示顺序 参考顺序
H264-解码顺序 显示顺序 参考顺序DPB解码图像缓冲区,片被解码后生成的数据保存在DPB中。DPB中的图像数据可用于后边图像编码时的帧间预测,或者输出到显示。解码顺序显示顺序参考顺序
2020-09-22 10:56:49
2325
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人