ret

FFmpeg4.0笔记:采集系统声音

醉酒当歌 提交于 2020-04-08 06:08:14
Github https://github.com/gongluck/FFmpeg4.0-study/tree/master/Cff // 采集系统声音 void test_systemsound() { bool ret = false; std::string err; CDemux demux; CDecode decode; ret = demux.device_register_all(err); TESTCHECKRET(ret); ret = demux.set_input_format("dshow", err); //采集声卡 TESTCHECKRET(ret); ret = demux.set_dic_opt("framerate", "15", err); TESTCHECKRET(ret); ret = demux.set_demux_callback(DemuxSystemSoundCB, &decode, err); TESTCHECKRET(ret); ret = demux.set_demux_status_callback(DemuxStatusCB, &demux, err); TESTCHECKRET(ret); ret = demux.set_input("audio=virtual-audio-capturer", err);

ORM _meta

℡╲_俬逩灬. 提交于 2020-03-31 09:04:04
import os if __name__ == '__main__': os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'XadminDemon.settings') import django django.setup() from app01 import models # 获取app的值 ret = models.Book._meta.app_label print(ret) # 获取模型的名称 ret = models.Book._meta.model_name print(ret) # 获取字段的属性 obj = models.Book._meta.get_field("title") ret = obj.verbose_name print(ret) obj = models.Book._meta.get_field("price") ret = obj.verbose_name print(ret) """ app01 book 书名 price """ _meta.get_filed(字段) models的字段 def index(request): book_name = models.Book._meta.get_field("name") # app01.Book.name book_name = book

python re 正则表达式汇总

旧城冷巷雨未停 提交于 2020-03-27 23:03:48
import re # text = "1a+_1hello\n" # text1 = '0731-8888888 abc' # ret = re.match('he',text) # ret = re.match('.',text) #.表示可以匹配任意字符 # ret = re.match('\d',text) # 匹配到数字 # ret = re.match('\D',text) # 匹配的任意非数字和\d相反 # ret = re.match('\s',text) #匹配空白字符(\n,\t,\r)以上都是开头匹配的状态 # ret = re.match('\w',text) # 匹配a-z A-Z 数字和下划线 # ret = re.match('\W',text) # 和\w相反的 # ret = re.match('[a1]',text) # [] 组合的方式 匹配1 或是 a # ret = re.match('[\d\-]+',text1) #- 要特殊转义下 才表示- ;[\d\-]表示匹配到一个字符 是数字或是 - 开头的,如果是多个的话用+ # ret = re.match('[^0-9]',text1) # 匹配到0-9的数字,如果用一个^表示非 # ret = re.match('[a-zA-Z0-9_]',text1) #这个和\w一样的效果 #

add-two-numbers-ii

老子叫甜甜 提交于 2020-03-22 22:18:40
注意: 有一种好的方法,是将链表倒转,然后依次相加。 但是,按照题目要求,用了不改变原链表的方法。 就是将两个链表增加到相同长度,然后 递归相加,子函数返回后 处理进位。 https://leetcode.com/problems/add-two-numbers-ii/ package com.company; import java.util.*; class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } class Solution { ListNode addTwo(ListNode l1, ListNode l2) { //System.out.printf("add two %d, %d \n", l1.val, l2.val); ListNode ret = new ListNode(l1.val + l2.val); if (l1.next != null && l2.next != null) { ret.next = addTwo(l1.next, l2.next); ret.val += ret.next.val / 10; ret.next.val = ret.next.val % 10; } else { ret.next = null; } return ret; }

python之常用模块(8)

泪湿孤枕 提交于 2020-03-14 18:07:55
本节内容:常用模块   1.常用模块     1.1.为什么要有模块     1.2.模块是什么     1.3.模块有哪几类   2.内置模块     2.1.collections模块     2.2.时间模块     2.3.random模块     2.4.sys模块     2.5.os模块     2.6.re模块 1、常用模块 1.1.为什么要有模块 1、Python 其实是很多现成的方法,但是这些函数不能全都放在内存里 2、为用户节省很多不必要的内存消耗 3、用不到的功能就不用导入到内存里了 1.2.模块是什么 一块Python代码 一组Python代码 一组C语言代码 一堆写好的,现成可以用的函数、类 以功能来分类的 1.3.模块有哪几类 内置模块 -- 随着Python解释器的安装直接可以使用的模块 扩展模块 --需要你自己安装一下才能使用的模块 django框架 微信交互itchat 自定义模块 -- 用户根据自己的需求完成的一组功能 2、内置模块 2.1.collections模块 在内置数据类型(dict、list、set、tuple)的基础上, collections模块还提供了几个额外的数据类型:Counter、deque、defaultdict、namedtuple和OrderedDict等。 1.namedtuple:

C#求组合数和组合的方法

