Index: webrtc/video_encoder.h |
diff --git a/webrtc/video_encoder.h b/webrtc/video_encoder.h |
index 0100239e0a42ab8942de17373cc0bb66a991509f..e0e1f48a2789485bff14fe06837bd7d3ea8a6c8e 100644 |
--- a/webrtc/video_encoder.h |
+++ b/webrtc/video_encoder.h |
@@ -30,11 +30,43 @@ class EncodedImageCallback { |
public: |
virtual ~EncodedImageCallback() {} |
+ struct Result { |
+ enum Error { |
+ OK, |
+ |
+ // Failed to send the packet. |
+ ERROR_SEND_FAILED, |
+ }; |
+ |
+ Result(Error error) : error(error) {} |
+ Result(Error error, uint32_t frame_id) : error(error), frame_id(frame_id) {} |
+ |
+ Error error; |
+ |
+ // Frame ID assigned to the frame. The frame ID should be the same as the ID |
+ // seen by the receiver for this frame. RTP timestamp of the frame is used |
+ // as frame ID when RTP is used to send video. |
+ uint32_t frame_id = 0; |
stefan-webrtc
2016/07/18 16:51:27
Default value should probably be -1, or if you pre
Sergey Ulanov
2016/07/21 00:09:40
it cannot be -1 because it's unsigned, and timesta
stefan-webrtc
2016/07/25 15:17:09
You could still use an Optional<uint32_t> or an in
|
+ |
+ // Tells the encoder that the next frame is going to be dropped. |
stefan-webrtc
2016/07/18 16:51:27
Maybe "should be dropped" instead?
Sergey Ulanov
2016/07/21 00:09:39
Done.
|
+ bool drop_next_frame = false; |
+ }; |
+ |
// Callback function which is called when an image has been encoded. |
- // TODO(perkj): Change this to return void. |
+ virtual Result OnEncodedImage( |
+ const EncodedImage& encoded_image, |
+ const CodecSpecificInfo* codec_specific_info, |
+ const RTPFragmentationHeader* fragmentation) = 0; |
+ |
+ // DEPRECATED. |
+ // TODO(sergeyu): Remove this method. |
virtual int32_t Encoded(const EncodedImage& encoded_image, |
const CodecSpecificInfo* codec_specific_info, |
- const RTPFragmentationHeader* fragmentation) = 0; |
+ const RTPFragmentationHeader* fragmentation) { |
+ Result result = |
+ OnEncodedImage(encoded_image, codec_specific_info, fragmentation); |
+ return (result.error != Result::OK) ? -1 : (result.drop_next_frame ? 1 : 0); |
+ } |
}; |
class VideoEncoder { |