List Info

Thread: CR: Fix the issue that when the wmv content is bad, the player can




CR: Fix the issue that when the wmv content is bad, the player can
user name
2008-02-26 02:48:50

Synopsis:

  Fix the issue: when the wmv content is bad, the player can't get the correct duration

 

Overview:

  The duration of a stream can either be from the file properties or from extended stream properties, we will try and detect when we encounter a bad content (something wrong in the extended stream properties) and then in that case, use the duration in the file properties object.

 

Files Added:

  None

 

Files Modified:

  client/core/hxsrc.cpp

  client/core/hxbsrc.h

 

Image Size and Heap Use impact (Client -Only):

  Little

 

Platforms and Profiles Affected:

  platform:   linux-2.2-libc6-gcc32-i586

  profile: ;     helix-client-all-defines

 

Distribution Libraries Affected:

  &lt;hxmedplyeng.so> <clntcorelib.a>

 

Distribution library impact and planned action:

  <None&gt;

 

Platforms and Profiles Build Verified:

  Set BIF branch  &nbsp;-> hxclient_3_1_0_atlas

  Set Target(s) &nbsp;   ->; client_core

  Set Profile &nbsp; &nbsp; &nbsp; -> helix-client-all-defines

  System ID  ; &nbsp; &nbsp; -> linux-2.2-libc6-gcc32-i586

 

Branch:

  HEAD, hxclient_3_1_0_atlas

 

Copyright assignment: <MUST be one of the following statements >

 

2. &nbsp; &nbsp;  Intel has signed and delivered a Joint Copyright Assignment

 

 &nbsp; &nbsp; &nbsp; &nbsp;   to RealNetworks, and received acknowledgment that the

 

 &nbsp; &nbsp; &nbsp; &nbsp;   agreement was received.

 

Files Attached:

  client-core-wmv-duration.diff

 

Weian

 

  
RE: CR: Fix the issue that when the wmvcontent is bad, the player c
country flaguser name
United States
2008-02-26 22:21:09
Hmmm.. I'm confused. The Overview below does not
match the diff attached.

As we talked about before, we should fix this 
in datatype/wm/fileformat, not at the client core
level. The description below sounds right - when we
detect that the extended stream properties duration is
wrong, then don't use it, and use the duration in
the file properties object instead.

Eric 

=============================================
Eric Hyche (ehychereal.com)
Technical Lead
RealNetworks, Inc.  

> -----Original Message-----
> From: datatype-dev-bounceshelixcommunity.org 
> [mailto:datatype-dev-bounceshelixcommunity.org] On
Behalf Of 
> Chen, Weian
> Sent: Tuesday, February 26, 2008 3:49 AM
> To: datatype-devhelixcommunity.org
> Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> Subject: [datatype-dev][helix-client-dev] CR: Fix the
issue 
> that when the wmvcontent is bad, the player can't get
the 
> correct duration
> 
> Synopsis: 
> 
>   Fix the issue: when the wmv content is bad, the
player 
> can't get the correct duration
> 
>  
> 
> Overview: 
> 
>   The duration of a stream can either be from the file

> properties or from extended stream properties, we will
try 
> and detect when we encounter a bad content (something
wrong 
> in the extended stream properties) and then in that
case, use 
> the duration in the file properties object.
> 
>  
> 
> Files Added:
> 
>   None
> 
>  
> 
> Files Modified:
> 
>   client/core/hxsrc.cpp
> 
>   client/core/hxbsrc.h
> 
>  
> 
> Image Size and Heap Use impact (Client -Only):
> 
>   Little
> 
>  
> 
> Platforms and Profiles Affected:
> 
>   platform:   linux-2.2-libc6-gcc32-i586
> 
>   profile:      helix-client-all-defines
> 
>  
> 
> Distribution Libraries Affected:
> 
>   <hxmedplyeng.so> <clntcorelib.a>
> 
>  
> 
> Distribution library impact and planned action:
> 
>   <None>
> 
>  
> 
> Platforms and Profiles Build Verified:
> 
>   Set BIF branch   -> hxclient_3_1_0_atlas
> 
>   Set Target(s)     -> client_core
> 
>   Set Profile       -> helix-client-all-defines
> 
>   System ID       -> linux-2.2-libc6-gcc32-i586
> 
>  
> 
> Branch: 
> 
>   HEAD, hxclient_3_1_0_atlas
> 
>  
> 
> Copyright assignment: <MUST be one of the following
statements >
> 
>  
> 
> 2.      Intel has signed and delivered a Joint
Copyright Assignment
> 
>  
> 
>            to RealNetworks, and received acknowledgment
that the 
> 
>  
> 
>            agreement was received. 
> 
>  
> 
> Files Attached:
> 
>   client-core-wmv-duration.diff
> 
>  
> 
> Weian
> 
>  
> 
> 


_______________________________________________
Helix-client-dev mailing list
Helix-client-devhelixcommunity.org
http://lists.helixcommunity.org/mailman/listinf
o/helix-client-dev

Re-Send: CR: Fix the issue that when the wmvcontent is bad, the pla
user name
2008-03-10 02:17:58
Synopsis: 
  Fix the issue: when the wmv content is bad, the player
can't get the correct duration

Overview: 
  The duration of a stream can either be from the file
properties or from extended stream properties, we will try
and detect when we encounter a bad content (something wrong
in the extended stream properties) and then in that case,
use the duration in the file properties object.

Files Added:
  None

Files Modified:
  datatype/wm/fileformat/asf_file_format_file.cpp
  datatype/wm/fileformat/pub/asf_file_format_file.h

Image Size and Heap Use impact (Client -Only):
  Little

Platforms and Profiles Affected:
  platform:   linux-2.2-libc6-gcc32-i586
  profile:      helix-client-all-defines

Distribution Libraries Affected:
  <asffflib.a> <asfff.so>

Distribution library impact and planned action:
  <None>

Platforms and Profiles Build Verified:
  Set BIF branch   -> hxclient_3_1_0_atlas_restricted
  Set Target(s)     -> all_wm_plugins
  Set Profile       -> helix-client-all-defines
  System ID       -> linux-2.2-libc6-gcc32-i586

Branch: 
  HEAD, hxclient_3_1_0_atlas

Copyright assignment: <MUST be one of the following
statements >

2.      Intel has signed and delivered a Joint Copyright
Assignment

           to RealNetworks, and received acknowledgment that
the 

           agreement was received. 

Files Attached:
  datatype-wm-duration.diff

thanks!
Weian

-----Original Message-----
From: Eric Hyche [mailto:ehychereal.com] 
Sent: 2008年2月27日 12:21
To: Chen, Weian; datatype-devhelixcommunity.org
Cc: Shen, Cathy; helix-client-devhelixcommunity.org
Subject: RE: [datatype-dev][helix-client-dev] CR: Fix the
issue that when the wmvcontent is bad, the player can't get
the correct duration


Hmmm.. I'm confused. The Overview below does not
match the diff attached.

As we talked about before, we should fix this 
in datatype/wm/fileformat, not at the client core
level. The description below sounds right - when we
detect that the extended stream properties duration is
wrong, then don't use it, and use the duration in
the file properties object instead.

Eric 

=============================================
Eric Hyche (ehychereal.com)
Technical Lead
RealNetworks, Inc.  

> -----Original Message-----
> From: datatype-dev-bounceshelixcommunity.org 
> [mailto:datatype-dev-bounceshelixcommunity.org] On
Behalf Of 
> Chen, Weian
> Sent: Tuesday, February 26, 2008 3:49 AM
> To: datatype-devhelixcommunity.org
> Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> Subject: [datatype-dev][helix-client-dev] CR: Fix the
issue 
> that when the wmvcontent is bad, the player can't get
the 
> correct duration
> 
> Synopsis: 
> 
>   Fix the issue: when the wmv content is bad, the
player 
> can't get the correct duration
> 
>  
> 
> Overview: 
> 
>   The duration of a stream can either be from the file

> properties or from extended stream properties, we will
try 
> and detect when we encounter a bad content (something
wrong 
> in the extended stream properties) and then in that
case, use 
> the duration in the file properties object.
> 
>  
> 
> Files Added:
> 
>   None
> 
>  
> 
> Files Modified:
> 
>   client/core/hxsrc.cpp
> 
>   client/core/hxbsrc.h
> 
>  
> 
> Image Size and Heap Use impact (Client -Only):
> 
>   Little
> 
>  
> 
> Platforms and Profiles Affected:
> 
>   platform:   linux-2.2-libc6-gcc32-i586
> 
>   profile:      helix-client-all-defines
> 
>  
> 
> Distribution Libraries Affected:
> 
>   <hxmedplyeng.so> <clntcorelib.a>
> 
>  
> 
> Distribution library impact and planned action:
> 
>   <None>
> 
>  
> 
> Platforms and Profiles Build Verified:
> 
>   Set BIF branch   -> hxclient_3_1_0_atlas
> 
>   Set Target(s)     -> client_core
> 
>   Set Profile       -> helix-client-all-defines
> 
>   System ID       -> linux-2.2-libc6-gcc32-i586
> 
>  
> 
> Branch: 
> 
>   HEAD, hxclient_3_1_0_atlas
> 
>  
> 
> Copyright assignment: <MUST be one of the following
statements >
> 
>  
> 
> 2.      Intel has signed and delivered a Joint
Copyright Assignment
> 
>  
> 
>            to RealNetworks, and received acknowledgment
that the 
> 
>  
> 
>            agreement was received. 
> 
>  
> 
> Files Attached:
> 
>   client-core-wmv-duration.diff
> 
>  
> 
> Weian
> 
>  
> 
> 


_______________________________________________
Helix-client-dev mailing list
Helix-client-devhelixcommunity.org
http://lists.helixcommunity.org/mailman/listinf
o/helix-client-dev

  
RE: Re-Send: CR: Fix the issue that when the wmvcontent is bad, the
country flaguser name
United States
2008-03-10 09:56:51
Several comments on this change:

1) As you can see in hxprefutil.h, there are two versions of
each 
   ReadPrefXXXX() function - one that takes an IUnknown* and
one that
   takes an IHXPreferences. Unless you already have an
IHXPreferences*
  handy, you should use the one that takes a IUnknown*. So
in this 
  change we should be using the version that takes an
IUnknown*. So
  there's no need to QI for IHXPreferences in this change.

