问题标签 [asf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 源阅读器和自定义不可搜索字节流
我正在实现IMFByteStream
通过网络流式传输视频的自定义,但问题是我无法将其对象传递给源解析器以创建媒体源,因为CreateObjectFromByteStream
返回错误:
0xc00d36ee :提供的字节流应该是可搜索的,但它不是。
当然,我的自定义字节流不可搜索,因为无法通过网络搜索。所以问题是如何使用不可搜索的字节流创建媒体源?我的最终目标是创建一个IMFSourceReader
对象。源内容的类型是 ASF。
directshow - ASF 文件不能被 GraphEdit 渲染,但可以被 WMP 播放
我的程序使用 Windows Media Foundation WMV/WMA MFT 编码为 ASF 格式(mux 由 ffmpeg 完成)。生成的文件在Win10上可以被Windows Media Player完美播放,但是GraphEdit渲染失败,错误代码== NS_E_INVALID_DATA (0xC00D002FL)。
使用 IWMSyncReader->GetNextSample 读取音频样本时会发生同样的错误。
此处有一个损坏的视频示例:https ://www.dropbox.com/s/x8uyaqbclq93u5d/big_buck_bunny.wmv?dl=0
有人可以看看检查原因吗?谢谢
usb - 使用 USB 时 Atmel SAM D21 DMA 卡在忙碌状态
我正在使用带有原型的 SAMD21 xPlained pro 来获取信号,使用配置为收集 5500 个样本的内部 ADC 和 DMAC。然后样本通过目标 USB 传输到 PC 应用程序。
我为此编写的固件正在工作,但我注意到 DMA 有时会陷入忙碌状态。为了调试,我取消了通过 USB 传输到 PC 的部分。
我注意到 DMA 工作正常并将样本传输到内存,但是如果我将 USB 电缆连接到 PC(不通过 USB 传输数据),DMA 会不时卡住;但是一旦我断开(目标)USB 电缆,DMA 就会连续工作而不会陷入忙碌状态。
我怀疑它与 USB 和 ADC 的中断和优先级有关,它们都使用 DMA。我想我应该将 ADC 采样设置为最高优先级,这样 USB 就不会导致 DMA 卡在忙碌状态,但我找不到如何在代码中配置它(我正在使用 ASF)。
知道为什么插入 USB 会导致 DMA 偶尔卡在忙碌状态吗?这个问题是否应该与我怀疑的优先级有关,知道如何降低 USB 中断优先级吗?
代码:
c++ - 联合内结构的 C++ 访问成员
我正在尝试为 Atmel 微控制器编写 C++ 程序。
我需要使用一些已经在 ASF 库中编写的函数,我通过将一些代码复制到 C++ 函数中来做到这一点。
我在编译时收到此错误:
“union Pm”没有名为“PM_CPUMASK”的成员
类型联合Pm
看起来像这样:
在 ASF 代码中,成员PM_CPUMASK
的访问方式如下:
但我得到一个错误。我认为这在 C 中是有效的,但在 C++ 中我需要访问命名的结构,然后是实际的成员。使用*(&PM->reg.PM_CPUMASK...)
我没有错误,但是有没有办法在 C++ 编译器中激活这种成员访问方式?
顺便说一句,这两个结构的成员没有命名冲突。谢谢。
ethernet - 以太网 PHY 困难
我正在研究基于 Microchip(Atmel)SAM3X8C 的设计。设计的以太网部分几乎是从 ATSAM3S-EK2-ND 板上复制而来的(我没有,但图纸是制作布局的基础)。我一直与 Microchip 联系,他查看了图纸(和代码)并认为它是正确的。
问题是我无法完成硬件初始化,并且不知道如何继续。
使用的 PHY 是 Davicom DS9161A,它由 ASF 直接支持(选择该部件是因为它与评估板上使用的相同)。与 PHY 的通信正常,我知道这是因为在 ASF 生成的代码中,我正在读取和写入寄存器 - 而我知道其值的寄存器正在读取正确的值(例如,PHYID1 寄存器给出了正确的值0x0181)。
尝试打开链接时会出现此问题。如果我尝试进行自动配置,它会因超时而失败。这发生在尝试进行自动协商的 ASF 生成的代码中。我在这里包含了代码,因此我可以对到目前为止我所尝试的内容发表一些评论:
很长一段时间后,代码(原样)在超时检查中失败。ul_value 中的值始终为 0x7859,据我了解,这意味着:
DM9161A 无法在 100BASE-T4 模式下执行 DM9161A 能够在全双工模式下执行 100BASE-TX DM9161A 能够在半双工模式下执行 100BASE-TX DM9161A 能够在全双工模式下执行 10BASE-T DM9161A 能够在半双工模式下执行 10BASE-T PHY 将接受前导码被抑制的管理帧 自动协商过程未完成 检测到远程故障条件 DM9161A 能够执行自动协商 链路未建立 没有 jabber 扩展寄存器功能
现在,我不知道为什么会出现远程故障情况,也不明白为什么永远无法建立链接。如果我跳过自动协商,并尝试将其强制为 10baseT(全双工或半双工)或 100baseT(全双工或半双工),它仍然具有相同的值。
Microchip 建议我尝试通过回送来隔离问题,但我不确定如何执行此操作。我可以使用网络控制寄存器在 MAC 级别执行此操作,但在完成此操作之后 - 我如何在此级别发送和接收以检查它是否正常工作?我可以使用基本模式控制寄存器在 PHY 级别上执行此操作,但同样,我设置后如何测试?
我正在订购评估板尝试在那里执行此操作 - 以便我可以将结果与我所看到的进行比较,并尝试推断(尽管接口略有不同,因为我使用的是 LQFP 封装,而不是 BGA,但是界面的那部分希望是相同的。
其他可能在堆栈交换中得到回答的机会较小的问题 - 是否有任何地方描述了进出 PHY 的信号应该是什么样的,所以如果是硬件问题,我应该知道该怎么做寻找?
任何对此有任何见解的人,将不胜感激。
video - 无法使用 gstreamer 将 asf 流式传输到 RTMP
我正在玩gstreamer
将各种来源流式传输到RTMP
. 它适用于RTSP
和MP4
源,但是当我尝试asf
源时它不起作用。
我正在使用的管道是:gst-launch-1.0 -v filesrc location="C:\\Users\\user1\\Download
s\\Video\\test2.asf" ! asfparse ! asfdemux ! flvmux ! rtmpsink location='rtmp://127.0.0.1:1935/live/test'
我得到的输出是:
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstAsfParse:asfparse0.GstPad:src: caps = video/x-ms-asf, parsed=(boolean)true
/GstPipeline:pipeline0/GstASFDemux:asfdemux0.GstPad:sink: caps = video/x-ms-asf, parsed=(boolean)true
/GstPipeline:pipeline0/GstFlvMux:flvmux0: streamable = true
/GstPipeline:pipeline0/GstFlvMux:flvmux0.GstPad:src: caps = video/x-flv, streamheader=(buffer)< 464c..., 1200.... >
/GstPipeline:pipeline0/GstRTMPSink:rtmpsink0.GstPad:sink: caps = video/x-flv, streamheader=(buffer)< 464c.., 1200... >
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Got EOS from element "pipeline0". <<<-------- why?
Execution ended after 0:00:00.001711787
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
该文件使用playbin
.
流信息:
如果我更改管道以重新编码视频,则流媒体端没有错误,但两者都VLC
无法gstreamer playbin
播放,他们似乎只是永远尝试。
用于重新编码和流式传输的管道:
gst-launch-1.0 -v filesrc location="C:\\Users\\user1\\Downloads\\Video\
\test2.asf" ! asfparse ! asfdemux ! decodebin ! x264enc ! flvmux ! rtmpsink location='rtmp://127.0.0.1:1935/live/test2'
parsing - 如何解析 WMV (ASF) 文件?找不到数据包的长度
我尝试在没有任何 SDK 的情况下解析 WMV (ASF) 文件,只需解码原始字节即可。现在我遇到了 ASF_Data_Object 的问题,我找不到数据包的长度。更精确,单有效载荷数据包。
这里我有 9 个数据包,但无法找到单个数据包的大小。如何确定数据包之间的边界?
我想,我的问题在字节 0x411,其中字段“长度类型标志”。如您所见,此处为 0 值,因此所有标志都为零。偶数包长度类型。
是的,这里允许 0 值。但是如何阅读这类内容呢?
现在这是压缩的有效负载,因为复制数据是 8,而不是 1。因此,这是单个有效负载,没有额外的大小字段。
WMV 文件示例:https ://files.catbox.moe/b51l2j.wmv
delay - 系统延迟功能没有产生正确的时序
如果有人可以帮助我解决这个问题,我将不胜感激。
这就是我所知道的。
我有一个基于 atmega328p 处理器的定制 PCB。
我正在使用 atmelstudio 7.0.1645 IDE。
我已经使用 ASF 向导来设置我的项目。
我正在使用 USBTinyISP 进行编程。
在我的主循环中,我正在切换 LED 并延迟 1 秒。
然而,当我检查示波器时,LED 以 1.6 秒的速度闪烁
我检查了保险丝,所有保险丝都正确设置为默认值(E=0xff,H=0xD9,L=0x62),这应该提供 1MHz 时钟。(8MHz 内部 RC 加上除以 8 的预分频器)
我正在使用 ASF 的系统时钟控制服务和延迟例程服务。
调用sysclk_get_main_hz();
返回 16000000。
调用sysclk_get_source_clock_hz();
返回 1000000。
调用sysclk_get_cpu_hz();
返回 1000000。
这对我来说似乎都是正确的。
此外,如果我从 arduino ide 编译和编程一个类似的项目,延迟功能就会出现,所以我觉得我可以排除任何明显的硬件问题。无论如何,我只是在使用内部 RC。
我已经为类似的问题苦苦挣扎,但只是遇到了我觉得我已经筋疲力尽的常见时钟设置问题。
任何额外的帮助将不胜感激。谢谢。
主程序
conf_clock.h
AVRDude 输出
atmel - 为 SAMD21 DAC 使用外部 Vref
我使用 SAMD21 Xplained 板。我运行 Atmel Studio 提供的 DAC 示例:DAC_QUICKSTART1
在示例()附带的头文件中dac_feature.h
,我有以下枚举:
原来,参考电压是内部 1V 电压。我想使用外部参考,这样 DAC 输出可以从 0V 变化到 5V 左右。
我的问题是:我如何实际设置这些设置?
在同一个文件 -dac_feature.h
中,有以下结构:
这里创建了dac_reference
调用引用的实例。我认为这是完成的地方,但我仍然不确定如何。
任何帮助表示赞赏。
mutagen - 使用诱变剂打印 wma 歌曲标题时出现“ASFUnicodeAttribute”问题
嘿伙计们,我最近开始使用诱变剂,但遇到了一个非常烦人的问题。假设我正在尝试使用诱变剂打印 wma 文件的标题:
该代码可能工作正常,但在打印 wma 文件的标题时,python 总是将扩展名 [ASFUnicodeAttribute...] 添加到实际文件名中:
有没有办法让代码只返回歌曲的实际标题?在此先感谢您的帮助!