Closed Bug 1015029 Opened 11 years ago Closed 11 years ago

8x10 OMX H.264 encoder doesn't support Constant bitrate config

Categories

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

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla32

People

(Reporter: jesup, Assigned: jesup)

References

Details

Attachments

(1 file)

The 8x10 H.264 OMX encoder doesn't support OMX_Video_ControlRateConstant and you get Variable bitrate if you try to use it. The only viable candidate is OMX_Video_ControlRateConstantSkipFrames, which is CBR with frame-skipping after an IDR to keep the bitrate average ok. This requires reworking the encode queue logic to account for the frame skipping. There is also a bug in the encoder or stagefright where the input timestamps don't appear in the output, so the code using timestamps is ifdef'd off.
Attachment #8427515 - Flags: review?(jolin)
Comment on attachment 8427515 [details] [diff] [review] Use OMX_VIDEO_ControlRateConstantSkipFrames mode for H.264 OMX encoder Review of attachment 8427515 [details] [diff] [review]: ----------------------------------------------------------------- ::: media/webrtc/signaling/src/media-conduit/WebrtcOMXH264VideoCodec.cpp @@ +579,5 @@ > CODEC_LOGD("OMX: (encode no output available this time)"); > return false; > } > > + uint32_t target_timestamp = (timeUs * 90ll) / 1000; // us -> 90KHz s/target_timestamp/targetTimestamp/g @@ +596,5 @@ > webrtc::EncodedImage encoded(output.Elements(), output.Length(), > output.Capacity()); > encoded._frameType = (isParamSets || isIFrame) ? > webrtc::kKeyFrame : webrtc::kDeltaFrame; > + EncodedFrame input_frame; s/input_frame/inputFrame/g
Attachment #8427515 - Flags: review?(jolin) → review+
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Blocks: 1030109
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: