DescriptionAndroidVideoEncodeAccelerator is born!
AVEA is the encode-side analogue of AndroidVideoDecodeAccelerator, or the
Android analogue of ExynosVideoEncodeAccelerator, depending on your POV.
Also included in this CL:
- MediaCodecBridge learns how to be an encoder, too.
- MediaCodecBridge::Start is sunk into Create since they were always called
together.
- android.os.Log() is given an exception parameter instead of concatenating its
.toString() (and losing its stacktrace!)
- MediaCodecBridge exposes its buffers to reduce unnecessary memcpy'ing
Performance impact: isolating encode performance by making Android decode only
240p and no audio send/receive with the following URLs:
z620/gprecise: https://apprtc.appspot.com/?video=maxHeight=240&audio=false&r=<ROOM>
Nexus5: https://apprtc.appspot.com/?video=minHeight=720,maxHeight=720,minWidth=1280,maxWidth=1280&audio=false&r=<ROOM>
All 4 cores are max'd are running at top speed (ondemand governor ramps them up
on its own with this workload).
SW encode: CPU utilization 80% and desktop receives 0.1-0.5FPS (jankily).
HW encode: CPU utilization 60-70% and desktop receives 30FPS reliably.
Comparing an easier workload of encoding 360p:
z620/gprecise: https://apprtc.appspot.com/?video=maxHeight=240&audio=false&r=<ROOM>
Nexus5: https://apprtc.appspot.com/?video=minHeight=360,maxHeight=360,minWidth=640,maxWidth=640&audio=false&r=<ROOM>
Set all 4 cores to "performance" governor for stable comparison.
SW encode: CPU utilization 63% and desktop receives 30FPS reliably.
HW encode: CPU utilization 53% and desktop receives 30FPS reliably.
BUG=313115
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=238658
Patch Set 1 : . #
Total comments: 44
Patch Set 2 : xhwang review comments, clang-format, and flags support #Patch Set 3 : Added blacklist-based disabling #
Total comments: 11
Patch Set 4 : kbr comments. #
Total comments: 4
Patch Set 5 : . #Messages
Total messages: 31 (0 generated)
|