Closed Bug 1006484 Opened 10 years ago Closed 10 years ago

[RTSP][V2.0] Cannot replay RTSP streaming

Categories

(Firefox OS Graveyard :: RTSP, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(blocking-b2g:2.0+, feature-b2g:2.0, b2g-v2.0 fixed)

VERIFIED FIXED
2.0 S2 (23may)
blocking-b2g 2.0+
feature-b2g 2.0
Tracking Status
b2g-v2.0 --- fixed

People

(Reporter: whsu, Assigned: vchang)

References

Details

(Whiteboard: [p=5])

Attachments

(3 files, 1 obsolete file)

Attached video WP_20140506_003.mp4
* Description:
  Tap "PLAY" button cannot get any response after the seekbar returns to 00:00
  Attach the demo video and log
  - WP_20140506_001.mp4
  - RTSP_20140505.log

* Reproduction steps:
  1. Launch the following page via browser
     - http://goo.gl/FyHFNs
  2. Tap the "AMX test file"
  3. Waiting for ending RTSP streaming
  4. After the seekbar returns to 00:00, please press "PLAY" button

* Expected result:
  You can replay RTSP streaming

* Actual result:
  No response

* Reproduction build: V2.0 (Buri)
 - Gaia      e8a08a3f7a608993f0b302371e016e73faceea70
 - Gecko     https://hg.mozilla.org/mozilla-central/rev/2897fb554990
 - BuildID   20140505160203
 - Version   32.0a1
Attached file RTSP_20140505.log
RTSP media resource will be destructed after the end of streaming.
The 2nd round play should trigger the initialization of RTSP media resource again, but somehow it didn't.
I will look into this issue.
Assignee: nobody → ettseng
blocking-b2g: --- → 2.0?
Block 2.0 release.
feature-b2g: --- → 2.0
Status: NEW → ASSIGNED
Whiteboard: [p=5]
Target Milestone: --- → 2.0 S3 (6june)
Blocks: b2g-RTSP-2.0
Start debugging for this.
Assignee: ettseng → bechen
When the first play ended, we receive tear down from server then trigger the "OnDisconnected" event.
RtspMediaResource::OnDisconnected -> mDecoder->ResetConnectionState -> MediaDecoder::Shutdown
We shutdown the mediaResource, decoder, etc...

Then the play command through HTMLMediaElement tries to reload the resource, decoder but failed.
Because the HTMLMediaElement doesn't have the attribute "src" since it is load from a channel.

Load fail:
http://dxr.mozilla.org/mozilla-central/source/content/html/content/src/HTMLMediaElement.cpp?from=htmlmediaelement.cpp#783
src attribute:
http://dxr.mozilla.org/mozilla-central/source/content/html/content/public/HTMLMediaElement.h?from=htmlmediaelement.h#89

So, a feasible solution is that in MediaDecoder::ResetConnectionState we do not call shutdown(). 
But it will involve some leak issues we had resolved before. We need to check it carefully.
In order to fix this, not only the shutdown codes need to be fixed, but also need to ensure the states in MediaDecoder, HTMLMediaElement, MediaDecoderStateMachine are in the right state.
It will be a complex fix....

Bug 951278 block this because the "end of stream" effect these states.
Depends on: 951278
It would be a problem for user's usage. We need to fix it in 2.0.
blocking-b2g: 2.0? → 2.0+
Attached patch Patch v1.0 (obsolete) — Splinter Review
Hi sworkman, 
I am going to land bug 951278, because it eases the difficulty to fix this bug.
We still need to do some minor modifications to make replay work. 

First,  the conditional check for mState in RTSPSource::performSeek should include mState == CONNECTED. RtspController receives seek(0) command if user press the play at the end of stream circumstance. 

Second, we should not close RTP/RTCP sockets immediately. Leave them open until RtspController is released.
Attachment #8425298 - Flags: review?(sworkman)
Assignee: bechen → vchang
Comment on attachment 8425298 [details] [diff] [review]
Patch v1.0

Review of attachment 8425298 [details] [diff] [review]:
-----------------------------------------------------------------

OK, looks good to me. r=me.
Attachment #8425298 - Flags: review?(sworkman) → review+
Rebase the patch.
Attachment #8425298 - Attachment is obsolete: true
https://hg.mozilla.org/mozilla-central/rev/58b3630aceb6
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: 2.0 S3 (6june) → 2.0 S2 (23may)
Using audio RTSP streaming to verify it.
Cannot reproduce it on latest V2.0 build.
But, while I play video RTSP streaming of Youtube, built-in media player always shows a network error message ( Bug 1021006 ).


* Build information:
 - Gaia      8d865839d932bfbd5e157f376f74d8cb12bfdd51
 - Gecko     https://hg.mozilla.org/releases/mozilla-aurora/rev/1d4046a8cb6c
 - BuildID   20140610000223
 - Version   32.0a2
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: