|
List Info
Thread: Fw: TimeStamp issue with Real Format SDK
|
|
| Fw: TimeStamp issue with Real Format
SDK |
  India |
2007-09-18 06:23:42 |
Hi,
Seems this missed your attention
Sending again.
Thanks & Regards,
Lovish
----- Original Message -----
From: "Lovish Dhawan" <ldhawan real.com>
To: <ehyche real.com>
Cc: <helix-client-dev helixcommunity.org>;
"Karl Lillevold"
<klillevold real.com>; "Neelesh Gokhale"
<ngokhale real.com>
Sent: Friday, September 14, 2007 7:58 PM
Subject: Re: TimeStamp issue with Real Format SDK
> Hi Eric,
>
> I am not very sure as to why the decoder is failing for
second frame.
>
> Even if the second frame failed to get decoded,
shouldn't the third frame
> and consequent frames would have come
> and played at their time and not at the time of the
previous frame.
>
> In case 2nd frame decode is failing, do we need to
render the 3rd sample
> at 119ms or 239ms? If we need to render it at 239ms,
then decoder should
> take care of updating the timestamp value in case of
the failure?
>
> For a 10 FPS clip, timestamps are as below from the
real parser.
> 0, 119, 239, 359, 479, 599, 719, 839, 959, 1079, 1199,
1319
>
> Timestamps from the decoder are as below.
> 0, FAILURE, 119, 239, 359, 479, 599, 719, 839, 959,
1079, 1199
>
>
> It seems that dst.sequence_number is updated properly,
but the time
> rv_decode_frame_valid() method fails, decoder is not
flushing the frame
> and in the next call to rv_decode_stream_decode method,
it is giving the
> prev frame and thus, from there onwards,
src.sequence_number is greater
> than of dst.sequence_number.
>
>
> Thanks & Regards,
> Lovish
>
> ----- Original Message -----
> From: "Eric Hyche" <ehyche real.com>
> To: "'Lovish Dhawan'" <ldhawan real.com>
> Cc: <helix-client-dev helixcommunity.org>;
"Karl Lillevold"
> <klillevold real.com>; "Neelesh Gokhale"
<ngokhale real.com>
> Sent: Friday, September 14, 2007 7:43 PM
> Subject: RE: TimeStamp issue with Real Format SDK
>
>
>>
>> Lovish,
>>
>> Why is the decoding failing? Is this a corrupted
file?
>> As far as the problem of the timestamps getting out
of
>> sync, this may be a codec issue, so I'm copying
>> Karl and Neelesh on this.
>>
>> Eric
>>
>> =============================================
>> Eric Hyche (ehyche real.com)
>> Technical Lead
>> RealNetworks, Inc.
>>
>>> -----Original Message-----
>>> From: Lovish Dhawan [mailto:ldhawan real.com]
>>> Sent: Friday, September 14, 2007 10:04 AM
>>> To: ehyche real.com
>>> Cc: helix-client-dev helixcommunity.org
>>> Subject: TimeStamp issue with Real Format SDK
>>>
>>> Hi Eric,
>>>
>>> There is an issue with one of our client which
is as follows:
>>>
>>> If a frame is not decoded correctly and at the
check of
>>> rv_decode_frame_valid() method returns failure
code. then
>>> subsequent all the frames
>>> display the video which should be of their
previous timestamp.
>>>
>>> Timestamps from the decoder are as below.
>>> 0, FAILURE, 119, 239, 359, 479, 599, 719, 839,
959, 1079, 1199
>>>
>>> and not
>>>
>>> For a 10 FPS clip, timestamps are as below from
the real parser.
>>> 0, 119, 239, 359, 479, 599, 719, 839, 959,
1079, 1199, 1319
>>>
>>> In the case above, decoder fails for 2nd frame,
but the 3rd
>>> frame timestamp value corresponds to the 2nd
frame timestamp.
>>> In case decoder is failing for 10 frames (for
any reason)
>>> after first frame decoding,
>>> then the 12th frame (decoded successfully)
timestamp value
>>> from the decoder will be 1199,
>>> but it should be 1319 to play the file with
proper A/V sync
>>>
>>> After taking logs (displayed under) we found
that the
>>> src.sequence_number remains ahead of
dst.sequence_number
>>>
>>> Some logs that were taken from the function
_RV40toYUV420Transform()
>>>
>>> /* Assign the presentation time for the
display frame */
>>> pRV20Out->timestamp =
dst.sequence_number + temporal_offset;
>>> gives output as
>>>
>>> pRV20Out->timestamp : 0 dst.sequence_number
: 0
>>> src.sequence_number : 0 temporal_offset : 0
>>> pRV20Out->timestamp : 119
dst.sequence_number : 119
>>> src.sequence_number : 119 temporal_offset : 0
>>> rv_decode_frame_valid Failed
>>> pRV20Out->timestamp : 119
dst.sequence_number : 119
>>> src.sequence_number : 239 temporal_offset : 0
>>> pRV20Out->timestamp : 239
dst.sequence_number : 239
>>> src.sequence_number : 359 temporal_offset : 0
>>> pRV20Out->timestamp : 359
dst.sequence_number : 359
>>> src.sequence_number : 479 temporal_offset : 0
>>> pRV20Out->timestamp : 479
dst.sequence_number : 479
>>> src.sequence_number : 599 temporal_offset : 0
>>> ...
>>> ...
>>>
>>> Now one more thing that is found is
>>>
>>> it seems that dst.sequence_number is updated
properly, but
>>> the time rv_decode_frame_valid method fails,
decoder is not
>>> flushing the frame and in the next call to
>>> rv_decode_stream_decode method, it is giving
the prev frame
>>> and thus, from there onwards,
src.sequence_number is greater
>>> than of dst.sequence_number.
>>>
>>> API: Decoder_prepareDecodeBuffers
>>> (t->m_pCurrentFrame->m_pPreviousFrame ==
NULL)
>>> t->m_pCurrentFrame->m_timeStamp =
src->sequence_number (0 = 0)
>>> API: Decoder_prepareDecodeBuffers
dst->sequence_number =
>>> pDisplayFrame->m_timeStamp (0 = 0)
>>> pRV20Out->timestamp : 0 dst.sequence_number
: 0
>>> src.sequence_number : 0 temporal_offset : 0
>>> API: Decoder_prepareDecodeBuffers
>>> t->m_pCurrentFrame->m_timeStamp =
src->sequence_number (119 = 119)
>>> pRV20Out->timestamp : 119
dst.sequence_number : 119
>>> src.sequence_number : 119 temporal_offset : 0
>>> rv_decode_frame_valid Failed
>>> API: Decoder_prepareDecodeBuffers
t->m_pDisplayFrame = pPreviousTail
>>> API: Decoder_prepareDecodeBuffers
dst->sequence_number =
>>> pDisplayFrame->m_timeStamp (119 = 119)
>>> API: Decoder_prepareDecodeBuffers
>>> t->m_pCurrentFrame->m_timeStamp =
src->sequence_number (239 = 239)
>>>
>>>
>>> Please tell how to go about this issue.
>>>
>>> Thanks & Regards,
>>> Lovish
>>>
>>
>
_______________________________________________
Helix-client-dev mailing list
Helix-client-dev helixcommunity.org
http://lists.helixcommunity.org/mailman/listinf
o/helix-client-dev
|
|
| RE: TimeStamp issue with Real Format
SDK |
  United States |
