Richard Fuchs
00a6119cff
MT#61977 reverse logic for file open mode
...
Use write-only mode only if file storage and no other storage is
enabled. Use read/write for all other cases.
Change-Id: I3eea79d8a572b3985015b48cda227ab2b8d9e978
11 months ago
Richard Fuchs
c066b69df5
MT#61977 streamline output_close
...
Introduce output_get_content as a central point to obtain the contents
of a recording, whether stored as a file or in memory.
Cache contents so that we don't have to read a file multiple times.
Delegate closing of the recording file to output_close.
Change-Id: Ic5471b840d86966f547b3b8ea4bac7eca012c474
11 months ago
Richard Fuchs
b2837eddbc
MT#61977 move unlinking to output_close
...
Return success indicator from db_close_stream and use that to decide
whether to unlink the file. If DB storage failed then we can retain the
recording on file.
Change-Id: I91520f0ded223965a7a9cb1f200b8af06f555427
11 months ago
Richard Fuchs
6a939c40f4
MT#61977 split up output_setup
...
Change-Id: I800247cfbf6e4b5ed3f92658d623fad785d192f0
11 months ago
Richard Fuchs
496ae5f535
MT#61977 split up output_config
...
Change-Id: I447a8bb52bd800f2a1a1167e89b363cfa3517bcf
11 months ago
Richard Fuchs
644b66477d
MT#61977 rename functions
...
Change-Id: I362e1753603fb0be57fabb705a10510bf03d0b8a
11 months ago
Richard Fuchs
844a7e018b
MT#61977 remove unused function
...
Change-Id: I171b7eedb1fd3686ce8c5b2b071511daaca3cb36
11 months ago
Richard Fuchs
28884150b7
MT#61977 remove logically dead test
...
if ((output_storage & OUTPUT_STORAGE_MEMORY))
goto no_output_file;
jumps over this code, so there's no point in testing for
OUTPUT_STORAGE_MEMORY
Change-Id: I95eec8904714c9ab06f066ac4bb59ec0413e6916
11 months ago
Richard Fuchs
428999c376
MT#61977 turn output-storage= into list
...
Change-Id: I74bad7993ef213ca374abcb6310b9693a2af13f6
11 months ago
Richard Fuchs
e2e4d8f401
MT#55283 fix DB metadata output
...
Delay writing of call DB entry until a metadata has been set, even if
empty. This is so that we can know whether "skip DB" was set or not.
Check DB entry status with every event, not just when streams are
created. Stream may get created before all relevant data for DB entries
is there.
Change-Id: I4834c83d83cd367c9570840d7c57e9a3223c195f
11 months ago
Richard Fuchs
0c06ed0f3f
MT#61977 fix DB timestamping
...
Change-Id: I538d0b942b889b7018488e546e97f36449991569
11 months ago
Richard Fuchs
59279674bf
MT#55283 make sure DB entry exists
...
Change-Id: I54380be963b3526d2a6330aae64bc3b6e8f41559
11 months ago
Richard Fuchs
1e0c91c372
MT#55283 move option to correct section
...
Change-Id: Ied55e0859f8c8dd3387d2b564ddde09d26b1afef
12 months ago
Richard Fuchs
4cfaf1a3cf
MT#63151 remove duplication of files during make
...
Change-Id: I67f45a52660b089748c4f6f76c564bbc97fa1899
1 year ago
Richard Fuchs
e600a58502
MT#63151 make poller.h override more specific
...
Change-Id: I6ec6fdde8305615dc999021568a1277f22d3e075
1 year ago
Donat Zenichev
03e6b84ebc
MT#61856 recording-daemon: output.c make some of funcs static
...
Just because of only local usage, keep them static.
Change-Id: I0bd3badd3abb6166a7d16aab07a943d7b36594b3
1 year ago
Donat Zenichev
2fd148032c
MT#61856 recording-daemon: update const qualifiers
...
Don't use const in:
- output_avio_mem_write()
- output_avio_write()
`avio_alloc_context()` of avio.h lib wants buf
to be non-constant.
Also it's the only usage of locally defined funcs,
moreover:
- output_avio_write() has fwrite() that protects buf with const
- output_avio_mem_write() casts given buf to `const char*`
Fixes:
output.c: In function ‘output_config’:
output.c:405:39: warning: passing argument 6 of ‘avio_alloc_context’ from incompatible pointer type [-Wincompatible-pointer-types]
405 | NULL, output_avio_write, output_avio_seek);
| ^~~~~~~~~~~~~~~~~
| |
| int (*)(void *, const uint8_t *, int) {aka int (*)(void *, const unsigned char *, int)}
In file included from /usr/include/x86_64-linux-gnu/libavformat/avformat.h:316,
from types.h:9,
from output.h:4,
from output.c:1:
/usr/include/x86_64-linux-gnu/libavformat/avio.h:468:25: note: expected ‘int (*)(void *, uint8_t *, int)’
{aka ‘int (*)(void *, unsigned char *, int)’} but argument is of type
‘int (*)(void *, const uint8_t *, int)’ {aka ‘int (*)(void *, const unsigned char *, int)’}
468 | int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int (*)(void *, const uint8_t *, int) {aka int (*)(void *, const unsigned char *, int)}
int (*)(void *, const uint8_t *, int)
output.c:409:39: warning: passing argument 6 of ‘avio_alloc_context’ from incompatible pointer type [-Wincompatible-pointer-types]
409 | NULL, output_avio_mem_write, output_avio_mem_seek);
| ^~~~~~~~~~~~~~~~~~~~~
| |
| int (*)(void *, const uint8_t *, int) {aka int (*)(void *, const unsigned char *, int)}
In file included from /usr/include/x86_64-linux-gnu/libavformat/avformat.h:316,
from types.h:9,
from output.h:4,
from output.c:1:
/usr/include/x86_64-linux-gnu/libavformat/avio.h:468:25: note: expected ‘int (*)(void *, uint8_t *, int)’
{aka ‘int (*)(void *, unsigned char *, int)’} but argument is of type
‘int (*)(void *, const uint8_t *, int)’ {aka ‘int (*)(void *, const unsigned char *, int)’}
468 | int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: Leaving directory '/home/donat/git/sipwise/rtpengine/recording-daemon'
Change-Id: Ied4936fe24d55c241a3f72550e643368a014c181
1 year ago
Richard Fuchs
2845bb1efa
MT#62571 streamline resampling
...
Move destination format information into the sink object.
Decode each codec directly to its matching output format and leave
resampling to the sinks.
Move managing of the adjusted multi-channel output format into the mix
context.
Make sure all inputs to a mix outputs use the same audio format.
Change-Id: Ib9f334443bfee26d59f2ede6e13ac80c66c1b57e
1 year ago
Richard Fuchs
ef3b1c2956
MT#62571 support mixed TLS/TCP output
...
Change-Id: I8f2b6372e9379d1845245f95bb69498661fbebf9
1 year ago
Richard Fuchs
549e98e3dc
MT#62571 generalise tls_fwd_new
...
Change-Id: Icfb9487e98bb8c4dfbb728299373327c5693330d
1 year ago
Richard Fuchs
6476b8156e
MT#62571 generic mix sink
...
Change-Id: Ia02ed34cd7d8ddb39b4e3c6f8c051ab92abb355f
1 year ago
Richard Fuchs
15465d0878
MT#62571 allow creation of mix after streams
...
Change-Id: I98a45fb7394e561010a36772e9c56395e80ca26e
1 year ago
Richard Fuchs
7dfe1e30f5
MT#62571 support sending multi channel audio
...
Change-Id: I8e79b7b873308f9ed2bedbe18a4f61a6e7c3ae93
1 year ago
Richard Fuchs
a14c20d04e
MT#62571 turn tls_fwd into sink
...
Change-Id: Ic859d0dd65156761007641ccd3f4e710d7e7fa9f
1 year ago
Richard Fuchs
aa627d78ec
MT#62571 further encapsulate tls_fwd
...
Change-Id: I790ac03ee4f51027d080b9152a4cae8c995e93c1
1 year ago
Richard Fuchs
5ebd94d742
MT#62571 turn tls_fwd into allocated obj
...
Change-Id: Ie766b483a51bca7f2677f7ccf029379302437067
1 year ago
Richard Fuchs
ad063360bd
MT#62571 encapsulate tls_fwd
...
Change-Id: I06b925e2eb2bbdb7a4741a93a64701f495409616
1 year ago
Richard Fuchs
06c89206c1
MT#62571 turn mix output into sink
...
Change-Id: I59140d641679b84ce3831ba1dcad07e38deda46f
1 year ago
Richard Fuchs
316161f6aa
MT#62571 add sink to decode_t
...
Unused at this point except for the resampler
Change-Id: I093d7924c0bcc42a9a5162e1f02a374ea97e1bf3
1 year ago
Richard Fuchs
293b393177
MT#62571 remove output_config from decoder_new
...
Change-Id: I7a15c7657bc3a3492a3e7659b9c3473bb07f5e9a
1 year ago
Richard Fuchs
fb2b6986bb
MT#62571 add sink resampling stage
...
Change-Id: Ifcd25ea9ed71f913e44ebb34a8fe63ae92f748f0
1 year ago
Richard Fuchs
98db2ba250
MT#62571 add sink config method
...
Change-Id: Ia10636ec7090b8dbe976bb8b91defde8b3a34395
1 year ago
Richard Fuchs
08ee3b2b31
MT#62571 abstract sink/output
...
Change-Id: Ie08b27b268f9e9aa1bdea134bc20ef4b98ae7425
1 year ago
Richard Fuchs
374357302a
MT#62571 remove redundant decls
...
Change-Id: I281b01aafb28db98daef56fcc302c12971cf0d60
1 year ago
Richard Fuchs
b39a43a576
MT#62571 split out TLS send code
...
Change-Id: Icb645aae9cab775b86fa50c7d832dd621af2a3a1
1 year ago
Richard Fuchs
0dbbc9467f
MT#55283 create mix output only after tag is known
...
Change-Id: I3051cdad8170e6513f13d8ca12f941ca17aeaef9
1 year ago
Richard Fuchs
872049b1da
MT#55283 fix possible off-by-one
...
Change-Id: Iadf2e9be28bb3a33043e3cd811daacd17579be3f
1 year ago
Richard Fuchs
d14db53420
MT#55283 use proper atomic ops
...
Change-Id: I7075100d7a7d1644fa74456e282cf9a414bb5324
1 year ago
Richard Fuchs
38d2f0761e
MT#62571 make sure mix output exists when needed
...
Change-Id: Ib5cac983fb7bda5d32023358719ffcda34cb2570
1 year ago
Richard Fuchs
f50c056199
MT#55283 fix double free
...
Change-Id: I7fdf3973b612e254b94beb3c12b1fb1490f823ef
1 year ago
Richard Fuchs
991a2c3bce
MT#55283 silence curl compiler warnings
...
Change-Id: Ie0e4e292f10cf69e871a150957c957095bc3545b
1 year ago
Richard Fuchs
d0a3bae13e
MT#62544 support in-memory recording
...
Change-Id: I17348db1d6dd53fa582aa5198877c0bb717b7049
1 year ago
Richard Fuchs
c156315afa
MT#62544 read from storage file without reopening
...
Change-Id: I07ca39540b0beb20237fd37ed9248bf1e176c676
1 year ago
Richard Fuchs
02253c6f05
MT#62544 add output-buffer option
...
Change-Id: Id823046b52ed7ebc8d19cc1d2d7b28eff0e0b6e0
1 year ago
Richard Fuchs
d84bd002cc
MT#62544 hand-roll avio output
...
Change-Id: I7c0d92ca1346399f8bda54c8af6ab5128df1850d
1 year ago
Richard Fuchs
0f654468a6
MT#62544 support notification command
...
Change-Id: Ibc70ed9ad8d5e9a605e50094dfe55e2545a5a339
1 year ago
Richard Fuchs
6652b5f392
MT#62544 split out notify retry logic
...
Change-Id: Id3c4779c0f049a74c6fa84d19b2110bf5373f6cb
1 year ago
Richard Fuchs
21672a296c
MT#62544 split out HTTP notification logic
...
Change-Id: I716754f2b72bced6033642bec87134f8b4e05651
1 year ago
Richard Fuchs
636c9f193f
MT#55283 add L16 and G726 support
...
Change-Id: Id12bd895cc8ce99d6988360bedaff75fb0b5a362
1 year ago
Richard Fuchs
8e5cd0aa9d
MT#55283 scale falloff
...
Change-Id: Iab3a3bff3f32561166f9c3076125103c29b5ab1f
1 year ago