webrtc/modules/video_coding
Tarek Hefny 77c8e65b88 Update multiplex encoder to support having augmenting data attached to the video
Multiplex encoder is now supporting attaching user-defined data to the video
frame. This data will be sent with the video frame and thus is guaranteed to
be synchronized. This is useful in cases where the data and video frame need
to by synchronized such as sending information about 3D objects or camera
tracking information with the video stream

Multiplex Encoder with data is implemented in a modular way. A new
VideoFrameBuffer type is created with the encoder. AugmentedVideoFrameBuffer
holds the video frame and the data. MultiplexVideoEncoder encodes both
the frame and data.

Change-Id: I23263f70d111f6f1783c070edec70bd11ebb9868
Bug: webrtc:9632
Reviewed-on: https://webrtc-review.googlesource.com/92642
Commit-Queue: Tarek Hefny <tarekh@google.com>
Reviewed-by: Niklas Enbom <niklas.enbom@webrtc.org>
Reviewed-by: Emircan Uysaler <emircan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24297}
2018-08-15 21:54:17 +00:00
..
codecs Update multiplex encoder to support having augmenting data attached to the video 2018-08-15 21:54:17 +00:00
include Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
test Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
utility Refactor vp8 temporal layers with inferred sync and search order 2018-08-15 10:14:36 +00:00
BUILD.gn Update multiplex encoder to support having augmenting data attached to the video 2018-08-15 21:54:17 +00:00
codec_timer.cc Fix chromium warnings for SdpVideoFormat. 2018-03-27 08:11:21 +00:00
codec_timer.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
decoder_database.cc Refactoring PayloadRouter. 2018-07-17 14:46:15 +00:00
decoder_database.h Refactoring PayloadRouter. 2018-07-17 14:46:15 +00:00
decoding_state.cc Revert "Add Timestamp accessor methods to the EncodedImage class." 2018-06-26 11:52:45 +00:00
decoding_state.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
decoding_state_unittest.cc Remove RTPVideoHeader::vp9() accessors. 2018-08-09 10:53:28 +00:00
DEPS Prepare VideoProcessor for async simulcast support. 2018-03-08 17:41:13 +00:00
encoded_frame.cc Remove RTPVideoHeader::vp9() accessors. 2018-08-09 10:53:28 +00:00
encoded_frame.h Delete unused copy constructors for VCMEncodedFrame and VCMFrameBuffer. 2018-06-26 14:34:15 +00:00
encoder_database.cc Delete RTP-specific values from the VideoCodecType enum. 2018-06-07 07:49:27 +00:00
encoder_database.h Delete payload_type from VCMEncoderDatabase and vcm::VideoSender. 2018-03-16 13:43:01 +00:00
fec_controller_default.cc Revert "Revert "Enables PeerConnectionFactory using external fec controller"" 2018-02-20 12:41:55 +00:00
fec_controller_default.h Revert "Revert "Enables PeerConnectionFactory using external fec controller"" 2018-02-20 12:41:55 +00:00
fec_controller_unittest.cc Make fec controller plug-able. 2018-01-22 11:48:16 +00:00
fec_rate_table.h
frame_buffer.cc Delete unused copy constructors for VCMEncodedFrame and VCMFrameBuffer. 2018-06-26 14:34:15 +00:00
frame_buffer.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
frame_buffer2.cc Revert "Add Timestamp accessor methods to the EncodedImage class." 2018-06-26 11:52:45 +00:00
frame_buffer2.h Fix chromium warnings for SdpVideoFormat. 2018-03-27 08:11:21 +00:00
frame_buffer2_unittest.cc Revert "Add Timestamp accessor methods to the EncodedImage class." 2018-06-26 11:52:45 +00:00
frame_object.cc Change RTPVideoTypeHeader to absl::variant and move RTPVideoHeader into its own h/cc file. 2018-07-10 11:57:46 +00:00
frame_object.h Revert "Add Timestamp accessor methods to the EncodedImage class." 2018-06-26 11:52:45 +00:00
generic_decoder.cc Revert "Add Timestamp accessor methods to the EncodedImage class." 2018-06-26 11:52:45 +00:00
generic_decoder.h Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
generic_encoder.cc Refactoring PayloadRouter. 2018-07-17 14:46:15 +00:00
generic_encoder.h Refactoring PayloadRouter. 2018-07-17 14:46:15 +00:00
generic_encoder_unittest.cc Cleanup webrtc:: namespace from leaked TimingFrameFlags 2018-06-05 13:52:04 +00:00
h264_sprop_parameter_sets.cc Move base64.h to the proper location. 2018-07-23 15:40:36 +00:00
h264_sprop_parameter_sets.h
h264_sprop_parameter_sets_unittest.cc
h264_sps_pps_tracker.cc Reland "Remove RTPVideoHeader::h264() accessors." 2018-08-03 09:16:50 +00:00
h264_sps_pps_tracker.h
h264_sps_pps_tracker_unittest.cc Reland "Remove RTPVideoHeader::h264() accessors." 2018-08-03 09:16:50 +00:00
histogram.cc Move sequence_number_utils.h to rtc_base/ 2017-10-25 12:33:57 +00:00
histogram.h
histogram_unittest.cc
inter_frame_delay.cc
inter_frame_delay.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
internal_defines.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
jitter_buffer.cc Remove RTPVideoHeader::vp9() accessors. 2018-08-09 10:53:28 +00:00
jitter_buffer.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
jitter_buffer_common.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
jitter_buffer_unittest.cc Remove RTPVideoHeader::vp9() accessors. 2018-08-09 10:53:28 +00:00
jitter_estimator.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
jitter_estimator.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
jitter_estimator_tests.cc
media_opt_util.cc Use rtc::saturated_cast instead of static_cast in VCMFecMethod 2018-08-07 17:08:42 +00:00
media_opt_util.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
media_optimization.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
media_optimization.h Revert "Revert "Enables PeerConnectionFactory using external fec controller"" 2018-02-20 12:41:55 +00:00
nack_fec_tables.h
nack_module.cc Simplify RtpVideoStreamReceiver::NotifyReceiverOfFecPacket. 2018-03-23 14:34:48 +00:00
nack_module.h Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
nack_module_unittest.cc
OWNERS Add philipel to modules/video_coding/OWNERS. 2018-05-17 10:14:31 +00:00
packet.cc VCMPacket: Set VCMNaluCompleteness for generic codecs 2018-07-11 13:22:59 +00:00
packet.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
packet_buffer.cc Reland "Remove RTPVideoHeader::h264() accessors." 2018-08-03 09:16:50 +00:00
packet_buffer.h Replace rtc::Optional with absl::optional 2018-06-18 10:24:48 +00:00
qp_parser.cc Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
qp_parser.h
receiver.cc Revert "Add Timestamp accessor methods to the EncodedImage class." 2018-06-26 11:52:45 +00:00
receiver.h
receiver_unittest.cc
rtp_frame_reference_finder.cc Change RTPVideoTypeHeader to absl::variant and move RTPVideoHeader into its own h/cc file. 2018-07-10 11:57:46 +00:00
rtp_frame_reference_finder.h Increase RtpFrameReferenceFinder's frame buffer length to 100 frames. 2018-07-31 13:41:25 +00:00
rtp_frame_reference_finder_unittest.cc Remove RTPVideoHeader::vp9() accessors. 2018-08-09 10:53:28 +00:00
rtt_filter.cc Fix typo in VCMRttFilter 2018-01-26 10:59:56 +00:00
rtt_filter.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
session_info.cc Remove RTPVideoHeader::vp9() accessors. 2018-08-09 10:53:28 +00:00
session_info.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
session_info_unittest.cc VCMPacket: Set VCMNaluCompleteness for generic codecs 2018-07-11 13:22:59 +00:00
timestamp_map.cc
timestamp_map.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
timing.cc Replace rtc::Optional with absl::optional 2018-06-18 10:24:48 +00:00
timing.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
timing_unittest.cc Remove unused functions in VCMTiming. 2018-01-17 14:47:10 +00:00
video_codec_initializer.cc Exposing video bitrate allocator into API 2018-07-23 21:23:21 +00:00
video_codec_initializer_unittest.cc Exposing video bitrate allocator into API 2018-07-23 21:23:21 +00:00
video_coding_defines.cc Fix chromium warnings for SdpVideoFormat. 2018-03-27 08:11:21 +00:00
video_coding_impl.cc Exposing video bitrate allocator into API 2018-07-23 21:23:21 +00:00
video_coding_impl.h Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
video_packet_buffer_unittest.cc Reland "Remove RTPVideoHeader::h264() accessors." 2018-08-03 09:16:50 +00:00
video_receiver.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
video_receiver_unittest.cc Reland "Remove RTPVideoHeader::h264() accessors." 2018-08-03 09:16:50 +00:00
video_sender.cc Exposing video bitrate allocator into API 2018-07-23 21:23:21 +00:00
video_sender_unittest.cc Add experimental shortened 2-temporal-layer setting 2018-07-04 09:25:21 +00:00