List Info

Thread: CR: player_kit_python_hxrecord - Initialization and deallocation fixes




CR: player_kit_python_hxrecord - Initialization and deallocation fixes
country flaguser name
United States
2008-04-09 16:13:26
Modified by: Peter Krenesky <peterosuosl.org>
Project: player_kit_python_hxrecord

Synopsis:   A collection of fixes for intialization and
deallocation of 
the python module and other classes.  Prior to this fix the
module was 
never being deallocated resulting in resources that may
never be 
released.  This patch also removes some unused references
and corrects 
some weird initialization functions.


Files Modified:      

   player/kit/python/hxrecord/hxaudience.cpp
   player/kit/python/hxrecord/hxaudience.h
   player/kit/python/hxrecord/hxdestination.cpp
   player/kit/python/hxrecord/hxdestination.h
   player/kit/python/hxrecord/hxfilter.cpp
   player/kit/python/hxrecord/hxfilter.h
   player/kit/python/hxrecord/hxinput.cpp
   player/kit/python/hxrecord/hxinput.h
   player/kit/python/hxrecord/hxmediaprofile.cpp
   player/kit/python/hxrecord/hxmediaprofile.h
   player/kit/python/hxrecord/hxoutputprofile.cpp
   player/kit/python/hxrecord/hxoutputprofile.h
   player/kit/python/hxrecord/pyaudience.pp
   player/kit/python/hxrecord/pydestination.cpp
   player/kit/python/hxrecord/pyinput.cpp
   player/kit/python/hxrecord/pymediaprofile.cpp
   player/kit/python/hxrecord/pyoutputprofile.cpp
   player/kit/python/hxrecord/pypostfilter.cpp
   player/kit/python/hxrecord/pyprefilter.cpp
   player/kit/python/hxrecord/pystreamconfig.cpp
   player/kit/python/hxrecord/hxjob.cpp
   player/kit/python/hxrecord/hxjob.h
   player/kit/python/hxrecord/hxrecord.cpp
   player/kit/python/hxrecord/hxrecord.h
   player/kit/python/hxrecord/pyjob.cpp
   player/kit/python/hxrecord/pyjob.h
   player/kit/python/hxrecord/pyrecord.cpp


Details:

   hxrecord.cpp, hxrecord.h
       * Moved CreateJob() to the cpp file, it was not
needed as an 
inline function
       * Cleaned up the init function. 
             - no longer requires a reference to itself in
order to 
initialize
             - no longer returns itself, now returns
HX_RESULT so errors 
can be handled properly
             - error when library fails to load is now
reported properly 
rather than segfaulting
            
   pyrecord.cpp   
       * added function for deallocating module
       * updated hxrecord_create_job() to use new
constructors for job 
wrapper
       * updated hxrecord_init() to handle restructured
init() 
function.  now reports errors gracefully to python
       * module constructor now AddRef's core

    hxjob.cpp, hxjob.h
       * Destroy() now unsubscribes the core from receiving
events for 
the job being destroyed.  This bug caused references to the
core to be 
held onto preventing the core from ever being deconstructed
       * Removed circular reference between wrapper and
wrapped object.
       * modified initialization function to match how the
other wrapped 
objects are created
       * removed Create() function which is now unused
      
   pyjob.cpp, pyjob.h
       * constructor now requires pointer to IHXTEncodingJob
which will 
be wrapped
       * modified constructor to use restructured method of
creating wrapper

   hxaudience.cpp, hxaudience.h, hxdestination.cpp,
hxdestination.h,
   hxfilter.cpp, hxfilter.h, hxinput.cpp, hxinput.h,
hxmediaprofile.cpp,
   hxmediaprofile.h, hxoutputprofile.cpp, hxoutputprofile.h,
pyaudience.cpp,
   pydestination.cpp, pyinput.cpp, pymediaprofile.cpp,
pyoutputprofile.cpp,
   pypostfilter.cpp, pyprefilter.cpp, pystreamconfig.cpp:

       * Removed unused circular reference between wrapped
object and 
wrapper.  This included removing
          the member variable from the base class and
removing the 
pointer from the constructors for all the
          objects


Platforms and Profiles Functionality verified:
x86 helix-client-OLPC

Branch: HEAD Atlas-310


Copyright assignment:
In consideration for RealNetworks' hosting and maintenance
of my 
modification,

I agree to assign to RealNetworks full copyright ownership
of the code 
included in the attached patch, and agree that RealNetworks
has no duty 
of accounting to me for it. I warrant that this code is
entirely 
original to and owned by me, that I can legally grant the
copyright 
assignment, and that my contribution does not violate any
other person's 
rights, and laws or breach any contract. I understand that
RealNetworks 
may license this code under RPSL, RCSL, and/or  any other
license at 
RealNetworks' discretion, and use the code in any way.


QA Instructions:

use the python api to open and close a job.  verify that
deconstructor 
for module is called using debugger

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

  
Re: CR: player_kit_python_hxrecord - Initialization and deallocation fixes
country flaguser name
United States
2008-04-15 16:15:54
Looks good Peter.
--greg.


Peter Krenesky wrote:
> Modified by: Peter Krenesky <peterosuosl.org>
> Project: player_kit_python_hxrecord
> 
> Synopsis:   A collection of fixes for intialization and
deallocation of 
> the python module and other classes.  Prior to this fix
the module was 
> never being deallocated resulting in resources that may
never be 
> released.  This patch also removes some unused
references and corrects 
> some weird initialization functions.
> 
> 
> Files Modified:     
>   player/kit/python/hxrecord/hxaudience.cpp
>   player/kit/python/hxrecord/hxaudience.h
>   player/kit/python/hxrecord/hxdestination.cpp
>   player/kit/python/hxrecord/hxdestination.h
>   player/kit/python/hxrecord/hxfilter.cpp
>   player/kit/python/hxrecord/hxfilter.h
>   player/kit/python/hxrecord/hxinput.cpp
>   player/kit/python/hxrecord/hxinput.h
>   player/kit/python/hxrecord/hxmediaprofile.cpp
>   player/kit/python/hxrecord/hxmediaprofile.h
>   player/kit/python/hxrecord/hxoutputprofile.cpp
>   player/kit/python/hxrecord/hxoutputprofile.h
>   player/kit/python/hxrecord/pyaudience.pp
>   player/kit/python/hxrecord/pydestination.cpp
>   player/kit/python/hxrecord/pyinput.cpp
>   player/kit/python/hxrecord/pymediaprofile.cpp
>   player/kit/python/hxrecord/pyoutputprofile.cpp
>   player/kit/python/hxrecord/pypostfilter.cpp
>   player/kit/python/hxrecord/pyprefilter.cpp
>   player/kit/python/hxrecord/pystreamconfig.cpp
>   player/kit/python/hxrecord/hxjob.cpp
>   player/kit/python/hxrecord/hxjob.h
>   player/kit/python/hxrecord/hxrecord.cpp
>   player/kit/python/hxrecord/hxrecord.h
>   player/kit/python/hxrecord/pyjob.cpp
>   player/kit/python/hxrecord/pyjob.h
>   player/kit/python/hxrecord/pyrecord.cpp
> 
> 
> Details:
> 
>   hxrecord.cpp, hxrecord.h
>       * Moved CreateJob() to the cpp file, it was not
needed as an 
> inline function
>       * Cleaned up the init function.             - no
longer requires a 
> reference to itself in order to initialize
>             - no longer returns itself, now returns
HX_RESULT so errors 
> can be handled properly
>             - error when library fails to load is now
reported properly 
> rather than segfaulting
>              pyrecord.cpp         * added function for
deallocating module
>       * updated hxrecord_create_job() to use new
constructors for job 
> wrapper
>       * updated hxrecord_init() to handle restructured
init() function.  
> now reports errors gracefully to python
>       * module constructor now AddRef's core
> 
>    hxjob.cpp, hxjob.h
>       * Destroy() now unsubscribes the core from
receiving events for 
> the job being destroyed.  This bug caused references to
the core to be 
> held onto preventing the core from ever being
deconstructed
>       * Removed circular reference between wrapper and
wrapped object.
>       * modified initialization function to match how
the other wrapped 
> objects are created
>       * removed Create() function which is now unused
>        pyjob.cpp, pyjob.h
>       * constructor now requires pointer to
IHXTEncodingJob which will 
> be wrapped
>       * modified constructor to use restructured method
of creating wrapper
> 
>   hxaudience.cpp, hxaudience.h, hxdestination.cpp,
hxdestination.h,
>   hxfilter.cpp, hxfilter.h, hxinput.cpp, hxinput.h,
hxmediaprofile.cpp,
>   hxmediaprofile.h, hxoutputprofile.cpp,
hxoutputprofile.h, pyaudience.cpp,
>   pydestination.cpp, pyinput.cpp, pymediaprofile.cpp,
pyoutputprofile.cpp,
>   pypostfilter.cpp, pyprefilter.cpp,
pystreamconfig.cpp:
> 
>       * Removed unused circular reference between
wrapped object and 
> wrapper.  This included removing
>          the member variable from the base class and
removing the 
> pointer from the constructors for all the
>          objects
> 
> 
> Platforms and Profiles Functionality verified:
> x86 helix-client-OLPC
> 
> Branch: HEAD Atlas-310
> 
> 
> Copyright assignment:
> In consideration for RealNetworks' hosting and
maintenance of my 
> modification,
> 
> I agree to assign to RealNetworks full copyright
ownership of the code 
> included in the attached patch, and agree that
RealNetworks has no duty 
> of accounting to me for it. I warrant that this code is
entirely 
> original to and owned by me, that I can legally grant
the copyright 
> assignment, and that my contribution does not violate
any other person's 
> rights, and laws or breach any contract. I understand
that RealNetworks 
> may license this code under RPSL, RCSL, and/or  any
other license at 
> RealNetworks' discretion, and use the code in any way.
> 
> 
> QA Instructions:
> 
> use the python api to open and close a job.  verify
that deconstructor 
> for module is called using debugger
> 
> 
>
------------------------------------------------------------
------------
> 
> _______________________________________________
> Helix-client-dev mailing list
> Helix-client-devhelixcommunity.org
> http://lists.helixcommunity.org/mailman/listinf
o/helix-client-dev


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

[1-2]

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