[Live-devel] Questions on streaming live H263 videos
Cristiano Belloni
belloni at imavis.com
Tue Dec 18 08:57:06 PST 2007
Well, i solved the problem creating another class, modeled after
"H263plusVideoFileServerMediaSubsession", which starts my thread.
I don't know if it's the right solution, but I couldn't find another.
By the way, why createNewStreamSource() is called twice per requested
stream? Now I'm testing if thread is already started, because starting
it in createNewStreamSource would have it started twice. Am I doing the
right thing?
Regards,
Cristiano Belloni.
Cristiano Belloni wrote:
>> I suggest defining a subclass of
>> "H263plusVideoFileServerMediaSubsession", and redefining the
>> "createNewStreamSource()" virtual function to start your encoder(sic)
>> thread, and then call the parent class
>> ("H263plusVideoFileServerMediaSubsession")'s
>> "createNewStreamSource()"
>>
>
> Uhm, I'm having an hard time subclassing "H263plusVideoFileServerMediaSubsession".
> I just added this code:
>
> class EncH263plusVideoFileServerMediaSubsession: public H263plusVideoFileServerMediaSubsession
> {
>
> private:
>
> FramedSource* createNewStreamSource(unsigned clientSessionId, unsigned& estBitrate);
>
> };
>
> FramedSource* EncH263plusVideoFileServerMediaSubsession::createNewStreamSource(unsigned clientSessionId, unsigned& estBitrate)
> {
> std::cout << "Started a new Stream Source" << std::endl;
>
> /* Code to start the encoder thread */
>
> return H263plusVideoFileServerMediaSubsession::createNewStreamSource(clientSessionId, estBitrate);
> }
>
> And i get these errors:
>
> ~/develop/lib/live-debug/liveMedia/include/H263plusVideoFileServerMediaSubsession.hh: In member function ‘virtual FramedSource* EncH263plusVideoFileServerMediaSubsession::createNewStreamSource(unsigned int, unsigned int&)’:
> ~/develop/lib/live-debug/liveMedia/include/H263plusVideoFileServerMediaSubsession.hh:42: error: ‘virtual FramedSource* H263plusVideoFileServerMediaSubsession::createNewStreamSource(unsigned int, unsigned int&)’ is private
> rtspServer.cpp:56: error: within this context
> ~/develop/lib/live-debug/liveMedia/include/H263plusVideoFileServerMediaSubsession.hh: In destructor ‘virtual EncH263plusVideoFileServerMediaSubsession::~EncH263plusVideoFileServerMediaSubsession()’:
> ~/develop/lib/live-debug/liveMedia/include/H263plusVideoFileServerMediaSubsession.hh:38: error: ‘H263plusVideoFileServerMediaSubsession::~H263plusVideoFileServerMediaSubsession()’ is private
> rtspServer.cpp:44: error: within this context
> rtspServer.cpp: At global scope:
> rtspServer.cpp:114: note: synthesized method ‘virtual EncH263plusVideoFileServerMediaSubsession::~EncH263plusVideoFileServerMediaSubsession()’ first required here
>
>
> Complaining that the destructor of H263plusVideoFileServerMediaSubsession is private (and indeed it is).
> If I try to override the destructor in my class, I get similar errors.
>
> Where am I doing wrong? Can you point me to some sample code where it is done right?
>
> Thanks,
>
> Regards,
>
> Cristiano Belloni.
>
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live555.com
> http://lists.live555.com/mailman/listinfo/live-devel
>
>
More information about the live-devel
mailing list