Класс пакетов RTP android sipdroid Функция hasMarker всегда возвращает false. - PullRequest
1 голос
/ 28 апреля 2011

Я использую класс пакетов RTP для Android SipDroid в своем приложении для Android VoIP.Я разделяю захваченные кадры на маленькие пакеты.Я установил seqno, метку времени и маркер.Но когда я вижу журнал RTP-маркер пакета, функция hasMarker всегда возвращает false.Даже если я установил значение true, он возвращает только false.Очень сложно собрать весь кадр, так что временно я собираю пакет на основе размера пакета меньше 1024, который является последним пакетом соответствующей временной метки.

какое-либо решение?

1 Ответ

1 голос
/ 29 апреля 2011

Использование маркера зависит от типа потока. В большинстве аудиопотоков Маркер указывает разрыв в потоке (то есть первый пакет "всплеска" аудиопакетов). Для видеокодеков обычно это означает последний пакет кадра, хотя для большинства кодеков это также может быть выведено путем изменения временной метки в следующем пакете. Однако потеря пакетов на границе кадра может запутать эту эвристику, поэтому маркер может быть полезен. (Некоторые кодеки (H.264) используют внутренние явные маркеры пакетирования конца фрагмента, что делает маркер в основном неактуальным.)

Относительно того, почему он исчезает - вам нужно отладить ваш код и все библиотеки, которые вы используете, и, возможно, также проверить записи tcpdumps / wireshark.

...