2) "Selection" in the pref name is misspelled, and
we should spell out
   "threshold". So the pref name should be
"DurationSelectionThreshold".

3) ullDurationFromExtObj is unsigned, so it will never be
< 0. So the
   <= 0 can just be a == 0 check.

4) We should add a descriptive comment right before the if
clause:

+                if (ullDurationFromExtObj <= 0 || 
+                     ullDurationFromExtObj >
(ullDurationFromFileHeader * (m_ulDurationSelectionThrd +
100) / 100))

  which explains why we are doing this check. This comment
should
  describe the buggy files (where duration in extended
stream properties object is
  supposed to be in milliseconds but some buggy file writers
wrote it out in
  units of 100ns) and therefore why this if() comparison is
needed.

5) I'm not sure why we need the duration selection threshold
to be
   in a member variable since we are only using it one time
inside function scope.

Eric

=============================================
Eric Hyche (ehychereal.com)
Technical Lead
RealNetworks, Inc.  

> -----Original Message-----
> From: Chen, Weian [mailto:weian.chenintel.com] 
> Sent: Monday, March 10, 2008 3:18 AM
> To: ehychereal.com; datatype-devhelixcommunity.org
> Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> Subject: Re-Send: [datatype-dev][helix-client-dev] CR:
Fix 
> the issue that when the wmvcontent is bad, the player
can't 
> get the correct duration
> 
> Synopsis: 
>   Fix the issue: when the wmv content is bad, the
player 
> can't get the correct duration
> 
> Overview: 
>   The duration of a stream can either be from the file

> properties or from extended stream properties, we will
try 
> and detect when we encounter a bad content (something
wrong 
> in the extended stream properties) and then in that
case, use 
> the duration in the file properties object.
> 
> Files Added:
>   None
> 
> Files Modified:
>   datatype/wm/fileformat/asf_file_format_file.cpp
>   datatype/wm/fileformat/pub/asf_file_format_file.h
> 
> Image Size and Heap Use impact (Client -Only):
>   Little
> 
> Platforms and Profiles Affected:
>   platform:   linux-2.2-libc6-gcc32-i586
>   profile:      helix-client-all-defines
> 
> Distribution Libraries Affected:
>   <asffflib.a> <asfff.so>
> 
> Distribution library impact and planned action:
>   <None>
> 
> Platforms and Profiles Build Verified:
>   Set BIF branch   ->
hxclient_3_1_0_atlas_restricted
>   Set Target(s)     -> all_wm_plugins
>   Set Profile       -> helix-client-all-defines
>   System ID       -> linux-2.2-libc6-gcc32-i586
> 
> Branch: 
>   HEAD, hxclient_3_1_0_atlas
> 
> Copyright assignment: <MUST be one of the following
statements >
> 
> 2.      Intel has signed and delivered a Joint
Copyright Assignment
> 
>            to RealNetworks, and received acknowledgment
that the 
> 
>            agreement was received. 
> 
> Files Attached:
>   datatype-wm-duration.diff
> 
> thanks!
> Weian
> 
> -----Original Message-----
> From: Eric Hyche [mailto:ehychereal.com] 
> Sent: 2008$BG/(B2$B7n(B27$BF|(B 12:21
> To: Chen, Weian; datatype-devhelixcommunity.org
> Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> Subject: RE: [datatype-dev][helix-client-dev] CR: Fix
the 
> issue that when the wmvcontent is bad, the player can't
get 
> the correct duration
> 
> 
> Hmmm.. I'm confused. The Overview below does not
> match the diff attached.
> 
> As we talked about before, we should fix this 
> in datatype/wm/fileformat, not at the client core
> level. The description below sounds right - when we
> detect that the extended stream properties duration is
> wrong, then don't use it, and use the duration in
> the file properties object instead.
> 
> Eric 
> 
> =============================================
> Eric Hyche (ehychereal.com)
> Technical Lead
> RealNetworks, Inc.  
> 
> > -----Original Message-----
> > From: datatype-dev-bounceshelixcommunity.org 
> > [mailto:datatype-dev-bounceshelixcommunity.org] On
Behalf Of 
> > Chen, Weian
> > Sent: Tuesday, February 26, 2008 3:49 AM
> > To: datatype-devhelixcommunity.org
> > Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> > Subject: [datatype-dev][helix-client-dev] CR: Fix
the issue 
> > that when the wmvcontent is bad, the player can't
get the 
> > correct duration
> > 
> > Synopsis: 
> > 
> >   Fix the issue: when the wmv content is bad, the
player 
> > can't get the correct duration
> > 
> >  
> > 
> > Overview: 
> > 
> >   The duration of a stream can either be from the
file 
> > properties or from extended stream properties, we
will try 
> > and detect when we encounter a bad content
(something wrong 
> > in the extended stream properties) and then in
that case, use 
> > the duration in the file properties object.
> > 
> >  
> > 
> > Files Added:
> > 
> >   None
> > 
> >  
> > 
> > Files Modified:
> > 
> >   client/core/hxsrc.cpp
> > 
> >   client/core/hxbsrc.h
> > 
> >  
> > 
> > Image Size and Heap Use impact (Client -Only):
> > 
> >   Little
> > 
> >  
> > 
> > Platforms and Profiles Affected:
> > 
> >   platform:   linux-2.2-libc6-gcc32-i586
> > 
> >   profile:      helix-client-all-defines
> > 
> >  
> > 
> > Distribution Libraries Affected:
> > 
> >   <hxmedplyeng.so> <clntcorelib.a>
> > 
> >  
> > 
> > Distribution library impact and planned action:
> > 
> >   <None>
> > 
> >  
> > 
> > Platforms and Profiles Build Verified:
> > 
> >   Set BIF branch   -> hxclient_3_1_0_atlas
> > 
> >   Set Target(s)     -> client_core
> > 
> >   Set Profile       ->
helix-client-all-defines
> > 
> >   System ID       ->
linux-2.2-libc6-gcc32-i586
> > 
> >  
> > 
> > Branch: 
> > 
> >   HEAD, hxclient_3_1_0_atlas
> > 
> >  
> > 
> > Copyright assignment: <MUST be one of the
following statements >
> > 
> >  
> > 
> > 2.      Intel has signed and delivered a Joint
Copyright Assignment
> > 
> >  
> > 
> >            to RealNetworks, and received
acknowledgment that the 
> > 
> >  
> > 
> >            agreement was received. 
> > 
> >  
> > 
> > Files Attached:
> > 
> >   client-core-wmv-duration.diff
> > 
> >  
> > 
> > Weian
> > 
> >  
> > 
> > 
> 
> 


_______________________________________________
Helix-client-dev mailing list
Helix-client-devhelixcommunity.org
http://lists.helixcommunity.org/mailman/listinf
o/helix-client-dev

RE: Re-Send: CR: Fix the issue that when the wmvcontent is bad, the
user name
2008-03-10 21:17:34

Thanks a lot, I will modify and commit....

Weian

-----Original Message-----
From: Eric Hyche [mailto:ehychereal.com] 
Sent: 2008年3月10日 22:57
To: Chen, Weian; datatype-devhelixcommunity.org
Cc: Shen, Cathy; helix-client-devhelixcommunity.org
Subject: RE: Re-Send: [datatype-dev][helix-client-dev] CR:
Fix the issue that when the wmvcontent is bad, the player
can't get the correct duration


Several comments on this change:

1) As you can see in hxprefutil.h, there are two versions of
each 
   ReadPrefXXXX() function - one that takes an IUnknown* and
one that
   takes an IHXPreferences. Unless you already have an
IHXPreferences*
  handy, you should use the one that takes a IUnknown*. So
in this 
  change we should be using the version that takes an
IUnknown*. So
  there's no need to QI for IHXPreferences in this change.

2) "Selection" in the pref name is misspelled, and
we should spell out
   "threshold". So the pref name should be
"DurationSelectionThreshold".

3) ullDurationFromExtObj is unsigned, so it will never be
< 0. So the
   <= 0 can just be a == 0 check.

4) We should add a descriptive comment right before the if
clause:

+                if (ullDurationFromExtObj <= 0 || 
+                     ullDurationFromExtObj >
(ullDurationFromFileHeader * (m_ulDurationSelectionThrd +
100) / 100))

  which explains why we are doing this check. This comment
should
  describe the buggy files (where duration in extended
stream properties object is
  supposed to be in milliseconds but some buggy file writers
wrote it out in
  units of 100ns) and therefore why this if() comparison is
needed.

5) I'm not sure why we need the duration selection threshold
to be
   in a member variable since we are only using it one time
inside function scope.

Eric

=============================================
Eric Hyche (ehychereal.com)
Technical Lead
RealNetworks, Inc.  

> -----Original Message-----
> From: Chen, Weian [mailto:weian.chenintel.com] 
> Sent: Monday, March 10, 2008 3:18 AM
> To: ehychereal.com; datatype-devhelixcommunity.org
> Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> Subject: Re-Send: [datatype-dev][helix-client-dev] CR:
Fix 
> the issue that when the wmvcontent is bad, the player
can't 
> get the correct duration
> 
> Synopsis: 
>   Fix the issue: when the wmv content is bad, the
player 
> can't get the correct duration
> 
> Overview: 
>   The duration of a stream can either be from the file

