Closed Bug 889191 Opened 7 years ago Closed 7 years ago

[Video] video player shows spinner for the few events when playing local file.

Categories

(Firefox OS Graveyard :: Gaia::Video, defect, P1)

ARM
Gonk (Firefox OS)

Tracking

(blocking-b2g:leo+, b2g18 fixed, b2g-v1.1hd fixed)

RESOLVED FIXED
1.1 QE4 (15jul)
blocking-b2g leo+
Tracking Status
b2g18 --- fixed
b2g-v1.1hd --- fixed

People

(Reporter: leo.bugzilla.gaia, Assigned: johnhu)

References

Details

(Whiteboard: [TD-55377] [LeoVB+])

Attachments

(1 file)

1. Title : Using video.js for playing Bluetooth received videos from notification bar.
2. Precondition : Mobile should be connected to internet, bluetooth should be working.
3. Tester's Action : 1. Open video app -> watch a video file
                     2. receives a video file via Bluetooth.
                     3. Try to open newly download video file from notification while watching other video in local video app.
 
4. Detailed Symptom (ENG.) : 
Videos received via bluetooth will be shown in notification bar. If any video is opened from notification, then it uses view.js for playing. 
There are multiple issues found because of playing local video in view.js:
1. video player shows spinner for the few events. This is not intended.
2. When user tries to open Bluetooth received video while watching a local video in video player app, the video playback is not proper. This is because of the limitation of hardware decoder (only one instance of Hardware decoder is supported).

5. Expected : This issue can be avoided if video.js is used to open the video file from notification.

6.Reproducibility: Y
1)Frequency Rate : 100%
7.Gaia Master/v1-train : Reproduced
8.Gaia Revision: 65e861f5941cab66815a2f79b0bc0a6a0fc8f6fe
9.Personal email id: gjyothiprasad@gmail.com
blocking-b2g: --- → leo+
Whiteboard: [TD-55377]
Target Milestone: --- → 1.1 QE4 (15jul)
Priority: -- → P1
Whiteboard: [TD-55377]
Whiteboard: [TD-55377]
Hi, 
I am not understand what you mean about: video player shows spinner for the few events. This is not intended.

I found that shows correctly. It shows only when video is under loading.
Whiteboard: [TD-55377] → [TD-55377] [TD-55515]
Hi John,

If video player shows spinner for streaming video, then it is perfect.
But here the spinner is shown while playing the local videos (downloaded via bluetooth). I think this is not correct behavior.
Flags: needinfo?(johu)
Hi, 

Ok. I got it. But the spinner shows only when video is loading. Even if it is a local file, it may need a short time span to load the target frame, and spinner shows and hides immediately. That's why I think it is the correct behavior.

I can need info UX for this part.

BTW, I don't understand what you mean about: the video playback is not proper. I had redone your STR. It just plays the video with view.js instead of video.js, and nothing strange. This kind of behavior is the "view" activity of video app.
Flags: needinfo?(johu) → needinfo?(firefoxos-ux-bugzilla)
Hi UX, 

Do we show loading spinner while playing a local file??? The spinner only shows at video element reading frames from file.
Assignee: nobody → johu
Whiteboard: [TD-55377] [TD-55515] → [TD-55377]
Hi Leo,

Would mind to tell us more about the video playback is not proper???

I had redone your STR. It just plays the video with view.js instead of video.js, and nothing strange. This kind of behavior is the "view" activity of video app.
Flags: needinfo?(leo.bugzilla.gaia)
Flags: needinfo?(leo.bugzilla.gaia) → needinfo?(gjyothiprasad)
Hi John,

Video playback is not proper in the scenatio given below:
When user tries to open Bluetooth received video while watching a local video in video player app, the video playback is not proper. This is because of the limitation of hardware decoder (only one instance of Hardware decoder is supported).

In this scenario already a video is playing from video.js and user is trying to play antoher video from view.js at the same time. But there is only instance of hardware decoder is supported.

It is better to play local videos from video.js to avoid all these issues and confusion.
Flags: needinfo?(gjyothiprasad)
Thanks leo.

I don't think this scenario existing. If you see the code in video.js line 807[1], you will find we will release the video element when it is hide. We did so because what you said, one instance of hardware decoder. If that happened, that should be a bug.

[1] https://github.com/mozilla-b2g/gaia/blob/c8f3474fb73dfe2177ec908f0dcf914d7260248e/apps/video/js/video.js#L807
Hi John,

for your information:
'visibilitychange' event is not firing if we open blutooth dowloaded video from download notification while video is playing in video player app. video player is not minimized when the other video is opened.
Assigning to Casey.
Flags: needinfo?(firefoxos-ux-bugzilla) → needinfo?(kyee)
Leo, thanks you for this finding. It's changes of window management staff.

I had discussed with my colleague. This one can be confirmed. The 'visibilitychange' event is not fired when we open another inline 'view' activity of video app. The video element is already used by original video app so that the view activity can't work correctly.

Leo, would you please to open another bug for this one and cc me in?? I will loop my colleague about this part in.

And we should focus on "if we need to separate the playing behavior between local file and remote file with view activity of video app"
Flags: needinfo?(gjyothiprasad)
There's an opened file about visibility-change event change:
See my part(1) at https://bugzilla.mozilla.org/show_bug.cgi?id=887650#c0
Thanks alive. I never found there is already a bug here.
Flags: needinfo?(gjyothiprasad)
Hi,

Is there any update for this issue?
If kyee doesn't give us a suggestion on "separation of local and remote playing behavior" in this week, I will create a small patch to hide the spinner when playing local file.
Summary: [Video] Using video.js for playing Bluetooth received videos from notification bar. → [Video] video player shows spinner for the few events when playing local file.
In the case of local playback it would make sense not to show the loading indicator unless there is some sort of preload/caching that requires some time before the video shows.
Flags: needinfo?(kyee)
Add the code to check if it is local file playing. If yes, do not show the spinner.
Attachment #773740 - Flags: review?(dale)
Hi John,

I still have the old question for you: 
is it needed to play local file in view.js? 
because view.js is just a replica of video.js and it doesnot have many of the functionalities of video.js.

Please comment.
Flags: needinfo?(johu)
Hi Leo,

I think so. To change to use video.js may need a few works, including merge behaviors of activity, add more checking codes, add flags to know different states, and lots (regression) tests. And I don’t think we can make it before QE4. We had found lots synchronization bugs recently, and may change the implementation as what you said in the future.
Flags: needinfo?(johu)
Attachment #773740 - Flags: review?(dale) → review+
Merged in: https://github.com/mozilla-b2g/gaia/commit/147cd38ed0ceda9860ac8b72645e8c9f3ccae149

Thanks John
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Uplifted 147cd38ed0ceda9860ac8b72645e8c9f3ccae149 to:
v1-train: e218376b4b879cb75708e196fff1e87597c373cb
Whiteboard: [TD-55377] → [TD-55377] [LeoVB+]
v1.1.0hd: e218376b4b879cb75708e196fff1e87597c373cb
You need to log in before you can comment on or make changes to this bug.