- 28 Jun, 2019 1 commit
-
-
Pierre Lespagnol authored
Change-Id: I5692497489f2df3e0b94737651e6d1d1ba44012f
-
- 04 Jun, 2019 1 commit
-
-
Philippe Gorley authored
MediaRecorder only calls the MediaEncoder with an AVFrame*, not with our VideoFrame/AudioFrame wrappers, so the audio stream was never initialized. Gitlab: #95 Change-Id: Ie9c85eb9334444f2b58a4355e8f6db9d2a14610f Reviewed-by:
Sébastien Blin <sebastien.blin@savoirfairelinux.com>
-
- 03 Jun, 2019 1 commit
-
-
Philippe Gorley authored
Change-Id: I6cd7e28ed62581c5635a32966b46171441de42c2
-
- 01 Jun, 2019 1 commit
-
-
Adrien Béraud authored
Change-Id: I919aa2607b1d0dcc33b7b02f90b97b1b8fd1ef98
-
- 27 May, 2019 1 commit
-
-
Philippe Gorley authored
Change-Id: Iaac2793ce2a6e0d32027afe168b1511ef0575016 Reviewed-by:
Philippe Gorley <philippe.gorley@savoirfairelinux.com>
-
- 24 May, 2019 1 commit
-
-
Adrien Béraud authored
Change-Id: If34adb4833dff7ea71175bb7f465f48cb3758d55
-
- 12 Apr, 2019 1 commit
-
-
Kateryna Kostiuk authored
Increase quality when using VideoToolbox acceleration Change-Id: I6f36bdc18860f671764cf3eda3f93009b45f3517
-
- 11 Apr, 2019 1 commit
-
-
Kateryna Kostiuk authored
Enable Video Toolbox Change-Id: I3f20d35c7e66be37954861d2be411a4c16c51257
-
- 03 Apr, 2019 1 commit
-
-
Adrien Béraud authored
Change-Id: Ic4514b6e68346cd8488ccf750796c8590cee653a
-
- 02 Apr, 2019 2 commits
-
-
Adrien Béraud authored
* rename namespace from ring to jami * rename logs methods from RING_* to JAMI_* * rename RING_VIDEO to ENABLE_VIDEO Change-Id: Ic98498652d7059fafe58a96220d565bcdfa53658
-
Adrien Béraud authored
* initialize when sending first packet * avoid out of bound access Change-Id: I8dc02a851cf89a5ad704e5bd0ea65245085c6ef7
-
- 26 Mar, 2019 2 commits
-
-
Philippe Gorley authored
If the video input is being decoded on the hardware, use the hardware frames directly when encoding. Skips the transfer back to software in the video sender and the transfer to hardware in the encoder. Falls back to using the main memory as a middle man if the link between encoder and decoder fails. Change-Id: I59850e95e6952df71a461aad8e7dddda65f05ffb
-
Philippe Gorley authored
Sets up video streams upon receiving the first video frame. Audio streams are still initialized as soon as possible. This allows a video encoder to use the pixel format of its received frames, and to set up a hardware transcoding pipeline if it receives a hardware frame. Change-Id: I622fc44b6096d63d7423837d2f2ec15680548a83
-
- 06 Mar, 2019 1 commit
-
-
Philippe Gorley authored
Adds VAAPI and VideoToolbox hardware encoders. Abstracts hardware related field accesses from the encoder and decoder to put them in HardwareAccel. They are freed in ~HardwareAccel. Limits bitrate when hardware encoding h264, else it can easily go up to a few MiB/s. Change-Id: I7d847d8ab3e4c9692341f038ce6d5dd76562e606
-
- 18 Feb, 2019 1 commit
-
-
Andreas Traczyk authored
Change-Id: I5b036bd9285197934eae942c8c2c23d675bc69af Reviewed-by:
Philippe Gorley <philippe.gorley@savoirfairelinux.com>
-
- 12 Feb, 2019 1 commit
-
-
Philippe Gorley authored
Cleans up the encoder a bit and removes methods that weren't used or did nothing. In any case, it should not be the encoder's responsibility to mute audio/video. Removes direct accesses to private data. All these options are accessible through the av_opt_* API with the AV_OPT_SEARCH_CHILDREN flag. Adding streams to the encoder is now done separately than opening an RTP output in an effort to streamline the encoder setup (file vs RTP). Change-Id: I7a868d098fa942697cfbe3246f368fb9fc7bfb0f
-
- 28 Jan, 2019 1 commit
-
-
Philippe Gorley authored
Recorder has multiple streams, and needs to know which streams it's writing the packet to. Also reverts the change to a hardcoded timebase of 1/20. Change-Id: I75989ceafe4e4956ebb1adbbd53d13564aa942ea
-
- 26 Jan, 2019 1 commit
-
-
Adrien Béraud authored
Change-Id: Idb983898ae2cd0d9b58a46baf76073b9eac4e3be
-
- 25 Jan, 2019 3 commits
-
-
Philippe Gorley authored
MediaEncoder sets some of AVCodecContext's fields. Allow the configuration file to override these fields. Change-Id: Ic44da217344aca2da0634e81bf247d4a21bb9510 Reviewed-by:
Sébastien Blin <sebastien.blin@savoirfairelinux.com>
-
Philippe Gorley authored
This allows users to use different configurations than the one provided by Jami. File settings overwrite Jami's existing configuration options. Note that only codec-level options are supported, format-level is not implemented. The following options are ignored, as they are set by going into the settings page: width, height, framerate, sample_rate, channels, frame_size, parameters (internal option for h264's profile level id). If a file encoder.json exists in the same folder as dring.yml, it is loaded into the encoder's configuration options. The config file is separated by codec. Multiple configurations can exist for the same codec family (ex: libx264 and h264_vaapi) because each encoder has different options. Section name should be the codec implementation's name and not the codec's name (h264 won't work, but libx264 will). Example configuration file: { "libx264": { "crf": 15, "preset": "ultrafast" }, "h264_vaapi": { "low_power": 1 }, "libopus": { "application": "voip" } } Change-Id: Ia6bb184af382638d4016256b393ac7295408ed82 Gitlab: #75Reviewed-by:
Sébastien Blin <sebastien.blin@savoirfairelinux.com>
-
Philippe Gorley authored
Change-Id: Iab880ac674e15dc2f0baba260632ead4cb6e4870 Reviewed-by:
Sébastien Blin <sebastien.blin@savoirfairelinux.com>
-
- 04 Jan, 2019 1 commit
-
-
Mohamed Fenjiro authored
Change-Id: Ic84b6e1b071e6bf1288a7f15d72cba43a9cc13ce Reviewed-by:
Philippe Gorley <philippe.gorley@savoirfairelinux.com>
-
- 02 Jan, 2019 1 commit
-
-
Sébastien Blin authored
Change-Id: Ia4ed75d04a284efa0763c917aeaa2f08863a87cb
-
- 28 Dec, 2018 1 commit
-
-
Philippe Gorley authored
An even width/height is required by at least x264. This is especially for image and gif streaming, as video usually already has an even width/height. Change-Id: Ie660d8eb61dca48641cba89dd02e187481e3a127
-
- 23 Nov, 2018 1 commit
-
-
Jinbo Li authored
av_image_get_buffer_size can return a negative error code. Prevents casting such an error to a large positive integer that may cause a bad_alloc exception on the subsequent buffer allocation. Change-Id: Ie8a7987dcf16957a21496e791c34957bb2e35bfc
-
- 19 Nov, 2018 1 commit
-
-
Philippe Gorley authored
Change-Id: I5f8fb9802290974a9cc74f535ff22365b56e50c6
-
- 08 Nov, 2018 1 commit
-
-
Philippe Gorley authored
Audio time bases are always the inverse of the sample rate, meaning the increment is always the number of samples in a frame. Video usually has a time base inverse of its framerate, but this is not always the case. Change-Id: I50d2d84d073052f8b3a832e8b99725b9d66b12a8
-
- 22 Oct, 2018 1 commit
-
-
Philippe Gorley authored
Returns AudioFrame instead of raw AVFRame pointer when calling AudioBuffer.toAVFrame, and take AudioFrame as parameter when appending an AVFrame to an AudioBuffer. No longer need to free AVFrame during encoding/conversions. Change-Id: I28aa992a5483f84f6cb1a5157718c11c3a69518c
-
- 14 Sep, 2018 1 commit
-
-
Andreas Traczyk authored
Change-Id: I4ca49c6dc3feb55441079c1c2ad3d71d84c360ef
-
- 11 Sep, 2018 1 commit
-
-
Adrien Béraud authored
Change-Id: I019e66f12cf7d704f832bce457b63ca9aaefa15d Reviewed-by:
Philippe Gorley <philippe.gorley@savoirfairelinux.com>
-
- 23 Aug, 2018 1 commit
-
-
Philippe Gorley authored
avcodec_close leaks memory, while avcodec_free_context doesn't. FFmpeg documentation specifies not to use avcodec_close, as opening and closing a context multiple times is no longer supported. Change-Id: I230891f2510c355b9d44d918dcf387399d79a8aa Reviewed-by:
Sebastien Blin <sebastien.blin@savoirfairelinux.com>
-
- 14 Aug, 2018 1 commit
-
-
Hugo Lefeuvre authored
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>
-
- 27 Jul, 2018 1 commit
-
-
Philippe Gorley authored
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>
-
- 23 Jul, 2018 1 commit
-
-
Philippe Gorley authored
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
-
- 12 Jul, 2018 1 commit
-
-
Philippe Gorley authored
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
-
- 10 Jul, 2018 2 commits
-
-
Philippe Gorley authored
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>
-
Philippe Gorley authored
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>
-
- 27 Jun, 2018 1 commit
-
-
Philippe Gorley authored
Stream time base is for AVPacket, while codec time base is for AVFrame. Good explanation found here: https://gist.github.com/yohhoy/50ea5fe868a2b3695e19 Sets decoder framerate during stream setup. Scales decoder timestamps from container time base to codec time base. Substracts stream start time from timestamp in decoder. Fixes MediaStream to use AVCodecContext instead of AVStream. Encoders gets next timestamp using AVCodecContext instead of AVStream. Change-Id: I02620d825e3ff9488a4d1eb0f6eedc8dbd030df4
-
- 21 Jun, 2018 1 commit
-
-
Philippe Gorley authored
Rescaling is done to make timestamps fit with encoder time base. This reverts commit cc175547. Change-Id: Ib1440f55555d88fc28ccce1929e68d8fc20b2224 Reviewed-by:
Sebastien Blin <sebastien.blin@savoirfairelinux.com>
-
- 20 Jun, 2018 1 commit
-
-
Philippe Gorley authored
PTS is correctly set at frame level, so don't rescale it once encoded. Change-Id: I5b8ab933c974634bca4b82c7525f3c11a3b8bd88
-