> properties or from extended stream properties, we will
try 
> and detect when we encounter a bad content (something
wrong 
> in the extended stream properties) and then in that
case, use 
> the duration in the file properties object.
> 
> Files Added:
>   None
> 
> Files Modified:
>   datatype/wm/fileformat/asf_file_format_file.cpp
>   datatype/wm/fileformat/pub/asf_file_format_file.h
> 
> Image Size and Heap Use impact (Client -Only):
>   Little
> 
> Platforms and Profiles Affected:
>   platform:   linux-2.2-libc6-gcc32-i586
>   profile:      helix-client-all-defines
> 
> Distribution Libraries Affected:
>   <asffflib.a> <asfff.so>
> 
> Distribution library impact and planned action:
>   <None>
> 
> Platforms and Profiles Build Verified:
>   Set BIF branch   ->
hxclient_3_1_0_atlas_restricted
>   Set Target(s)     -> all_wm_plugins
>   Set Profile       -> helix-client-all-defines
>   System ID       -> linux-2.2-libc6-gcc32-i586
> 
> Branch: 
>   HEAD, hxclient_3_1_0_atlas
> 
> Copyright assignment: <MUST be one of the following
statements >
> 
> 2.      Intel has signed and delivered a Joint
Copyright Assignment
> 
>            to RealNetworks, and received acknowledgment
that the 
> 
>            agreement was received. 
> 
> Files Attached:
>   datatype-wm-duration.diff
> 
> thanks!
> Weian
> 
> -----Original Message-----
> From: Eric Hyche [mailto:ehychereal.com] 
> Sent: 2008年2月27日 12:21
> To: Chen, Weian; datatype-devhelixcommunity.org
> Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> Subject: RE: [datatype-dev][helix-client-dev] CR: Fix
the 
> issue that when the wmvcontent is bad, the player can't
get 
> the correct duration
> 
> 
> Hmmm.. I'm confused. The Overview below does not
> match the diff attached.
> 
> As we talked about before, we should fix this 
> in datatype/wm/fileformat, not at the client core
> level. The description below sounds right - when we
> detect that the extended stream properties duration is
> wrong, then don't use it, and use the duration in
> the file properties object instead.
> 
> Eric 
> 
> =============================================
> Eric Hyche (ehychereal.com)
> Technical Lead
> RealNetworks, Inc.  
> 
> > -----Original Message-----
> > From: datatype-dev-bounceshelixcommunity.org 
> > [mailto:datatype-dev-bounceshelixcommunity.org] On
Behalf Of 
> > Chen, Weian
> > Sent: Tuesday, February 26, 2008 3:49 AM
> > To: datatype-devhelixcommunity.org
> > Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> > Subject: [datatype-dev][helix-client-dev] CR: Fix
the issue 
> > that when the wmvcontent is bad, the player can't
get the 
> > correct duration
> > 
> > Synopsis: 
> > 
> >   Fix the issue: when the wmv content is bad, the
player 
> > can't get the correct duration
> > 
> >  
> > 
> > Overview: 
> > 
> >   The duration of a stream can either be from the
file 
> > properties or from extended stream properties, we
will try 
> > and detect when we encounter a bad content
(something wrong 
> > in the extended stream properties) and then in
that case, use 
> > the duration in the file properties object.
> > 
> >  
> > 
> > Files Added:
> > 
> >   None
> > 
> >  
> > 
> > Files Modified:
> > 
> >   client/core/hxsrc.cpp
> > 
> >   client/core/hxbsrc.h
> > 
> >  
> > 
> > Image Size and Heap Use impact (Client -Only):
> > 
> >   Little
> > 
> >  
> > 
> > Platforms and Profiles Affected:
> > 
> >   platform:   linux-2.2-libc6-gcc32-i586
> > 
> >   profile:      helix-client-all-defines
> > 
> >  
> > 
> > Distribution Libraries Affected:
> > 
> >   <hxmedplyeng.so> <clntcorelib.a>
> > 
> >  
> > 
> > Distribution library impact and planned action:
> > 
> >   <None>
> > 
> >  
> > 
> > Platforms and Profiles Build Verified:
> > 
> >   Set BIF branch   -> hxclient_3_1_0_atlas
> > 
> >   Set Target(s)     -> client_core
> > 
> >   Set Profile       ->
helix-client-all-defines
> > 
> >   System ID       ->
linux-2.2-libc6-gcc32-i586
> > 
> >  
> > 
> > Branch: 
> > 
> >   HEAD, hxclient_3_1_0_atlas
> > 
> >  
> > 
> > Copyright assignment: <MUST be one of the
following statements >
> > 
> >  
> > 
> > 2.      Intel has signed and delivered a Joint
Copyright Assignment
> > 
> >  
> > 
> >            to RealNetworks, and received
acknowledgment that the 
> > 
> >  
> > 
> >            agreement was received. 
> > 
> >  
> > 
> > Files Attached:
> > 
> >   client-core-wmv-duration.diff
> > 
> >  
> > 
> > Weian
> > 
> >  
> > 
> > 
> 
> 


_______________________________________________
Helix-client-dev mailing list
Helix-client-devhelixcommunity.org
http://lists.helixcommunity.org/mailman/listinf
o/helix-client-dev

CN: Fix the issue thatwhen the wmvcontent is bad, the player can't
user name
2008-03-10 22:00:34
Commit to head and atlas branch.

Thanks!
Weian

-----Original Message-----
From: datatype-dev-bounceshelixcommunity.org
[mailto:datatype-dev-bounceshelixcommunity.org] On
Behalf Of Chen, Weian
Sent: 2008年3月11日 10:18
To: ehychereal.com; datatype-devhelixcommunity.org
Cc: Shen, Cathy; helix-client-devhelixcommunity.org
Subject: RE: Re-Send: [datatype-dev][helix-client-dev] CR:
Fix the issue thatwhen the wmvcontent is bad, the player
can't get the correct duration



Thanks a lot, I will modify and commit....

Weian

-----Original Message-----
From: Eric Hyche [mailto:ehychereal.com] 
Sent: 2008年3月10日 22:57
To: Chen, Weian; datatype-devhelixcommunity.org
Cc: Shen, Cathy; helix-client-devhelixcommunity.org
Subject: RE: Re-Send: [datatype-dev][helix-client-dev] CR:
Fix the issue that when the wmvcontent is bad, the player
can't get the correct duration


Several comments on this change:

1) As you can see in hxprefutil.h, there are two versions of
each 
   ReadPrefXXXX() function - one that takes an IUnknown* and
one that
   takes an IHXPreferences. Unless you already have an
IHXPreferences*
  handy, you should use the one that takes a IUnknown*. So
in this 
  change we should be using the version that takes an
IUnknown*. So
  there's no need to QI for IHXPreferences in this change.

2) "Selection" in the pref name is misspelled, and
we should spell out
   "threshold". So the pref name should be
"DurationSelectionThreshold".

3) ullDurationFromExtObj is unsigned, so it will never be
< 0. So the
   <= 0 can just be a == 0 check.

4) We should add a descriptive comment right before the if
clause:

+                if (ullDurationFromExtObj <= 0 || 
+                     ullDurationFromExtObj >
(ullDurationFromFileHeader * (m_ulDurationSelectionThrd +
100) / 100))

  which explains why we are doing this check. This comment
should
  describe the buggy files (where duration in extended
stream properties object is
  supposed to be in milliseconds but some buggy file writers
wrote it out in
  units of 100ns) and therefore why this if() comparison is
needed.

5) I'm not sure why we need the duration selection threshold
to be
   in a member variable since we are only using it one time
inside function scope.

Eric

=============================================
Eric Hyche (ehychereal.com)
Technical Lead
RealNetworks, Inc.  

> -----Original Message-----
> From: Chen, Weian [mailto:weian.chenintel.com] 
> Sent: Monday, March 10, 2008 3:18 AM
> To: ehychereal.com; datatype-devhelixcommunity.org
> Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> Subject: Re-Send: [datatype-dev][helix-client-dev] CR:
Fix 
> the issue that when the wmvcontent is bad, the player
can't 
> get the correct duration
> 
> Synopsis: 
>   Fix the issue: when the wmv content is bad, the
player 
> can't get the correct duration
> 
> Overview: 
>   The duration of a stream can either be from the file

> properties or from extended stream properties, we will
try 
> and detect when we encounter a bad content (something
wrong 
> in the extended stream properties) and then in that
case, use 
> the duration in the file properties object.
> 
> Files Added:
>   None
> 
> Files Modified:
>   datatype/wm/fileformat/asf_file_format_file.cpp
>   datatype/wm/fileformat/pub/asf_file_format_file.h
> 
> Image Size and Heap Use impact (Client -Only):
>   Little
> 
> Platforms and Profiles Affected:
>   platform:   linux-2.2-libc6-gcc32-i586
>   profile:      helix-client-all-defines
> 
> Distribution Libraries Affected:
>   <asffflib.a> <asfff.so>
> 
> Distribution library impact and planned action:
>   <None>
> 
> Platforms and Profiles Build Verified:
>   Set BIF branch   ->
hxclient_3_1_0_atlas_restricted
>   Set Target(s)     -> all_wm_plugins
>   Set Profile       -> helix-client-all-defines
>   System ID       -> linux-2.2-libc6-gcc32-i586
> 
> Branch: 
>   HEAD, hxclient_3_1_0_atlas
> 
> Copyright assignment: <MUST be one of the following
statements >
> 
> 2.      Intel has signed and delivered a Joint
Copyright Assignment
> 
>            to RealNetworks, and received acknowledgment
that the 
> 
>            agreement was received. 
> 
> Files Attached:
>   datatype-wm-duration.diff
> 
> thanks!
> Weian
> 
> -----Original Message-----
> From: Eric Hyche [mailto:ehychereal.com] 
> Sent: 2008年2月27日 12:21
> To: Chen, Weian; datatype-devhelixcommunity.org
> Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> Subject: RE: [datatype-dev][helix-client-dev] CR: Fix
the 
> issue that when the wmvcontent is bad, the player can't
get 
> the correct duration
> 
> 
> Hmmm.. I'm confused. The Overview below does not
> match the diff attached.
> 
> As we talked about before, we should fix this 
> in datatype/wm/fileformat, not at the client core
> level. The description below sounds right - when we
> detect that the extended stream properties duration is
> wrong, then don't use it, and use the duration in
> the file properties object instead.
> 
> Eric 
> 
> =============================================
> Eric Hyche (ehychereal.com)
> Technical Lead
> RealNetworks, Inc.  
> 
> > -----Original Message-----
> > From: datatype-dev-bounceshelixcommunity.org 
> > [mailto:datatype-dev-bounceshelixcommunity.org] On
Behalf Of 
> > Chen, Weian
> > Sent: Tuesday, February 26, 2008 3:49 AM
> > To: datatype-devhelixcommunity.org
> > Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> > Subject: [datatype-dev][helix-client-dev] CR: Fix
the issue 
> > that when the wmvcontent is bad, the player can't
get the 
> > correct duration
> > 
> > Synopsis: 
> > 
> >   Fix the issue: when the wmv content is bad, the
player 
> > can't get the correct duration
> > 
> >  
> > 
> > Overview: 
> > 
> >   The duration of a stream can either be from the
file 
> > properties or from extended stream properties, we
will try 
> > and detect when we encounter a bad content
(something wrong 
> > in the extended stream properties) and then in
that case, use 
> > the duration in the file properties object.
> > 
> >  
> > 
> > Files Added:
> > 
> >   None
> > 
> >  
> > 
> > Files Modified:
> > 
> >   client/core/hxsrc.cpp
> > 
> >   client/core/hxbsrc.h
> > 
> >  
> > 
> > Image Size and Heap Use impact (Client -Only):
> > 
> >   Little
> > 
> >  
> > 
> > Platforms and Profiles Affected:
> > 
> >   platform:   linux-2.2-libc6-gcc32-i586
> > 
> >   profile:      helix-client-all-defines
> > 
> >  
> > 
> > Distribution Libraries Affected:
> > 
> >   <hxmedplyeng.so> <clntcorelib.a>
> > 
> >  
> > 
> > Distribution library impact and planned action:
> > 
> >   <None>
> > 
> >  
> > 
> > Platforms and Profiles Build Verified:
> > 
> >   Set BIF branch   -> hxclient_3_1_0_atlas
> > 
> >   Set Target(s)     -> client_core
> > 
> >   Set Profile       ->
helix-client-all-defines
> > 
> >   System ID       ->
linux-2.2-libc6-gcc32-i586
> > 
> >  
> > 
> > Branch: 
> > 
> >   HEAD, hxclient_3_1_0_atlas
> > 
> >  
> > 
> > Copyright assignment: <MUST be one of the
following statements >
> > 
> >  
> > 
> > 2.      Intel has signed and delivered a Joint
Copyright Assignment
> > 
> >  
> > 
> >            to RealNetworks, and received
acknowledgment that the 
> > 
> >  
> > 
> >            agreement was received. 
> > 
> >  
> > 
> > Files Attached:
> > 
> >   client-core-wmv-duration.diff
> > 
> >  
> > 
> > Weian
> > 
> >  
> > 
> > 
> 
> 


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

