news 2026/6/10 19:48:30

全网首发:高通平台:gstreamer正确切换分辨率或帧率的代码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
全网首发:高通平台:gstreamer正确切换分辨率或帧率的代码

经过验证,确实可用。

缺点:实际上等于重新打开一次摄像头,大约需要3秒。

切换代码:

WyCameraCtx* pCamera = g_oStreamRtsp.pCamera; gst_element_unlink(pCamera->qtiqmmfsrc, g_oStreamRtsp.capsfilter); gst_element_set_state (pCamera->qtiqmmfsrc, GST_STATE_NULL); gst_bin_remove (GST_BIN (g_oWorkCtx.pipeline), pCamera->qtiqmmfsrc); pCamera->qtiqmmfsrc = NULL; pCamera->reference = 0; pCamera->getSrc(); gst_element_sync_state_with_parent (pCamera->getSrc()); gst_bin_add (GST_BIN (g_oWorkCtx.pipeline), pCamera->getSrcForLink()); int old_fps = fps[count%FPS_RANGE]; count ++; int new_fps = fps[count%FPS_RANGE]; WY_LOG_INFO("change fps count=%d, %d -> %d", count, old_fps, new_fps); set_capsfilter (g_oStreamRtsp.capsfilter, DEFAULT_WIDTH, DEFAULT_HEIGHT, new_fps); gst_element_link(pCamera->qtiqmmfsrc, g_oStreamRtsp.capsfilter); WY_LOG_TEXT("change fps OK");

getSrc()

GstElement* getSrc() { if (reference == 0 && qtiqmmfsrc == NULL) { qtiqmmfsrc = gst_element_factory_make ("qtiqmmfsrc", qtiqmmfsrc_name); g_object_set (G_OBJECT (qtiqmmfsrc), "name", qmmf_name, NULL); g_object_set (G_OBJECT (qtiqmmfsrc), "camera", id, NULL); gst_bin_add (GST_BIN (pipeline), qtiqmmfsrc); } return qtiqmmfsrc; } GstElement* getSrcForLink() { reference++; WY_LOG_INT(reference); return getSrc(); }

set_capsfilter

void set_capsfilter(GstElement* capsfilter, const int width, const int height, const int fps) { // Set caps GstCaps* caps = gst_caps_new_simple ("video/x-raw", "format", G_TYPE_STRING, "NV12", "width", G_TYPE_INT, width, "height", G_TYPE_INT, height, "framerate", GST_TYPE_FRACTION, fps, 1, NULL); gst_caps_set_features (caps, 0, gst_caps_features_new ("memory:GBM", NULL)); g_object_set (G_OBJECT (capsfilter), "caps", caps, NULL); gst_caps_unref (caps); }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 19:48:23

Scribd电子书下载终极指南:3步打造永久离线图书馆

Scribd电子书下载终极指南:3步打造永久离线图书馆 【免费下载链接】scribd-downloader Download your books from Scribd in PDF format for personal and offline use 项目地址: https://gitcode.com/gh_mirrors/scr/scribd-downloader 在数字化阅读时代&am…

作者头像 李华
网站建设 2026/6/6 22:02:19

模具制造:从工业之母到手机外壳的生存逻辑与挑战

1. 从华强北到模具厂:一场关于“快钱”与“慢工”的对话上周去华强北转了转,虽然因为地铁施工,整个片区像个大工地,但人潮涌动、摩肩接踵的景象一点没变。三月份,好几家国产手机厂商扎堆发布了新款四核手机&#xff0c…

作者头像 李华
网站建设 2026/6/6 22:00:02

技术神话的构建与解构:工程师如何理性评估芯片与方案

1. 从“麻雀”到“神话”:一个技术舆论场的寓言小时候,我们听到树上的鸟叫,大人总说那是麻雀。听得多了,便以为全世界只有这一种鸟。长大后,即便见识广了些,听到鸟鸣,第一反应往往还是“麻雀来了…

作者头像 李华
网站建设 2026/6/6 21:57:52

别再只盯着权重剪枝了!聊聊那些更实用的CNN通道/过滤器剪枝实战方法

结构化剪枝实战:从特征图到过滤器的工程化优化指南在深度学习模型部署的实际场景中,计算资源限制与模型性能的平衡始终是工程师面临的核心挑战。传统非结构化剪枝虽然能有效减少参数量,但其带来的稀疏矩阵计算问题往往需要专用硬件或库支持&a…

作者头像 李华
网站建设 2026/6/6 21:57:08

Digital:免费开源数字电路设计工具,让硬件设计变得简单直观

Digital:免费开源数字电路设计工具,让硬件设计变得简单直观 【免费下载链接】Digital A digital logic designer and circuit simulator. 项目地址: https://gitcode.com/gh_mirrors/di/Digital 您是否曾经想要学习数字电路设计,却被复…

作者头像 李华
网站建设 2026/6/6 21:52:35

如何在Windows上完美使用PS3手柄:DsHidMini终极指南

如何在Windows上完美使用PS3手柄:DsHidMini终极指南 【免费下载链接】DsHidMini Virtual HID Mini-user-mode-driver for Sony DualShock 3 Controllers 项目地址: https://gitcode.com/gh_mirrors/ds/DsHidMini 还在为Windows系统无法识别PS3手柄而烦恼吗&a…

作者头像 李华