Add a flags field to video timing extension.

The rtp header extension for video timing shuold have an additional
field for signaling metadata, such as what triggered the extension for
this particular frame. This will allow separating frames select because
of outlier sizes from regular frames, for more accurate stats.

This implementation is backwards compatible in that it can read video
timing extensions without the new flag field, but it always sends with
it included.

BUG=webrtc:7594

Review-Url: https://codereview.webrtc.org/3000753002
Cr-Commit-Position: refs/heads/master@{#19353}
diff --git a/webrtc/modules/video_coding/frame_object.cc b/webrtc/modules/video_coding/frame_object.cc
index 1d858fc..86bcffb 100644
--- a/webrtc/modules/video_coding/frame_object.cc
+++ b/webrtc/modules/video_coding/frame_object.cc
@@ -32,6 +32,7 @@
     : packet_buffer_(packet_buffer),
       first_seq_num_(first_seq_num),
       last_seq_num_(last_seq_num),
+      timestamp_(0),
       received_time_(received_time),
       times_nacked_(times_nacked) {
   VCMPacket* first_packet = packet_buffer_->GetPacket(first_seq_num);
@@ -113,10 +114,10 @@
   rotation_ = last_packet->video_header.rotation;
   _rotation_set = true;
   content_type_ = last_packet->video_header.content_type;
-  if (last_packet->video_header.video_timing.is_timing_frame) {
+  if (last_packet->video_header.video_timing.flags !=
+      TimingFrameFlags::kInvalid) {
     // ntp_time_ms_ may be -1 if not estimated yet. This is not a problem,
     // as this will be dealt with at the time of reporting.
-    timing_.is_timing_frame = true;
     timing_.encode_start_ms =
         ntp_time_ms_ +
         last_packet->video_header.video_timing.encode_start_delta_ms;
@@ -138,9 +139,8 @@
 
     timing_.receive_start_ms = first_packet->receive_time_ms;
     timing_.receive_finish_ms = last_packet->receive_time_ms;
-  } else {
-    timing_.is_timing_frame = false;
   }
+  timing_.flags = last_packet->video_header.video_timing.flags;
 }
 
 RtpFrameObject::~RtpFrameObject() {