_______________________________________________
Helix-client-dev mailing list
Helix-client-devhelixcommunity.org
http://lists.helixcommunity.org/mailman/listinf
o/helix-client-dev

RE: CN: Fix the issue thatwhen the wmvcontent is bad, the player ca
country flaguser name
United States
2008-03-11 08:35:00
Weian,

I'm a bit confused. I was interested in seeing the final
diff that you
committed, so I went to look at the datatype-cvs mailing
list
to see the diff. I have included the commit email below.

As you can see, the comments pasted into the commit text
don't match
what was actually committed.

The diff looks fine - I was just wondering what was going on
with
the rest of the text....

Eric

=============================================
Eric Hyche (ehychereal.com)
Technical Lead
RealNetworks, Inc. 

------------------------------------------------------------
-------------------------------
Modified Files:
	asf_file_format_file.cpp 
Log Message:
Synopsis:
  Make the thread callback function of dtdriver work well on
UNIX platform.

Overview:
  To make the thread callback function work well on Unix
platform (in file thrdcbmgr.cpp and thrdcbmgr.h), we should

inherited from interface IHXInterruptOnly, and implement the
function IsInterruptOnly(), then the thread function 
Func() can be trigged.

Files Added:
  No file added

Files Modified:
  thrdcbmgr.cpp
(/datatype/tools/dtdriver/dtdrplin/platform/unix/)
  thrdcbmgr.h
(/datatype/tools/dtdriver/dtdrplin/platform/unix/)
    
Image Size and Heap Use impact (Client -Only):
  Little
 
Platforms and Profiles Affected:
  platform:   linux-2.2-libc6-gcc32-i586
  profile:      helix-client-all-defines

Distribution Libraries Affected:
  <dtdrplin.so>
  <hxdtdriver.so>
 
Distribution library impact and planned action:
  <None>

Platforms and Profiles Build Verified:
  Set BIF branch  -> hxclient_3_1_0_atlas_restricted
  Set Target(s)     -> datatype_tools_dtdriver
  Set Profile        -> helix-client-all-defines
  System ID        -> linux-2.2-libc6-gcc32-i586

Branch:
  HEAD, hxclient_3_1_0_atlas

Copyright assignment: <MUST be one of the following
statements >
    2.      Intel has signed and delivered a Joint Copyright
Assignment to RealNetworks, and received acknowledgment 
that the agreement was received. 

Files Attached:
  dtdrplin-thrdcbmgr.diff


Index: asf_file_format_file.cpp
============================================================
=======
RCS file:
/cvsroot/datatype/wm/fileformat/asf_file_format_file.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- asf_file_format_file.cpp	21 Feb 2008 04:53:18
-0000	1.13
+++ asf_file_format_file.cpp	11 Mar 2008 02:57:14
-0000	1.14
 -57,6
+57,7 
 #include "asf_index.h"
 #include "asf_file_format.ver"
 #include "hxheap.h"
+#include "hxprefutil.h"
 
 #if defined(HELIX_FEATURE_DRM) 
 #include "hxdrm.h"
 -2117,6
+2118,8 
 UINT32 CASFFileFormatFile::GetDuration(UINT16
usWMStreamNum)
 {
     UINT32 ulRet = 0;
+    UINT64 ullDurationFromFileHeader = 0;
+    UINT64 ullDurationFromExtObj = 0;
 
     // First check if we have an extended stream properties
for this WM stream number
     HXBOOL bFound = FALSE;
 -2152,8
+2155,31 
                 {
                     // The duration is the difference
between the start time and end time
                     UINT64 ullDiff = ullEndTime -
ullStartTime;
-                    ulRet          =
INT64_TO_UINT32(ullDiff);
+                    ullDurationFromExtObj = ullDiff;
+                    //ulRet          =
INT64_TO_UINT32(ullDiff);
                     bFound         = TRUE;
+                } 
+
+                UINT32 ulDurationSelectionThrd =
HX_DURATION_SELECTION_THRD;
+                HX_ASSERT (m_pContext);
+                ReadPrefUINT32 (m_pContext,
"DurationSelectionThreshold",
ulDurationSelectionThrd);    
+
+                ullDurationFromFileHeader =
m_pFilePropertiesObject->m_ullPlayDuration / ((UINT64)
10000);
+                ullDurationFromFileHeader -=
m_pFilePropertiesObject->m_ullPreroll;
+
+                // The duration in extended stream
properties object is supposed to be 
+                // milliseconds but some buggy file writers
wrote it out in units of 100ns, 
+                // and in this condition, the duration will
be much larger than the correct one, 
+                // so we should check it here and choose
the right one, and also the user can 
+                // configure the
"DurationSelectionThreshold" value
+                if (ullDurationFromExtObj == 0 || 
+                     ullDurationFromExtObj >
(ullDurationFromFileHeader * (ulDurationSelectionThrd + 100)
/ 100))
+                {
+                    ulRet =
INT64_TO_UINT32(ullDurationFromFileHeader);
+                }
+                else
+                {
+                    ulRet =
INT64_TO_UINT32(ullDurationFromExtObj);    
                 }
             }
         }
------------------------------------------------------------
-------------------------------


=============================================
Eric Hyche (ehychereal.com)
Technical Lead
RealNetworks, Inc.  

