【问题标题】:android sipdroid RTP packet class hasMarker function always returns false.android sipdroid RTP 数据包类 hasMarker 函数总是返回 false。
【发布时间】:2011-08-14 15:46:04
【问题描述】:

我在我的 VoIP android 应用程序中使用 android SipDroid RTP 数据包类。我将捕获的帧分割成小数据包。我已经设置了 seqno、时间戳和标记。 但是当我看到日志 RTP 数据包标记 hasMarker 函数总是返回 false 。即使我将其设置为 true,它也只会返回 false。重组完整帧非常困难,所以我暂时根据小于 1024 的数据包大小重组数据包,这是相应时间戳的最后一个数据包。

有什么办法吗?

【问题讨论】:

    标签: android network-programming network-protocols rtp android-networking


    【解决方案1】:

    标记的使用取决于流的类型。在大多数音频流中,标记指示流中的不连续性(即音频数据包“突增”的第一个数据包)。对于视频编解码器,通常它意味着一帧的最后一个数据包,尽管对于大多数编解码器,这也可以通过下一个数据包中的时间戳变化来推断。但是,帧边界处的数据包丢失可能会混淆该启发式,因此标记可能很有用。 (一些编解码器 (H.264) 使用内部显式的片段结束分包标记,使得标记几乎无关紧要。)

    至于它为什么消失 - 你需要调试你的代码和你正在使用的任何库,并且可能还检查 tcpdumps/wireshark 捕获。

    【讨论】:

      猜你喜欢
      • 2016-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-20
      相关资源
      最近更新 更多