Richard Fuchs
a65954bbbb
MT#55447 refactor encoder callback struct
...
Use a single dedicated struct to hold data used as callback from decoder
to encoder.
Change-Id: I747cd495bc98a33629d0acd77909023f8f0e89ff
3 years ago
Richard Fuchs
0558cfbc05
TT#178400 collect and report RTP sequencing metrics
...
Change-Id: I037b1dff876eece1d3c8d4eda715587f294c1cd6
3 years ago
Richard Fuchs
206ea9efd5
TT#14008 update for ffmpeg 5.1+
...
Starting with release 5.1, ffmpeg obsoletes the `channels` and
`channel_layout` fields, replacing them with a unified `ch_layout`
struct of type AVChannelLayout. Add wrapper defines into the
compile-time build-test headers fix_frame_channel_layout*.h to
accommodate both new and old versions.
Change-Id: I3d43b85dc3140155a61b1cf2269cda166ad88e9a
3 years ago
Richard Fuchs
e683b813e5
TT#14008 fix possible AMR decoder mem leak
...
closes #1512
Change-Id: I7cd5605adbcc340b5e73d7d3daf5f8f70d8b6931
3 years ago
Richard Fuchs
08701819da
TT#185100 support setting opus encoding complexity
...
Change-Id: I8c1b9c93df2f2de5d8e4e282f3e728d8163aa4b5
3 years ago
Richard Fuchs
343bde8a0e
TT#185100 update int type to bool
...
Change-Id: I7b2169d66c24fa75e1dfae8b53b8d7e0e5c23c98
3 years ago
Richard Fuchs
626defa4b5
TT#14008 eliminate compiler warning
...
AVCodec * has been decorated with "const" in newer versions of ffmpeg.
Change-Id: I999f1aba761a5687067a603d76b93b07e5ec91a3
3 years ago
Richard Fuchs
97e8c1d990
TT#109800 fix mismatched CN generator format
...
Upsample output of DTX CN generator to match the format of the parent
codec.
Change-Id: Ic2de29a6b711a5258af25e8ec98decaf218d2ada
3 years ago
Richard Fuchs
1bc15de746
TT#14008 prevent possible NULL dereference
...
closes #1434
Change-Id: I21fa86b0410f86cd6d77951cff75c5eb03da38e9
3 years ago
Richard Fuchs
3582b623a9
TT#136957 DTMF delay support
...
Change-Id: I62dce272a1acc0a9a3b6b8c37df68a18357dbee4
3 years ago
Richard Fuchs
9da5a46fcb
TT#136956 support DTMF-security=random
...
Change-Id: I4100c1511be743901d302491238872990f213118
3 years ago
Richard Fuchs
320642ddf2
TT#136956 support DTMF-security=tone
...
Change-Id: Ide898f68d788f39674b8fdb4f4edb0aa14e0884b
3 years ago
Richard Fuchs
a1a0b03ab9
TT#136956 refactor DTMF frequency generator code
...
Change-Id: Ibcecc6dd04971e575747e3609f01858435351d92
3 years ago
Richard Fuchs
3a63929ca1
TT#91151 ignore Opus format for comparison purposes
...
This is a stub until a proper format comparison can be added, for at
least Opus and AMR
Change-Id: Ib25f79b492f227c78dd59a4d00220d17b15a40c7
4 years ago
Richard Fuchs
413798e43f
TT#132251 implement media silencing
...
Change-Id: I0902bd72e2733b96ff75bcf52856a58c51a750f6
4 years ago
Richard Fuchs
6e160da497
TT#14008 move avpkt alloc to encoder_new
...
If encoder_config errors out for some reason, avpkt may end up
uninitialised. Make sure there is an avpkt when flushing/closing the
encoder. Also make the encoder input more resilient against
half-initialised encoders for the same reason.
closes #1312
Change-Id: I44ebcf6e35f1c383aa5c8202b5d9bbf968b0d5f1
4 years ago
Richard Fuchs
1d387b98ef
TT#112700 rework codec offer/answer routine
...
Complete overhaul of the codec handling code:
*) obsolete flags `asymmetric codecs`, `symmetric codecs`, `reorder
codecs`
*) support proper codec offer/answer
*) split codec manipulation (strip/offer/accept/etc) into separate
functions for clarity and better code maintenance
*) fully update codec handlers in both directions after an answer
*) explicit allocation and handling of codecs and payload types in a
codec_store object
*) improve codec matchup logic during answer
*) more explicit handling of supplemental codecs (CN/DTMF)
*) remove now obsolete hacks for handling certain use cases
Change-Id: I996705ba8fe339524c2f70e6bb0fd854f9a1f4fb
4 years ago
Nathanaël Semhoun
c76b0b7ef6
Fix G729 packet duration
...
Without this correction, timestamp is not incremented in case of transcoding
4 years ago
Richard Fuchs
b110072ae4
TT#14008 deprecate av_init_packet
...
Recent ffmpeg versions have removed AVPacket from the public ABI,
therefore deprecating av_init_packet on statically allocated objects.
The replacement is av_packet_alloc()/av_packet_free().
Change-Id: I5f93fbd19e43413c3328e143cc9147fbdf12d910
4 years ago
Richard Fuchs
b734fc080e
TT#14008 fix integer handling (overflow/sign) issues
...
Warned-by: coverity
Change-Id: Ia473075046253b2ffcf65344f65469772e6df993
4 years ago
Richard Fuchs
c7431aa846
TT#122401 disable sample filter for CN resampler
...
Change-Id: I42085cc7952d86f2da1efa2d29ea85321b001da4
4 years ago
Richard Fuchs
d4fbec39d1
TT#122401 return ptime from decoded packets for DTX
...
Change-Id: I382b842406fbee73ec752f6f4f0832736222ef52
4 years ago
Richard Fuchs
64670ffb61
TT#122401 add option to bypass AMR SID
...
Change-Id: I0504d452737573f388941dcca507e3adfd5744c6
4 years ago
Richard Fuchs
ec68dfeb31
TT#122401 add configurable CN method
...
Change-Id: I2aa9901b2a9dcf64563a84d77fa40d23b6c25525
4 years ago
Richard Fuchs
7e24a7e4c8
TT#122401 add CN DTX method
...
Change-Id: I03c977e10f9bdad284dbafb048b2a19d798957e5
4 years ago
Richard Fuchs
dc38a0e88e
TT#122401 support multiple DTX method per codec
...
Change-Id: I775d56e675255b3dca4227779d1146d8c8806f06
4 years ago
Richard Fuchs
11988524ab
TT#122401 add generic silence DTX generator
...
Change-Id: I673c1115b6678842d7d49febea3c4ecbb67f534a
4 years ago
Richard Fuchs
5d5098efde
TT#122401 keep track of decoder's output format
...
Change-Id: Ib55ba9787b07885cfc9544f93749710ce8cafc91
4 years ago
Richard Fuchs
da06ed217b
TT#122401 add ptime to DTX trigger
...
Change-Id: I96aabff398cbe296243d8bdf7499468c6da96352
4 years ago
Richard Fuchs
7c3982ea11
TT#122401 rename "lost packet" functions to DTX
...
Change-Id: Ie39ff68eb0be8bf77f1b6c213df837c08fc869b7
4 years ago
Richard Fuchs
b1409e58e1
TT#122401 correct ptime handling for negative values
...
Change-Id: I3ca96971ec20aa02deb80d2d9613bbaa33c3ae05
4 years ago
Guillem Jover
adbd071c14
TT#111150 Do not use old-style declarations
...
Change-Id: I08a702ebfbcc5d3ac1dca284abdaa3f6567b9272
Warned-by: gcc -Wold-style-declaration
4 years ago
Guillem Jover
07695d2abb
TT#111150 Use modern <stdint.h> uint<bits>_t types
...
The u_int<bits>_t are BSD legacy types, while the new ones are specified
by C99 and SUSv3.
Change-Id: Ia748cabc33a7e5adc2c7a6049ad1e55be0c788a8
4 years ago
Richard Fuchs
d5d0a3a994
TT#111150 convert str.len to size_t
...
This makes the type in line with string(3) functions and eliminates some
compiler warnings.
Also update the related bencode data type.
Change-Id: I7ef4024f4b5a0f737b3dbe03bcd078032395bce6
4 years ago
Guillem Jover
648e74fd39
TT#108003 Handle unsigned wrap around in amr_encoder_mode_change()
...
We only do 1 decrements/increments so the check for the upper-bound will
always catch any downward wrap-around or an upward out-of-bound.
Change-Id: Ibdb9a69e1a55f34ffca56721c310efc505b86f99
Warned-by: coverity
4 years ago
Richard Fuchs
a6a18233de
TT#102450 fix some timestamping issues
...
Make sure G.722 rate multiplies is applied in the right places
Don't trust encoders to return proper timestamps, but instead track them
explicitly based on frame duration
Change-Id: Ia9fa96cf662da97159fa170c3a3f37516889e1bd
4 years ago
Richard Fuchs
25d90cea0d
TT#98901 keep track of head PTS in packetiser
...
Change-Id: I3439318037da535701f84b070b107ae19ca3e261
4 years ago
Richard Fuchs
ade5c47b02
TT#98901 wire up codeclib debug output
...
Change-Id: I5daf59fe8218c2ff25d4baac79ba802f101d6279
4 years ago
Richard Fuchs
30733ec5cd
TT#97301 support granular log levels
...
Change-Id: Ife458bd2449f61113a3e6db1708821570d92dc23
4 years ago
Richard Fuchs
c5667e3bf7
TT#100200 add CN decoder
...
Change-Id: Ic4ff122745569e3892f1a95fedb36ce9d2495349
5 years ago
Richard Fuchs
bae79d3fef
TT#98901 handle AMR SID DTX
...
Change-Id: I418c43e0cef2a70143010235988523f195a3bf5a
5 years ago
Richard Fuchs
c3ebbc4b43
TT#98901 add decoder_packet_lost() and callbacks
...
Change-Id: I782b79ac02238ae7bc52bf05ced4318aa14d6164
5 years ago
Richard Fuchs
ee74914b22
TT#92250 ignore format parameters for DTMF codec
...
closes #1098
Change-Id: I180667a7c5fa9da8a95d99826cb3fc4006598976
5 years ago
Richard Fuchs
2ce7b6476e
TT#92250 better handle supplemental codecs
...
Change-Id: Id6bac3892642d6ae58c71a1781b5d282c48a3a1c
5 years ago
Richard Fuchs
0222936981
TT#91003 handle NO_DATA frames from AMR encoder
...
Change-Id: I437ae1a8b2ee440a12caccf8cfae486b90aa00c3
5 years ago
Richard Fuchs
c89208bf68
TT#91003 skip empty keys in key=value list
...
Change-Id: I148295796d23a3a48d5fe06bce690c96a2137f4c
5 years ago
Richard Fuchs
cd5cd8483b
TT#91003 add `mode-change-interval` AMR option
...
Change-Id: I08d54cf5c17c1d1d66218cdb9c06aa5ac9bb6837
5 years ago
Richard Fuchs
1020bcb80d
TT#91003 honour AMR mode change restrictions
...
Change-Id: I632f27c7068f3b7f6f3648992fcc6e5b5d65a29a
5 years ago
Richard Fuchs
ed9de316c7
TT#91003 support sending CMR
...
Change-Id: Ief485087b36ce61c80f9d004e77113b31298b250
5 years ago
Richard Fuchs
c239035057
TT#91003 abstractise ffmpeg av_opt setting
...
Change-Id: I9de54c7c64b771bafccc8e4ffd638c4cbd1314d5
5 years ago