> -----Original Message-----
> From: Chen, Weian [mailto:weian.chenintel.com] 
> Sent: Monday, March 10, 2008 11:01 PM
> To: ehychereal.com; datatype-devhelixcommunity.org
> Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> Subject: [datatype-dev][helix-client-dev] CN: Fix the
issue 
> thatwhen the wmvcontent is bad, the player can't get
the 
> correct duration
> 
> 
> Commit to head and atlas branch.
> 
> Thanks!
> Weian
> 
> -----Original Message-----
> From: datatype-dev-bounceshelixcommunity.org 
> [mailto:datatype-dev-bounceshelixcommunity.org] On
Behalf Of 
> Chen, Weian
> Sent: 2008$BG/(B3$B7n(B11$BF|(B 10:18
> To: ehychereal.com; datatype-devhelixcommunity.org
> Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> Subject: RE: Re-Send: [datatype-dev][helix-client-dev]
CR: 
> Fix the issue thatwhen the wmvcontent is bad, the
player 
> can't get the correct duration
> 
> 
> 
> Thanks a lot, I will modify and commit....
> 
> Weian
> 
> -----Original Message-----
> From: Eric Hyche [mailto:ehychereal.com] 
> Sent: 2008$BG/(B3$B7n(B10$BF|(B 22:57
> To: Chen, Weian; datatype-devhelixcommunity.org
> Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> Subject: RE: Re-Send: [datatype-dev][helix-client-dev]
CR: 
> Fix the issue that when the wmvcontent is bad, the
player 
> can't get the correct duration
> 
> 
> Several comments on this change:
> 
> 1) As you can see in hxprefutil.h, there are two
versions of each 
>    ReadPrefXXXX() function - one that takes an
IUnknown* and one that
>    takes an IHXPreferences. Unless you already have an
IHXPreferences*
>   handy, you should use the one that takes a IUnknown*.
So in this 
>   change we should be using the version that takes an
IUnknown*. So
>   there's no need to QI for IHXPreferences in this
change.
> 
> 2) "Selection" in the pref name is
misspelled, and we should spell out
>    "threshold". So the pref name should be 
> "DurationSelectionThreshold".
> 
> 3) ullDurationFromExtObj is unsigned, so it will never
be < 0. So the
>    <= 0 can just be a == 0 check.
> 
> 4) We should add a descriptive comment right before the
if clause:
> 
> +                if (ullDurationFromExtObj <= 0 || 
> +                     ullDurationFromExtObj > 
> (ullDurationFromFileHeader * (m_ulDurationSelectionThrd
+ 100) / 100))
> 
>   which explains why we are doing this check. This
comment should
>   describe the buggy files (where duration in extended
stream 
> properties object is
>   supposed to be in milliseconds but some buggy file
writers 
> wrote it out in
>   units of 100ns) and therefore why this if()
comparison is needed.
> 
> 5) I'm not sure why we need the duration selection
threshold to be
>    in a member variable since we are only using it one
time 
> inside function scope.
> 
> Eric
> 
> =============================================
> Eric Hyche (ehychereal.com)
> Technical Lead
> RealNetworks, Inc.  
> 
> > -----Original Message-----
> > From: Chen, Weian [mailto:weian.chenintel.com] 
> > Sent: Monday, March 10, 2008 3:18 AM
> > To: ehychereal.com; datatype-devhelixcommunity.org
> > Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> > Subject: Re-Send: [datatype-dev][helix-client-dev]
CR: Fix 
> > the issue that when the wmvcontent is bad, the
player can't 
> > get the correct duration
> > 
> > Synopsis: 
> >   Fix the issue: when the wmv content is bad, the
player 
> > can't get the correct duration
> > 
> > Overview: 
> >   The duration of a stream can either be from the
file 
> > properties or from extended stream properties, we
will try 
> > and detect when we encounter a bad content
(something wrong 
> > in the extended stream properties) and then in
that case, use 
> > the duration in the file properties object.
> > 
> > Files Added:
> >   None
> > 
> > Files Modified:
> >   datatype/wm/fileformat/asf_file_format_file.cpp
> >  
datatype/wm/fileformat/pub/asf_file_format_file.h
> > 
> > Image Size and Heap Use impact (Client -Only):
> >   Little
> > 
> > Platforms and Profiles Affected:
> >   platform:   linux-2.2-libc6-gcc32-i586
> >   profile:      helix-client-all-defines
> > 
> > Distribution Libraries Affected:
> >   <asffflib.a> <asfff.so>
> > 
> > Distribution library impact and planned action:
> >   <None>
> > 
> > Platforms and Profiles Build Verified:
> >   Set BIF branch   ->
hxclient_3_1_0_atlas_restricted
> >   Set Target(s)     -> all_wm_plugins
> >   Set Profile       ->
helix-client-all-defines
> >   System ID       ->
linux-2.2-libc6-gcc32-i586
> > 
> > Branch: 
> >   HEAD, hxclient_3_1_0_atlas
> > 
> > Copyright assignment: <MUST be one of the
following statements >
> > 
> > 2.      Intel has signed and delivered a Joint
Copyright Assignment
> > 
> >            to RealNetworks, and received
acknowledgment that the 
> > 
> >            agreement was received. 
> > 
> > Files Attached:
> >   datatype-wm-duration.diff
> > 
> > thanks!
> > Weian
> > 
> > -----Original Message-----
> > From: Eric Hyche [mailto:ehychereal.com]

> > Sent: 2008$BG/(B2$B7n(B27$BF|(B 12:21
> > To: Chen, Weian; datatype-devhelixcommunity.org
> > Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> > Subject: RE: [datatype-dev][helix-client-dev] CR:
Fix the 
> > issue that when the wmvcontent is bad, the player
can't get 
> > the correct duration
> > 
> > 
> > Hmmm.. I'm confused. The Overview below does not
> > match the diff attached.
> > 
> > As we talked about before, we should fix this 
> > in datatype/wm/fileformat, not at the client core
> > level. The description below sounds right - when
we
> > detect that the extended stream properties
duration is
> > wrong, then don't use it, and use the duration in
> > the file properties object instead.
> > 
> > Eric 
> > 
> > =============================================
> > Eric Hyche (ehychereal.com)
> > Technical Lead
> > RealNetworks, Inc.  
> > 
> > > -----Original Message-----
> > > From: datatype-dev-bounceshelixcommunity.org 
> > > [mailto:datatype-dev-bounceshelixcommunity.org] On Behalf Of 
> > > Chen, Weian
> > > Sent: Tuesday, February 26, 2008 3:49 AM
> > > To: datatype-devhelixcommunity.org
> > > Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> > > Subject: [datatype-dev][helix-client-dev] CR:
Fix the issue 
> > > that when the wmvcontent is bad, the player
can't get the 
> > > correct duration
> > > 
> > > Synopsis: 
> > > 
> > >   Fix the issue: when the wmv content is bad,
the player 
> > > can't get the correct duration
> > > 
> > >  
> > > 
> > > Overview: 
> > > 
> > >   The duration of a stream can either be from
the file 
> > > properties or from extended stream
properties, we will try 
> > > and detect when we encounter a bad content
(something wrong 
> > > in the extended stream properties) and then
in that case, use 
> > > the duration in the file properties object.
> > > 
> > >  
> > > 
> > > Files Added:
> > > 
> > >   None
> > > 
> > >  
> > > 
> > > Files Modified:
> > > 
> > >   client/core/hxsrc.cpp
> > > 
> > >   client/core/hxbsrc.h
> > > 
> > >  
> > > 
> > > Image Size and Heap Use impact (Client
-Only):
> > > 
> > >   Little
> > > 
> > >  
> > > 
> > > Platforms and Profiles Affected:
> > > 
> > >   platform:   linux-2.2-libc6-gcc32-i586
> > > 
> > >   profile:      helix-client-all-defines
> > > 
> > >  
> > > 
> > > Distribution Libraries Affected:
> > > 
> > >   <hxmedplyeng.so>
<clntcorelib.a>
> > > 
> > >  
> > > 
> > > Distribution library impact and planned
action:
> > > 
> > >   <None>
> > > 
> > >  
> > > 
> > > Platforms and Profiles Build Verified:
> > > 
> > >   Set BIF branch   ->
hxclient_3_1_0_atlas
> > > 
> > >   Set Target(s)     -> client_core
> > > 
> > >   Set Profile       ->
helix-client-all-defines
> > > 
> > >   System ID       ->
linux-2.2-libc6-gcc32-i586
> > > 
> > >  
> > > 
> > > Branch: 
> > > 
> > >   HEAD, hxclient_3_1_0_atlas
> > > 
> > >  
> > > 
> > > Copyright assignment: <MUST be one of the
following statements >
> > > 
> > >  
> > > 
> > > 2.      Intel has signed and delivered a
Joint Copyright 
> Assignment
> > > 
> > >  
> > > 
> > >            to RealNetworks, and received
acknowledgment that the 
> > > 
> > >  
> > > 
> > >            agreement was received. 
> > > 
> > >  
> > > 
> > > Files Attached:
> > > 
> > >   client-core-wmv-duration.diff
> > > 
> > >  
> > > 
> > > Weian
> > > 
> > >  
> > > 
> > > 
> > 
> > 
> 
> 
> _______________________________________________
> Datatype-dev mailing list
> Datatype-devhelixcommunity.org
> http://lists.helixcommunity.org/mailman/listinfo/da
tatype-dev
> 


_______________________________________________
Helix-client-dev mailing list
Helix-client-devhelixcommunity.org
http://lists.helixcommunity.org/mailman/listinf
o/helix-client-dev

RE: CN: Fix the issue thatwhen the wmvcontent is bad, the player ca
user name
2008-03-11 20:21:32
Eric:

I am so sorry, I have made a mistake, and it should be as
follows:

Synopsis: 
  Fix the issue: when the wmv content is bad, the player
can't get the correct duration

Overview: 
  The duration of a stream can either be from the file
properties or from extended stream properties, we will try
and detect when we encounter a bad content (something wrong
in the extended stream properties) and then in that case,
use the duration in the file properties object.

Files Added:
  None

Files Modified:
  datatype/wm/fileformat/asf_file_format_file.cpp
  datatype/wm/fileformat/pub/asf_file_format_file.h

Image Size and Heap Use impact (Client -Only):
  Little

Platforms and Profiles Affected:
  platform:   linux-2.2-libc6-gcc32-i586
  profile:      helix-client-all-defines

Distribution Libraries Affected:
  <asffflib.a> <asfff.so>

Distribution library impact and planned action:
  <None>

Platforms and Profiles Build Verified:
  Set BIF branch   -> hxclient_3_1_0_atlas_restricted
  Set Target(s)     -> all_wm_plugins
  Set Profile       -> helix-client-all-defines
  System ID       -> linux-2.2-libc6-gcc32-i586

Branch: 
  HEAD, hxclient_3_1_0_atlas

Copyright assignment: <MUST be one of the following
statements >

2.      Intel has signed and delivered a Joint Copyright
Assignment

           to RealNetworks, and received acknowledgment that
the 

           agreement was received. 

Files Attached:
  datatype-wm-duration.diff

Weian

-----Original Message-----
From: Eric Hyche [mailto:ehychereal.com] 
Sent: 2008年3月11日 21:35
To: Chen, Weian; datatype-devhelixcommunity.org
Cc: Shen, Cathy; helix-client-devhelixcommunity.org
Subject: RE: [datatype-dev][helix-client-dev] CN: Fix the
issue thatwhen the wmvcontent is bad, the player can't get
the correct duration


Weian,

I'm a bit confused. I was interested in seeing the final
diff that you
committed, so I went to look at the datatype-cvs mailing
list
to see the diff. I have included the commit email below.

As you can see, the comments pasted into the commit text
don't match
what was actually committed.

The diff looks fine - I was just wondering what was going on
with
the rest of the text....

Eric

=============================================
Eric Hyche (ehychereal.com)
Technical Lead
RealNetworks, Inc. 

------------------------------------------------------------
-------------------------------
Modified Files:
	asf_file_format_file.cpp 
Log Message:
Synopsis:
  Make the thread callback function of dtdriver work well on
UNIX platform.

Overview:
  To make the thread callback function work well on Unix
platform (in file thrdcbmgr.cpp and thrdcbmgr.h), we should

inherited from interface IHXInterruptOnly, and implement the
function IsInterruptOnly(), then the thread function 
Func() can be trigged.

Files Added:
  No file added

Files Modified:
  thrdcbmgr.cpp
(/datatype/tools/dtdriver/dtdrplin/platform/unix/)
  thrdcbmgr.h
(/datatype/tools/dtdriver/dtdrplin/platform/unix/)
    
Image Size and Heap Use impact (Client -Only):
  Little
 
Platforms and Profiles Affected:
  platform:   linux-2.2-libc6-gcc32-i586
  profile:      helix-client-all-defines

Distribution Libraries Affected:
  <dtdrplin.so>
  <hxdtdriver.so>
 
Distribution library impact and planned action:
  <None>

Platforms and Profiles Build Verified:
  Set BIF branch  -> hxclient_3_1_0_atlas_restricted
  Set Target(s)     -> datatype_tools_dtdriver
  Set Profile        -> helix-client-all-defines
  System ID        -> linux-2.2-libc6-gcc32-i586

Branch:
  HEAD, hxclient_3_1_0_atlas

Copyright assignment: <MUST be one of the following
statements >
    2.      Intel has signed and delivered a Joint Copyright
Assignment to RealNetworks, and received acknowledgment 
that the agreement was received. 

Files Attached:
  dtdrplin-thrdcbmgr.diff


Index: asf_file_format_file.cpp
============================================================
=======
RCS file:
/cvsroot/datatype/wm/fileformat/asf_file_format_file.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- asf_file_format_file.cpp	21 Feb 2008 04:53:18
-0000	1.13
+++ asf_file_format_file.cpp	11 Mar 2008 02:57:14
-0000	1.14
 -57,6
+57,7 
 #include "asf_index.h"
 #include "asf_file_format.ver"
 #include "hxheap.h"
+#include "hxprefutil.h"
 
 #if defined(HELIX_FEATURE_DRM) 
 #include "hxdrm.h"
 -2117,6
+2118,8 
 UINT32 CASFFileFormatFile::GetDuration(UINT16
usWMStreamNum)
 {
     UINT32 ulRet = 0;
+    UINT64 ullDurationFromFileHeader = 0;
+    UINT64 ullDurationFromExtObj = 0;
 
     // First check if we have an extended stream properties
for this WM stream number
     HXBOOL bFound = FALSE;
 -2152,8
+2155,31 
                 {
                     // The duration is the difference
between the start time and end time
                     UINT64 ullDiff = ullEndTime -
ullStartTime;
-                    ulRet          =
INT64_TO_UINT32(ullDiff);
+                    ullDurationFromExtObj = ullDiff;
+                    //ulRet          =
INT64_TO_UINT32(ullDiff);
                     bFound         = TRUE;
+                } 
+
+                UINT32 ulDurationSelectionThrd =
HX_DURATION_SELECTION_THRD;
+                HX_ASSERT (m_pContext);
+                ReadPrefUINT32 (m_pContext,
"DurationSelectionThreshold",
ulDurationSelectionThrd);    
+
+                ullDurationFromFileHeader =
m_pFilePropertiesObject->m_ullPlayDuration / ((UINT64)
10000);
+                ullDurationFromFileHeader -=
m_pFilePropertiesObject->m_ullPreroll;
+
+                // The duration in extended stream
properties object is supposed to be 
+                // milliseconds but some buggy file writers
wrote it out in units of 100ns, 
+                // and in this condition, the duration will
be much larger than the correct one, 
+                // so we should check it here and choose
the right one, and also the user can 
+                // configure the
"DurationSelectionThreshold" value
+                if (ullDurationFromExtObj == 0 || 
+                     ullDurationFromExtObj >
(ullDurationFromFileHeader * (ulDurationSelectionThrd + 100)
/ 100))
+                {
+                    ulRet =
INT64_TO_UINT32(ullDurationFromFileHeader);
+                }
+                else
+                {
+                    ulRet =
INT64_TO_UINT32(ullDurationFromExtObj);    
                 }
             }
         }
------------------------------------------------------------
-------------------------------


=============================================
Eric Hyche (ehychereal.com)
Technical Lead
RealNetworks, Inc.  

> -----Original Message-----
> From: Chen, Weian [mailto:weian.chenintel.com] 
> Sent: Monday, March 10, 2008 11:01 PM
> To: ehychereal.com; datatype-devhelixcommunity.org
> Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> Subject: [datatype-dev][helix-client-dev] CN: Fix the
issue 
> thatwhen the wmvcontent is bad, the player can't get
the 
> correct duration
> 
> 
> Commit to head and atlas branch.
> 
> Thanks!
> Weian
> 
> -----Original Message-----
> From: datatype-dev-bounceshelixcommunity.org 
> [mailto:datatype-dev-bounceshelixcommunity.org] On
Behalf Of 
> Chen, Weian
> Sent: 2008年3月11日 10:18
> To: ehychereal.com; datatype-devhelixcommunity.org
> Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> Subject: RE: Re-Send: [datatype-dev][helix-client-dev]
CR: 
> Fix the issue thatwhen the wmvcontent is bad, the
player 
> can't get the correct duration
> 
> 
> 
> Thanks a lot, I will modify and commit....
> 
> Weian
> 
> -----Original Message-----
> From: Eric Hyche [mailto:ehychereal.com] 
> Sent: 2008年3月10日 22:57
> To: Chen, Weian; datatype-devhelixcommunity.org
> Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> Subject: RE: Re-Send: [datatype-dev][helix-client-dev]
CR: 
> Fix the issue that when the wmvcontent is bad, the
player 
> can't get the correct duration
> 
> 
> Several comments on this change:
> 
> 1) As you can see in hxprefutil.h, there are two
versions of each 
>    ReadPrefXXXX() function - one that takes an
IUnknown* and one that
>    takes an IHXPreferences. Unless you already have an
IHXPreferences*
>   handy, you should use the one that takes a IUnknown*.
So in this 
>   change we should be using the version that takes an
IUnknown*. So
>   there's no need to QI for IHXPreferences in this
change.
> 
> 2) "Selection" in the pref name is
misspelled, and we should spell out
>    "threshold". So the pref name should be 
> "DurationSelectionThreshold".
> 
> 3) ullDurationFromExtObj is unsigned, so it will never
be < 0. So the
>    <= 0 can just be a == 0 check.
> 
> 4) We should add a descriptive comment right before the
if clause:
> 
> +                if (ullDurationFromExtObj <= 0 || 
> +                     ullDurationFromExtObj > 
> (ullDurationFromFileHeader * (m_ulDurationSelectionThrd
+ 100) / 100))
> 
>   which explains why we are doing this check. This
comment should
>   describe the buggy files (where duration in extended
stream 
> properties object is
>   supposed to be in milliseconds but some buggy file
writers 
> wrote it out in
>   units of 100ns) and therefore why this if()
comparison is needed.
> 
> 5) I'm not sure why we need the duration selection
threshold to be
>    in a member variable since we are only using it one
time 
> inside function scope.
> 
> Eric
> 
> =============================================
> Eric Hyche (ehychereal.com)
> Technical Lead
> RealNetworks, Inc.  
> 
> > -----Original Message-----
> > From: Chen, Weian [mailto:weian.chenintel.com] 
> > Sent: Monday, March 10, 2008 3:18 AM
> > To: ehychereal.com; datatype-devhelixcommunity.org
> > Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> > Subject: Re-Send: [datatype-dev][helix-client-dev]
CR: Fix 
> > the issue that when the wmvcontent is bad, the
player can't 
> > get the correct duration
> > 
> > Synopsis: 
> >   Fix the issue: when the wmv content is bad, the
player 
> > can't get the correct duration
> > 
> > Overview: 
> >   The duration of a stream can either be from the
file 
> > properties or from extended stream properties, we
will try 
> > and detect when we encounter a bad content
(something wrong 
> > in the extended stream properties) and then in
that case, use 
> > the duration in the file properties object.
> > 
> > Files Added:
> >   None
> > 
> > Files Modified:
> >   datatype/wm/fileformat/asf_file_format_file.cpp
> >  
datatype/wm/fileformat/pub/asf_file_format_file.h
> > 
> > Image Size and Heap Use impact (Client -Only):
> >   Little
> > 
> > Platforms and Profiles Affected:
> >   platform:   linux-2.2-libc6-gcc32-i586
> >   profile:      helix-client-all-defines
> > 
> > Distribution Libraries Affected:
> >   <asffflib.a> <asfff.so>
> > 
> > Distribution library impact and planned action:
> >   <None>
> > 
> > Platforms and Profiles Build Verified:
> >   Set BIF branch   ->
hxclient_3_1_0_atlas_restricted
> >   Set Target(s)     -> all_wm_plugins
> >   Set Profile       ->
helix-client-all-defines
> >   System ID       ->
linux-2.2-libc6-gcc32-i586
> > 
> > Branch: 
> >   HEAD, hxclient_3_1_0_atlas
> > 
> > Copyright assignment: <MUST be one of the
following statements >
> > 
> > 2.      Intel has signed and delivered a Joint
Copyright Assignment
> > 
> >            to RealNetworks, and received
acknowledgment that the 
> > 
> >            agreement was received. 
> > 
> > Files Attached:
> >   datatype-wm-duration.diff
> > 
> > thanks!
> > Weian
> > 
> > -----Original Message-----
> > From: Eric Hyche [mailto:ehychereal.com]

