是否有POSIX兼容方法将变量的范围限制为声明的函数?即:
Testing()
{
TEST="testing"
}
Testing
echo "Test is: $TEST"
Run Code Online (Sandbox Code Playgroud)
应打印"测试是:".我已经阅读过declare,local和typeset关键字,但它们看起来并不像POSIX内置函数.
我正在按照GStreamer Plugin Writer's Guide开发一个GStreamer插件,并使用gst-plugins-bad存储库中的gst-element-maker,基类设置为basetransform.作为一个起点,我开发了一个名为MyFilter的插件,它只是沿着链传递数据.该插件正在运行,但是当我运行gst-launch并将调试级别设置为2时,我收到以下错误:
alsa gstalsa.c:124:gst_alsa_detect_formats:跳过非int格式.
我正在执行命令:
gst-launch --gst-debug-level = 2 --gst-plugin-load =./ src/libgstmyfilter.la filesrc location =./ song.mp3!flump3dec!audioconvert!听觉样本!myfilter!alsasink
从gst-element-maker创建的基类我已经删除了对gst_pad_new_from_static_template()的调用,因为调用返回错误报告已经创建了接收器和源板,我已经使用gst_pad_set_chain_function()设置了链函数,实现了函数gst_myfilter_transform_caps(),并添加了代码来处理GST_EVENT_NEWSEGMENT事件.我用于源和接收器的STATIC_CAPS字符串是:
"audio/x-raw-int,"
"rate =(int){16000,32000,44100,48000},"
"channels =(int)[1,2],"
"endianness =(int)BYTE_ORDER,"
" signed =(boolean)true,"
"width =(int)16,"
"depth =(int)16"
我使用gst_pad_get_fixed_caps_func(GST_BASE_TRANSFORM_SRC [[/ SINK]] _ PAD(trans))从gst_myfilter_transform_caps()返回大写字母.使用gst_myfilter_base_init()中gst-element-maker创建的默认代码设置pad caps:
gst_element_class_add_pad_template(element_class,gst_static_pad_template_get(&gst_myfilter_sink_template));
GstBaseTransform类有问题吗?我有另一个自定义筛选器,它不使用GstBaseTransform类,并且没有此问题.我正在使用GStreamer v0.10.36和Ubuntu 12.04.