Closed Bug 974922 Opened 12 years ago Closed 11 years ago

Avoid memory copy in VideoCaptureImpl::IncomingFrame

Categories

(Core :: WebRTC: Audio/Video, defect)

defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: slee, Assigned: ctai)

Details

Attachments

(1 file)

When sending a video frame to encoder, there is one memory copy in VideoCaptureImpl::IncomingFrame. This bug is to discuss whether we could avoid this memory copy.
Assignee: nobody → ctai
Attached image systrace.png
This is the screen shut of the result of systrace when I use webrtc for multi-chat in flame(QVGA mode).
According to the profiling result, the cost of memory copy in |VideoCaptureImpl::IncomingFrame| is about 0.2ms(including overhead of systrace). I suggest to keep current implement due to below reasons. 1. The benefit of removing memory copy in this case is too low(<0.2ms) 2. The code of VideoCaptureImpl is in GIPS. We need to use external module for the change of |IncomingFrame|. We need to overwrite this function. It will introduce a maintenance issue. 3. If we don't do a memory copy in this place, it means we need to hold the buffer until |VCMGenericEncoder::Encode| is completed. In VP8 SW case, it takes over 40ms for encoding. That might be make camera run out of buffer in some extreme case. So close this bug in this moment. We can reopen this bug when the memory copy is the bottleneck.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: