[Live-devel] getting link time errors while building for arm.linux

singh, Ravinder ravinder.singh at ti.com
Wed Jun 6 22:25:06 PDT 2007


Hi Ross
I am getting lot of undefined  reference errors when I am cross
compiling the code for arm architecture, following are some errors. I am
using uclibc
Tool chain.

make[1]: Entering directory `/home/ravinder/rtsp/live_arm/testProgs'
arm-linux-gcc -otestMP3Streamer -L. testMP3Streamer.o
../liveMedia/libliveMedia.a ../groupsock/libgroupsock.a
../UsageEnvironment/libUsageEnvironment.a
../BasicUsageEnvironment/libBasicUsageEnvironment.a
testMP3Streamer.o: In function `main':
testMP3Streamer.cpp:(.text+0x140): undefined reference to `operator
new(unsigned int)'
testMP3Streamer.cpp:(.text+0x18c): undefined reference to `operator
new(unsigned int)'
testMP3Streamer.cpp:(.text+0x280): undefined reference to `operator
delete(void*)'
testMP3Streamer.cpp:(.text+0x294): undefined reference to
`__gxx_personality_sj0'
../liveMedia/libliveMedia.a: In function `Medium::~Medium()':
Locale.cpp:(.text+0xbc): undefined reference to `operator delete(void*)'
../liveMedia/libliveMedia.a: In function
`_Tables::getOurTables(UsageEnvironment&)':
Locale.cpp:(.text+0x160): undefined reference to `operator new(unsigned
int)'
../liveMedia/libliveMedia.a: In function `_Tables::~_Tables()':
Locale.cpp:(.text+0x2a0): undefined reference to `operator
delete(void*)'
../liveMedia/libliveMedia.a: In function
`MediaLookupTable::ourMedia(UsageEnvironment&)':
Locale.cpp:(.text+0x35c): undefined reference to `operator new(unsigned
int)'
Locale.cpp:(.text+0x3b0): undefined reference to `operator
delete(void*)'
Locale.cpp:(.text+0x3c4): undefined reference to `__gxx_personality_sj0'
../liveMedia/libliveMedia.a: In function
`MediaLookupTable::~MediaLookupTable()':
Locale.cpp:(.text+0x5e0): undefined reference to `operator
delete(void*)'
../liveMedia/libliveMedia.a: In function `MediaSource::~MediaSource()':
Locale.cpp:(.text+0x67c): undefined reference to `operator
delete(void*)'
../liveMedia/libliveMedia.a: In function
`FramedSource::~FramedSource()':
Locale.cpp:(.text+0x838): undefined reference to `operator
delete(void*)'
../liveMedia/libliveMedia.a: In function
`FramedFileSource::~FramedFileSource()':
Locale.cpp:(.text+0xaa4): undefined reference to `operator
delete(void*)'
../liveMedia/libliveMedia.a: In function
`FramedFilter::~FramedFilter()':
Locale.cpp:(.text+0xba0): undefined reference to `__gxx_personality_sj0'
../liveMedia/libliveMedia.a: In function
`FramedFilter::~FramedFilter()':
Locale.cpp:(.text+0xc5c): undefined reference to `__gxx_personality_sj0'
../liveMedia/libliveMedia.a: In function
`FramedFilter::~FramedFilter()':
Locale.cpp:(.text+0xce0): undefined reference to `operator
delete(void*)'
Locale.cpp:(.text+0xd20): undefined reference to `__gxx_personality_sj0'
Regards
Ravinder

-----Original Message-----
From: live-devel-bounces at ns.live555.com
[mailto:live-devel-bounces at ns.live555.com] On Behalf Of
live-devel-request at ns.live555.com
Sent: Wednesday, June 06, 2007 8:16 PM
To: live-devel at ns.live555.com
Subject: live-devel Digest, Vol 44, Issue 6

Send live-devel mailing list submissions to
	live-devel at lists.live555.com

To subscribe or unsubscribe via the World Wide Web, visit
	http://lists.live555.com/mailman/listinfo/live-devel
or, via email, send a message with subject or body 'help' to
	live-devel-request at lists.live555.com

You can reach the person managing the list at
	live-devel-owner at lists.live555.com

When replying, please edit your Subject line so it is more specific
than "Re: Contents of live-devel digest..."


Today's Topics:

   1. Re: Problem Streaming MPEG4ES from buffer (Severin Schoepke)
   2.  Problem Streaming MPEG4ES from buffer (Julian Lamberty)
   3. Re: PTS for Program Stream (Ross Finlayson)
   4. Re: Problem Streaming MPEG4ES from buffer (Ross Finlayson)
   5.  Problem Streaming MPEG4ES from buffer (Julian Lamberty)
   6. Re: SeqNo (homocean at ibr.cs.tu-bs.de)


----------------------------------------------------------------------

Message: 1
Date: Wed, 06 Jun 2007 15:04:02 +0200
From: Severin Schoepke <severin.schoepke at gmail.com>
Subject: Re: [Live-devel] Problem Streaming MPEG4ES from buffer
To: LIVE555 Streaming Media - development & use
	<live-devel at ns.live555.com>
Message-ID: <4666B0C2.3030200 at gmail.com>
Content-Type: text/plain; charset=ISO-8859-15; format=flowed

Hi Julian,
I can stream ffmpeg encoded MPEG4 buffers using an 
MPEG4VideoStreamFramer perfectly well. I suppose you try that!

cheers, Severin


Julian Lamberty schrieb:
> Do I have to use "MPEG4VideoStreamFramer" instead as the test program 
> does?




------------------------------

Message: 2
Date: Wed, 06 Jun 2007 15:25:03 +0200
From: Julian Lamberty <julian.lamberty at mytum.de>
Subject: [Live-devel]  Problem Streaming MPEG4ES from buffer
To: live-devel at ns.live555.com
Message-ID: <4666B5AF.60105 at mytum.de>
Content-Type: text/plain; charset="iso-8859-15"

Hi Severin!

How did you do that, I'm trying exactly the same. But when I use 
MPEG4VideoStreamFramer instead of the discrete one I get errors that
say:

StreamParser::afterGettingBytes() warning: read 23329 bytes; expected no

more than 10026
MultiFramedRTPSink::afterGettingFrame1(): The input frame data was too 
large for our buffer size (60752).  90747 bytes of trailing data was 
dropped!  Correct this by increasing "OutPacketBuffer::maxSize" to at 
least 151499, *before* creating this 'RTPSink'.  (Current value is
60000.)
MPEG4VideoStreamParser::parseVideoObjectLayer(): This appears to be a 
'short video header', which we current don't support

[mpeg4 @ 0xa23148]buffer smaller than minimum size

I use the following code to fill the buffer:

enc_bytes = avcodec_encode_video(enc_codec_ctx, outbuf, fMaxSize, 
dec_frame);
if(enc_bytes >= 0)
                {                 
                    memcpy(fTo, outbuf, enc_bytes);
                   
                    if(enc_bytes > fMaxSize)
                    {
                        fFrameSize = fMaxSize;
                        fNumTruncatedBytes = enc_bytes - fMaxSize;
                    }
                    else
                    {
                        fFrameSize = enc_bytes;
                        fNumTruncatedBytes = 0;
                    }
                    fPresentationTime = presentationTime;
                    fDurationInMicroseconds = durationInMicroseconds;
                }
    afterGetting(this);

Would be very nice if you could help me finding my mistake...

Thanks!

Julian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 5198 bytes
Desc: S/MIME Cryptographic Signature
Url :
http://lists.live555.com/pipermail/live-devel/attachments/20070606/26998
584/attachment-0001.bin 

------------------------------

Message: 3
Date: Wed, 6 Jun 2007 06:45:30 -0700
From: Ross Finlayson <finlayson at live555.com>
Subject: Re: [Live-devel] PTS for Program Stream
To: LIVE555 Streaming Media - development & use
	<live-devel at ns.live555.com>
Message-ID: <f06240809c28c68f13e81@[66.80.62.44]>
Content-Type: text/plain; charset="us-ascii" ; format="flowed"

>        We are using Live 555 streaming media server to stream MPEG 2
PS to
>the set top box.
>         The server will stream audio and video on seperate ports for
program
>stream.
>         After receiving the streams on client side, how to calculate
PTS?

Are you using our software to develop your client?  If not, then we 
can't help you - sorry.

If, however, you are using our software to develop your client, then 
the presentation timestamp for each piece of data read from a 
"RTPSource" object is passed - as a parameter - to the 'after 
getting' function that was previously passed in the call to 
"getNextFrame" on the "RTPSource" object.  (Note the many examples in 
the code.)

>         Whether we have to use RTP timestamp values for this?

No.  Our software automatically calculates the presentation time from 
the RTP timestamps and RTCP reports.  You don't need to calculate 
this yourself - instead, just use the "presentationTime" parameter.
-- 

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


------------------------------

Message: 4
Date: Wed, 6 Jun 2007 06:52:30 -0700
From: Ross Finlayson <finlayson at live555.com>
Subject: Re: [Live-devel] Problem Streaming MPEG4ES from buffer
To: LIVE555 Streaming Media - development & use
	<live-devel at ns.live555.com>
Message-ID: <f0624080ac28c6c04f6ed@[66.80.62.44]>
Content-Type: text/plain; charset="us-ascii" ; format="flowed"

>I use the following code to fill the buffer:
>
>enc_bytes = avcodec_encode_video(enc_codec_ctx, outbuf, fMaxSize,
dec_frame);
>if(enc_bytes >= 0)
>                {                
>                    memcpy(fTo, outbuf, enc_bytes);
>                  
>                    if(enc_bytes > fMaxSize)

This is very bad.  You must never copy more than "fMaxSize" bytes to 
the destination pointed to by "fTo".  Therefore, you must check the 
data size against "fMaxSize" *before* you copy it.

I.e, you should instead do:

                    if(enc_bytes > fMaxSize)
                    {
                        fFrameSize = fMaxSize;
                        fNumTruncatedBytes = enc_bytes - fMaxSize;
                    }
                    else
                    {
                        fFrameSize = enc_bytes;
                        fNumTruncatedBytes = 0;
                    }
                    memcpy(fTo, outbuf, fFrameSize);

-- 

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


------------------------------

Message: 5
Date: Wed, 06 Jun 2007 16:03:20 +0200
From: Julian Lamberty <julian.lamberty at mytum.de>
Subject: [Live-devel]  Problem Streaming MPEG4ES from buffer
To: live-devel at ns.live555.com
Message-ID: <4666BEA8.6050304 at mytum.de>
Content-Type: text/plain; charset="iso-8859-15"

Thanks for your reply, I changed my code.

Nevertheless, enc_bytes did never exceed fMaxSize in my program before 
and thus the problem still exists. VLC, which I use to play the stream, 
reports loads of errors regarding late pictures and damaged headers... 
:( Any more ideas?

Thank you!
Julian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 5198 bytes
Desc: S/MIME Cryptographic Signature
Url :
http://lists.live555.com/pipermail/live-devel/attachments/20070606/c13cc
764/attachment-0001.bin 

------------------------------

Message: 6
Date: Wed, 6 Jun 2007 16:46:14 +0200 (CEST)
From: homocean at ibr.cs.tu-bs.de
Subject: Re: [Live-devel] SeqNo
To: "LIVE555 Streaming Media - development & use"
	<live-devel at ns.live555.com>
Message-ID:
	<4808.134.169.35.237.1181141174.squirrel at mail.ibr.cs.tu-bs.de>
Content-Type: text/plain;charset=iso-8859-1

>>Is there any posibility to access this information (the sequence
numbers
>>that make up each frame) from mplayer without modifying any live
source
>
> No.

My goal is to optimize mplayer based on live for wlan streaming. But I
am
not allowed to modify the live library. If I do not have access to the
sequence numbers that make up a frame how can I tell if a frame got
lost?
It would be at least helpful to know the seq no of each frame. I tried
interrogating the bufferQueue->rtpSource()->curPacketRTPSeqNum() before
each getBuffer(), but this does not behave as I would have expected. The
seqNo I get does not correspond to the beginning of the frame I read
with
getBuffer. And this is because live continues receiving rtp packets from
the server before mplayer receives its buffered frame (if I understood
wrong please correct me).

Is there another way of finding out if a frame(or parts of it) got lost?
Or is it the last solution to implements my own rtp client and link it
to
mplayer(I might not have enough time for that)?

Regards,
Silviu

> --
>
> Ross Finlayson
> Live Networks, Inc.
> http://www.live555.com/
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live555.com
> http://lists.live555.com/mailman/listinfo/live-devel
>




------------------------------

_______________________________________________
live-devel mailing list
live-devel at lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel


End of live-devel Digest, Vol 44, Issue 6
*****************************************


More information about the live-devel mailing list