当前位置: 首页 > news >正文

c ffmpeg 学习

1.  int8_t    <==>     char       u_int8_t  ==  unsigned char

     int16_t    ==  short

     int32_t  ==int

2. #define  X(x)   x,x,x,x,x,x,x,x      //表示8个x  主要用于数组赋值

#include <stdio.h>
#include <stdlib.h>
#include <string.h>#define X8(x)  x,x,x,x,x,x,x,x           //X8(x) 表示8个x
#define X64(x)  x,x,x,x,x,x,x,x,\x,x,x,x,x,x,x,x,\x,x,x,x,x,x,x,x,\x,x,x,x,x,x,x,x,\x,x,x,x,x,x,x,x,\x,x,x,x,x,x,x,x,\x,x,x,x,x,x,x,x,\x,x,x,x,x,x,x,x      //X64(x)  表示64个xint main(void){int32_t a[] = {X8(13036),  // tg * (2<<16) + 0.5X8(27146),  // tg * (2<<16) + 0.5X8(-21746)  // tg * (2<<16) + 0.5};printf("%d\n",a[0]);int  b[64]={X64(1)};printf("%d\n",b[63]);return 0;
}

     与memset(b,1 ,64) 等效

3. fwrite  fread

  fwrite(参数1,参数2,参数3,文件号)  参数2:相同单位内的字节数

                                                          参数3:表示有多少个相同单位

  利用参数2,3能方便写入和读取二维数组元素

 

4。DECLARE_ALIGEND( n,  类型,名字)   内存对齐,我理解这个内存对齐是ffmpeg为了兼容不同操作系统用的,对于linux X86 来说,直接按n的大小选数据类型就可以了,比如是8,就是char,16 就选short。下面的例子就是

short     fdct_tg_all_16[24]={....}

 //concatenated table, for forward DCT transformation

 DECLARE_ALIGNED(16, static const int16_t, fdct_tg_all_16)[24] = {

             X8(13036), // tg * (2<<16) + 0.5

             X8(27146), // tg * (2<<16) + 0.5

             X8(-21746) // tg * (2<<16) + 0.5

 };

 

5. 开根号  sqrt()

   比如1/2 开根号,必须写成: sqrt(1.0/2)     1必须写成1.0

 

 

 

 

 

 

相关文章:

  • QCustomPlot绘制柱状图,折线图
  • Chrome 开发者工具
  • 设计模式——中介者模式
  • Docker 仓库管理
  • etcd v3用户权限操作
  • 基于FPGA的万兆以太网学习(1)
  • openssl3.2 - 官方demo学习 - mac - siphash.c
  • 垃圾收集器G1ZGC详解
  • x-www-form-urlencoded接收方式代码示例
  • Nodejs 问题排查
  • openssl3.2 - 官方demo学习 - smime - smdec.c
  • Angular系列教程之观察者模式和RxJS
  • 【备战蓝桥杯】图的遍历问题
  • openssl3.2 - 官方demo学习 - smime - smsign2.c
  • JavaEE之多线程编程:3. 线程的状态(易懂!)
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • JavaScript服务器推送技术之 WebSocket
  • Redis学习笔记 - pipline(流水线、管道)
  • 程序员该如何有效的找工作?
  • 聊聊redis的数据结构的应用
  • 每天10道Java面试题,跟我走,offer有!
  • 使用Swoole加速Laravel(正式环境中)
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 说说我为什么看好Spring Cloud Alibaba
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • (04)odoo视图操作
  • (1)Nginx简介和安装教程
  • (14)Hive调优——合并小文件
  • (6)设计一个TimeMap
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (ZT)薛涌:谈贫说富
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)计算机毕业设计大学生兼职系统
  • (四)Android布局类型(线性布局LinearLayout)
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (五)c52学习之旅-静态数码管
  • (一)kafka实战——kafka源码编译启动
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET Core中Emit的使用
  • .NET delegate 委托 、 Event 事件
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .Net语言中的StringBuilder:入门到精通
  • @AliasFor注解
  • [100天算法】-实现 strStr()(day 52)
  • [20170728]oracle保留字.txt
  • [2021]Zookeeper getAcl命令未授权访问漏洞概述与解决
  • [2024最新教程]地表最强AGI:Claude 3注册账号/登录账号/访问方法,小白教程包教包会
  • [Angular] 笔记 6:ngStyle
  • [c]统计数字
  • [c++] 什么是平凡类型,标准布局类型,POD类型,聚合体
  • [CentOs7]搭建ftp服务器(2)——添加用户
  • [CISCN2019 华北赛区 Day1 Web2]ikun
  • [CISCN2019 华东南赛区]Web11