Yes I use FileSink as model:
class MyMediaSink:public MediaSink
{
public:
MyMediaSink(UsageEnvironment &env):MediaSink(env){buffer = new
uint8_t[fileSinkBufferSize];}
virtual ~MyMediaSink(){}
protected:
Boolean continuePlaying()
{
if (NULL == fSource)
{
return False;
}
buffer = NULL;
fSource->getNextFrame(buffer, fileSinkBufferSize, afterGettingFrame,
this, onSourceClosure, this);
return True;
}
static void afterGettingFrame(void* clientData, unsigned frameSize,
unsigned numTruncatedBytes, struct timeval presentationTime, unsigned
durationInMicroseconds)
{
MyMediaSink* sink = (MyMediaSink*)clientData;
sink->afterGettingFrame1(frameSize, presentationTime);
}
void afterGettingFrame1(unsigned frameSize,
struct timeval presentationTime)
{
AddData(buffer, frameSize, presentationTime);
// Then try getting the next frame:
continuePlaying();
}
void AddData(uint8_t* pData, uint32_t nDataSize, struct timeval
presentationTime)
{
if(pData == NULL)
{
printf("NO DATA");
}
}
private:
uint8_t *buffer;
};
if I implement it in this way i never get into "afterGettingFrame". What am I
doing wrong?
thanks!
Am 30.06.2011 um 08:06 schrieb Ross Finlayson:
>> Boolean continuePlaying(){/*CODE will come soon*/ return true;}
>
> I'm not sure what your question is, but once your "MyMediaSink" class should
> work once you implement the "continuePlaying()" function (etc.). I suggest
> that you use the "FileSink" code as a model.
> --
>
> Ross Finlayson
> Live Networks, Inc.
> http://www.live555.com/
> _______________________________________________
> live-devel mailing list
> [email protected]
> http://lists.live555.com/mailman/listinfo/live-devel
_______________________________________________
live-devel mailing list
[email protected]
http://lists.live555.com/mailman/listinfo/live-devel