这个代码可以正常运行,黑白画面交替:

#include <gst/gst.h>#define VIDEO_WIDTH   384
#define VIDEO_HEIGHT  288
#define VIDEO_FORMAT  "RGB16"
#define PIXEL_SIZE    2static void cb_need_data (GstElement *appsrc, guint       unused_size, gpointer    user_data)
{static gboolean white = FALSE;static GstClockTime timestamp = 0;GstBuffer *buffer;guint size;GstFlowReturn ret;size = VIDEO_WIDTH * VIDEO_HEIGHT * PIXEL_SIZE;buffer = gst_buffer_new_allocate (NULL, size, NULL);/* this makes the image black/white */gst_buffer_memset (buffer, 0, white ? 0xFF : 0x00, size);white = !white;GST_BUFFER_PTS (buffer) = timestamp;GST_BUFFER_DURATION (buffer) = gst_util_uint64_scale_int (1, GST_SECOND, 2);timestamp += GST_BUFFER_DURATION (buffer);g_signal_emit_by_name (appsrc, "push-buffer", buffer, &ret);gst_buffer_unref (buffer);if (ret != GST_FLOW_OK){/* something wrong, stop pushing */g_main_loop_quit (loop);}
}gint main (gint   argc, gchar *argv[])
{GstElement *pipeline, *appsrc, *conv, *videosink;GMainLoop *loop;/* init GStreamer */gst_init (NULL, NULL);loop = g_main_loop_new (NULL, FALSE);/* setup pipeline */pipeline  = gst_pipeline_new ("pipeline");appsrc    = gst_element_factory_make ("appsrc",       "source");conv      = gst_element_factory_make ("videoconvert", "conv");videosink = gst_element_factory_make ("xvimagesink",  "videosink");/* setup */g_object_set (G_OBJECT (appsrc), "caps",gst_caps_new_simple ("video/x-raw","format",    G_TYPE_STRING,     VIDEO_FORMAT,"width",     G_TYPE_INT,        VIDEO_WIDTH,"height",    G_TYPE_INT,        VIDEO_HEIGHT,"framerate", GST_TYPE_FRACTION, 0, 1,NULL), NULL);gst_bin_add_many (GST_BIN (pipeline), appsrc, conv, videosink, NULL);gst_element_link_many (appsrc, conv, videosink, NULL);/* setup appsrc */g_object_set (G_OBJECT (appsrc),"stream-type", 0,"format", GST_FORMAT_TIME, NULL);g_signal_connect (appsrc, "need-data", G_CALLBACK (cb_need_data), NULL);/* play */gst_element_set_state (pipeline, GST_STATE_PLAYING);g_main_loop_run (loop);/* clean up */gst_element_set_state (pipeline, GST_STATE_NULL);gst_object_unref (GST_OBJECT (pipeline));g_main_loop_unref (loop);return 0;
}

