Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(212)

Unified Diff: webrtc/modules/video_coding/frame_object.cc

Issue 2990463002: [EXPERIMENTAL] Generic stereo codec with index header sending merged frames
Patch Set: Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/video_coding/frame_object.cc
diff --git a/webrtc/modules/video_coding/frame_object.cc b/webrtc/modules/video_coding/frame_object.cc
index 4c4537cb450fc28c68b005cef4a31da4420d7076..4e0d207b3d67b628fe8a48f8ede95a6c7b6a8bae 100644
--- a/webrtc/modules/video_coding/frame_object.cc
+++ b/webrtc/modules/video_coding/frame_object.cc
@@ -12,6 +12,7 @@
#include "webrtc/common_video/h264/h264_common.h"
#include "webrtc/modules/video_coding/packet_buffer.h"
#include "webrtc/rtc_base/checks.h"
+#include "webrtc/rtc_base/logging.h"
namespace webrtc {
namespace video_coding {
@@ -34,6 +35,7 @@ RtpFrameObject::RtpFrameObject(PacketBuffer* packet_buffer,
last_seq_num_(last_seq_num),
received_time_(received_time),
times_nacked_(times_nacked) {
+ LOG(LS_ERROR) << __func__ << first_seq_num << " " << last_seq_num;
VCMPacket* first_packet = packet_buffer_->GetPacket(first_seq_num);
RTC_CHECK(first_packet);
@@ -41,6 +43,26 @@ RtpFrameObject::RtpFrameObject(PacketBuffer* packet_buffer,
frame_type_ = first_packet->frameType;
codec_type_ = first_packet->codec;
+ if (first_packet->video_header.stereoInfo.frame_index == 0 &&
+ codec_type_ == kVideoCodecStereo) {
+ uint16_t index = first_seq_num;
+ while (index != last_seq_num) {
+ VCMPacket* packet = packet_buffer_->GetPacket(first_seq_num);
+ if (packet->video_header.stereoInfo.frame_index > 0)
+ break;
+ index = (index + 1) % packet_buffer_->size_;
+ }
+ last_seq_num_ = index;
+
+ _codecSpecificInfo.stereoInfo.num_frames = 1;
+ RtpFrameObject* alpha =
+ new RtpFrameObject(packet_buffer, index, last_seq_num, frame_size,
+ times_nacked, received_time);
+ _codecSpecificInfo.stereoInfo.encoded_images[0] = alpha;
+ _codecSpecificInfo.stereoInfo.codec_specific_infos[0] =
+ alpha->CodecSpecific();
+ }
+
// TODO(philipel): Remove when encoded image is replaced by FrameObject.
// VCMEncodedFrame members
CopyCodecSpecific(&first_packet->video_header);
« no previous file with comments | « webrtc/modules/video_coding/frame_buffer2.cc ('k') | webrtc/modules/video_coding/include/video_codec_initializer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698