Closed Bug 1063883 Opened 10 years ago Closed 10 years ago

OMX h.264 encoder doesn't handle resolution changes in mid-stream


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

Gonk (Firefox OS)
Not set



blocking-b2g 2.0+
Tracking Status
firefox33 --- wontfix
firefox34 --- fixed
firefox35 --- fixed
b2g-v2.0 --- fixed
b2g-v2.0M --- fixed
b2g-v2.1 --- fixed
b2g-v2.2 --- fixed


(Reporter: jesup, Assigned: jesup)


(Blocks 1 open bug)


(Whiteboard: [caf priority: p2][CR 715378])


(2 files)

[Blocking Requested - why for this release]: blocks 2.0+ bug/patch landing

+++ This bug was initially created as a clone of Bug #1059765 +++

The OMX H.264 encoder reconfigures on a resolution change, but:
1) in contrast to stream start, it merges SPS/PPS/iframe in one buffer
2) it doesn't set the CODECCONFIG flag on the single-buffer SPS/PPS/iframe
3) if the size isn't a multiple of 16 in both dimensions, green (or maybe random) is inserted
focused on OMX h.264; it may be useful for allowing downscales while avoiding odd resolutions (and we should also look to see if that odd requirement can be relaxed now)
Attachment #8485360 - Flags: review?(pkerr)
Attachment #8485356 - Flags: review?(pkerr)
Attachment #8485356 - Flags: review?(gpascutto)
Comment on attachment 8485360 [details] [diff] [review]
use multiples of macroblocks for qm_select downscaling

I'll take either reviewer for both patches
Attachment #8485360 - Flags: review?(gpascutto)
Attachment #8485356 - Flags: review?(pkerr) → review+
Attachment #8485360 - Flags: review?(pkerr) → review+
You may want to create a bug to keep track of your embedded comments about using the divisor to handle odd frame sizes for other codecs, etc.
Attachment #8485356 - Flags: review?(gpascutto)
Attachment #8485360 - Flags: review?(gpascutto)
No longer blocks: WebRTC-OpenH264
Comment on attachment 8485356 [details] [diff] [review]
In H.264 OMX HW make resolution changes work (SPS/PPS/iframe in one buffer)

This is for both patches on this bug (without the "force to macroblock boundary, when 320x240 is cut to 240x180, you end up with a stripe of green on the edge.  with the patch it goes to 256x192 and has no stripe.

We need it on Aurora/34 for 2.1

[Approval Request Comment]
Bug caused by (feature/regressing bug #): H.264 OMX

User impact if declined: inability to enable the content analysis for h.264, especially to allow the quality to track bandwidth available.

Testing completed: Tested here and by Jay Wang at QC

Risk to taking this patch (and alternatives if risky): We'd have to simply disable the resolution changes part of it (and leave fps adjustment only), which if bandwidth dropped to ~100K/s might cause quality to suffer a lot and/or frames per second to drop to annoying levels.

String or UUID changes made by this patch: none
Attachment #8485356 - Flags: approval-mozilla-b2g32?
Attachment #8485356 - Flags: approval-mozilla-aurora?
blocking-b2g: 2.0? → 2.0+
Attachment #8485356 - Flags: approval-mozilla-b2g32?
Attachment #8485356 - Flags: approval-mozilla-b2g32+
Attachment #8485356 - Flags: approval-mozilla-aurora?
Attachment #8485356 - Flags: approval-mozilla-aurora+
Whiteboard: [openh264-uplift] → [CR 715378][openh264-uplift]
Whiteboard: [CR 715378][openh264-uplift] → [caf priority: p2][CR 715378][openh264-uplift]
Whiteboard: [caf priority: p2][CR 715378][openh264-uplift] → [caf priority: p2][CR 715378]
You need to log in before you can comment on or make changes to this bug.