rtcp package send/recv demo

main.c

#include <stdio.h>
#include <rtp.h>
#include <rtcp.h>
#include <netinet/in.h>
#include <netdb.h>
#include <math.h>
#include <event.h>
#include <syn.h>
#include <payload.h>
#include <sample.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <util.h>
#include <frame.h>
#include <sys/ioctl.h>
#include <sys/stropts.h>
#include "main.h"

#ifdef LINUX
#include <linux/soundcard.h>
#endif /* LINUX */

#define MAX_SOURCES 32

int main(int argc, char **argv) {

  ];
  unsigned short    *samp16 = (unsigned short *) buf;
  bool            found;
  int            audio, port, rv, payloadtype;
  , one = ;
  ssrc_t        ssrc = , sources[MAX_SOURCES];
  struct in_addr    addr;
  struct session    *psn;
  struct synsession    *pssn;
  struct timespec    time;
  struct sampparam    parameters;
  struct encoding    enc;
  mediatime_t        ts;
  struct sampreadparam  sreadparam;

  int            leeway;

  /*
   * Check for correct number of arguments.
   */
  ) {
    fprintf(stderr, ]);
    exit();
  }

  addr.s_addr = inet_addr(argv[]);
  port = atoi(argv[]);

  printf("Session: %s/%d\n", inet_ntoa(addr), port);

  /*
   * Open a synchronization layer session.
   * Use 2k buffers for RTP packets, 64 buffers in pool.
   */
  pssn = synopen(addr, port, , );
  if (pssn == NULL) {
    fprintf(stderr, "synopen() returned NULL.\n");
    exit();
  }

  /*
   * Get a handle to the RTP layer session.
   */
  synctl(pssn, SYN_CTL_GETRTPSESSION, ();

  /*
   * Look up the encoding represented by payloadtype.
   * Determine if it's a supported encoding.
   */
  enc = getencoding(payloadtype);
  printf("enc.en_name: %s\n", enc.en_name);

  ssrc = ;

  printf("Found sender: SSRC = 0x%x Encoding = %s\n", ssrc, enc.en_name);

  /*
   * rtcp package send/recv thread.
   */
  rtpctl(psn, RTP_CTL_RTCPCYCLETHREAD, (, ssrc);

  rtpctl(psn, RTP_CTL_RTCPRECVTHREAD, (, ssrc);

}

运行

code::blocks工程

https://files.cnblogs.com/files/dong1/rtprtcp_linux_demo.tar.gz

rtcp多媒体控制协议应用的更多相关文章

  1. RTSP/RTP 媒体传输和控制协议

    1 前言 本文档主要描述了 NewStream Vision 系统中前端视频服务器(DVR, 网络摄像机), 中心转发服务器以及客户端之间的多媒体通信以及控制协议. 本协议主要基于标准的 IETE 的 ...

  2. LACP链路聚合控制协议

    LACP链路聚合控制协议 来源: https://www.cnblogs.com/taosim/articles/4378691.html http://storage.chinabyte.com/6 ...

  3. 运输层3——传输控制协议TCP概述

    目录 1. TCP最主要的特点 2. TCP的连接 3. socket在不同场景中的含义 写在前面:本文章是针对<计算机网络第七版>的学习笔记 运输层1--运输层协议概述 运输层2--用户 ...

  4. TCP/IP详解学习笔记(12)-- TCP:传输控制协议

    1.概述      TCP提供了一种可靠的面向连接的字节流运输层服务.      TCP将用户数据打包成报文段,它发送后启动一个定时器,另一端收到的数据进行确认,对失序的数据重新排序,丢弃重复数据,T ...

  5. 网际报文控制协议ICMP

    为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP.ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告.ICMP是因特网的标准协议.但ICMP不是高层协议 ...

  6. rtp rtcp rtsp sip协议了解方法

    vlc有个串流功能 可以流各种推流 方便拉取. 能够方便抓包查看协议. 1.菜单媒体->流 打开对话框 分别可以选择本地文件 关盘文件 网络流 捕获设备做流化处理. 2. 选择 串流->新 ...

  7. 吉特日化MES&WMS系统--三色灯控制协议转http

    关于硬件控制大部分都是使用CS客户端程序,一般连接口都是用网口,串口,USB口等,应用通讯是不支持HTTp协议操作的,而目前一般做技术的人员都在于BS开发,使用HTTP 协议,所以在硬件交互上可能觉得 ...

  8. [源码解析] 机器学习参数服务器 Paracel (2)--------SSP控制协议实现

    [源码解析] 机器学习参数服务器 Paracel (2)-----SSP实现 目录 [源码解析] 机器学习参数服务器 Paracel (2)-----SSP实现 0x00 摘要 0x01 背景知识 1 ...

  9. IMCP网际控制协议

    IP协议是TCP/IP协议使用的在网络层传输机制,它是一种不可靠的无连接的数据报协议,但是IP协议假定了底层是不可靠的,因此,要尽最大的努力传输到目的地,但正因为如此,IP协议则没有了保证,也就是说, ...

随机推荐

  1. 双十二“MathType”限时6折特惠

    MathType是由美国Design Science公司开发功能强大的公式编辑器,专门用来对数学公式的编辑,与常见的文字处理软件和演示程序配合使用,能够在各种文档中加入复杂的数学公式和符号.双十二期间 ...

  2. error MSB8031

    http://go.microsoft.com/fwlink/p/?LinkId=286820 下载

  3. Phpcms v9专题分类增加模板设置的方法

    Phpcms v9专题设置里面,默认专题子分类是无模板设置的,本文教你通过官方论坛给出的教程实现专题分类增加模板设置.先来看看默认专题子分类设置界面: 修改后的的专题子分类设置界面多了模板设置: 修改 ...

  4. 超全面的JavaWeb笔记day08<Tomcat&Web应用&HTTP协议>

    1.常用软件体系结构 BS:浏览器/服务器 CS:客户端/服务器 WEB资源 动态资源 JSP Servlet 静态资源 html 常用服务器 Tomcat Weblogic Resin JBOSS ...

  5. css揭秘读书笔记

    currentColor属性让hr和段落相同的颜色: div { color: red; } hr { background: currentColor; /* 一定要设置高度*/ height: 0 ...

  6. VMware 12安装虚拟机Mac OS X 10.10(VMware12安装/共享文件夹)

    推荐电脑配置 1:Inter I5及以上 (A卡请自行百度大神解决方案) 必须开启CPU虚拟化:开机进入BIOS--->Intel Virtualization Technology---> ...

  7. docker学习-docker安装

    win10之外的系统:https://www.docker.com/products/docker-toolbox win10系统:        https://www.docker.com/pro ...

  8. 第十篇:基于TCP的一对回射客户/服务器程序及其运行过程分析( 上 )

    前言 本文将讲解一对经典的客户/服务器回射程序,感受网络编程的大致框架( 该程序稍作改装即可演变成各种提供其他服务的程序 ):同时,还将对其运行过程加以分析,观察程序背后协议的执行细节,学习调试网络程 ...

  9. lua中类的实现原理和实践

    一.基础概念  Lua 本身是函数式的语言,但借助 metatable (元表)这个强大的工具,Lua 实现操作符重载易如反掌.. 下文将详细的解释在Lua中实现类的原理,涉及到的细节点将拆分出来讲, ...

  10. cocos2d-x游戏引擎核心之四——动作调度机制

    一.动作机制的用法 在深入学习动作机制在 Cocos2d-x 里是如何实现的之前,我们先来学习整套动作机制的用法,先知道怎么用,再深入学习它如何实现,是一个很好很重要的学习方法. (1)基本概念 CC ...