2007-09-18 08:54:15 |
> -----Original Message-----
> From: Lovish Dhawan [mailto:ldhawan real.com]
> Sent: Tuesday, September 18, 2007 7:24 AM
> To: ehyche real.com
> Cc: helix-client-dev helixcommunity.org; Karl
Lillevold;
> ngokhale real.com
> Subject: Fw: TimeStamp issue with Real Format SDK
>
> Hi,
> Seems this missed your attention
> Sending again.
>
> Thanks & Regards,
> Lovish
> ----- Original Message -----
> From: "Lovish Dhawan" <ldhawan real.com>
> To: <ehyche real.com>
> Cc: <helix-client-dev helixcommunity.org>;
"Karl Lillevold"
> <klillevold real.com>; "Neelesh Gokhale"
<ngokhale real.com>
> Sent: Friday, September 14, 2007 7:58 PM
> Subject: Re: TimeStamp issue with Real Format SDK
>
>
> > Hi Eric,
> >
> > I am not very sure as to why the decoder is
failing for
> second frame.
> >
> > Even if the second frame failed to get decoded,
shouldn't
> > the third frame and consequent frames would have
come
> > and played at their time and not at the time of
the previous frame.
> >
> > In case 2nd frame decode is failing, do we need to
render
> > the 3rd sample at 119ms or 239ms? If we need to
render it at 239ms, then
> > decoder should take care of updating the timestamp
value in case of the failure?
> >
Yes, the 3rd sample should still have a decoded timestamp
of 239ms. I don't know without looking at the code whether:
a) decoder properly tells the RealFormat SDK code that
decoding
of the 2nd sample failed, and the RealFormat SDK is not
properly flushing that frame; or
b) decoder is not telling RealFormat SDK code that decoding
of the 2nd sample failed.
I'll try and take a look in the RealFormat SDK code to
see which it is.
Can you get a copy of the clip for which this occurs?
Does this repro using the rm2yuv sample app?
In practice, decoding failure should be extremely rare,
and should probably only happen on: a) corrupted files; or
b) network playback if there's a bug in their loss-handling
code.
Eric
> > For a 10 FPS clip, timestamps are as below from
the real parser.
> > 0, 119, 239, 359, 479, 599, 719, 839, 959, 1079,
1199, 1319
> >
> > Timestamps from the decoder are as below.
> > 0, FAILURE, 119, 239, 359, 479, 599, 719, 839,
959, 1079, 1199
> >
> >
> > It seems that dst.sequence_number is updated
properly, but the time
> > rv_decode_frame_valid() method fails, decoder is
not
> flushing the frame
> > and in the next call to rv_decode_stream_decode
method, it
> is giving the
> > prev frame and thus, from there onwards,
> src.sequence_number is greater
> > than of dst.sequence_number.
> >
> >
> > Thanks & Regards,
> > Lovish
> >
> > ----- Original Message -----
> > From: "Eric Hyche" <ehyche real.com>
> > To: "'Lovish Dhawan'" <ldhawan real.com>
> > Cc: <helix-client-dev helixcommunity.org>;
"Karl Lillevold"
> > <klillevold real.com>; "Neelesh
Gokhale" <ngokhale real.com>
> > Sent: Friday, September 14, 2007 7:43 PM
> > Subject: RE: TimeStamp issue with Real Format SDK
> >
> >
> >>
> >> Lovish,
> >>
> >> Why is the decoding failing? Is this a
corrupted file?
> >> As far as the problem of the timestamps
getting out of
> >> sync, this may be a codec issue, so I'm
copying
> >> Karl and Neelesh on this.
> >>
> >> Eric
> >>
> >> =============================================
> >> Eric Hyche (ehyche real.com)
> >> Technical Lead
> >> RealNetworks, Inc.
> >>
> >>> -----Original Message-----
> >>> From: Lovish Dhawan [mailto:ldhawan real.com]
> >>> Sent: Friday, September 14, 2007 10:04 AM
> >>> To: ehyche real.com
> >>> Cc: helix-client-dev helixcommunity.org
> >>> Subject: TimeStamp issue with Real Format
SDK
> >>>
> >>> Hi Eric,
> >>>
> >>> There is an issue with one of our client
which is as follows:
> >>>
> >>> If a frame is not decoded correctly and at
the check of
> >>> rv_decode_frame_valid() method returns
failure code. then
> >>> subsequent all the frames
> >>> display the video which should be of their
previous timestamp.
> >>>
> >>> Timestamps from the decoder are as below.
> >>> 0, FAILURE, 119, 239, 359, 479, 599, 719,
839, 959, 1079, 1199
> >>>
> >>> and not
> >>>
> >>> For a 10 FPS clip, timestamps are as below
from the real parser.
> >>> 0, 119, 239, 359, 479, 599, 719, 839, 959,
1079, 1199, 1319
> >>>
> >>> In the case above, decoder fails for 2nd
frame, but the 3rd
> >>> frame timestamp value corresponds to the
2nd frame timestamp.
> >>> In case decoder is failing for 10 frames
(for any reason)
> >>> after first frame decoding,
> >>> then the 12th frame (decoded successfully)
timestamp value
> >>> from the decoder will be 1199,
> >>> but it should be 1319 to play the file
with proper A/V sync
> >>>
> >>> After taking logs (displayed under) we
found that the
> >>> src.sequence_number remains ahead of
dst.sequence_number
> >>>
> >>> Some logs that were taken from the
function
> _RV40toYUV420Transform()
> >>>
> >>> /* Assign the presentation time for
the display frame */
> >>> pRV20Out->timestamp =
dst.sequence_number + temporal_offset;
> >>> gives output as
> >>>
> >>> pRV20Out->timestamp : 0
dst.sequence_number : 0
> >>> src.sequence_number : 0 temporal_offset :
0
> >>> pRV20Out->timestamp : 119
dst.sequence_number : 119
> >>> src.sequence_number : 119 temporal_offset
: 0
> >>> rv_decode_frame_valid Failed
> >>> pRV20Out->timestamp : 119
dst.sequence_number : 119
> >>> src.sequence_number : 239 temporal_offset
: 0
> >>> pRV20Out->timestamp : 239
dst.sequence_number : 239
> >>> src.sequence_number : 359 temporal_offset
: 0
> >>> pRV20Out->timestamp : 359
dst.sequence_number : 359
> >>> src.sequence_number : 479 temporal_offset
: 0
> >>> pRV20Out->timestamp : 479
dst.sequence_number : 479
> >>> src.sequence_number : 599 temporal_offset
: 0
> >>> ...
> >>> ...
> >>>
> >>> Now one more thing that is found is
> >>>
> >>> it seems that dst.sequence_number is
updated properly, but
> >>> the time rv_decode_frame_valid method
fails, decoder is not
> >>> flushing the frame and in the next call
to
> >>> rv_decode_stream_decode method, it is
giving the prev frame
> >>> and thus, from there onwards,
src.sequence_number is greater
> >>> than of dst.sequence_number.
> >>>
> >>> API: Decoder_prepareDecodeBuffers
> >>>
(t->m_pCurrentFrame->m_pPreviousFrame == NULL)
> >>> t->m_pCurrentFrame->m_timeStamp =
src->sequence_number (0 = 0)
> >>> API: Decoder_prepareDecodeBuffers
dst->sequence_number =
> >>> pDisplayFrame->m_timeStamp (0 = 0)
> >>> pRV20Out->timestamp : 0
dst.sequence_number : 0
> >>> src.sequence_number : 0 temporal_offset :
0
> >>> API: Decoder_prepareDecodeBuffers
> >>> t->m_pCurrentFrame->m_timeStamp =
src->sequence_number (119 = 119)
> >>> pRV20Out->timestamp : 119
dst.sequence_number : 119
> >>> src.sequence_number : 119 temporal_offset
: 0
> >>> rv_decode_frame_valid Failed
> >>> API: Decoder_prepareDecodeBuffers
t->m_pDisplayFrame =
> pPreviousTail
> >>> API: Decoder_prepareDecodeBuffers
dst->sequence_number =
> >>> pDisplayFrame->m_timeStamp (119 = 119)
> >>> API: Decoder_prepareDecodeBuffers
> >>> t->m_pCurrentFrame->m_timeStamp =
src->sequence_number (239 = 239)
> >>>
> >>>
> >>> Please tell how to go about this issue.
> >>>
> >>> Thanks & Regards,
> >>> Lovish
> >>>
> >>
> >
>
_______________________________________________
Helix-client-dev mailing list
Helix-client-dev helixcommunity.org
http://lists.helixcommunity.org/mailman/listinf
o/helix-client-dev
|
|
| Re: TimeStamp issue with Real Format
SDK |
  India |
