QA/Fennec/Play HLS

From MozillaWiki
Jump to navigation Jump to search

Overview

Purpose

The purpose of this wiki is to serve as a general test plan for verifying that HLS video can be correctly played in any given condition.

Ownership

Developer contact: X

QA: :Ninu

Overall Status

[LANDED] Nightly 50.0a1: first landed on - 30-07-2016

  • At risk

[ LANDED] Aurora 50.a2: first landed on - 02-08-2016

  • At risk

[ LANDED] Beta 50: first landed on - 26-09-2016

Testing Summary

Scope of testing

The testing will be focus on

  • making the HLS video watching experience good
  • making sure that the implementation of HLS video controls don't impact other video playing type

Environments

Testing will be performed on following devices:

  • Phones
    • 4.x
    • 5.x
    • 6.0
  • Tablet
    • 4.x
    • 5.x
    • 6.0

Specifications

  • HLS Player Landscape
  • HLS Player Portrait

User stories

  • As a user, I want to be able to play HLS videos without glitches and streaming problems, while the other app features are not impacted by a playing video.

Acceptance Criteria

Testing details

Test Cases

Step

1. Go to goo.gl/LLxEY8 and play the HLS video
R: The video plays correctly and the audio is correctly played

Step

1. Go to goo.gl/LLxEY8 and play the HLS video in landscape/portrait
R: The video plays correctly and the audio is correctly played
2. Change the device's orientation 
R: The video keeps playing and no interruptions or glitches are triggered

Step

1. Go to goo.gl/LLxEY8 and play the HLS video
R: The video plays correctly and the audio is correctly played
2. Try the video-player media controls
R: All buttons response is correctly applied in the video progress  

Step

1. Go to goo.gl/LLxEY8 and play the HLS video
R: The video plays correctly and the audio is correctly played
2. Close HLS video player and go to youtube, play a video
R: Any other video player is not impacted by the HLS video player previous use

Step

Pre-Condition:  Make sure Auto-Play is ON
1. Go to goo.gl/LLxEY8 and play the HLS video
R: The video starts Auto-playing

Step

Pre-Condition:  Make sure Auto-Play is OFF
1. Go to goo.gl/LLxEY8 and play the HLS video
R: The video should not start Auto-playing

Testing days

Date:05-09-2016

  • Exploratory testing with focus on the Aurora build and creating a test plan for the feature

Date:07-09-2016

  • Functional testing with focus on both Aurora and Nightly builds

Logged issues:

  • HLS video player overlaps other tabs once played - bug 1301043
  • A misleading error is received before playing an HLS video - bug 1301053
  • A HLS video cannot be played twice without reloading the whole page - bug 1301055

Date:08-09-2016

  • Creating test cases and exploratory testing on both Aurora and Nightly builds

Logged issues:

  • HLS videos automatically start playing when auto-play is OFF - bug 1301326

Date:03-10-2016

  • Functional testing with focus on all: Beta Aurora and Nightly builds

Logged issues:

  • Switching tabs will stop the HLS player - bug 1307074
  • HLS Player breaks other video types in other tabs - bug 1307076
  • Interrupting an HLS video with Task manager will lead to incorrect video resume - bug 1307078

Date:22-06-2017

  • Exploratory testing with focus on links from duplicated bugs and GitHub issues with devices Asus ZenPad 8 (Android 6.0.1) and LG G4 (Android 5.1), build Nightly 56.0a1 from 2017/06/21
  • New bugs found during testing
    • bug 1375478 - HLS: "Full-screen" button not displayed in the right position
    • bug 1375474 - Video doesn't play on observator.tv

Bug Work

Bug Work

  • Meta bug
    • bug 1345752 - (HLS_on_Fennec) [META][HLS] Make Gecko native support HLS on Fennec
