[Matroska-devel] LibMatroska example question

Steve Lhomme steve.lhomme at free.fr
Wed Jan 25 19:00:12 CET 2006


Hi Armin,

Using global variables is usually a bad idea, even if that's the easiest 
case. Your program won't be thread-safe and reentrant. In C++ you 
usually offer a method in your class to give access to this variable, like :
KaxTracks & GetTracks();
or
const KaxTracks & GetTracks() const;

& will give you a reference to the object. That's like a pointer, but 
you don't have to check if it's NULL. If you are not sure about this 
syntax, just use pointers...

I hope it helped.
Steve

Armin Müller wrote:
> Hi,
> 
> i write a multiplexing module for our multimedia framework at university.
> So i took the example code for multiplexing from the libmatroska package 
> (Linux).
> 
> I have a class-method that does the multiplexing., this is where I call
> 
> KaxTracks & MyTracks = GetChild<KaxTracks>(FileSegment); /* Filesegment 
> is a KaxSegment */
> 
> now I need to have the variable MyTracks globally in my class available, 
> so I have to declare it outside of this function.
> 
> 
> I tried:
> 
> KaxTracks MyTracks;
> 
> &MyTracks = GetChild<KaxTracks>(FileSegment);
> 
> I also tried it without ampersand, but I don't understand this syntax.
> 
> 
> Can anyone show me how to declare the variable (globally) and then 
> assign the return value of GetChild?
> 
> 
> thanks and regards,
> armin
> 
> 
> 
> 
> 
> _______________________________________________
> Matroska-devel mailing list
> Matroska-devel at lists.matroska.org
> http://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel
> Read Matroska-Devel on GMane: 
> http://dir.gmane.org/gmane.comp.multimedia.matroska.devel

-- 
robUx4 on blog <http://robux4.blogspot.com/>




More information about the Matroska-devel mailing list