问题标签 [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.

0 投票
2 回答
528 浏览

c++ - 源阅读器和自定义不可搜索字节流

我正在实现IMFByteStream通过网络流式传输视频的自定义,但问题是我无法将其对象传递给源解析器以创建媒体源,因为CreateObjectFromByteStream返回错误:

0xc00d36ee :提供的字节流应该是可搜索的,但它不是。

当然,我的自定义字节流不可搜索,因为无法通过网络搜索。所以问题是如何使用不可搜索的字节流创建媒体源?我的最终目标是创建一个IMFSourceReader对象。源内容的类型是 ASF。

0 投票
1 回答
135 浏览

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

有人可以看看检查原因吗?谢谢

0 投票
2 回答
1505 浏览

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 中断优先级吗?

代码:

0 投票
1 回答
530 浏览

c++ - 联合内结构的 C++ 访问成员

我正在尝试为 Atmel 微控制器编写 C++ 程序。

我需要使用一些已经在 ASF 库中编写的函数,我通过将一些代码复制到 C++ 函数中来做到这一点。

我在编译时收到此错误:

“union Pm”没有名为“PM_CPUMASK”的成员

类型联合Pm看起来像这样:

在 ASF 代码中,成员PM_CPUMASK的访问方式如下:

但我得到一个错误。我认为这在 C 中是有效的,但在 C++ 中我需要访问命名的结构,然后是实际的成员。使用*(&PM->reg.PM_CPUMASK...)我没有错误,但是有没有办法在 C++ 编译器中激活这种成员访问方式?

顺便说一句,这两个结构的成员没有命名冲突。谢谢。

0 投票
2 回答
636 浏览

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 的信号应该是什么样的,所以如果是硬件问题,我应该知道该怎么做寻找?

任何对此有任何见解的人,将不胜感激。

0 投票
0 回答
575 浏览

video - 无法使用 gstreamer 将 asf 流式传输到 RTMP

我正在玩gstreamer将各种来源流式传输到RTMP. 它适用于RTSPMP4源,但是当我尝试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'

0 投票
1 回答
613 浏览

parsing - 如何解析 WMV (ASF) 文件?找不到数据包的长度

我尝试在没有任何 SDK 的情况下解析 WMV (ASF) 文件,只需解码原始字节即可。现在我遇到了 ASF_Data_Object 的问题,我找不到数据包的长度。更精确,单有效载荷数据包。

见图片: 样本

这里我有 9 个数据包,但无法找到单个数据包的大小。如何确定数据包之间的边界?

我想,我的问题在字节 0x411,其中字段“长度类型标志”。如您所见,此处为 0 值,因此所有标志都为零。偶数包长度类型。

在此处输入图像描述 在此处输入图像描述

是的,这里允许 0 值。但是如何阅读这类内容呢?

现在这是压缩的有效负载,因为复制数据是 8,而不是 1。因此,这是单个有效负载,没有额外的大小字段。

WMV 文件示例:https ://files.catbox.moe/b51l2j.wmv

0 投票
0 回答
101 浏览

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 输出

0 投票
1 回答
325 浏览

atmel - 为 SAMD21 DAC 使用外部 Vref

我使用 SAMD21 Xplained 板。我运行 Atmel Studio 提供的 DAC 示例:DAC_QUICKSTART1

在示例()附带的头文件中dac_feature.h,我有以下枚举:

原来,参考电压是内部 1V 电压。我想使用外部参考,这样 DAC 输出可以从 0V 变化到 5V 左右。

我的问题是:我如何实际设置这些设置?

在同一个文件 -dac_feature.h中,有以下结构:

这里创建了dac_reference调用引用的实例。我认为这是完成的地方,但我仍然不确定如何。

任何帮助表示赞赏。

0 投票
2 回答
55 浏览

mutagen - 使用诱变剂打印 wma 歌曲标题时出现“ASFUnicodeAttribute”问题

嘿伙计们,我最近开始使用诱变剂,但遇到了一个非常烦人的问题。假设我正在尝试使用诱变剂打印 wma 文件的标题:

该代码可能工作正常,但在打印 wma 文件的标题时,python 总是将扩展名 [ASFUnicodeAttribute...] 添加到实际文件名中:

有没有办法让代码只返回歌曲的实际标题?在此先感谢您的帮助!