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. idea-java项目配置

    导入项目后,工程结构配置: 如果不加入tomcat 运行库,项目会报servlet jar 找不到的异常 tomcat服务器配置

  2. Supervisor安装与配置(非守护进程管理工具)

    http://blog.csdn.net/xyang81/article/details/51555473

  3. Linux select 机制深入分析

    Linux select 机制深入分析            作为IO复用的实现方式.select是提高了抽象和batch处理的级别,不是传统方式那样堵塞在真正IO读写的系统调用上.而是堵塞在sele ...

  4. django model 数据类型

    转自:http://www.cnblogs.com/lhj588/archive/2012/05/24/2516040.html Django 通过 models 实现数据库的创建.修改.删除等操作, ...

  5. 说说M451的例程库的说明

    Directory Information Document   Driver reference manual and reversion history. Library         Driv ...

  6. 关于C#我今天的六个小时

    嘿嘿,今天周六啦,我们是自由学习啦,于是还记得前几天纠结的事情,还有好多不太熟悉的题目那,于是今天就找出来练习下拉,而且这些题目在老师给我们复习时间也给我们讲解过啦,这样一来应该做起来还是容易点的啦, ...

  7. django 文档

    django 学习文档 https://yiyibooks.cn/xx/django_182/index.html

  8. BNU4207:台风

    东方非想天则(TH12.3)是一款优秀的格斗游戏,其以华丽的弹幕,连贯的技能衔接及优美的音乐吸引了众多玩家(宅男更多-_-),而且各平台上也为其提供了联机的机会. 好了,言归正传,天气系统是本游戏的一 ...

  9. MQTT的学习研究(十五) MQTT 和android整合文章

    详细参考:  How to Implement Push Notifications for Android http://tokudu.com/2010/how-to-implement-push- ...

  10. MQTT的学习研究(四)moquette-mqtt 的使用之mqtt Blocking API客户端订阅并接收主题信息

    在上面两篇关于mqtt的broker的启动和mqtt的服务端发布主题信息之后,我们客户端需要订阅相关的信息并接收相关的主题信息. package com.etrip.mqtt; import java ...