2007-09-24 07:04:14 |
|
| Hi Eric,
I have got the test clip from the client. Sending
you the FTP details in a separate mail.
They have checked this issue with rm2yuv sample app
and it is happening there as well.
pRV20Out->timestamp : 0
dst.sequence_number : 0 src.sequence_number : 0 temporal_offset : 0
pRV20Out->timestamp : 119 dst.sequence_number : 119 src.sequence_number :
119 temporal_offset : 0 !rv_decode_frame_valid pRV20Out->timestamp :
119 dst.sequence_number : 119 src.sequence_number : 239 temporal_offset : 0
pRV20Out->timestamp : 239 dst.sequence_number : 239 src.sequence_number :
359 temporal_offset : 0 pRV20Out->timestamp : 359 dst.sequence_number :
359 src.sequence_number : 479 temporal_offset : 0 pRV20Out->timestamp :
479 dst.sequence_number : 479 src.sequence_number : 599 temporal_offset : 0
pRV20Out->timestamp : 599 dst.sequence_number : 599 src.sequence_number :
719 temporal_offset : 0 pRV20Out->timestamp : 719 dst.sequence_number :
719 src.sequence_number : 839 temporal_offset : 0
Also it is with
local playback only (no network playback is done).
Thanks & Regards,
Lovish
----- Original Message -----
Sent: Tuesday, September 18, 2007 7:24
PM
Subject: RE: TimeStamp issue with Real Format
SDK
> >> -----Original Message----- >> From: Lovish
Dhawan [mailto:ldhawan real.com] >> Sent: Tuesday, September 18, 2007
7:24 AM >> To: ehyche real.com">ehyche real.com >> Cc:
helix-client-dev helixcommunity.org">helix-client-dev helixcommunity.org;
Karl Lillevold; >> ngokhale real.com">ngokhale real.com >> Subject: Fw: TimeStamp issue with Real Format SDK >>
>> Hi, >> Seems this missed your attention >>
Sending again. >> >> Thanks & Regards, >>
Lovish >> ----- Original Message ----- >> From: "Lovish
Dhawan" < ldhawan real.com">ldhawan real.com> >> To:
< ehyche real.com">ehyche real.com> >> Cc:
< helix-client-dev helixcommunity.org">helix-client-dev helixcommunity.org>; "Karl Lillevold" >> <real.com">klillevold real.com>; "Neelesh
Gokhale" < ngokhale real.com">ngokhale real.com> >>
Sent: Friday, September 14, 2007 7:58 PM >> Subject: Re: TimeStamp
issue with Real Format SDK >> >> >> > Hi
Eric, >> > >> > I am not very sure as to why the decoder
is failing for >> second frame. >> > >> > Even
if the second frame failed to get decoded, shouldn't >> > the third
frame and consequent frames would have come >> > and played at their
time and not at the time of the previous frame. >> > >>
> In case 2nd frame decode is failing, do we need to render >> >
the 3rd sample at 119ms or 239ms? If we need to render it at 239ms, then
>> > decoder should take care of updating the timestamp value in
case of the failure? >> > > > Yes, the 3rd sample
should still have a decoded timestamp > of 239ms. I don't know without
looking at the code whether: > > a) decoder properly tells the
RealFormat SDK code that decoding > of the 2nd sample failed,
and the RealFormat SDK is not > properly flushing that frame;
or > b) decoder is not telling RealFormat SDK code that
decoding > of the 2nd sample failed. > > I'll try
and take a look in the RealFormat SDK code to > see which it is. >
> Can you get a copy of the clip for which this occurs? > Does this
repro using the rm2yuv sample app? > > In practice, decoding
failure should be extremely rare, > and should probably only happen on: a)
corrupted files; or > b) network playback if there's a bug in their
loss-handling code. > > Eric > >> > For a 10 FPS
clip, timestamps are as below from the real parser. >> > 0, 119,
239, 359, 479, 599, 719, 839, 959, 1079, 1199, 1319 >> > >>
> Timestamps from the decoder are as below. >> > 0, FAILURE, 119,
239, 359, 479, 599, 719, 839, 959, 1079, 1199 >> > >>
> >> > It seems that dst.sequence_number is updated properly, but
the time >> > rv_decode_frame_valid() method fails, decoder is not
>> flushing the frame >> > and in the next call to
rv_decode_stream_decode method, it >> is giving the >> >
prev frame and thus, from there onwards, >> src.sequence_number is
greater >> > than of dst.sequence_number. >>
> >> > >> > Thanks & Regards, >> >
Lovish >> > >> > ----- Original Message -----
>> > From: "Eric Hyche" <real.com">ehyche real.com> >> >
To: "'Lovish Dhawan'" < ldhawan real.com">ldhawan real.com> >> > Cc: <helixcommunity.org">helix-client-dev helixcommunity.org>; "Karl Lillevold" >> > <real.com">klillevold real.com>; "Neelesh
Gokhale" < ngokhale real.com">ngokhale real.com> >> >
Sent: Friday, September 14, 2007 7:43 PM >> > Subject: RE: TimeStamp
issue with Real Format SDK >> > >> > >>
>> >> >> Lovish, >> >> >> >>
Why is the decoding failing? Is this a corrupted file? >> >> As
far as the problem of the timestamps getting out of >> >> sync,
this may be a codec issue, so I'm copying >> >> Karl and Neelesh
on this. >> >> >> >> Eric >>
>> >> >>
============================================= >> >> Eric Hyche
( ehyche real.com">ehyche real.com) >> >>
Technical Lead >> >> RealNetworks, Inc. >>
>> >> >>> -----Original Message----- >>
>>> From: Lovish Dhawan [mailto:ldhawan real.com] >>
>>> Sent: Friday, September 14, 2007 10:04 AM >> >>>
To: ehyche real.com">ehyche real.com >>
>>> Cc: helixcommunity.org">helix-client-dev helixcommunity.org >> >>> Subject: TimeStamp issue with Real Format
SDK >> >>> >> >>> Hi Eric, >>
>>> >> >>> There is an issue with one of our client
which is as follows: >> >>> >> >>> If a
frame is not decoded correctly and at the check of >> >>>
rv_decode_frame_valid() method returns failure code. then >>
>>> subsequent all the frames >> >>> display the
video which should be of their previous timestamp. >>
>>> >> >>> Timestamps from the decoder are as
below. >> >>> 0, FAILURE, 119, 239, 359, 479, 599, 719, 839,
959, 1079, 1199 >> >>> >> >>> and
not >> >>> >> >>> For a 10 FPS clip,
timestamps are as below from the real parser. >> >>> 0, 119,
239, 359, 479, 599, 719, 839, 959, 1079, 1199, 1319 >>
>>> >> >>> In the case above, decoder fails for 2nd
frame, but the 3rd >> >>> frame timestamp value corresponds to
the 2nd frame timestamp. >> >>> In case decoder is failing for
10 frames (for any reason) >> >>> after first frame
decoding, >> >>> then the 12th frame (decoded successfully)
timestamp value >> >>> from the decoder will be
1199, >> >>> but it should be 1319 to play the file with
proper A/V sync >> >>> >> >>> After taking
logs (displayed under) we found that the >> >>>
src.sequence_number remains ahead of dst.sequence_number >>
>>> >> >>> Some logs that were taken from the
function >> _RV40toYUV420Transform() >>
>>> >> >>> /* Assign the
presentation time for the display frame */ >>
>>> pRV20Out->timestamp =
dst.sequence_number + temporal_offset; >> >>> gives
output as >> >>> >> >>>
pRV20Out->timestamp : 0 dst.sequence_number : 0 >> >>>
src.sequence_number : 0 temporal_offset : 0 >> >>>
pRV20Out->timestamp : 119 dst.sequence_number : 119 >> >>>
src.sequence_number : 119 temporal_offset : 0 >> >>>
rv_decode_frame_valid Failed >> >>> pRV20Out->timestamp :
119 dst.sequence_number : 119 >> >>> src.sequence_number : 239
temporal_offset : 0 >> >>> pRV20Out->timestamp : 239
dst.sequence_number : 239 >> >>> src.sequence_number : 359
temporal_offset : 0 >> >>> pRV20Out->timestamp : 359
dst.sequence_number : 359 >> >>> src.sequence_number : 479
temporal_offset : 0 >> >>> pRV20Out->timestamp : 479
dst.sequence_number : 479 >> >>> src.sequence_number : 599
temporal_offset : 0 >> >>> ... >> >>>
... >> >>> >> >>> Now one more thing that is
found is >> >>> >> >>> it seems that
dst.sequence_number is updated properly, but >> >>> the time
rv_decode_frame_valid method fails, decoder is not >> >>>
flushing the frame and in the next call to >> >>>
rv_decode_stream_decode method, it is giving the prev frame >>
>>> and thus, from there onwards, src.sequence_number is
greater >> >>> than of dst.sequence_number. >>
>>> >> >>> API:
Decoder_prepareDecodeBuffers >> >>>
(t->m_pCurrentFrame->m_pPreviousFrame == NULL) >> >>>
t->m_pCurrentFrame->m_timeStamp = src->sequence_number (0 =
0) >> >>> API: Decoder_prepareDecodeBuffers
dst->sequence_number = | |