> > Sent: 2008年2月27日 12:21
> > To: Chen, Weian; datatype-devhelixcommunity.org
> > Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> > Subject: RE: [datatype-dev][helix-client-dev] CR:
Fix the 
> > issue that when the wmvcontent is bad, the player
can't get 
> > the correct duration
> > 
> > 
> > Hmmm.. I'm confused. The Overview below does not
> > match the diff attached.
> > 
> > As we talked about before, we should fix this 
> > in datatype/wm/fileformat, not at the client core
> > level. The description below sounds right - when
we
> > detect that the extended stream properties
duration is
> > wrong, then don't use it, and use the duration in
> > the file properties object instead.
> > 
> > Eric 
> > 
> > =============================================
> > Eric Hyche (ehychereal.com)
> > Technical Lead
> > RealNetworks, Inc.  
> > 
> > > -----Original Message-----
> > > From: datatype-dev-bounceshelixcommunity.org 
> > > [mailto:datatype-dev-bounceshelixcommunity.org] On Behalf Of 
> > > Chen, Weian
> > > Sent: Tuesday, February 26, 2008 3:49 AM
> > > To: datatype-devhelixcommunity.org
> > > Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> > > Subject: [datatype-dev][helix-client-dev] CR:
Fix the issue 
> > > that when the wmvcontent is bad, the player
can't get the 
> > > correct duration
> > > 
> > > Synopsis: 
> > > 
> > >   Fix the issue: when the wmv content is bad,
the player 
> > > can't get the correct duration
> > > 
> > >  
> > > 
> > > Overview: 
> > > 
> > >   The duration of a stream can either be from
the file 
> > > properties or from extended stream
properties, we will try 
> > > and detect when we encounter a bad content
(something wrong 
> > > in the extended stream properties) and then
in that case, use 
> > > the duration in the file properties object.
> > > 
> > >  
> > > 
> > > Files Added:
> > > 
> > >   None
> > > 
> > >  
> > > 
> > > Files Modified:
> > > 
> > >   client/core/hxsrc.cpp
> > > 
> > >   client/core/hxbsrc.h
> > > 
> > >  
> > > 
> > > Image Size and Heap Use impact (Client
-Only):
> > > 
> > >   Little
> > > 
> > >  
> > > 
> > > Platforms and Profiles Affected:
> > > 
> > >   platform:   linux-2.2-libc6-gcc32-i586
> > > 
> > >   profile:      helix-client-all-defines
> > > 
> > >  
> > > 
> > > Distribution Libraries Affected:
> > > 
> > >   <hxmedplyeng.so>
<clntcorelib.a>
> > > 
> > >  
> > > 
> > > Distribution library impact and planned
action:
> > > 
> > >   <None>
> > > 
> > >  
> > > 
> > > Platforms and Profiles Build Verified:
> > > 
> > >   Set BIF branch   ->
hxclient_3_1_0_atlas
> > > 
> > >   Set Target(s)     -> client_core
> > > 
> > >   Set Profile       ->
helix-client-all-defines
> > > 
> > >   System ID       ->
linux-2.2-libc6-gcc32-i586
> > > 
> > >  
> > > 
> > > Branch: 
> > > 
> > >   HEAD, hxclient_3_1_0_atlas
> > > 
> > >  
> > > 
> > > Copyright assignment: <MUST be one of the
following statements >
> > > 
> > >  
> > > 
> > > 2.      Intel has signed and delivered a
Joint Copyright 
> Assignment
> > > 
> > >  
> > > 
> > >            to RealNetworks, and received
acknowledgment that the 
> > > 
> > >  
> > > 
> > >            agreement was received. 
> > > 
> > >  
> > > 
> > > Files Attached:
> > > 
> > >   client-core-wmv-duration.diff
> > > 
> > >  
> > > 
> > > Weian
> > > 
> > >  
> > > 
> > > 
> > 
> > 
> 
> 
> _______________________________________________
> Datatype-dev mailing list
> Datatype-devhelixcommunity.org
> http://lists.helixcommunity.org/mailman/listinfo/da
tatype-dev
> 


