OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 // decodable, video will freeze if nack is disabled. | 64 // decodable, video will freeze if nack is disabled. |
65 kWithErrors // Release frames as needed. Errors may be | 65 kWithErrors // Release frames as needed. Errors may be |
66 // introduced as some encoded frames may not be | 66 // introduced as some encoded frames may not be |
67 // complete. | 67 // complete. |
68 }; | 68 }; |
69 | 69 |
70 class VideoCodingModule : public Module { | 70 class VideoCodingModule : public Module { |
71 public: | 71 public: |
72 enum SenderNackMode { kNackNone, kNackAll, kNackSelective }; | 72 enum SenderNackMode { kNackNone, kNackAll, kNackSelective }; |
73 | 73 |
74 enum ReceiverRobustness { kNone, kHardNack, kSoftNack, kReferenceSelection }; | 74 // DEPRECATED. |
75 | |
76 static VideoCodingModule* Create(Clock* clock, EventFactory* event_factory); | 75 static VideoCodingModule* Create(Clock* clock, EventFactory* event_factory); |
77 | 76 |
78 static VideoCodingModule* Create( | |
79 Clock* clock, | |
80 VCMQMSettingsCallback* qm_settings_callback, | |
81 NackSender* nack_sender, | |
82 KeyFrameRequestSender* keyframe_request_sender, | |
83 EncodedImageCallback* pre_decode_image_callback); | |
84 | |
85 static VideoCodingModule* Create( | |
86 Clock* clock, | |
87 EventFactory* event_factory, | |
88 NackSender* nack_sender, | |
89 KeyFrameRequestSender* keyframe_request_sender); | |
90 | |
91 // Get supported codec settings using codec type | 77 // Get supported codec settings using codec type |
92 // | 78 // |
93 // Input: | 79 // Input: |
94 // - codecType : The codec type to get settings for | 80 // - codecType : The codec type to get settings for |
95 // - codec : Memory where the codec settings will be stored | 81 // - codec : Memory where the codec settings will be stored |
96 // | 82 // |
97 // Return value : VCM_OK, on success | 83 // Return value : VCM_OK, on success |
98 // VCM_PARAMETER_ERROR if codec not supported | 84 // VCM_PARAMETER_ERROR if codec not supported |
99 static void Codec(VideoCodecType codecType, VideoCodec* codec); | 85 static void Codec(VideoCodecType codecType, VideoCodec* codec); |
100 | 86 |
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
389 | 375 |
390 // The total delay desired by the VCM. Can be less than the minimum | 376 // The total delay desired by the VCM. Can be less than the minimum |
391 // delay set with SetMinimumPlayoutDelay. | 377 // delay set with SetMinimumPlayoutDelay. |
392 // | 378 // |
393 // Return value : Total delay in ms, on success. | 379 // Return value : Total delay in ms, on success. |
394 // < 0, on error. | 380 // < 0, on error. |
395 virtual int32_t Delay() const = 0; | 381 virtual int32_t Delay() const = 0; |
396 | 382 |
397 // Robustness APIs | 383 // Robustness APIs |
398 | 384 |
| 385 // DEPRECATED. |
399 // Set the receiver robustness mode. The mode decides how the receiver | 386 // Set the receiver robustness mode. The mode decides how the receiver |
400 // responds to losses in the stream. The type of counter-measure (soft or | 387 // responds to losses in the stream. The type of counter-measure is selected |
401 // hard NACK, dual decoder, RPS, etc.) is selected through the | 388 // through the robustnessMode parameter. The errorMode parameter decides if it |
402 // robustnessMode parameter. The errorMode parameter decides if it is | 389 // is allowed to display frames corrupted by losses. Note that not all |
403 // allowed to display frames corrupted by losses. Note that not all | |
404 // combinations of the two parameters are feasible. An error will be | 390 // combinations of the two parameters are feasible. An error will be |
405 // returned for invalid combinations. | 391 // returned for invalid combinations. |
406 // Input: | 392 // Input: |
407 // - robustnessMode : selected robustness mode. | 393 // - robustnessMode : selected robustness mode. |
408 // - errorMode : selected error mode. | 394 // - errorMode : selected error mode. |
409 // | 395 // |
410 // Return value : VCM_OK, on success; | 396 // Return value : VCM_OK, on success; |
411 // < 0, on error. | 397 // < 0, on error. |
| 398 enum ReceiverRobustness { kNone, kHardNack }; |
412 virtual int SetReceiverRobustnessMode(ReceiverRobustness robustnessMode, | 399 virtual int SetReceiverRobustnessMode(ReceiverRobustness robustnessMode, |
413 VCMDecodeErrorMode errorMode) = 0; | 400 VCMDecodeErrorMode errorMode) = 0; |
414 | 401 |
415 // Set the decode error mode. The mode decides which errors (if any) are | 402 // Set the decode error mode. The mode decides which errors (if any) are |
416 // allowed in decodable frames. Note that setting decode_error_mode to | 403 // allowed in decodable frames. Note that setting decode_error_mode to |
417 // anything other than kWithErrors without enabling nack will cause | 404 // anything other than kWithErrors without enabling nack will cause |
418 // long-term freezes (resulting from frequent key frame requests) if | 405 // long-term freezes (resulting from frequent key frame requests) if |
419 // packet loss occurs. | 406 // packet loss occurs. |
420 virtual void SetDecodeErrorMode(VCMDecodeErrorMode decode_error_mode) = 0; | 407 virtual void SetDecodeErrorMode(VCMDecodeErrorMode decode_error_mode) = 0; |
421 | 408 |
(...skipping 13 matching lines...) Expand all Loading... |
435 | 422 |
436 virtual void RegisterPostEncodeImageCallback( | 423 virtual void RegisterPostEncodeImageCallback( |
437 EncodedImageCallback* post_encode_callback) = 0; | 424 EncodedImageCallback* post_encode_callback) = 0; |
438 // Releases pending decode calls, permitting faster thread shutdown. | 425 // Releases pending decode calls, permitting faster thread shutdown. |
439 virtual void TriggerDecoderShutdown() = 0; | 426 virtual void TriggerDecoderShutdown() = 0; |
440 }; | 427 }; |
441 | 428 |
442 } // namespace webrtc | 429 } // namespace webrtc |
443 | 430 |
444 #endif // WEBRTC_MODULES_VIDEO_CODING_INCLUDE_VIDEO_CODING_H_ | 431 #endif // WEBRTC_MODULES_VIDEO_CODING_INCLUDE_VIDEO_CODING_H_ |
OLD | NEW |