gstreamer向appsrc发送帧画面的代码相关推荐

  1. 企鹅电竞VAP动画组件停留最后一帧画面

    一. 简介 VAP(Video Animation Player)是企鹅电竞开发的一款用于播放视频动画的组件库,其开源于: 腾讯工蜂:https://git.code.tencent.com/Tenc ...

  2. python怎么发送代码文件_python 通过 socket 发送文件的实例代码

    目录结构: client: #!/usr/bin/env python # -*-coding:utf-8 -*- import socket, struct, json download_dir = ...

  3. php发送指令,PHP发送AT指令实例代码

    需求: 发送短信到用户输入手机, 要求可以自定义信息内容 问题:没有电信猫, 使用免费api接口无法自定义短信内容 解决方案:通过4G网卡, 接在服务器上, 通过AT指令操作网卡, 发送短信 查阅发现 ...

  4. python post请求实例_Python使用requests发送POST请求实例代码

    本文研究的主要是Python使用requests发送POST请求的相关内容,具体介绍如下. 一个http请求包括三个部分,为别为请求行,请求报头,消息主体,类似以下这样: 请求行 请求报头 消息主体 ...

  5. python定时发送微信消息_Python3 itchat实现微信定时发送群消息的实例代码

    一.简介 1,使用微信,定时往指定的微信群里发送指定信息. 2,需要发送的内容使用excel进行维护,指定要发送的微信群名.时间.内容. 二.py库 1,itchat:这个是主要的工具,用于连接微信个 ...

  6. 通过外部交换平台发送xml文件,手动加载能正常发送,但是通过代码拼xml文件发送报错找不到用户,userid is pfxx-user 16dXXXX

    问题现象:通过外部交换平台发送xml文件,手动加载能正常发送,但是通过代码拼xml文件发送却报错了 原因是:代码发送的URL里面或者xml表头少写了制单人属性:operator 解决方法:发送url调 ...

  7. 服务器发送了 HTTP 状态代码 401: Unauthorized

    根据wsdl连接生成客户端代码,调用接口报错:服务器发送了 HTTP 状态代码 401: Unauthorized.查询此错误的原因是没有访问权限,想到客户再提供接口wsdl访问连接的时候提供了用户名 ...

  8. CANoe如何查看发送帧数

    CANoe如何查看发送帧数 被抓过来当临时工了,没办法只能学习,把整机厂的项目工程师气得半死. 本人非专业人士,有不对的地方欢迎指出!!!!! 确认当前当前状态(上位机设为主节点时) PS:这一张主要 ...

  9. js获取在线视频的第一帧画面的直链作为视频封面

    最近碰到一个需求,要求获取在线视频文件的第一帧画面作为视频的封面图片,项目中使用的是 xgplayer 播放器,封面 poster 要求传封面的 url. 思路:用 canvas 绘出画面 - 转成 ...

  10. 2022.8.31 进程中无名管道的特点,无名管道的创建,为何无名管道只能能够实现具有亲缘关系的进程间的通信,以及实现利用无名管道父进程给子进程发送消息的完整代码。

    无名管道通信 无名管道特点: (1):只能用于具有亲缘关系的进程之间的通信.(父子进程或兄弟进程) (2):是一个半双工的通信模式,具有固定的读端和写端.(fd[0]固定为读端,fd[1]固定为写端) ...

最新文章

  1. C语言——冒泡法排序应用
  2. 最简单的iOS网络请求
  3. nginx 解析php漏洞
  4. java mapper.readtree_Java ObjectMapper.readTree方法代码示例
  5. 通俗易懂两种常用的多线程实现方式——Java并发系列学习笔记
  6. JEECG 引领J2EE新开发模式插件式开发 - 公开课2013-12-12
  7. 信息学奥赛一本通(1122:计算鞍点)
  8. java调用数据库存储过程的接口是_JAVA调用数据库存储过程
  9. shell的简单应用
  10. 人人视频android资源比ios多,人人视频
  11. 计算机cpu尺寸,英特尔CPU型号尺寸.doc
  12. magicbook14能装鸿蒙系统吗,荣耀magicbook14锐龙版评测_magicbook14锐龙版缺点
  13. 介绍一个浏览器被劫持后不能跳转到主页的处理方法
  14. 1082 射击比赛 (20分)
  15. WebService(1) 调用第三方服务
  16. 2021年后一个算法工程师的门槛有多高?
  17. MSA多序列比对(multiple sequence alignment)
  18. Trustonic,Rubean和CCV宣布合作开发mPOS(移动销售终端)解决方案以实现商用设备上的密码安全输入
  19. 静态资源请求被拦截问题
  20. 腾讯的“菜”——大话微信

热门文章

  1. mysql 序列自增长 恢复到1_MySQL查询结果另外自带一列自增序列号
  2. [抽奖解决方案]单位年终搞一次新颖的、与时俱进的抽奖方式,可使大家对这个单位或团队文化的强力认同。
  3. excel 科学计数批量转换成文本
  4. FindBugs-IDEA图标说明
  5. Win7下使用VC6.0的注意事项
  6. leetCode 203. Remove Linked List Elements 链表
  7. 创新 应用:物流公共信息平台的生命-黄惠良
  8. ospf-3型和5型汇总
  9. React Router 全部
  10. 时间+地区 选择器