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

部落冲突做任务网站企业培训机构哪家最好

部落冲突做任务网站,企业培训机构哪家最好,珠海自适应网站建设,深圳装修公司大全目录 0.avformat_open_input的rtsp流程程纯净版1.rtsp拉流流程图2.rtsp拉流对象图 标准rtsp协议的基石是tcp,本节探索下ffmpeg的rtsp拉流协议tcp的创建及rtsp协商过程。 0.avformat_open_input的rtsp流程程纯净版 ffmpeg拉流,从avformat_open_input接口…

目录

  • 0.avformat_open_input的rtsp流程程纯净版
  • 1.rtsp拉流流程图
  • 2.rtsp拉流对象图

标准rtsp协议的基石是tcp,本节探索下ffmpeg的rtsp拉流协议tcp的创建及rtsp协商过程。

0.avformat_open_input的rtsp流程程纯净版

ffmpeg拉流,从avformat_open_input接口开始,去除与rtsp拉流无关的代码后,如下:


int avformat_open_input(AVFormatContext **ps, const char *filename,const AVInputFormat *fmt, AVDictionary **options)
{AVFormatContext *s = *ps;FFFormatContext *si;AVDictionary *tmp = NULL;int ret = 0;if (!s && !(s = avformat_alloc_context()))return AVERROR(ENOMEM);si = ffformatcontext(s);if (!s->av_class) {av_log(NULL, AV_LOG_ERROR, "Input context has not been properly allocated by avformat_alloc_context() and is not NULL either\n");return AVERROR(EINVAL);}if (options)av_dict_copy(&tmp, *options, 0);if ((ret = av_opt_set_dict(s, &tmp)) < 0)goto fail;if (!(s->url = av_strdup(filename ? filename : ""))) {ret = AVERROR(ENOMEM);goto fail;}if ((ret = init_input(s, filename, &tmp)) < 0)goto fail;s->probe_score = ret;s->duration = s->start_time = AV_NOPTS_VALUE;/* Allocate private data. */if (s->iformat->priv_data_size > 0) {if (!(s->priv_data = av_mallocz(s->iformat->priv_data_size))) {ret = AVERROR(ENOMEM);goto fail;}if (s->iformat->priv_class) {*(const AVClass **) s->priv_data = s->iformat->priv_class;av_opt_set_defaults(s->priv_data);if ((ret = av_opt_set_dict(s->priv_data, &tmp)) < 0)goto fail;}}if (s->iformat->read_header){if ((ret = s->iformat->read_header(s)) < 0) {if (s->iformat->flags_internal & FF_FMT_INIT_CLEANUP)goto close;goto fail;}}si->raw_packet_buffer_size = 0;update_stream_avctx(s);if (options) {av_dict_free(options);*options = tmp;}*ps = s;return 0;close:if (s->iformat->read_close)s->iformat->read_close(s);
fail:av_dict_free(&tmp);avformat_free_context(s);*ps = NULL;return ret;
}

其中留下了字典参数配置流程,因为基本会有所设置,参数配置参见《ffmpeg面向对象——参数配置机制及其设计模式探索》。

输入格式匹配(看下面流程图会清晰点),参见《ffmpeg面向对象-rtsp拉流相关对象》的第2节。

协议匹配机制(看下面流程图会清晰点),参见《ffmpeg面向对象——拉流协议匹配机制探索》。

输入格式类与协议类什么关系参见《ffmpeg面向对象——AVInputFormat与URLProtocol啥关系》。

这些结合流层图与对象图看会清晰点。

1.rtsp拉流流程图

在这里插入图片描述
rtsp的tcp链接创建在图中最右边。
rtsp协商流程也比较清晰,可以看到ff_rtsp_send_cmd是各个协商方法最终都要调用的中心转发节点。
另外可以看到底层tcp协议读写是如何对接的,结合下面对象图,就能深入理解输入格式类与协议类的关系,它们面向接口编程,各自分层迭代开发,互不影响。

2.rtsp拉流对象图

在这里插入图片描述

可琢磨的比较多,其中,输入格式类与底层协议类型都是“可变的”,因为这两者都是代码运行中匹配出来的,所以它们都被更上一层的进行“托管”。参见《ffmpeg面向对象——priv_data设计原理探索》。

http://www.hengruixuexiao.com/news/33285.html

相关文章:

  • 用r做简易的网站企业网站大全
  • 网页制作 基础教程杭州seo排名优化外包
  • 国外网站国内做好还是国外做东莞关键词seo优化
  • 公司网站一般多少钱网站优化北京seo
  • 三大外包公司seo教程搜索引擎优化入门与进阶
  • 域名注册和网站哪个好百度推广河南总部
  • wordpress安装不能选择语言自动app优化最新版
  • 怎么做网站主导航网络推广是做什么的
  • 做网站建设需要会哪些网站网络营销公司
  • 日本真人做爰视频免费网站国外b站视频推广网站
  • 阿里云网站空间做商城流程百度权重批量查询
  • github上建立WordPress网站巩义关键词优化推广
  • asp做的网站怎么发布杭州网站优化
  • 海外运营是做什么的aso搜索优化
  • 织梦网站后台怎么登陆保温杯软文营销300字
  • 周口规划建设局网站大的网站建设公司
  • wordpress多站点多域名插件b2b电子商务网
  • 上海专业做网站电话单页网站模板
  • 静态旅游网站毕业论文微信引流主动被加软件
  • 磁县企业做网站推广百度推广培训机构
  • 销售型网站如何做推广网站关键词seo优化公司
  • 做网站前景怎样站长之家源码
  • 可以做秋招笔试题的网站免费个人网站申请
  • 阳江招聘北京seo技术
  • 南宁网站设计要多少钱seo线下培训机构
  • wordpress页面目录下seo搜索引擎优化内容
  • 制作网站 太原网站seo推广优化
  • 买东西的网站seo导航站
  • 做购物商城网站建设外国搜索引擎登录入口
  • 浏阳网站建设关键词排名哪里查