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

ffmpeg-cavs识别广电流

如下如果想要ffmpeg识别广电的流,

/** RAW Chinese AVS video demuxer* Copyright (c) 2009  Stefan Gehrer <stefan.gehrer@gmx.de>** This file is part of FFmpeg.** FFmpeg is free software; you can redistribute it and/or* modify it under the terms of the GNU Lesser General Public* License as published by the Free Software Foundation; either* version 2.1 of the License, or (at your option) any later version.** FFmpeg is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU* Lesser General Public License for more details.** You should have received a copy of the GNU Lesser General Public* License along with FFmpeg; if not, write to the Free Software* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA*/#include "avformat.h"
#include "rawdec.h"
#include "libavcodec/internal.h"#define CAVS_SEQ_START_CODE       0x000001b0
#define CAVS_PIC_I_START_CODE     0x000001b3
#define CAVS_UNDEF_START_CODE     0x000001b4
#define CAVS_PIC_PB_START_CODE    0x000001b6
#define CAVS_VIDEO_EDIT_CODE      0x000001b7
#define CAVS_PROFILE_JIZHUN       0x20
#define CAVS_PROFILE_GUANDIAN     0x48static int cavsvideo_probe(const AVProbeData *p)
{uint32_t code= -1;int pic=0, seq=0, slice_pos = 0;const uint8_t *ptr = p->buf, *end = p->buf + p->buf_size;while (ptr < end) {ptr = avpriv_find_start_code(ptr, end, &code);if ((code & 0xffffff00) == 0x100) {if(code < CAVS_SEQ_START_CODE) {/* slices have to be consecutive */if(code < slice_pos)return 0;slice_pos = code;} else {slice_pos = 0;}if (code == CAVS_SEQ_START_CODE) {seq++;/* check for the only currently supported profile */if (*ptr != CAVS_PROFILE_JIZHUN && *ptr != CAVS_PROFILE_GUANDIAN)return 0;} else if ((code == CAVS_PIC_I_START_CODE) ||(code == CAVS_PIC_PB_START_CODE)) {pic++;} else if ((code == CAVS_UNDEF_START_CODE) ||(code >  CAVS_VIDEO_EDIT_CODE)) {return 0;}}}if(seq && seq*9<=pic*10)return AVPROBE_SCORE_EXTENSION+1;return 0;
}FF_DEF_RAWVIDEO_DEMUXER(cavsvideo, "raw Chinese AVS (Audio Video Standard)", cavsvideo_probe, NULL, AV_CODEC_ID_CAVS)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • OpenAI 取消为 ChatGPT 加水印计划,用户反应成关键因素|TodayAI
  • 1. protobuf学习
  • go语言flag库学习
  • 一个是生产打包的时候, 一个是本地测试启动的时候,maven如何配置?
  • 天地图按地名搜索+openlayer+vue3
  • 如何在IDEA上使用JDBC编程【保姆级教程】
  • 力扣第五十三题——最大子数组和
  • 如何开始学习Swift编程?
  • MySQL 实战 45 讲(01-05)
  • C# udp通信测试助手
  • 【数据分享】2024最新安徽省镇级行政区划矢量shp
  • 【面试经验】京东java京东young 一面80min
  • 电子元器件—三极管(一篇文章搞懂电路中的三极管)(笔记)(面试考试必备知识点)
  • EMQX服务器安装MQTT测试
  • 通过Netlink检测USB设备的插拔
  • angular2 简述
  • Apache的基本使用
  • CentOS7 安装JDK
  • Linux快速复制或删除大量小文件
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Sass 快速入门教程
  • Swift 中的尾递归和蹦床
  • 聚簇索引和非聚簇索引
  • 马上搞懂 GeoJSON
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 入门到放弃node系列之Hello Word篇
  • 正则学习笔记
  • Android开发者必备:推荐一款助力开发的开源APP
  • Python 之网络式编程
  • 翻译 | The Principles of OOD 面向对象设计原则
  • # 数仓建模:如何构建主题宽表模型?
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #laravel 通过手动安装依赖PHPExcel#
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • ()、[]、{}、(())、[[]]命令替换
  • (09)Hive——CTE 公共表达式
  • (2022 CVPR) Unbiased Teacher v2
  • (poj1.3.2)1791(构造法模拟)
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)计算机毕业设计ssm电影分享网站
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (蓝桥杯每日一题)love
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (七)Java对象在Hibernate持久化层的状态
  • (三)uboot源码分析
  • (十八)Flink CEP 详解
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET 中的轻量级线程安全
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET大文件上传知识整理
  • .NET正则基础之——正则委托
  • :“Failed to access IIS metabase”解决方法
  • @PostConstruct 注解的方法用于资源的初始化