Full Query
ID Priority Summary Status Assigned to
577084 -- Implement HTTP Live Streaming (HLS) for audio and video on Android RESOLVED
1341990 -- Introduce Exoplayer into build system RESOLVED Kilik Kuo [:kikuo] (inactive)
1350241 -- [Fennec][HLS] Create a demuxer-like component based on ExoPlayer. RESOLVED Kilik Kuo [:kikuo] (inactive)
1350246 -- [Fennec][HLS] Provide HLSDecoder / HLSDemuxer / HLSTrackDemuxer / HLSResouce for Gecko. RESOLVED James Cheng[:JamesCheng]
1350250 -- [Fennec][HLS] HLSResource should obtain buffer information from GeckoHlsPlayer.java RESOLVED James Cheng[:JamesCheng]
1350253 -- [Fennec][HLS] HLSDemuxer/HLSTrackDemuxer in Gecko should be able to get media & sample information from GeckoHlsPlayer.java RESOLVED Kilik Kuo [:kikuo] (inactive)
1350842 P3 Remove codes which are related with using external video player to play unsupported type media RESOLVED
1357984 P5 [META] Test case for HLS native supprts RESOLVED
1365227 -- AVCC NAL converter should generate extradata. RESOLVED Jean-Yves Avenard [:jya]
1365505 -- [Fennec][HLS] Turn on HLS native support not only for Nightly RESOLVED Kilik Kuo [:kikuo] (inactive)
1368904 P3 [Fennec][HLS] Handle unexpected OnError native callback from java GeckoHlsPlayer RESOLVED Kilik Kuo [:kikuo] (inactive)
1368907 -- [Fennec][HLS] Unify the naming from Hls into HLS for our Gecko HLS implementation RESOLVED James Cheng[:JamesCheng]
1368954 -- [Fennec][HLS] Separate source code which will affect generated JNI wrappers to avoid build bustage. RESOLVED Kilik Kuo [:kikuo] (inactive)
1368959 -- [Fennec][HLS] Set the MediaInfo duration to zero if the source is live streaming RESOLVED James Cheng[:JamesCheng]
1369598 -- [Fennec][HLS] Make HLSDemuxer initialized after underlying GekcoHlsPlayer is ready with data. RESOLVED Kilik Kuo [:kikuo] (inactive)
1371247 P5 [Fennec][HLS] Fix potential defects in exoplayer2. RESOLVED
1372501 -- [Fennec][HLS] Allow VideoDocument supporting HLS RESOLVED James Cheng[:JamesCheng]
1372841 -- Make HLSResource inherit from MediaResource instead of BaseMediaResource RESOLVED James Cheng[:JamesCheng]
1373119 -- [Fennec][HLS] Fix "explicit null dereferenced" case in GeckoHLSDemuxerWrapper.getSample RESOLVED Kilik Kuo [:kikuo] (inactive)
1373162 -- Crash in java.lang.NullPointerException: at org.mozilla.gecko.media.GeckoHlsPlayer$ComponentListener.onVideoInputFormatChanged(GeckoHlsPlayer.java) RESOLVED Kilik Kuo [:kikuo] (inactive)
1373377 -- Crash in java.lang.IllegalArgumentException: Unsupported type: 3 at org.mozilla.gecko.media.GeckoHlsPlayer.buildMediaSource(GeckoHlsPlayer.java) RESOLVED James Cheng[:JamesCheng]
1373500 -- [Fennec][HLS] Set DEBUG flag based on AppConstants.NIGHTLY_BUILD || AppConstants.DEBUG_BUILD RESOLVED James Cheng[:JamesCheng]
1374240 P1 [Fennec][HLS] Video sound stops working after a few seconds on Dailymotion RESOLVED James Cheng[:JamesCheng]
1374899 -- [Fennec][HLS] Handle InvalidResponseCodeException exception raised by Exoplayer with some url that may cause redirection. RESOLVED James Cheng[:JamesCheng]
1374953 P3 [Fennec][HLS] Take mimetype "audio/mpegurl" as HLS media type RESOLVED James Cheng[:JamesCheng]
1375474 P1 Video doesn't play on observator.tv VERIFIED James Cheng[:JamesCheng]
1375478 -- HLS: "Full-screen" button not displayed in the right position RESOLVED
1376966 P3 [Fennec][HLS] Fix defects in GeckoHlsPlayer.java RESOLVED James Cheng[:JamesCheng]
1376967 P3 [Fennec][HLS] Fix defects in GeckoHlsRendererBase.java RESOLVED Kilik Kuo [:kikuo] (inactive)
1377520 P3 [Fennec][HLS] Support encrypted HLS content playback RESOLVED
1377891 P5 [Fennec][HLS] twitch.tv does not play when media.mediasource.enabled is set to false. RESOLVED
1378852 -- [Fennec][HLS] getBufferedPosition in GeckoHlsPlayer should always return a value >= 0. RESOLVED Kilik Kuo [:kikuo] (inactive)
1379056 -- [Fennec][HLS] GeckoHlsPlayer should handle the case when obtain a negative duration from ExoPlayer. RESOLVED Kilik Kuo [:kikuo] (inactive)
1379856 P3 [Fennec][HLS] Move ExoPlayer main message handler to non-gecko main thread. RESOLVED Kilik Kuo [:kikuo] (inactive)
1379866 P1 [Fennec][HLS] App crashed a while later after stopping HLS playback. RESOLVED James Cheng[:JamesCheng]
1380201 P3 [Fennec][HLS] Make access to mIsPlayerInitDone & mResourceCallback guarded. RESOLVED Kilik Kuo [:kikuo] (inactive)
1380237 -- [Fennec][HLS] Handle audio format change by changing the stream id. RESOLVED James Cheng[:JamesCheng]
1381717 P3 [Fennec][HLS] Fix code defects found by Coverity in GeckoHlsPlayer.java RESOLVED James Cheng[:JamesCheng]
1382151 -- [Fennec][HLS] Pause ExoPlayer when player is paused to avoid OOM. RESOLVED James Cheng[:JamesCheng]
1384578 -- Crash in java.lang.NullPointerException: Null native pointer at org.mozilla.gecko.media.GeckoHLSDemuxerWrapper$Callbacks.onError(Native Method) RESOLVED James Cheng[:JamesCheng]
1387963 -- HLS tests crash on all versions Autophone RESOLVED
1418766 P1 Crash in java.lang.OutOfMemoryError: at com.google.android.exoplayer2.upstream.DefaultAllocator.allocate(DefaultAllocator.java) RESOLVED James Cheng[:JamesCheng]
1419249 P2 [Fennec][HLS] Audio only playback will not work correctly after seek. RESOLVED James Cheng[:JamesCheng]
1419669 P3 [Fennec][HLS] Refine switching Exoplayer to play/pause logic in GeckoHlsPlayer RESOLVED
1420030 -- [Fennec][HLS] Change HLS logging from BuildConfig.NIGHTLY_BUILD || BuildConfig.DEBUG_BUILD to !BuildConfig.MOZILLA_OFFICIAL RESOLVED James Cheng[:JamesCheng]
1420192 -- Youtube and twitch.com live videos don't work when auto-play is off RESOLVED Alastor Wu [:alwu]
1424168 P2 [Fennec][HLS] Exoplayer causes high memory usage on some websites. RESOLVED James Cheng[:JamesCheng]
1478843 P1 Cross-origin audio leak in HLS VERIFIED Paul Adenot (:padenot)

48 Total; 0 Open (0%); 46 Resolved (95.83%); 2 Verified (4.17%);


Bug fixed

Signoff

Criteria

  • All test cases should be executed
  • All blockers, critical issues must be fixed and verified or have an agreed-upon timeline for being fixed


Results

Nightly testing

Buggy but working for minimum requirements and functionality

Aurora testing

Buggy but working for minimum requirements and functionality

Beta testing

Buggy but working for minimum requirements and functionality