List Info

Thread: CR for the PR 200286: Shoutcast mp3 stream played through httpfs stops playback after




CR for the PR 200286: Shoutcast mp3 stream played through httpfs stops playback after
country flaguser name
United States
2007-09-19 08:23:25

Synopsis

========

 

This CR includes fix for the PR 200286: Shoutcast mp3 stream played through httpfs stops playback after a few seconds, spins server CPU at 100%

 

Quick link to the PR:

https://bugs.dev.prognet.com/show_bug.cgi?id=200286&link=0

 

Branch: HEAD

 

Suggested Reviewer: Anyone

 

 

Description

===========

 

While playing the live MP3 (Shoutcast) stream through httpfsys via RTSP, the stream starts up but playback stops after a few seconds, and player used to sit on the communicating...

These are the URL's I used:

rtsp://myserver/httpfs/http:%2f/kexp-mp3-1.cac.washington.edu:8000/

rtsp://myserver/httpfs/http:%2f/205.188.215.226:8000/

 

The problem was occurring because after some time server used to get locked inside the LOOP in the function CRnMp3Fmt::MyCreatePacketObj_hr() and the call for the PacketReady was not happening which results into server stops sending data packet to the player after some time. Inside the GetMP3Frame_p when we are not reading at ValidMP3 frame we search for the next valid frame by searching through the SyncWord. When we find the valid frame after the SearchForSyncWord call, we search whether this frame contains the meta data or not. If it consists of meta data then it should only set the m_bMetaPacket and shouldn't modify the nSyncSize and lScan. Previously on modifying:

1. lScan when we need to move to the current frame then these modified value won't help in progressing to right.

2. nSyncSize when search for the next valid frame due to the addition of m_ulMetaLength to it, it wont be pointing to the next valid frame and when we return from the loop it will search for the next SyncWord, and again same thing will happen, and also as the calculation of next meta position m_ulNextMetaPos is not there in the loop so it wont be modifying m_ulNextMetaPos which cause the condition check for the meta data to become true always. In this scenario it used to stuck in this infinite loop.

 

I have fixed this problem by omitting the modification of the nSyncSize in case of Server Only. I have cross verified it, Now it is playing the Shoutcast MP3 stream just fine.

 

Files Affected

==============

 

Datatype/mp3/fileformat/mp3ff.cpp

 

Testing Performed

=================

 

Unit Tests:

- None

 

Integration Tests:

- I have tested it. Now it streams the shoutcast MP3 fine and player no more sits on the communicating.

 

Leak Tests:

- None

 

Performance Tests:

- None

 

 

Platforms Tested: win32-i386-vc7

Build verified: win32-i386-vc7

 

QA Hints

========

 

- None

 

Thanks and Regards,

Manvendra Singh

  
Re: CR for the PR 200286: Shoutcast mp3 stream played through httpfs stops playback a
country flaguser name
United States
2007-09-20 01:38:45
okay

ManaV wrote:
> Synopsis
> 
> ========
> 
>  
> 
> This CR includes fix for the PR 200286: Shoutcast mp3
stream played 
> through httpfs stops playback after a few seconds,
spins server CPU at 100%
> 
>  
> 
> Quick link to the PR:
> 
> https://bugs.dev.prognet.com/show_bug.cgi?id=20028
6&link=0 
> <https://bugs.dev.prognet.com/show_bug.cgi?id=2
00286&link=0>
> 
>  
> 
> Branch: HEAD
> 
>  
> 
> Suggested Reviewer: Anyone
> 
>  
> 
>  
> 
> Description
> 
> ===========
> 
>  
> 
> While playing the live MP3 (Shoutcast) stream through
httpfsys via RTSP, 
> the stream starts up but playback stops after a few
seconds, and player 
> used to sit on the communicating...
> 
> These are the URL's I used:
> 
>
rtsp://myserver/httpfs/http:%2f/kexp-mp3-1.cac.washington.ed
u:8000/
> 
> rtsp://myserver/httpfs/http:%2f/205.188.215.226:8000/
> 
>  
> 
> The problem was occurring because after some time
server used to get 
> locked inside the LOOP in the function
CRnMp3Fmt::MyCreatePacketObj_hr() 
> and the call for the PacketReady was not happening
which results into 
> server stops sending data packet to the player after
some time. Inside 
> the GetMP3Frame_p when we are not reading at ValidMP3
frame we search 
> for the next valid frame by searching through the
SyncWord. When we find 
> the valid frame after the SearchForSyncWord call, we
search whether this 
> frame contains the meta data or not. If it consists of
meta data then it 
> should only set the m_bMetaPacket and shouldn't modify
the nSyncSize and 
> lScan. Previously on modifying:
> 
> 1. lScan when we need to move to the current frame then
these modified 
> value won't help in progressing to right.
> 
> 2. nSyncSize when search for the next valid frame due
to the addition of 
> m_ulMetaLength to it, it wont be pointing to the next
valid frame and 
> when we return from the loop it will search for the
next SyncWord, and 
> again same thing will happen, and also as the
calculation of next meta 
> position m_ulNextMetaPos is not there in the loop so it
wont be 
> modifying m_ulNextMetaPos which cause the condition
check for the meta 
> data to become true always. In this scenario it used to
stuck in this 
> infinite loop.
> 
>  
> 
> I have fixed this problem by omitting the modification
of the nSyncSize 
> in case of Server Only. I have cross verified it, Now
it is playing the 
> Shoutcast MP3 stream just fine.
> 
>  
> 
> Files Affected
> 
> ==============
> 
>  
> 
> Datatype/mp3/fileformat/mp3ff.cpp
> 
>  
> 
> Testing Performed
> 
> =================
> 
>  
> 
> Unit Tests:
> 
> - None
> 
>  
> 
> Integration Tests:
> 
> - I have tested it. Now it streams the shoutcast MP3
fine and player no 
> more sits on the communicating.
> 
>  
> 
> Leak Tests:
> 
> - None
> 
>  
> 
> Performance Tests:
> 
> - None
> 
>  
> 
>  
> 
> Platforms Tested: win32-i386-vc7
> 
> Build verified: win32-i386-vc7
> 
>  
> 
> QA Hints
> 
> ========
> 
>  
> 
> - None
> 
>  
> 
> Thanks and Regards,
> 
> Manvendra Singh
> 
> 
>
------------------------------------------------------------
------------
> 
> _______________________________________________
> Datatype-dev mailing list
> Datatype-devhelixcommunity.org
> http://lists.helixcommunity.org/mailman/listinfo/da
tatype-dev


_______________________________________________
Datatype-dev mailing list
Datatype-devhelixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/da
tatype-dev

[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )