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

Side by Side Diff: webrtc/modules/video_coding/main/interface/video_coding.h

Issue 1340623002: Add stats for average QP per frame for VP8 (for received video streams). (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase Created 5 years, 2 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 unified diff | Download patch
OLDNEW
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 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 // NOTE: Must be called on the thread that constructed the VCM instance. 125 // NOTE: Must be called on the thread that constructed the VCM instance.
126 // 126 //
127 // Input: 127 // Input:
128 // - sendCodec : Settings for the codec to be registered. 128 // - sendCodec : Settings for the codec to be registered.
129 // - numberOfCores : The number of cores the codec is allowed 129 // - numberOfCores : The number of cores the codec is allowed
130 // to use. 130 // to use.
131 // - maxPayloadSize : The maximum size each payload is allowed 131 // - maxPayloadSize : The maximum size each payload is allowed
132 // to have. Usually MTU - overhead. 132 // to have. Usually MTU - overhead.
133 // 133 //
134 // Return value : VCM_OK, on success. 134 // Return value : VCM_OK, on success.
135 // < 0, on error. 135 // < 0, on error.
136 virtual int32_t RegisterSendCodec(const VideoCodec* sendCodec, 136 virtual int32_t RegisterSendCodec(const VideoCodec* sendCodec,
137 uint32_t numberOfCores, 137 uint32_t numberOfCores,
138 uint32_t maxPayloadSize) = 0; 138 uint32_t maxPayloadSize) = 0;
139 139
140 // Get the current send codec in use. 140 // Get the current send codec in use.
141 // 141 //
142 // If a codec has not been set yet, the |id| property of the return value 142 // If a codec has not been set yet, the |id| property of the return value
143 // will be 0 and |name| empty. 143 // will be 0 and |name| empty.
144 // 144 //
145 // NOTE: This method intentionally does not hold locks and minimizes data 145 // NOTE: This method intentionally does not hold locks and minimizes data
146 // copying. It must be called on the thread where the VCM was constructed. 146 // copying. It must be called on the thread where the VCM was constructed.
147 virtual const VideoCodec& GetSendCodec() const = 0; 147 virtual const VideoCodec& GetSendCodec() const = 0;
148 148
149 // DEPRECATED: Use GetSendCodec() instead. 149 // DEPRECATED: Use GetSendCodec() instead.
150 // 150 //
151 // API to get the current send codec in use. 151 // API to get the current send codec in use.
152 // 152 //
153 // Input: 153 // Input:
154 // - currentSendCodec : Address where the sendCodec will be written. 154 // - currentSendCodec : Address where the sendCodec will be written.
155 // 155 //
156 // Return value : VCM_OK, on success. 156 // Return value : VCM_OK, on success.
157 // < 0, on error. 157 // < 0, on error.
158 // 158 //
159 // NOTE: The returned codec information is not guaranteed to be current when 159 // NOTE: The returned codec information is not guaranteed to be current when
160 // the call returns. This method acquires a lock that is aligned with 160 // the call returns. This method acquires a lock that is aligned with
161 // video encoding, so it should be assumed to be allowed to block for 161 // video encoding, so it should be assumed to be allowed to block for
162 // several milliseconds. 162 // several milliseconds.
163 virtual int32_t SendCodec(VideoCodec* currentSendCodec) const = 0; 163 virtual int32_t SendCodec(VideoCodec* currentSendCodec) const = 0;
164 164
165 // DEPRECATED: Use GetSendCodec() instead. 165 // DEPRECATED: Use GetSendCodec() instead.
166 // 166 //
167 // API to get the current send codec type 167 // API to get the current send codec type
168 // 168 //
169 // Return value : Codec type, on success. 169 // Return value : Codec type, on success.
170 // kVideoCodecUnknown, on error or if no send codec is s et 170 // kVideoCodecUnknown, on error or if no send codec is s et
171 // NOTE: Same notes apply as for SendCodec() above. 171 // NOTE: Same notes apply as for SendCodec() above.
172 virtual VideoCodecType SendCodec() const = 0; 172 virtual VideoCodecType SendCodec() const = 0;
173 173
174 // Register an external encoder object. This can not be used together with 174 // Register an external encoder object. This can not be used together with
175 // external decoder callbacks. 175 // external decoder callbacks.
176 // 176 //
177 // Input: 177 // Input:
178 // - externalEncoder : Encoder object to be used for encoding frames in serted 178 // - externalEncoder : Encoder object to be used for encoding frames in serted
179 // with the AddVideoFrame API. 179 // with the AddVideoFrame API.
180 // - payloadType : The payload type bound which this encoder is bou nd to. 180 // - payloadType : The payload type bound which this encoder is bou nd to.
181 // 181 //
182 // Return value : VCM_OK, on success. 182 // Return value : VCM_OK, on success.
183 // < 0, on error. 183 // < 0, on error.
184 virtual int32_t RegisterExternalEncoder(VideoEncoder* externalEncoder, 184 virtual int32_t RegisterExternalEncoder(VideoEncoder* externalEncoder,
185 uint8_t payloadType, 185 uint8_t payloadType,
186 bool internalSource = false) = 0; 186 bool internalSource = false) = 0;
187 187
188 // API to get codec config parameters to be sent out-of-band to a receiver. 188 // API to get codec config parameters to be sent out-of-band to a receiver.
189 // 189 //
190 // Input: 190 // Input:
191 // - buffer : Memory where the codec config parameters should be written. 191 // - buffer : Memory where the codec config parameters should be written.
192 // - size : Size of the memory available. 192 // - size : Size of the memory available.
193 // 193 //
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 225
226 // Sets the parameters describing the receive channel. These parameters are inputs to the 226 // Sets the parameters describing the receive channel. These parameters are inputs to the
227 // Media Optimization inside the VCM. 227 // Media Optimization inside the VCM.
228 // 228 //
229 // Input: 229 // Input:
230 // - rtt : Current round-trip time in ms. 230 // - rtt : Current round-trip time in ms.
231 // with the most amount available bandwidth i n a conference 231 // with the most amount available bandwidth i n a conference
232 // scenario 232 // scenario
233 // 233 //
234 // Return value : VCM_OK, on success. 234 // Return value : VCM_OK, on success.
235 // < 0, on error. 235 // < 0, on error.
236 virtual int32_t SetReceiveChannelParameters(int64_t rtt) = 0; 236 virtual int32_t SetReceiveChannelParameters(int64_t rtt) = 0;
237 237
238 // Register a transport callback which will be called to deliver the encoded data and 238 // Register a transport callback which will be called to deliver the encoded data and
239 // side information. 239 // side information.
240 // 240 //
241 // Input: 241 // Input:
242 // - transport : The callback object to register. 242 // - transport : The callback object to register.
243 // 243 //
244 // Return value : VCM_OK, on success. 244 // Return value : VCM_OK, on success.
245 // < 0, on error. 245 // < 0, on error.
246 virtual int32_t RegisterTransportCallback(VCMPacketizationCallback* transpor t) = 0; 246 virtual int32_t RegisterTransportCallback(VCMPacketizationCallback* transpor t) = 0;
247 247
248 // Register video output information callback which will be called to delive r information 248 // Register video output information callback which will be called to delive r information
249 // about the video stream produced by the encoder, for instance the average frame rate and 249 // about the video stream produced by the encoder, for instance the average frame rate and
250 // bit rate. 250 // bit rate.
251 // 251 //
252 // Input: 252 // Input:
253 // - outputInformation : The callback object to register. 253 // - outputInformation : The callback object to register.
254 // 254 //
255 // Return value : VCM_OK, on success. 255 // Return value : VCM_OK, on success.
256 // < 0, on error. 256 // < 0, on error.
257 virtual int32_t RegisterSendStatisticsCallback( 257 virtual int32_t RegisterSendStatisticsCallback(
258 VCMSendStatisticsCallback* sendStats) = 0; 258 VCMSendStatisticsCallback* sendStats) = 0;
259 259
260 // Register a video protection callback which will be called to deliver 260 // Register a video protection callback which will be called to deliver
261 // the requested FEC rate and NACK status (on/off). 261 // the requested FEC rate and NACK status (on/off).
262 // 262 //
263 // Input: 263 // Input:
264 // - protection : The callback object to register. 264 // - protection : The callback object to register.
265 // 265 //
266 // Return value : VCM_OK, on success. 266 // Return value : VCM_OK, on success.
267 // < 0, on error. 267 // < 0, on error.
268 virtual int32_t RegisterProtectionCallback(VCMProtectionCallback* protection ) = 0; 268 virtual int32_t RegisterProtectionCallback(VCMProtectionCallback* protection ) = 0;
269 269
270 // Enable or disable a video protection method. 270 // Enable or disable a video protection method.
271 // 271 //
272 // Input: 272 // Input:
273 // - videoProtection : The method to enable or disable. 273 // - videoProtection : The method to enable or disable.
274 // - enable : True if the method should be enabled, false if 274 // - enable : True if the method should be enabled, false if
275 // it should be disabled. 275 // it should be disabled.
276 // 276 //
277 // Return value : VCM_OK, on success. 277 // Return value : VCM_OK, on success.
278 // < 0, on error. 278 // < 0, on error.
279 virtual int32_t SetVideoProtection(VCMVideoProtection videoProtection, 279 virtual int32_t SetVideoProtection(VCMVideoProtection videoProtection,
280 bool enable) = 0; 280 bool enable) = 0;
281 281
282 // Add one raw video frame to the encoder. This function does all the necess ary 282 // Add one raw video frame to the encoder. This function does all the necess ary
283 // processing, then decides what frame type to encode, or if the frame shoul d be 283 // processing, then decides what frame type to encode, or if the frame shoul d be
284 // dropped. If the frame should be encoded it passes the frame to the encode r 284 // dropped. If the frame should be encoded it passes the frame to the encode r
285 // before it returns. 285 // before it returns.
286 // 286 //
287 // Input: 287 // Input:
288 // - videoFrame : Video frame to encode. 288 // - videoFrame : Video frame to encode.
289 // - codecSpecificInfo : Extra codec information, e.g., pre-parsed in-b and signaling. 289 // - codecSpecificInfo : Extra codec information, e.g., pre-parsed in-b and signaling.
290 // 290 //
291 // Return value : VCM_OK, on success. 291 // Return value : VCM_OK, on success.
292 // < 0, on error. 292 // < 0, on error.
293 virtual int32_t AddVideoFrame( 293 virtual int32_t AddVideoFrame(
294 const VideoFrame& videoFrame, 294 const VideoFrame& videoFrame,
295 const VideoContentMetrics* contentMetrics = NULL, 295 const VideoContentMetrics* contentMetrics = NULL,
296 const CodecSpecificInfo* codecSpecificInfo = NULL) = 0; 296 const CodecSpecificInfo* codecSpecificInfo = NULL) = 0;
297 297
298 // Next frame encoded should be an intra frame (keyframe). 298 // Next frame encoded should be an intra frame (keyframe).
299 // 299 //
300 // Return value : VCM_OK, on success. 300 // Return value : VCM_OK, on success.
301 // < 0, on error. 301 // < 0, on error.
302 virtual int32_t IntraFrameRequest(int stream_index) = 0; 302 virtual int32_t IntraFrameRequest(int stream_index) = 0;
303 303
304 // Frame Dropper enable. Can be used to disable the frame dropping when the encoder 304 // Frame Dropper enable. Can be used to disable the frame dropping when the encoder
305 // over-uses its bit rate. This API is designed to be used when the encoded frames 305 // over-uses its bit rate. This API is designed to be used when the encoded frames
306 // are supposed to be stored to an AVI file, or when the I420 codec is used and the 306 // are supposed to be stored to an AVI file, or when the I420 codec is used and the
307 // target bit rate shouldn't affect the frame rate. 307 // target bit rate shouldn't affect the frame rate.
308 // 308 //
309 // Input: 309 // Input:
310 // - enable : True to enable the setting, false to disable i t. 310 // - enable : True to enable the setting, false to disable i t.
311 // 311 //
312 // Return value : VCM_OK, on success. 312 // Return value : VCM_OK, on success.
313 // < 0, on error. 313 // < 0, on error.
314 virtual int32_t EnableFrameDropper(bool enable) = 0; 314 virtual int32_t EnableFrameDropper(bool enable) = 0;
315 315
316 316
317 /* 317 /*
318 * Receiver 318 * Receiver
319 */ 319 */
320 320
321 // Register possible receive codecs, can be called multiple times for differ ent codecs. 321 // Register possible receive codecs, can be called multiple times for differ ent codecs.
322 // The module will automatically switch between registered codecs depending on the 322 // The module will automatically switch between registered codecs depending on the
323 // payload type of incoming frames. The actual decoder will be created when needed. 323 // payload type of incoming frames. The actual decoder will be created when needed.
324 // 324 //
325 // Input: 325 // Input:
326 // - receiveCodec : Settings for the codec to be registered. 326 // - receiveCodec : Settings for the codec to be registered.
327 // - numberOfCores : Number of CPU cores that the decoder is allowe d to use. 327 // - numberOfCores : Number of CPU cores that the decoder is allowe d to use.
328 // - requireKeyFrame : Set this to true if you don't want any delta f rames 328 // - requireKeyFrame : Set this to true if you don't want any delta f rames
329 // to be decoded until the first key frame has be en decoded. 329 // to be decoded until the first key frame has be en decoded.
330 // 330 //
331 // Return value : VCM_OK, on success. 331 // Return value : VCM_OK, on success.
332 // < 0, on error. 332 // < 0, on error.
333 virtual int32_t RegisterReceiveCodec(const VideoCodec* receiveCodec, 333 virtual int32_t RegisterReceiveCodec(const VideoCodec* receiveCodec,
334 int32_t numberOfCores, 334 int32_t numberOfCores,
335 bool requireKeyFrame = false) = 0; 335 bool requireKeyFrame = false) = 0;
336 336
337 // Register an externally defined decoder/renderer object. Can be a decoder only or a 337 // Register an externally defined decoder/renderer object. Can be a decoder only or a
338 // decoder coupled with a renderer. Note that RegisterReceiveCodec must be c alled to 338 // decoder coupled with a renderer. Note that RegisterReceiveCodec must be c alled to
339 // be used for decoding incoming streams. 339 // be used for decoding incoming streams.
340 // 340 //
341 // Input: 341 // Input:
342 // - externalDecoder : The external decoder/renderer object. 342 // - externalDecoder : The external decoder/renderer object.
343 // - payloadType : The payload type which this decoder shoul d be 343 // - payloadType : The payload type which this decoder shoul d be
344 // registered to. 344 // registered to.
345 // - internalRenderTiming : True if the internal renderer (if any) of the decoder 345 // - internalRenderTiming : True if the internal renderer (if any) of the decoder
346 // object can make sure to render at a given time in ms. 346 // object can make sure to render at a given time in ms.
347 // 347 //
348 // Return value : VCM_OK, on success. 348 // Return value : VCM_OK, on success.
349 // < 0, on error. 349 // < 0, on error.
350 virtual int32_t RegisterExternalDecoder(VideoDecoder* externalDecoder, 350 virtual int32_t RegisterExternalDecoder(VideoDecoder* externalDecoder,
351 uint8_t payloadType, 351 uint8_t payloadType,
352 bool internalRenderTiming) = 0; 352 bool internalRenderTiming) = 0;
353 353
354 // Register a receive callback. Will be called whenever there is a new frame ready 354 // Register a receive callback. Will be called whenever there is a new frame ready
355 // for rendering. 355 // for rendering.
356 // 356 //
357 // Input: 357 // Input:
358 // - receiveCallback : The callback object to be used by the mod ule when a 358 // - receiveCallback : The callback object to be used by the mod ule when a
359 // frame is ready for rendering. 359 // frame is ready for rendering.
360 // De-register with a NULL pointer. 360 // De-register with a NULL pointer.
361 // 361 //
362 // Return value : VCM_OK, on success. 362 // Return value : VCM_OK, on success.
363 // < 0, on error. 363 // < 0, on error.
364 virtual int32_t RegisterReceiveCallback(VCMReceiveCallback* receiveCallback) = 0; 364 virtual int32_t RegisterReceiveCallback(VCMReceiveCallback* receiveCallback) = 0;
365 365
366 // Register a receive statistics callback which will be called to deliver in formation 366 // Register a receive statistics callback which will be called to deliver in formation
367 // about the video stream received by the receiving side of the VCM, for ins tance the 367 // about the video stream received by the receiving side of the VCM, for ins tance the
368 // average frame rate and bit rate. 368 // average frame rate and bit rate.
369 // 369 //
370 // Input: 370 // Input:
371 // - receiveStats : The callback object to register. 371 // - receiveStats : The callback object to register.
372 // 372 //
373 // Return value : VCM_OK, on success. 373 // Return value : VCM_OK, on success.
374 // < 0, on error. 374 // < 0, on error.
375 virtual int32_t RegisterReceiveStatisticsCallback( 375 virtual int32_t RegisterReceiveStatisticsCallback(
376 VCMReceiveStatisticsCallback* receiveStats) = 0; 376 VCMReceiveStatisticsCallback* receiveStats) = 0;
377 377
378 // Register a decoder timing callback which will be called to deliver 378 // Register a decoder timing callback which will be called to deliver
379 // information about the timing of the decoder in the receiving side of the 379 // information about the timing of the decoder in the receiving side of the
380 // VCM, for instance the current and maximum frame decode latency. 380 // VCM, for instance the current and maximum frame decode latency.
381 // 381 //
382 // Input: 382 // Input:
383 // - decoderTiming : The callback object to register. 383 // - decoderTiming : The callback object to register.
384 // 384 //
385 // Return value : VCM_OK, on success. 385 // Return value : VCM_OK, on success.
386 // < 0, on error. 386 // < 0, on error.
387 virtual int32_t RegisterDecoderTimingCallback( 387 virtual int32_t RegisterDecoderTimingCallback(
388 VCMDecoderTimingCallback* decoderTiming) = 0; 388 VCMDecoderTimingCallback* decoderTiming) = 0;
389 389
390 // Register a frame type request callback. This callback will be called when the 390 // Register a frame type request callback. This callback will be called when the
391 // module needs to request specific frame types from the send side. 391 // module needs to request specific frame types from the send side.
392 // 392 //
393 // Input: 393 // Input:
394 // - frameTypeCallback : The callback object to be used by the mod ule when 394 // - frameTypeCallback : The callback object to be used by the mod ule when
395 // requesting a specific type of frame from the send side. 395 // requesting a specific type of frame from the send side.
396 // De-register with a NULL pointer. 396 // De-register with a NULL pointer.
397 // 397 //
398 // Return value : VCM_OK, on success. 398 // Return value : VCM_OK, on success.
399 // < 0, on error. 399 // < 0, on error.
400 virtual int32_t RegisterFrameTypeCallback( 400 virtual int32_t RegisterFrameTypeCallback(
401 VCMFrameTypeCallback* frameTypeCallback) = 0; 401 VCMFrameTypeCallback* frameTypeCallback) = 0;
402 402
403 // Registers a callback which is called whenever the receive side of the VCM 403 // Registers a callback which is called whenever the receive side of the VCM
404 // encounters holes in the packet sequence and needs packets to be retransmi tted. 404 // encounters holes in the packet sequence and needs packets to be retransmi tted.
405 // 405 //
406 // Input: 406 // Input:
407 // - callback : The callback to be registered in the VCM. 407 // - callback : The callback to be registered in the VCM.
408 // 408 //
409 // Return value : VCM_OK, on success. 409 // Return value : VCM_OK, on success.
410 // <0, on error. 410 // <0, on error.
411 virtual int32_t RegisterPacketRequestCallback( 411 virtual int32_t RegisterPacketRequestCallback(
412 VCMPacketRequestCallback* callback) = 0; 412 VCMPacketRequestCallback* callback) = 0;
413 413
414 // Waits for the next frame in the jitter buffer to become complete 414 // Waits for the next frame in the jitter buffer to become complete
415 // (waits no longer than maxWaitTimeMs), then passes it to the decoder for d ecoding. 415 // (waits no longer than maxWaitTimeMs), then passes it to the decoder for d ecoding.
416 // Should be called as often as possible to get the most out of the decoder. 416 // Should be called as often as possible to get the most out of the decoder.
417 // 417 //
418 // Return value : VCM_OK, on success. 418 // Return value : VCM_OK, on success.
419 // < 0, on error. 419 // < 0, on error.
420 virtual int32_t Decode(uint16_t maxWaitTimeMs = 200) = 0; 420 virtual int32_t Decode(uint16_t maxWaitTimeMs = 200) = 0;
421 421
422 // Registers a callback which conveys the size of the render buffer. 422 // Registers a callback which conveys the size of the render buffer.
423 virtual int RegisterRenderBufferSizeCallback( 423 virtual int RegisterRenderBufferSizeCallback(
424 VCMRenderBufferSizeCallback* callback) = 0; 424 VCMRenderBufferSizeCallback* callback) = 0;
425 425
426 // Reset the decoder state to the initial state. 426 // Reset the decoder state to the initial state.
427 // 427 //
428 // Return value : VCM_OK, on success. 428 // Return value : VCM_OK, on success.
429 // < 0, on error. 429 // < 0, on error.
430 virtual int32_t ResetDecoder() = 0; 430 virtual int32_t ResetDecoder() = 0;
431 431
432 // API to get the codec which is currently used for decoding by the module. 432 // API to get the codec which is currently used for decoding by the module.
433 // 433 //
434 // Input: 434 // Input:
435 // - currentReceiveCodec : Settings for the codec to be registered . 435 // - currentReceiveCodec : Settings for the codec to be registered .
436 // 436 //
437 // Return value : VCM_OK, on success. 437 // Return value : VCM_OK, on success.
438 // < 0, on error. 438 // < 0, on error.
439 virtual int32_t ReceiveCodec(VideoCodec* currentReceiveCodec) const = 0; 439 virtual int32_t ReceiveCodec(VideoCodec* currentReceiveCodec) const = 0;
440 440
441 // API to get the codec type currently used for decoding by the module. 441 // API to get the codec type currently used for decoding by the module.
442 // 442 //
443 // Return value : codecy type, on success. 443 // Return value : codecy type, on success.
444 // kVideoCodecUnknown, on error or if no receive codec i s registered 444 // kVideoCodecUnknown, on error or if no receive codec i s registered
445 virtual VideoCodecType ReceiveCodec() const = 0; 445 virtual VideoCodecType ReceiveCodec() const = 0;
446 446
447 // Insert a parsed packet into the receiver side of the module. Will be plac ed in the 447 // Insert a parsed packet into the receiver side of the module. Will be plac ed in the
448 // jitter buffer waiting for the frame to become complete. Returns as soon a s the packet 448 // jitter buffer waiting for the frame to become complete. Returns as soon a s the packet
449 // has been placed in the jitter buffer. 449 // has been placed in the jitter buffer.
450 // 450 //
451 // Input: 451 // Input:
452 // - incomingPayload : Payload of the packet. 452 // - incomingPayload : Payload of the packet.
453 // - payloadLength : Length of the payload. 453 // - payloadLength : Length of the payload.
454 // - rtpInfo : The parsed header. 454 // - rtpInfo : The parsed header.
455 // 455 //
456 // Return value : VCM_OK, on success. 456 // Return value : VCM_OK, on success.
457 // < 0, on error. 457 // < 0, on error.
458 virtual int32_t IncomingPacket(const uint8_t* incomingPayload, 458 virtual int32_t IncomingPacket(const uint8_t* incomingPayload,
459 size_t payloadLength, 459 size_t payloadLength,
460 const WebRtcRTPHeader& rtpInfo) = 0; 460 const WebRtcRTPHeader& rtpInfo) = 0;
461 461
462 // Minimum playout delay (Used for lip-sync). This is the minimum delay requ ired 462 // Minimum playout delay (Used for lip-sync). This is the minimum delay requ ired
463 // to sync with audio. Not included in VideoCodingModule::Delay() 463 // to sync with audio. Not included in VideoCodingModule::Delay()
464 // Defaults to 0 ms. 464 // Defaults to 0 ms.
465 // 465 //
466 // Input: 466 // Input:
467 // - minPlayoutDelayMs : Additional delay in ms. 467 // - minPlayoutDelayMs : Additional delay in ms.
468 // 468 //
469 // Return value : VCM_OK, on success. 469 // Return value : VCM_OK, on success.
470 // < 0, on error. 470 // < 0, on error.
471 virtual int32_t SetMinimumPlayoutDelay(uint32_t minPlayoutDelayMs) = 0; 471 virtual int32_t SetMinimumPlayoutDelay(uint32_t minPlayoutDelayMs) = 0;
472 472
473 // Set the time required by the renderer to render a frame. 473 // Set the time required by the renderer to render a frame.
474 // 474 //
475 // Input: 475 // Input:
476 // - timeMS : The time in ms required by the renderer to render a frame. 476 // - timeMS : The time in ms required by the renderer to render a frame.
477 // 477 //
478 // Return value : VCM_OK, on success. 478 // Return value : VCM_OK, on success.
479 // < 0, on error. 479 // < 0, on error.
480 virtual int32_t SetRenderDelay(uint32_t timeMS) = 0; 480 virtual int32_t SetRenderDelay(uint32_t timeMS) = 0;
481 481
482 // The total delay desired by the VCM. Can be less than the minimum 482 // The total delay desired by the VCM. Can be less than the minimum
483 // delay set with SetMinimumPlayoutDelay. 483 // delay set with SetMinimumPlayoutDelay.
484 // 484 //
485 // Return value : Total delay in ms, on success. 485 // Return value : Total delay in ms, on success.
486 // < 0, on error. 486 // < 0, on error.
487 virtual int32_t Delay() const = 0; 487 virtual int32_t Delay() const = 0;
488 488
489 // Returns the number of packets discarded by the jitter buffer due to being 489 // Returns the number of packets discarded by the jitter buffer due to being
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
545 EncodedImageCallback* observer) = 0; 545 EncodedImageCallback* observer) = 0;
546 virtual void RegisterPostEncodeImageCallback( 546 virtual void RegisterPostEncodeImageCallback(
547 EncodedImageCallback* post_encode_callback) = 0; 547 EncodedImageCallback* post_encode_callback) = 0;
548 // Releases pending decode calls, permitting faster thread shutdown. 548 // Releases pending decode calls, permitting faster thread shutdown.
549 virtual void TriggerDecoderShutdown() = 0; 549 virtual void TriggerDecoderShutdown() = 0;
550 }; 550 };
551 551
552 } // namespace webrtc 552 } // namespace webrtc
553 553
554 #endif // WEBRTC_MODULES_INTERFACE_VIDEO_CODING_H_ 554 #endif // WEBRTC_MODULES_INTERFACE_VIDEO_CODING_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698