为君一笑 提交于 2020-02-27 06:45:53
C#求组合数和组合的方法 /// <summary> /// 组合数计算方法,两个参数可以互换,传入负数将会得到<c> 1 </c>;运算发生溢出将返回<c> 0 </c>。 /// </summary> /// <param name="n">参数</param> /// <param name="N">参数</param> /// <returns>组合数。</returns> internal static ulong C(int n, int N) { System.Numerics.BigInteger ret = new System.Numerics.BigInteger(1); if (n != N && n > 1 && N > 1) { int m = N > n ? n : N; int M = N < n ? n : N; int c = M - m; c = c > m ? m : c; for (int i = M - c + 1; i <= M; i++) ret *= i; for (int i = 2; i <= c; i++) ret /= i; if (ret > ulong.MaxValue) ret = 0; } else if (n == 1 || N == 1) { ret = n > N ? n : N; } return

8大排序算法总结 JS 实现

大兔子大兔子 提交于 2020-02-12 03:50:14
//bubble sort ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 function bubbleSort(arr,comp){ for (var i = 0 ;i < arr.length; i++){ for (var j = 0 ; j < arr.length - i - 1 ; j++){ if (comp(arr[j],arr[j+ 1 ])){ exch(arr,j,j+ 1 ); } } } } function exch(a,i,j){ var tmp = a[i]; a[i] = a[j]; a[j] = tmp; } var input = new Array( 5 , 1 , 4 , 2 , 3 ); bubbleSort(input,function(a,b){ return a > b;}); console.log(input); input = new Array( 5 , 1 , 4 , 2 , 3 ); bubbleSort(input,function(a,b){ return a < b;}); console.log(input); //selection sort ? 1 2 3 4 5 6 7 8 9 10 11

LeetCode-62-不同路径

大憨熊 提交于 2020-01-31 03:07:22
题意描述: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共有多少条不同的路径? 例如,上图是一个7 x 3 的网格。有多少可能的路径? 说明:m 和 n 的值均不超过 100。 示例: 示例一: 输入 : m = 3 , n = 2 输出 : 3 解释 : 从左上角开始,总共有 3 条路径可以到达右下角。 1. 向右 - > 向右 - > 向下 2. 向右 - > 向下 - > 向右 3. 向下 - > 向右 - > 向右 示例二: 输入 : m = 7 , n = 3 输出 : 28 解题思路: Alice: 这题我会呀,可以用高中学的排列组合的知识来解。每次只能往下往右走,那么往下走的总步数是确定的,就是 n-1 步,同样往右走的总步数也是确定的,就是 m-1 步。只要我们安排好这 m-1 步 和 n-1 步的顺序就唯一确定了一种行动方案。 Bob: 然后呢,该怎么安排呢 ? Alice: 我们可以把 n-1 步插入到 m-1 步的缝隙中去啊,然后去除重复的部分,因为 n-1 步各个部分的拓扑序无论如何排列都是相同的答案。 Bob:你是说这样吗 ? Alice: 对对对,然后公式是,,额,我还是直接写伪代码吧。 ret = 1

大数的基本运算

做~自己de王妃 提交于 2020-01-25 03:50:11
寒假新队员训练计划。 在讲到大数运算前我们先回顾一下我们常用的变量类型的数值范围 类型名称 字节数 取值范围 short int 2 -2^14 ~ 2^14-1 int 4 -2^31 ~ 2^31-1 unsigned int 4 0 ~ 2^32-1 long long 8 -2^63 ~ 2^63-1 unsigned long long 8 0 ~ 2^64-1 0 ~ 18446744073709551615 从中我们可以看到,即使是 unsigned long long ,最大也只能存储 1e19 左右的数 而如果我们被要求进行远大于 1e19 的数的运算,那么常规的做法就无法操作 所以我们引入了一个新的概念——大数 我们可以这么定义它:无法用常规整(浮点)型变量存储,无法进行简单符号运算的数 如:123456789123456789123456789123456789123456789,它就为一个大数 那么现在问你,给你两个大数,要求你对它进行简单(加减乘除)运算,你会怎么做呢? 大数运算模拟 首先我们要考虑如何来把这个数读入并储存。因为是大数,我们无法用以往的int、long long甚至unsigned long long储存 所以我们得先用字符数组对它进行储存。 我们把该大数每一位分解开来分别存到字符数组的每个位置 假设我们用来储存的字符串为S,则对大数

leetcode-重排链表

北战南征 提交于 2020-01-23 03:52:41
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public void reorderList(ListNode head) { //使用双端队列 Deque<ListNode> deque = new LinkedList<>(); while(head != null){ ListNode newnode = head; head = head.next; newnode.next = null; deque.add(newnode); } ListNode ret = null; ListNode retlist = null; int index = 0; if(deque.isEmpty()){ return ; } else{ retlist = deque.removeFirst(); ret = retlist; } while(!deque.isEmpty()){ if(index%2==0){ //加last ret.next = deque.removeLast(); ret = ret.next; } else