| 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 |