- 28 May, 2018 1 commit
-
-
Philippe Gorley authored
Filters were reverted for the release so the binaries wouldn't include libavfilter (which wasn't yet used). This reverts commit 1e6a4716. Change-Id: Ib9790a544b442066265b3fe1ea96313be35eff62 Reviewed-by:
Sebastien Blin <sebastien.blin@savoirfairelinux.com>
-
- 16 May, 2018 1 commit
-
-
Philippe Gorley authored
FFmpeg may check channels instead of channel_layout, so set both. Change-Id: I25094b104529e7d5ce3476d580a43fc5a445f48d
-
- 15 May, 2018 1 commit
-
-
Philippe Gorley authored
Refactors the MediaEncoder class so it can be reused elsewhere in the codebase. Concretely, MediaEncoder now supports multiple streams and file formats. Adds a unit test for MediaEncoder. Change-Id: I27d6f2e8538809e01fef5c35978a0c35dcf8cae4 Reviewed-by:
Sebastien Blin <sebastien.blin@savoirfairelinux.com>
-
- 14 May, 2018 1 commit
-
-
Philippe Gorley authored
Refactors out the common code from video and audio encoding/flushing into a single method. This reuses code instead of duplicating it. The method is public in the hopes of being able to reuse MediaEncoder elsewhere in the codebase. Allow caller to specify the stream index for the future case that the AVFormatContext contains multiple streams (recording video and audio). Change-Id: Ieae52bc453ef66d141a40819ca10fedbd38d9a86 Reviewed-by:
Sebastien Blin <sebastien.blin@savoirfairelinux.com>
-
- 09 May, 2018 2 commits
-
-
Adrien Béraud authored
This reverts commit ea2933d4. Change-Id: I624c07255f60186a0d1e6610a58956775f91b342
-
Adrien Béraud authored
Change-Id: Ia84ed72a0ba48778fcdef404d87fd35f717f64ab
-
- 08 May, 2018 1 commit
-
-
Philippe Gorley authored
Adds dependency to libavfilter, which provides many useful utilities such as hardware encoding, mixing audio or rotating video. Access to libavfilter is done through the MediaFilter class, which takes a filter graph string and AVFrames as input and outputs filtered AVFrames. Adds unit tests for MediaFilter. Change-Id: I0bf3869a9f19ad9cbbe1fc5e2d37eb83ece66ccc Reviewed-by:
Sebastien Blin <sebastien.blin@savoirfairelinux.com>
-
- 07 May, 2018 1 commit
-
-
Philippe Gorley authored
Change-Id: I6ab8a0078f7b67b2342859e216ab4ff02d721736 Reviewed-by:
Sebastien Blin <sebastien.blin@savoirfairelinux.com>
-
- 24 Apr, 2018 2 commits
-
-
Philippe Gorley authored
Change-Id: I86d2bfcf88a2a2b0eac50e4bb2b1c74359f84f76
-
Philippe Gorley authored
FFmpeg has the convenient macro av_err2str, but it cannot compile using g++ (https://ffmpeg.org/pipermail/libav-user/2013-January/003440.html). Adds an equivalent function for C++. Change-Id: Ie9eb2c0dfe68c58fd6a5ff82a3729ff63b736a69
-
- 05 Apr, 2018 1 commit
-
-
Adrien Béraud authored
Prevent deadlock by stop waiting on the condition variable after a second. Change-Id: If707fac389615333d1074b0973d693a84c9a974e
-
- 28 Mar, 2018 1 commit
-
-
Philippe Gorley authored
FFmpeg docs state that if avcodec_send_packet returns EAGAIN, avcodec_receive_frame must be called; it is not an error. Change-Id: I5e84a8a0103fe868056915b9c4ea2fc8d090f7ee
-
- 19 Mar, 2018 1 commit
-
-
Philippe Gorley authored
In newer versions, AVIOContext's read_packet cb no longer considers 0 as being EOF. Changes the read callbacks for SDP and RTP to return AVERROR_EOF instead of 0. Change-Id: Ica5bdc95913b4475f1e954a1141700fc88638a59
-
- 02 Mar, 2018 1 commit
-
-
Andreas Traczyk authored
- Handles downsampling in the event of an core layer samplerate reduction. - Handles urgent frames in case a call is incoming during a call. Change-Id: I0bd3b97ef96595576bc5daef7bea24c3bb32cf26
-
- 28 Feb, 2018 1 commit
-
-
Philippe Gorley authored
Level 2.0 (0x14) can only handle up to 352x288 at 30 fps, which can trip up the decoder (especially a hardware decoder) if the video is of a higher resolution. Increase the default level to 4.1 (0x29), which can handle up to 2,048x1,024 at 30 fps. Change-Id: Icd3fea81a4ea45796bab9d5f985a8ae1e1b36cfd
-
- 27 Feb, 2018 2 commits
-
-
Sébastien Blin authored
This reverts commit c4b580a2. Change-Id: If4a00bde338aa657c482ae18cc59902ed1be593c
-
Philippe Gorley authored
The function yuv422_clear_to_black is called up to 3 times per frame. Remove the superfluous calls. This function only does useful in a conference, when there can be blank space in a frame. Change-Id: I64588adba59daaf3677bad419a519432eec41dff Reviewed-by:
Sébastien Blin <sebastien.blin@savoirfairelinux.com>
-
- 12 Feb, 2018 1 commit
-
-
Philippe Gorley authored
Change-Id: I5cd9cc6dd57d3c6447b397cc486cb82c48b2ea85
-
- 07 Feb, 2018 1 commit
-
-
Philippe Gorley authored
Merges setupFromAudioData and setupFromVideoData to reduce redundancy Change-Id: Id543d0775a7803b778796b9abc02c9decd2c7e15 Reviewed-by:
Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
-
- 01 Feb, 2018 1 commit
-
-
Kateryna Kostiuk authored
Change-Id: I2e23a83ae992c4ed0063dafff34d3a49ee006681 Reviewed-by:
Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
-
- 31 Jan, 2018 2 commits
-
-
Olivier SOLDANO authored
some devices are providing their framerate ratios in a format incompatible with FFmpeg encoder. This patch sanitizes these entries to fit the FFmpeg code. Change-Id: Ib25c33699749ddcdfdf9cefc853f24caae433609 Reviewed-by:
Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
-
Andreas Traczyk authored
- Seperates coreaudio implementations for iOS and OS X. - Manages input/ouput port overrides when layer is reset via calls to Dring::setAudioOutputDevice in response to an audio route override event listened for by the iOS client. - TODO: use AVAudioSession API with graphs in Objective-C++, or optimally, in Swift in the iOS/OS X clients. Change-Id: I6ba34a8bdce7bedd3b9e9ca9bbcd2cc8caccf3f4
-
- 26 Jan, 2018 1 commit
-
-
Philippe Gorley authored
This fixes the Debian stable build. Change-Id: I5a59beb34e3379c8e950a4325ef62d3810be84f4
-
- 24 Jan, 2018 1 commit
-
-
Philippe Gorley authored
AVBufferRef leaked its contents after call to openDevice. - openDevice renamed to initDevice to better reflect its purpose - initDevice now responsible for all setup and cleanup of device Change-Id: I2fc36b6b0fe84158bb62fa2dac0cf441716ac540 Reviewed-by:
Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
-
- 23 Jan, 2018 1 commit
-
-
Guillaume Roguez authored
Change-Id: I1ef88bc640f79790aad2b5285ea2c776aa8cd366
-
- 22 Jan, 2018 2 commits
-
-
Adrien Béraud authored
Change-Id: I2794c1d374654870985a655a42ac647ff66c97a1 Reviewed-by:
Philippe Gorley <philippe.gorley@savoirfairelinux.com>
-
Philippe Gorley authored
Change-Id: Ic59bdd5104d3516f6aadf66b6b92d63a7f0dd561
-
- 19 Jan, 2018 1 commit
-
-
Anthony Léonard authored
Incorrect condition was leading to bad pixel format conversion before sending frames to client on macOS (BGR instead of correct RGB). Change-Id: Ie76a488c4151d00249ed1adb5b0b02e43d2972eb Reviewed-by:
Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
-
- 16 Jan, 2018 1 commit
-
-
Philippe Gorley authored
Change-Id: Iacf37f3b6fc7016b3225066e164046b3db45c138
-
- 15 Jan, 2018 1 commit
-
-
Philippe Gorley authored
Falling back from hardware to software decoding requires only a reinitialization of the AVCodecContext. Hardware decoding failure is no longer bubbled up to the RTP session, which makes it much faster. Change-Id: I79fdfcfa41f822b3299d74ac654146789fcfd97b
-
- 12 Jan, 2018 2 commits
-
-
Andreas Traczyk authored
- adds a slightly altered version of the android video implementation, as a swift AVFoundation implementation will be used in the ios client to enumerate the video input devices. Change-Id: I7c16fc39c5d22e54fb146881150b6cbcfddb7806
-
Philippe Gorley authored
Replaces empty methods and std::bind calls with lambdas. Change-Id: I0d9c876a9ba0bbdc6a77a85e0e2d75766312f952
-
- 28 Dec, 2017 1 commit
-
-
Philippe Gorley authored
libavutil now covers the simple cases for creating and managing devices. As Ring does not need to fine-tune these processes, most of the accel code can be and has been removed. Most hardware decoders output NV12, so skip extra conversions by outputting NV12. Said pixel format is supported by everything that isn't excessively old. Change-Id: I10c440026fc3b289dbba7ecbca47e55c57147207 Reviewed-by:
Anthony Léonard <anthony.leonard@savoirfairelinux.com>
-
- 21 Dec, 2017 1 commit
-
-
Philippe Gorley authored
Bumps FFmpeg to match the other platforms. Modifies the acceleration code to work under the new API. Enables bitstream filters, as some of libavcodec's components, such as VideoToolbox, use them. Change-Id: I3a6cee2cf06881bba4602c0ed635ff45908e7b85 Reviewed-by:
Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
-
- 13 Dec, 2017 1 commit
-
-
Adrien Béraud authored
Audio encoding is usually mono-threaded and doesn't require as much CPU as video encoding. Limit to 4 threads since more would not be useful and might introduce latency and decrease performance. Video encoding takes significantly more resources, however for live encoding, using more than 16 threads might introduce unreasonable latency. Since new customer CPUs (AMD Ryzen and Intel Core i7/i9) now have more than 16 logical cores, setting a higher bound of 16 threads. Change-Id: I5dc2d3f51019c563b8cec3fbddffa13cbafdb9a5
-
- 01 Dec, 2017 1 commit
-
-
Philippe Gorley authored
Recent CPUs should be able to encode higher quality h264 in real-time without any problems. Allows users to encode h264 with higher quality if they so choose. Change-Id: Ibbb01cbc55e20f497f99f56c6c0e6616ff0734bc
-
- 30 Nov, 2017 1 commit
-
-
Philippe Gorley authored
This attribute was useful with the old decoding API. Refcounted frames are always used with the avcodec_send_packet/avcodec_receive_frame API. Change-Id: I0904ed8731c329e0f8f3d59d1872bff6a26543be Reviewed-by:
Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
-
- 29 Nov, 2017 2 commits
-
-
Philippe Gorley authored
Handles RestartRequired return code on hardware acceleration failure. Change-Id: I170928e23ed607c2255e20729a71adc1364bbb6a Reviewed-by:
Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
-
Philippe Gorley authored
Fixes a regression where keyframe requests were sent by the wrong peer. Corrects artifacts in a shorter amount of time. Change-Id: I2b981b46c07422a4289f378e2a5deaaba0047a3b Reviewed-by:
Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
-
- 28 Nov, 2017 1 commit
-
-
Adrien Béraud authored
AV_INPUT_BUFFER_MIN_SIZE is the new name for FF_MIN_BUFFER_SIZE, which is not available anymore in new releases. Change-Id: I79abb3a8192d8572323f705eecc44edc974026f8 Reviewed-by:
Philippe Gorley <philippe.gorley@savoirfairelinux.com>
-