It is bad design to have recording related code in the encoder. The
encoder should handle exclusively encoding related tasks.
Move recording related code to audio_rtp.
Change-Id: I4e2c59b09d40d1ae07b88cfb61865312a69c0942
Reviewed-by: Philippe Gorley <philippe.gorley@savoirfairelinux.com>
Keeps track of sample format in AudioFormat, because MediaStream needs a
format.
Change-Id: I3ee3fe05f3d5d98706a20132876685e37ffdd966
Reviewed-by: Hugo Lefeuvre <hugo.lefeuvre@savoirfairelinux.com>
Fixes problems with mingw not including inttypes.h when needed.
Change-Id: Icd3e1153eac74ac74e25d2ae1d0df4dc4e655314
Reviewed-by: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
- the default setting is /Zi(ProgramDatabase), so this patch
specifies that so the line can be removed with a sed in our CI
Change-Id: I2ac60d755569f8aec3ca94f4b73b9cae4993e8b1
Adds libswresample to the package check. Namely, we don't want to use
libavresample, which has a different API. The latter exists solely for
compatibility with Libav.
Change-Id: I717975c696e2de2787be98cac07862215095b667
Using MediaFilter would make the resampling time longer and more
unpredictable than directly using libswresample.
Adds libswresample as a dependency.
Simplifies Resampler class.
Resampler detects changes in input and output formats automatically.
Changes Audiofile to use Resampler instead of MediaFilter.
Change-Id: I24919e8fa514dbb4a38408e338016976e7424136
Fixes regression introduced by b1539bd. Since Tone was now in a
shared_ptr, reset was called on the shared_ptr instead of the Tone.
Change-Id: If2041feb8cffbb62f1748867a5099c2a0718de1d
If FFmpeg was unable to find a framerate in avformat_find_stream_info,
fall back to the DeviceParams' framerate.
This was the case for certain Macs.
Change-Id: I0ee7ebeef37676ff5907482421425051e880c6f5
Allows different ringtones to be used to compensate for sndfile no
longer being used to decode them.
Also prepares for eventual audio streaming.
Change-Id: I0e5d4374266887b09fdab5846f85ed25b5a1679c
The flac, ogg and vorbis contribs were used by sndfile. They are not
used by ffmpeg, making them superfluous.
Change-Id: I57b2078c617fa764e3bc6302816a61ec9caa20c3
Removes unused/deprecated audiorecord/audiorecorder
Allows any file to be used as a ringtone (mp3, ogg, etc)
Change-Id: I9ce33ec3d5f083caf098266befa597e78a95d7d6
If the PCM signed 16 decoders cannot be found, skip the test
Change-Id: If7ddf9778465415232e59f43b88ba17bf3bf7dbd
Reviewed-by: Sebastien Blin <sebastien.blin@savoirfairelinux.com>
FFmpeg's RTP muxer does not support GSM, while Ubuntu does not package
iLBC. Removes the old configure switches.
Removes package detection from contrib. Keeps contrib rules in case GSM
is later readded.
Change-Id: I705a521e2baf34c757c22a72e04cdf27233b5a7b
Makes both ringtone and dtmf tones shared pointers instead of raw
pointers to avoid race conditions and use-after-free's.
Change-Id: Ib8dc12c17905ca9bf0bc9dc01667b3194be70927
This is redundant, the information can already be found in the AVStream
object and is set by avcodec_parameters_to_context. Let FFmpeg take care
of these details.
Change-Id: I199de87a852caeef34047e4f906ccd21dcb696c4
Reviewed-by: Sebastien Blin <sebastien.blin@savoirfairelinux.com>
requestKeyframe is stateless and failure is not critical.
Change-Id: Iced5b13496e07153e7352d316c4cb5b06a9aab89
Reviewed-by: Sebastien Blin <sebastien.blin@savoirfairelinux.com>
Moves the AudioBuffer to AVFrame conversion logic outside of the
MediaEncoder, so the latter only deals with AVFrame.
Does not copy the buffer, the resulting AVFrame will simply point to the
existing buffer.
This is the first in a series of patches attempting to rid Ring of its
RingBuffer/RingBufferPool system.
Change-Id: I17c9fcdb96dc945c3eeace647303339d558bcf38
Reviewed-by: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
FFmpeg's av_image_fill_black supports more pixel formats.
Works around casting int* to ptrdiff_t* on platforms where ptrdiff_t
is not the same size as int by recreating the linesize array.
Change-Id: I2825b18c6acc921a3cd3bb1398565df0aa657153
As described in RFC 2462, an ipv6 address can have several states and
some should be ignored when initializing an ICE session:
In fact DEPRECATED address SHOULD NOT be used in new communications.
Also, a TENTATIVE address is not ready to be used too. So, this
patch ignores this kind of addresses when initializing a new connection.
Change-Id: I95637286eb68451352fd7289a49ddc3cdf5ac383
Gitlab: #29
Reviewed-by: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
Moves the recorder up one level to the VideoInput, VideoReceiveThread
and AudioReceiveThread, instead of the MediaDecoder (there's no
equivalent to the VideoInput in the audio layer).
Emits the RecordPlaybackStopped when the recording is stopped, so the
client can sync its recording state with the daemon, in case the daemon
stops recording by itself (rather than user intervention).
Change-Id: I743b080cb354273ec074fec51caf2a4328fc1c58
- adds headers for msc compliance
- removes C99-style casting of a list initializer in a C++ file
Change-Id: Id77a3945c060b26d6a1bc5920e8461cc7310b309
Reviewed-by: Philippe Gorley <philippe.gorley@savoirfairelinux.com>
a CANCEL message takes two parameters:
1. The peer device
2. The transfer id to cancel
Only one was given in some cases
Change-Id: I4f73b3d64be90bdb4d90fcb6bb935eb460840df5
Gitlab: #18
It better explains what the method does, as the recorder is not started
at that moment).
Change-Id: Ib536600b663e9ee188257b3b166f497f5a2b2c1e
Reviewed-by: Sebastien Blin <sebastien.blin@savoirfairelinux.com>
MediaRecorder no longer uses VideoSender (encoder) as a source for its
local video and will directly use VideoInput (decoder), as it is earlier
in the pipeline.
This is the first step to support switching inputs while recording.
Change-Id: Ia163efa3b20a349a93fc7b05213ec5e00de1704e
Reviewed-by: Sebastien Blin <sebastien.blin@savoirfairelinux.com>
Lowercase pins are valid, and easier to enter on a phone's smaller
keyboard. Also makes it so some characters that can be difficult to tell
apart from each other in uppercase easier to differentiate.
Change-Id: I7aee29ceef0fbc69c046e0bb7ced486de2a3d4a4