Closed Bug 1265301 Opened 9 years ago Closed 9 years ago

openh264 plugin will not work when encoding different resolution frames

Categories

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

44 Branch
x86_64
Windows 10
defect

Tracking

()

RESOLVED FIXED

People

(Reporter: xpeng, Assigned: hankpeng)

References

Details

Attachments

(1 file)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586 Steps to reproduce: module: WebRtc Plugin : OpenH264 v1.5.3 Step 1: Sharing application' window to others with H264 codec . Step 2: modify the size of the application's window several times with mouse. Actual results: firefox do not send h264 data to others. (almost 100%) , and the received h264 packet from others can not be decoded. the dropped frames increase , the sent packages do not increase in about:webrtc page. if we disable the openh264 plugin then enable the plugin, the plugin will work fine with both encode and decode. we have no idea to collect the information for openh264 plugin . which we can do please tell me .thanks. Expected results: firefox sent h264 data to others.
Component: Untriaged → Audio/Video: Playback
Product: Firefox → Core
OS: Unspecified → Windows 10
Hardware: Unspecified → x86_64
Component: Audio/Video: Playback → WebRTC: Audio/Video
Does this happen on every resize, or randomly after resizing a number of times?
Flags: needinfo?(xpeng)
Whiteboard: [needinfo 2016/05/12]
To the reporter - Please see comment 1. We need this additional information, or I'll need to close this bug as incomplete (due to lack of actionable info). Also, can you try to reproduce the problem and let us know if it still happens.
Whiteboard: [needinfo 2016/05/12] → [needinfo 2016/05/12 to reporter]
randomly after resizing a number of times , but how to collect the information for openh264 plugin? what information do you need ?
Could you please have a look at https://wiki.mozilla.org/Media/WebRTC/Logging, and try to capture the logs with NSPR_LOG_MODULES=gmp:5,webrtc_trace:65535,timestamp WEBRTC_TRACE_FILE=webrtc.log NSPR_LOG_FILE=nspr.log?
logs have been added into attachment (In reply to Hank Peng from comment #4) > Could you please have a look at > https://wiki.mozilla.org/Media/WebRTC/Logging, and try to capture the logs > with NSPR_LOG_MODULES=gmp:5,webrtc_trace:65535,timestamp > WEBRTC_TRACE_FILE=webrtc.log NSPR_LOG_FILE=nspr.log?
Flags: needinfo?(xpeng)
So, the logging does indeed indicate that something has gone wrong during a re-init of the GMP encoder: 2016-06-07 08:39:49.335404 UTC - 1937838080[100530700]: [main|PeerConnectionImpl] PeerConnectionImpl.cpp:2148: Encountered media error! GMP Encode: Either init was aborted, or init failed to supply either a GMP Encoder or GMP host.
Status: UNCONFIRMED → NEW
backlog: --- → webrtc/webaudio+
Rank: 23
Ever confirmed: true
Priority: -- → P2
Whiteboard: [needinfo 2016/05/12 to reporter]
After doing some investigation, I found that this is a know issue of OpenH264 v1.5.3. As per https://github.com/cisco/openh264/tree/v1.5.3-Firefox39: Encoder errors when resolution exceeds 3840x2160. And according to the log, the resolution to be used is 3840x2400. 2016-06-07 08:39:49.335342 UTC - [0x10d775ed0]: D/GMP GMP Encode: resolution change from 320x240 to 3840x2400. In the coming OpenH264 v1.6, the max supported resolution has been updated to follow the H.264 standard. @haibozhu and @huili2, please give more detail about the change in OpenH264 v1.6 and what's the suggested solution when the captured resolution exceeds the supported one of OpenH264.
Flags: needinfo?(huili2)
Flags: needinfo?(haibozhu)
v1.6 has fixed the width/height issue with permitted max resolution defined in level 5.2, thus 3840*2400 is allowed to be encoded. However if the resolution exceeds the data in level definition, encoder will not go on to encode. Thanks for all your information.
As the level limit in h.264/avc standard, the width * height should less than or equal to 9437184. When input resolution is larger than it, we should set the output resolution to make it comply with the standard draft.
Fixed in OpenH264v1.6. When the resolution is more than level 5.2, scale down the encoded output resolution: https://github.com/cisco/openh264/commit/00e89b89f0d8e9665e22826ea2ae1770fdd3ea2b.
Assignee: nobody → hankpeng
Depends on: 1223891
Depends on: 1233495
No longer depends on: 1223891
Change the bug status to Resolved/Fixed as Firefox openh264 plugin v1.6 that includes the fix has been released to all supported platforms.
Status: NEW → RESOLVED
Closed: 9 years ago
Flags: needinfo?(huili2)
Flags: needinfo?(haibozhu)
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: