Resolve file name conflicts between different components
Ensure shared log levels are identical across components
Encapsulates lib/*
Change-Id: If848d6fa0e4cd8eac88ce9e63ee77fc5a7a481fd
Metadata might be empty, so we can't rely on that being set as a start
trigger. Use an explicit one.
Follow-up-to: I3bb58dff
Change-Id: I95f02a1179940cedc3f96ce70557658c43e79bdc
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
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
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
Use provided macros for initrialise str objects everywhere instead of
manually setting .s and .len. This allows for flexibility to extend str
objects.
Change-Id: I5ebca0bc82b348301c2c8e94b974c7acbf249b82
Parse out the :| separate list of metadata keys when the metadata is
loaded, and stored it in parsed format, instead of doing when running
the DB update and discarding the result.
Functional no-op.
Change-Id: I96d706d63eb9337ba572a7f17363cbda553745f6
This is the "type" of the recording, but sadly we already have "type"
with a slightly different meaning (i.e. the SSRC in hex for single
streams), so we name this the recording "kind".
Change-Id: I2f7c36e42f7eb075a4324e9659d2845ab40b4f07
Keep track of how many streams have been added to the DB for each call.
Then at the end of the call, if there are no corresponding streams in
the DB, delete the entry for the call instead of marking it as complete.
This eliminates DB entries for calls that were cancelled or failed.
Change-Id: Id2eccd555a0801b4a8cc56299fe49ea2899c4826
This function returns -1 as error value, which would be lost if
immediately assigned to an unsigned type.
Change-Id: If9050b793519a529df671527c3a3e33ca2afc1bd
Do not try to pass possibly negative values to malloc() calls that
do not expect them.
Change-Id: I20933983c26287cde5769e1594060b5a04eb09f6
Warned-by: coverity
Intermittent errors from the DB can cause the connection to be reset and
not re-established for the next statement to be executed, leading to
segfaults.
fixes#742
Change-Id: I1ed5b75457ab7167a70df5e04a964d37f98e60f7
- added new column 'stream mediumblob' to 'recording_streams' table for
audio streams
- added new option 'output-storage' with values 'file' (= default),
'db' or 'both'