QA/Fennec/H264
Contents
Overview - H.264/AAC/MP3 Software/Hardware Decoding in Firefox for Android
Feature | Release Target | Dev Lead | QA Lead | Dev Status | QA Status | Health |
H.264/AAC/MP3 Software/Hardware Decoding in Firefox for Android | Firefox 17 | Chris Peterson | Aaron Train | Landed | In Progress | OK |
Summary
In essence, the goal of implementing H.264/AAC/MP3 support in Firefox for Android is to extend the playback capabilities of the browser to provide a greater video experience. The popular H.264 format is widely viewed as the best technical choice for encoding Internet video. Users should be able to seamlessly experience flawless playback from these widely used formats.
Support for the H.264, AAC and MP3 codecs is provided by using the android ‘libstagefright’ library which allows hardware accelerated decoding of some video formats.
- H.264/MPEG-4 Part 10 or AVC (Advanced Video Coding) is a standard for video compression, and is currently one of the most commonly used formats for the recording, compression, and distribution of high definition video. The final drafting work on the first version of the standard was completed in May 2003.
- Advanced Audio Coding (AAC) is a standardized, lossy compression and encoding scheme for digital audio. Designed to be the successor of the MP3 format, AAC generally achieves better sound quality than MP3 at similar bit rates.
- MPEG-1 or MPEG-2 Audio Layer III, more commonly referred to as MP3, is a patented encoding format for digital audio which uses a form of lossy data compression. It is a common audio format for consumer audio storage, as well as a de facto standard of digital audio compression for the transfer and playback of music on most digital audio players.
Testing Scope
Major Features
For our rounds of testing feature focused testing will focus on the following areas:
- Hardware Decoding
- Device playback of H.264
- Device playback of AAC
- Device playback of MP3
- Software Decoding
- Device playback of H.264
- Device playback of AAC
- Device playback of MP3
- Framework compatibility
- Compliance and acceptance of commonly used video content providers
- Device compatibility
- Varied manufacturers, Android OS versions and hardware specifications
Software Qualities
The following software qualities that need to be analyzed are (ordered by priority):
- Compatibility
- H.264, AAC, MP3
- Video content providers
- Performance
Edge Cases
The following special edge cases need to be taken into account when testing the major parts of this feature:
- Browser crashes
- Device configuration
Testing Strategy
Akin to B2G (Firefox OS) there will be a similar and or shared testing strategy. Please see this testing strategy.
Hardware and Software Decoding
Firefox for Android has recently adapted a new about:config preference for using and more-so testing Android H.264/MPEG-4 AVC decoding. The preference is media.stagefright.omxcodec.flags
Utimately, this preference allows one to override whether Firefox uses Android’s H.264/MPEG-4 AVC software or hardware decoder. As Chris Peterson mentions in the same announcement, this is useful for debugging different configurations and conveinent for testing.
Flags values to note:
- 0 - Android will use either hardware or software decoding (**default**)
- 8 - Force software decoding
- 16 - Force hardware decoding
- Reference
Sign Off Criteria
Beta
- Aurora and Beta-level functional test cases pass
- No unresolved bugs with a severity level of major or higher that cause Aurora or Beta test cases to fail
- No regressions in Firefox linked to the features code changes detected with a severity of major or higher
Release
- No bugs found with a severity level of major or higher in test cases
- All major functional test cases pass
- No unresolved bugs with a severity level of major or higher that causes tests to fail
Infrastucture Requirements
Test Cases and Results
Test Cases
- Manual test cases can be found in Moztrap: [here]
- Media Test -> http://people.mozilla.com/~atrain/mobile/tests/media.html
- Video Codecs
- H.264 Baseline: avc1.42001E (H.264 Baseline Profile Level 3.0)
- H.264 Main: avc1.4D401E (H.264 Main Profile Level 3.0)
- H.264 High: avc1.6400xx, where xx is the AVC level
- MPEG-4 Visual Simple Profile Level 0: mp4v.20.9
- MPEG-4 Visual Advanced Simple Profile Level 0: mp4v.20.240
Smoke Level
- Verify audio codec Vorbis supported
- Verify that the following codecs are supported by importing videos in the respective formats: *Audio: Vorbis
- → Videos encoded with audio format Vorbis should play in the video app.
- Verify that the following codecs are supported by importing videos in the respective formats: *Audio: Vorbis
- Verify audio codec MP3 supported
- The following Codec should be supported: Audio: MP3
- Verify that the following codecs are supported by importing videos in the respective formats: *Audio: MP3
- → Verify that the following codecs are supported by importing videos in the respective formats: *Audio: MP3
- Verify that the following codecs are supported by importing videos in the respective formats: *Audio: MP3
- The following Codec should be supported: Audio: MP3
- Verify audio codec AAC supported
- The following Codec should be supported: Audio: AAC
- Verify that the following codecs are supported by importing videos in the respective formats: *Audio: AAC
- → Videos encoded with audio format AAC should play in the video app.
- Verify that the following codecs are supported by importing videos in the respective formats: *Audio: AAC
- The following Codec should be supported: Audio: AAC
- Verify video codec H.264 supported
- The following Codec should be supported: Video: H.264
- Verify that the following codecs are supported by importing videos in the respective formats: *Video: H.264
- → Videos encoded with H.264 should play in the video app.
- Verify that the following codecs are supported by importing videos in the respective formats: *Video: H.264
- The following Codec should be supported: Video: H.264
Basic Functional Level
Exploratory Testing
Video Based Websites
- http://www.metacafe.com
- http://video.yahoo.com
- http://vids.myspace.com
- http://www.break.com
- http://www.tv.com
- http://www.veoh.com
- http://www.ustream.tv
- http://www.videobash.com
- http://www.ovguide.com
- http://www.vevo.com
- http://www.justin.tv
- http://html5.grooveshark.com
- http://www.bloomberg.com
- http://www.funnyordie.com
- http://www.dailymotion.com
- http://www.soundcloud.com
Results
Device Compatibility
Device | Owner | Bugs | Status |
Samsung Galaxy SIII (Android 4.1.1) | AaronMT [:AaronMT] | Fixed: bug 785275 | PASS |
Samsung Galaxy Nexus (Android 4.1.2) | AaronMT [:AaronMT] | PASS | |
Samsung Nexus S (Android 4.1.12) | AaronMT [:AaronMT] | PASS | |
Asus Nexus 7 (Android 4.1.2) | AaronMT [:AaronMT] | PASS | |
Asus Transformer Prime (TF201) (Android 4.1.1) | AaronMT [:AaronMT] | PASS | |
Samsung Galaxy Tab 2 7" (Android 4.0.4) | AaronMT [:AaronMT] | PASS | |
Samsung Galaxy SII (Android 4.0.4) | AaronMT [:AaronMT] | Fixed: bug 802787 | PASS |
Samsung Galaxy Note (Android 4.0.4) | AaronMT [:AaronMT] | Fixed: bug 802795 | PASS |
Samsung Galaxy Note II (Android 4.1) | AaronMT [:AaronMT] | PASS |
Bugs
[In Progress] Media: Software Decoder
13 Total; 0 Open (0%); 12 Resolved (92.31%); 1 Verified (7.69%);
[In Progress] Media: Hardware Decoder
7 Total; 0 Open (0%); 7 Resolved (100%); 0 Verified (0%);
References
- bug 759945 - Stagefright decoding using software decoders
- bug 782508 - Stagefright decoding using hardware decoders