Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Play media and AMR(WB) codec

Aperta
#1,841 4 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
15/100
Tipo di issue
Bug
Chiarezza
Da chiarire
Stato di attività
Ferma

Direzione di ricerca

The payload gives only a playback log, so start by locating the playback encoder creation in the AMR transcoding path — the lines naming libopencore_amrnb, "Creating SSRC transcoder from PCM-S16LE/8000/1 to AMR/8000/1" and "Created media playback context" come from there — and check how the mode-set is turned into an initial rate. Then compare with the normal call path, where incoming CMR from the peer is honoured, to see where playback skips that handling. Done means the RTP dump's FT bits change after A sends CMR, but a maintainer should confirm the intended design first.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug
rtpengine version the issue has been seen with

12.4.1.7+0~mr12.4.1.7

Used distribution and its version

AlmaLinux 8.10

Linux kernel version used

4.18.0-553.5.1

CPU architecture issue was seen on (see uname -m)

x86_64

Expected behaviour you didn't see

We have a call between A and B with media passing through rtpengine (12.4.7.1) and with the same codec on both sides "AMR/8000/mode-set=0,2,4,7; mode-change-period=2; mode-change-neighbor=1; max-red=0".
Then during the call we need to block media toward B and play some media wav file to A.
In the log I see following after play media command:

[core] Output codec for media playback is AMR/8000
[codec] Creating SSRC transcoder from PCM-S16LE/8000/1 to AMR/8000/1
[internals] supported sample format for output codec libopencore_amrnb: s16
[internals] using output sample format s16 for codec libopencore_amrnb
[core] Using 5900 as initial AMR bitrate based on mode-set
[core] Initialized encoder with frame size 160 samples
[internals] supported sample format for input codec pcm_s16le: s16
[codec] Encoder created with clockrate 8000, 1 channels, using sample format 1 (ptime 20 for 160 samples per frame and 160 samples (40 bytes) per packet, bitrate 6700)
[codec] Created media playback context for PCM-S16LE/8000/ -> AMR/8000/mode-set=0,2,4,7; mode-change-period=2; mode-change-neighbor=1; max-red=0

After that A hears that playing media ok but in RTP dump I see that rtpengine keeps enconding rate constant during the whole playing (FT bits: AMR 5,90 kbit/s (2)) despite the fact that the peer CMR from A allows encoder to switch to a higher speed rate.
Please advice if it's possible for encoder to follow the CMR from the peer during play media.
It looks that the behaviour is the same with AMR-WB codec and it does not depend on rtpengine version, we tested also with 11.2.1.5.
Is there additional data I need to provide?

Unexpected behaviour you saw

No response

Steps to reproduce the problem

No response

Additional program output to the terminal or logs illustrating the issue

No response

Anything else?

No response

Lingua principale
Perl
Stelle
992
Fork
459
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di sipwise/rtpengine

Tutte le issue di sipwise/rtpengine

Issue simili

Altre issue su Perl

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.