_______________________________________________
Helix-client-dev mailing list
Helix-client-devhelixcommunity.org
http://lists.helixcommunity.org/mailman/listinf
o/helix-client-dev

RE: CN: Fix the issue thatwhen the wmvcontent is bad, the player ca
country flaguser name
United States
2008-03-12 08:46:09
No problem - I thought there might have been some kind
of issue with CVS or the automated emailing.
Thanks for clarifying this.

Eric

=============================================
Eric Hyche (ehychereal.com)
Technical Lead
RealNetworks, Inc.  

> -----Original Message-----
> From: Chen, Weian [mailto:weian.chenintel.com] 
> Sent: Tuesday, March 11, 2008 9:22 PM
> To: ehychereal.com; datatype-devhelixcommunity.org
> Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> Subject: RE: [datatype-dev][helix-client-dev] CN: Fix
the 
> issue thatwhen the wmvcontent is bad, the player can't
get 
> the correct duration
> 
> Eric:
> 
> I am so sorry, I have made a mistake, and it should be
as follows:
> 
> Synopsis: 
>   Fix the issue: when the wmv content is bad, the
player 
> can't get the correct duration
> 
> Overview: 
>   The duration of a stream can either be from the file

> properties or from extended stream properties, we will
try 
> and detect when we encounter a bad content (something
wrong 
> in the extended stream properties) and then in that
case, use 
> the duration in the file properties object.
> 
> Files Added:
>   None
> 
> Files Modified:
>   datatype/wm/fileformat/asf_file_format_file.cpp
>   datatype/wm/fileformat/pub/asf_file_format_file.h
> 
> Image Size and Heap Use impact (Client -Only):
>   Little
> 
> Platforms and Profiles Affected:
>   platform:   linux-2.2-libc6-gcc32-i586
>   profile:      helix-client-all-defines
> 
> Distribution Libraries Affected:
>   <asffflib.a> <asfff.so>
> 
> Distribution library impact and planned action:
>   <None>
> 
> Platforms and Profiles Build Verified:
>   Set BIF branch   ->
hxclient_3_1_0_atlas_restricted
>   Set Target(s)     -> all_wm_plugins
>   Set Profile       -> helix-client-all-defines
>   System ID       -> linux-2.2-libc6-gcc32-i586
> 
> Branch: 
>   HEAD, hxclient_3_1_0_atlas
> 
> Copyright assignment: <MUST be one of the following
statements >
> 
> 2.      Intel has signed and delivered a Joint
Copyright Assignment
> 
>            to RealNetworks, and received acknowledgment
that the 
> 
>            agreement was received. 
> 
> Files Attached:
>   datatype-wm-duration.diff
> 
> Weian
> 
> -----Original Message-----
> From: Eric Hyche [mailto:ehychereal.com] 
> Sent: 2008$BG/(B3$B7n(B11$BF|(B 21:35
> To: Chen, Weian; datatype-devhelixcommunity.org
> Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> Subject: RE: [datatype-dev][helix-client-dev] CN: Fix
the 
> issue thatwhen the wmvcontent is bad, the player can't
get 
> the correct duration
> 
> 
> Weian,
> 
> I'm a bit confused. I was interested in seeing the
final diff that you
> committed, so I went to look at the datatype-cvs
mailing list
> to see the diff. I have included the commit email
below.
> 
> As you can see, the comments pasted into the commit
text don't match
> what was actually committed.
> 
> The diff looks fine - I was just wondering what was
going on with
> the rest of the text....
> 
> Eric
> 
> =============================================
> Eric Hyche (ehychereal.com)
> Technical Lead
> RealNetworks, Inc. 
> 
>
------------------------------------------------------------
--
> -----------------------------
> Modified Files:
> 	asf_file_format_file.cpp 
> Log Message:
> Synopsis:
>   Make the thread callback function of dtdriver work
well on 
> UNIX platform.
> 
> Overview:
>   To make the thread callback function work well on
Unix 
> platform (in file thrdcbmgr.cpp and thrdcbmgr.h), we
should 
> inherited from interface IHXInterruptOnly, and
implement the 
> function IsInterruptOnly(), then the thread function 
> Func() can be trigged.
> 
> Files Added:
>   No file added
> 
> Files Modified:
>   thrdcbmgr.cpp
(/datatype/tools/dtdriver/dtdrplin/platform/unix/)
>   thrdcbmgr.h
(/datatype/tools/dtdriver/dtdrplin/platform/unix/)
>     
> Image Size and Heap Use impact (Client -Only):
>   Little
>  
> Platforms and Profiles Affected:
>   platform:   linux-2.2-libc6-gcc32-i586
>   profile:      helix-client-all-defines
> 
> Distribution Libraries Affected:
>   <dtdrplin.so>
>   <hxdtdriver.so>
>  
> Distribution library impact and planned action:
>   <None>
> 
> Platforms and Profiles Build Verified:
>   Set BIF branch  ->
hxclient_3_1_0_atlas_restricted
>   Set Target(s)     -> datatype_tools_dtdriver
>   Set Profile        -> helix-client-all-defines
>   System ID        -> linux-2.2-libc6-gcc32-i586
> 
> Branch:
>   HEAD, hxclient_3_1_0_atlas
> 
> Copyright assignment: <MUST be one of the following
statements >
>     2.      Intel has signed and delivered a Joint
Copyright 
> Assignment to RealNetworks, and received acknowledgment

> that the agreement was received. 
> 
> Files Attached:
>   dtdrplin-thrdcbmgr.diff
> 
> 
> Index: asf_file_format_file.cpp
>
============================================================
=======
> RCS file:
/cvsroot/datatype/wm/fileformat/asf_file_format_file.cpp,v
> retrieving revision 1.13
> retrieving revision 1.14
> diff -u -d -r1.13 -r1.14
> --- asf_file_format_file.cpp	21 Feb 2008 04:53:18
-0000	1.13
> +++ asf_file_format_file.cpp	11 Mar 2008 02:57:14
-0000	1.14
>  -57,6 +57,7 
>  #include "asf_index.h"
>  #include "asf_file_format.ver"
>  #include "hxheap.h"
> +#include "hxprefutil.h"
>  
>  #if defined(HELIX_FEATURE_DRM) 
>  #include "hxdrm.h"
>  -2117,6 +2118,8 
>  UINT32 CASFFileFormatFile::GetDuration(UINT16
usWMStreamNum)
>  {
>      UINT32 ulRet = 0;
> +    UINT64 ullDurationFromFileHeader = 0;
> +    UINT64 ullDurationFromExtObj = 0;
>  
>      // First check if we have an extended stream
properties 
> for this WM stream number
>      HXBOOL bFound = FALSE;
>  -2152,8 +2155,31 
>                  {
>                      // The duration is the difference

> between the start time and end time
>                      UINT64 ullDiff = ullEndTime -
ullStartTime;
> -                    ulRet          =
INT64_TO_UINT32(ullDiff);
> +                    ullDurationFromExtObj = ullDiff;
> +                    //ulRet          =
INT64_TO_UINT32(ullDiff);
>                      bFound         = TRUE;
> +                } 
> +
> +                UINT32 ulDurationSelectionThrd = 
> HX_DURATION_SELECTION_THRD;
> +                HX_ASSERT (m_pContext);
> +                ReadPrefUINT32 (m_pContext, 
> "DurationSelectionThreshold",
ulDurationSelectionThrd);    
> +
> +                ullDurationFromFileHeader = 
> m_pFilePropertiesObject->m_ullPlayDuration /
((UINT64) 10000);
> +                ullDurationFromFileHeader -= 
> m_pFilePropertiesObject->m_ullPreroll;
> +
> +                // The duration in extended stream 
> properties object is supposed to be 
> +                // milliseconds but some buggy file
writers 
> wrote it out in units of 100ns, 
> +                // and in this condition, the duration
will 
> be much larger than the correct one, 
> +                // so we should check it here and
choose the 
> right one, and also the user can 
> +                // configure the
"DurationSelectionThreshold" value
> +                if (ullDurationFromExtObj == 0 || 
> +                     ullDurationFromExtObj > 
> (ullDurationFromFileHeader * (ulDurationSelectionThrd +
100) / 100))
> +                {
> +                    ulRet = 
> INT64_TO_UINT32(ullDurationFromFileHeader);
> +                }
> +                else
> +                {
> +                    ulRet = 
> INT64_TO_UINT32(ullDurationFromExtObj);    
>                  }
>              }
>          }
>
------------------------------------------------------------
--
> -----------------------------
> 
> 
> =============================================
> Eric Hyche (ehychereal.com)
> Technical Lead
> RealNetworks, Inc.  
> 
> > -----Original Message-----
> > From: Chen, Weian [mailto:weian.chenintel.com] 
> > Sent: Monday, March 10, 2008 11:01 PM
> > To: ehychereal.com; datatype-devhelixcommunity.org
> > Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> > Subject: [datatype-dev][helix-client-dev] CN: Fix
the issue 
> > thatwhen the wmvcontent is bad, the player can't
get the 
> > correct duration
> > 
> > 
> > Commit to head and atlas branch.
> > 
> > Thanks!
> > Weian
> > 
> > -----Original Message-----
> > From: datatype-dev-bounceshelixcommunity.org 
> > [mailto:datatype-dev-bounceshelixcommunity.org] On
Behalf Of 
> > Chen, Weian
> > Sent: 2008$BG/(B3$B7n(B11$BF|(B 10:18
> > To: ehychereal.com; datatype-devhelixcommunity.org
> > Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> > Subject: RE: Re-Send:
[datatype-dev][helix-client-dev] CR: 
> > Fix the issue thatwhen the wmvcontent is bad, the
player 
> > can't get the correct duration
> > 
> > 
> > 
> > Thanks a lot, I will modify and commit....
> > 
> > Weian
> > 
> > -----Original Message-----
> > From: Eric Hyche [mailto:ehychereal.com]

> > Sent: 2008$BG/(B3$B7n(B10$BF|(B 22:57
> > To: Chen, Weian; datatype-devhelixcommunity.org
> > Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> > Subject: RE: Re-Send:
[datatype-dev][helix-client-dev] CR: 
> > Fix the issue that when the wmvcontent is bad, the
player 
> > can't get the correct duration
> > 
> > 
> > Several comments on this change:
> > 
> > 1) As you can see in hxprefutil.h, there are two
versions of each 
> >    ReadPrefXXXX() function - one that takes an
IUnknown* 
> and one that
> >    takes an IHXPreferences. Unless you already
have an 
> IHXPreferences*
> >   handy, you should use the one that takes a
IUnknown*. So in this 
> >   change we should be using the version that takes
an IUnknown*. So
> >   there's no need to QI for IHXPreferences in this
change.
> > 
> > 2) "Selection" in the pref name is
misspelled, and we 
> should spell out
> >    "threshold". So the pref name should
be 
> > "DurationSelectionThreshold".
> > 
> > 3) ullDurationFromExtObj is unsigned, so it will
never be < 
> 0. So the
> >    <= 0 can just be a == 0 check.
> > 
> > 4) We should add a descriptive comment right
before the if clause:
> > 
> > +                if (ullDurationFromExtObj <= 0
|| 
> > +                     ullDurationFromExtObj > 
> > (ullDurationFromFileHeader *
(m_ulDurationSelectionThrd + 
> 100) / 100))
> > 
> >   which explains why we are doing this check. This
comment should
> >   describe the buggy files (where duration in
extended stream 
> > properties object is
> >   supposed to be in milliseconds but some buggy
file writers 
> > wrote it out in
> >   units of 100ns) and therefore why this if()
comparison is needed.
> > 
> > 5) I'm not sure why we need the duration selection
threshold to be
> >    in a member variable since we are only using it
one time 
> > inside function scope.
> > 
> > Eric
> > 
> > =============================================
> > Eric Hyche (ehychereal.com)
> > Technical Lead
> > RealNetworks, Inc.  
> > 
> > > -----Original Message-----
> > > From: Chen, Weian [mailto:weian.chenintel.com] 
> > > Sent: Monday, March 10, 2008 3:18 AM
> > > To: ehychereal.com; datatype-devhelixcommunity.org
> > > Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> > > Subject: Re-Send:
[datatype-dev][helix-client-dev] CR: Fix 
> > > the issue that when the wmvcontent is bad,
the player can't 
> > > get the correct duration
> > > 
> > > Synopsis: 
> > >   Fix the issue: when the wmv content is bad,
the player 
> > > can't get the correct duration
> > > 
> > > Overview: 
> > >   The duration of a stream can either be from
the file 
> > > properties or from extended stream
properties, we will try 
> > > and detect when we encounter a bad content
(something wrong 
> > > in the extended stream properties) and then
in that case, use 
> > > the duration in the file properties object.
> > > 
> > > Files Added:
> > >   None
> > > 
> > > Files Modified:
> > >  
datatype/wm/fileformat/asf_file_format_file.cpp
> > >  
datatype/wm/fileformat/pub/asf_file_format_file.h
> > > 
> > > Image Size and Heap Use impact (Client
-Only):
> > >   Little
> > > 
> > > Platforms and Profiles Affected:
> > >   platform:   linux-2.2-libc6-gcc32-i586
> > >   profile:      helix-client-all-defines
> > > 
> > > Distribution Libraries Affected:
> > >   <asffflib.a> <asfff.so>
> > > 
> > > Distribution library impact and planned
action:
> > >   <None>
> > > 
> > > Platforms and Profiles Build Verified:
> > >   Set BIF branch   ->
hxclient_3_1_0_atlas_restricted
> > >   Set Target(s)     -> all_wm_plugins
> > >   Set Profile       ->
helix-client-all-defines
> > >   System ID       ->
linux-2.2-libc6-gcc32-i586
> > > 
> > > Branch: 
> > >   HEAD, hxclient_3_1_0_atlas
> > > 
> > > Copyright assignment: <MUST be one of the
following statements >
> > > 
> > > 2.      Intel has signed and delivered a
Joint Copyright 
> Assignment
> > > 
> > >            to RealNetworks, and received
acknowledgment that the 
> > > 
> > >            agreement was received. 
> > > 
> > > Files Attached:
> > >   datatype-wm-duration.diff
> > > 
> > > thanks!
> > > Weian
> > > 
> > > -----Original Message-----
> > > From: Eric Hyche [mailto:ehychereal.com]

> > > Sent: 2008$BG/(B2$B7n(B27$BF|(B 12:21
> > > To: Chen, Weian; datatype-devhelixcommunity.org
> > > Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> > > Subject: RE: [datatype-dev][helix-client-dev]
CR: Fix the 
> > > issue that when the wmvcontent is bad, the
player can't get 
> > > the correct duration
> > > 
> > > 
> > > Hmmm.. I'm confused. The Overview below does
not
> > > match the diff attached.
> > > 
> > > As we talked about before, we should fix this

> > > in datatype/wm/fileformat, not at the client
core
> > > level. The description below sounds right -
when we
> > > detect that the extended stream properties
duration is
> > > wrong, then don't use it, and use the
duration in
> > > the file properties object instead.
> > > 
> > > Eric 
> > > 
> > >
=============================================
> > > Eric Hyche (ehychereal.com)
> > > Technical Lead
> > > RealNetworks, Inc.  
> > > 
> > > > -----Original Message-----
> > > > From: datatype-dev-bounceshelixcommunity.org 
> > > > [mailto:datatype-dev-bounceshelixcommunity.org] On Behalf Of 
> > > > Chen, Weian
> > > > Sent: Tuesday, February 26, 2008 3:49
AM
> > > > To: datatype-devhelixcommunity.org
> > > > Cc: Shen, Cathy; helix-client-devhelixcommunity.org
> > > > Subject:
[datatype-dev][helix-client-dev] CR: Fix the issue 
> > > > that when the wmvcontent is bad, the
player can't get the 
> > > > correct duration
> > > > 
> > > > Synopsis: 
> > > > 
> > > >   Fix the issue: when the wmv content is
bad, the player 
> > > > can't get the correct duration
> > > > 
> > > >  
> > > > 
> > > > Overview: 
> > > > 
> > > >   The duration of a stream can either be
from the file 
> > > > properties or from extended stream
properties, we will try 
> > > > and detect when we encounter a bad
content (something wrong 
> > > > in the extended stream properties) and
then in that case, use 
> > > > the duration in the file properties
object.
> > > > 
> > > >  
> > > > 
> > > > Files Added:
> > > > 
> > > >   None
> > > > 
> > > >  
> > > > 
> > > > Files Modified:
> > > > 
> > > >   client/core/hxsrc.cpp
> > > > 
> > > >   client/core/hxbsrc.h
> > > > 
> > > >  
> > > > 
> > > > Image Size and Heap Use impact (Client
-Only):
> > > > 
> > > >   Little
> > > > 
> > > >  
> > > > 
> > > > Platforms and Profiles Affected:
> > > > 
> > > >   platform:  
linux-2.2-libc6-gcc32-i586
> > > > 
> > > >   profile:     
helix-client-all-defines
> > > > 
> > > >  
> > > > 
> > > > Distribution Libraries Affected:
> > > > 
> > > >   <hxmedplyeng.so>
<clntcorelib.a>
> > > > 
> > > >  
> > > > 
> > > > Distribution library impact and planned
action:
> > > > 
> > > >   <None>
> > > > 
> > > >  
> > > > 
> > > > Platforms and Profiles Build Verified:
> > > > 
> > > >   Set BIF branch   ->
hxclient_3_1_0_atlas
> > > > 
> > > >   Set Target(s)     -> client_core
> > > > 
> > > >   Set Profile       ->
helix-client-all-defines
> > > > 
> > > >   System ID       ->
linux-2.2-libc6-gcc32-i586
> > > > 
> > > >  
> > > > 
> > > > Branch: 
> > > > 
> > > >   HEAD, hxclient_3_1_0_atlas
> > > > 
> > > >  
> > > > 
> > > > Copyright assignment: <MUST be one of
the following statements >
> > > > 
> > > >  
> > > > 
> > > > 2.      Intel has signed and delivered a
Joint Copyright 
> > Assignment
> > > > 
> > > >  
> > > > 
> > > >            to RealNetworks, and received
acknowledgment 
> that the 
> > > > 
> > > >  
> > > > 
> > > >            agreement was received. 
> > > > 
> > > >  
> > > > 
> > > > Files Attached:
> > > > 
> > > >   client-core-wmv-duration.diff
> > > > 
> > > >  
> > > > 
> > > > Weian
> > > > 
> > > >  
> > > > 
> > > > 
> > > 
> > > 
> > 
> > 
> > _______________________________________________
> > Datatype-dev mailing list
> > Datatype-devhelixcommunity.org
> > http://lists.helixcommunity.org/mailman/listinfo/da
tatype-dev
> > 
> 


_______________________________________________
Helix-client-dev mailing list
Helix-client-devhelixcommunity.org
http://lists.helixcommunity.org/mailman/listinf
o/helix-client-dev

[1-9]

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