[prev in list] [next in list] [prev in thread] [next in thread]
List: helix-datatype-dev
Subject: [datatype-dev] [RESENDING] CR: Fix for invalid timestamp issue
From: Deepak Jain <deepakj () real ! com>
Date: 2010-01-28 7:40:34
Message-ID: 4B613CA2.6080401 () real ! com
[Download RAW message or body]
[Attachment #2 (multipart/alternative)]
Resending for review.
Thanks,
Deepak Jain
Deepak Jain wrote:
> Hi Eric,
>
> Your suggestion is incorporated and attached is the updated diff.
>
> Thanks,
> Deepak Jain
>
>
> Eric Hyche wrote:
>> Deepak,
>>
>> It seems to me that the bug is in velproxy.cpp. If the incoming
>> packet is an IHXRTPPacket, then the outgoing packet should be an
>> IHXRTPPacket as well, just with a scaled timestamps. Sounds like
>> velproxy is making everything into an IHXPacket.
>>
>> Eric
>>
>> On Jan 25, 2010, at 7:16 AM, Deepak Jain wrote:
>>
>>
>>> Project: Real Player for MID - ARM.
>>>
>>> Synopsis: Fix for invalid timestamp issue while doing FF in Mpeg4
>>> for LG-MID ARM
>>>
>>> Overview: When we do FF in a Mp4 file, we get the packet from the
>>> assembler from the function CreateHXCodecPacket().
>>> In mp4vpyld, we are setting the packet time from function
>>> GetPacketTime() and we use RTP Packet time.
>>> This RTP packet time gets set in CreateHXCodecPacket() function
>>> while creating the packet.
>>>
>>> Now when we do FF, in file velproxy.cpp, inside function
>>> ReTimeStampAndSendPacket(), we create a IHXPacket and sets RTP time
>>> as 0xFFFFFFFF.
>>> Now when this time is received in GetPacketTime() inside
>>> mp4vpyld.cpp and subsequently this packet time is further provided
>>> to the Hardware decoder, it do not work correctly.
>>>
>>> This issue is resolved by applying a check in GetPacketTime() function.
>>> If we get RTP time as 0xFFFFFFFF, we set time from the packet time
>>> instead and set the m_bUsesRTPPackets=FALSE.
>>> Attached is the diff.
>>>
>>> Files Modified:
>>> datatype/mp4/payload/mp4vpyld.cpp
>>>
>>> Image Size and Heap Use impact (Client -Only):
>>> None.
>>>
>>> Platforms and Profiles Affected:
>>> None.
>>>
>>> Distribution Libraries Affected:
>>> None.
>>>
>>> Distribution library impact and planned action:
>>> None.
>>>
>>> Platforms and Profiles Build Verified:
>>> BIF: hxclient_3_4_11_atlas_restricted
>>> Target: player_mid_all_installers
>>> Profile: helix-client-mid-arm
>>>
>>> Branch:
>>> Atlas_3411
>>>
>>> Files Attached:
>>> mp4vpyld.txt
>>>
>>> Thanks,
>>> Deepak Jain
>>> <mp4vpyld.txt><ATT00001..txt>
>>>
>>
>> Eric Hyche (ehyche@real.com)
>> Principal Engineer
>> RealNetworks, Inc.
>>
>>
>>
>>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Datatype-dev mailing list
> Datatype-dev@helixcommunity.org
> http://lists.helixcommunity.org/mailman/listinfo/datatype-dev
[Attachment #5 (text/html)]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
Resending for review.<br>
<br>
Thanks,<br>
Deepak Jain<br>
<br>
Deepak Jain wrote:
<blockquote type="cite">Hi Eric,
<br>
<br>
Your suggestion is incorporated and attached is the updated diff.
<br>
<br>
Thanks,
<br>
Deepak Jain
<br>
<br>
<br>
Eric Hyche wrote:
<br>
<blockquote type="cite">Deepak,
<br>
<br>
It seems to me that the bug is in velproxy.cpp. If the incoming packet
is an IHXRTPPacket, then the outgoing packet should be an IHXRTPPacket
as well, just with a scaled timestamps. Sounds like velproxy is making
everything into an IHXPacket.
<br>
<br>
Eric
<br>
<br>
On Jan 25, 2010, at 7:16 AM, Deepak Jain wrote:
<br>
<br>
<blockquote type="cite">Project: Real Player for MID - ARM.
<br>
<br>
Synopsis: Fix for invalid timestamp issue while doing FF in Mpeg4 for
LG-MID ARM
<br>
<br>
Overview: When we do FF in a Mp4 file, we get the packet from the
assembler from the function CreateHXCodecPacket().
<br>
In mp4vpyld, we are setting the packet time from function
GetPacketTime() and we use RTP Packet time.
<br>
This RTP packet time gets set in CreateHXCodecPacket() function while
creating the packet.
<br>
<br>
Now when we do FF, in file velproxy.cpp, inside function
ReTimeStampAndSendPacket(), we create a IHXPacket and sets RTP time as
0xFFFFFFFF.
<br>
Now when this time is received in GetPacketTime() inside mp4vpyld.cpp
and subsequently this packet time is further provided to the Hardware
decoder, it do not work correctly.
<br>
<br>
This issue is resolved by applying a check in GetPacketTime() function.
<br>
If we get RTP time as 0xFFFFFFFF, we set time from the packet time
instead and set the m_bUsesRTPPackets=FALSE.
<br>
Attached is the diff.
<br>
<br>
Files Modified:
<br>
datatype/mp4/payload/mp4vpyld.cpp
<br>
<br>
Image Size and Heap Use impact (Client -Only):
<br>
None.
<br>
<br>
Platforms and Profiles Affected:
<br>
None.
<br>
<br>
Distribution Libraries Affected:
<br>
None.
<br>
<br>
Distribution library impact and planned action:
<br>
None.
<br>
<br>
Platforms and Profiles Build Verified:
<br>
BIF: hxclient_3_4_11_atlas_restricted
<br>
Target: player_mid_all_installers
<br>
Profile: helix-client-mid-arm
<br>
<br>
Branch:
<br>
Atlas_3411
<br>
<br>
Files Attached:
<br>
mp4vpyld.txt
<br>
<br>
Thanks,
<br>
Deepak Jain
<br>
<mp4vpyld.txt><ATT00001..txt>
<br>
</blockquote>
<br>
Eric Hyche (<a class="moz-txt-link-abbreviated" \
href="mailto:ehyche@real.com">ehyche@real.com</a>) <br>
Principal Engineer
<br>
RealNetworks, Inc.
<br>
<br>
<br>
<br>
</blockquote>
<br>
<pre wrap=""><pre wrap="">
<hr size="4" width="90%">
_______________________________________________
Datatype-dev mailing list
<a class="moz-txt-link-abbreviated" \
href="mailto:Datatype-dev@helixcommunity.org">Datatype-dev@helixcommunity.org</a> <a \
class="moz-txt-link-freetext" \
href="http://lists.helixcommunity.org/mailman/listinfo/datatype-dev">http://lists.helixcommunity.org/mailman/listinfo/datatype-dev</a>
</pre></pre>
</blockquote>
<br>
</body>
</html>
["Re: [datatype-dev] CR: Fix for invalid timestamp issue while
doing FF in Mpeg4for LG-MID ARM.eml" (message/rfc822)]
This is a MIME-formatted message. If you see this text it means that your
E-mail software does not support MIME-formatted messages.
Hi Eric,
Your suggestion is incorporated and attached is the updated diff.
Thanks,
Deepak Jain
Eric Hyche wrote:
> Deepak,
>
> It seems to me that the bug is in velproxy.cpp. If the incoming packet is an \
> IHXRTPPacket, then the outgoing packet should be an IHXRTPPacket as well, just with \
> a scaled timestamps. Sounds like velproxy is making everything into an IHXPacket.
> Eric
>
> On Jan 25, 2010, at 7:16 AM, Deepak Jain wrote:
>
>
> > Project: Real Player for MID - ARM.
> >
> > Synopsis: Fix for invalid timestamp issue while doing FF in Mpeg4 for LG-MID ARM
> >
> > Overview:
> > When we do FF in a Mp4 file, we get the packet from the assembler from the \
> > function CreateHXCodecPacket(). In mp4vpyld, we are setting the packet time from \
> > function GetPacketTime() and we use RTP Packet time. This RTP packet time gets \
> > set in CreateHXCodecPacket() function while creating the packet.
> > Now when we do FF, in file velproxy.cpp, inside function \
> > ReTimeStampAndSendPacket(), we create a IHXPacket and sets RTP time as \
> > 0xFFFFFFFF. Now when this time is received in GetPacketTime() inside mp4vpyld.cpp \
> > and subsequently this packet time is further provided to the Hardware decoder, it \
> > do not work correctly.
> > This issue is resolved by applying a check in GetPacketTime() function.
> > If we get RTP time as 0xFFFFFFFF, we set time from the packet time instead and \
> > set the m_bUsesRTPPackets=FALSE. Attached is the diff.
> >
> > Files Modified:
> > datatype/mp4/payload/mp4vpyld.cpp
> >
> > Image Size and Heap Use impact (Client -Only):
> > None.
> >
> > Platforms and Profiles Affected:
> > None.
> >
> > Distribution Libraries Affected:
> > None.
> >
> > Distribution library impact and planned action:
> > None.
> >
> > Platforms and Profiles Build Verified:
> > BIF: hxclient_3_4_11_atlas_restricted
> > Target: player_mid_all_installers
> > Profile: helix-client-mid-arm
> >
> > Branch:
> > Atlas_3411
> >
> > Files Attached:
> > mp4vpyld.txt
> >
> > Thanks,
> > Deepak Jain
> > <mp4vpyld.txt><ATT00001..txt>
> >
>
> Eric Hyche (ehyche@real.com)
> Principal Engineer
> RealNetworks, Inc.
>
>
>
>
["velproxy.diff" (text/x-patch)]
Index: velproxy.cpp
===================================================================
RCS file: /cvsroot/client/core/velproxy.cpp,v
retrieving revision 1.23
diff -u -r1.23 velproxy.cpp
--- velproxy.cpp 6 Jul 2007 21:58:12 -0000 1.23
+++ velproxy.cpp 27 Jan 2010 06:39:54 -0000
@@ -676,15 +676,42 @@
{
// Create a new packet
IHXPacket* pNewPacket = NULL;
- retVal = m_pCommonClassFactory->CreateInstance(CLSID_IHXPacket, \
(void**) &pNewPacket); + IHXRTPPacket* pRTPPacket = NULL;
+ HXBOOL bUseRTPPacket = FALSE;
+
+ bUseRTPPacket = (pPacket->QueryInterface( \
IID_IHXRTPPacket,(void**) &pRTPPacket) == HXR_OK); + if \
(SUCCEEDED(retVal)) + {
+ if (bUseRTPPacket)
+ {
+ retVal = \
m_pCommonClassFactory->CreateInstance(CLSID_IHXRTPPacket, + (void**) \
&pNewPacket); + }
+ else
+ {
+ retVal = \
m_pCommonClassFactory->CreateInstance(CLSID_IHXPacket, + (void**) \
&pNewPacket); + }
+ }
if (SUCCEEDED(retVal))
{
- // Set the new packet
- retVal = pNewPacket->Set(pBuffer,
- ulNewTime,
- usStreamNumber,
- ucASMFlags,
- usASMRuleNumber);
+ if (bUseRTPPacket)
+ {
+ retVal = ((IHXRTPPacket*) pNewPacket)->SetRTP(pBuffer,
+ ulNewTime,
+ ulNewTime,
+ usStreamNumber,
+ ucASMFlags,
+ usASMRuleNumber);
+ }
+ else
+ {
+ retVal = ((IHXRTPPacket*) pNewPacket)->Set(pBuffer,
+ ulNewTime,
+ usStreamNumber,
+ ucASMFlags,
+ usASMRuleNumber);
+ }
if (SUCCEEDED(retVal))
{
// Pass the packet on through
@@ -692,6 +719,7 @@
}
}
HX_RELEASE(pNewPacket);
+ HX_RELEASE(pRTPPacket);
}
HX_RELEASE(pBuffer);
}
_______________________________________________
Datatype-dev mailing list
Datatype-dev@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/datatype-dev
_______________________________________________
Datatype-dev mailing list
Datatype-dev@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/datatype-dev
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic