Do you mean testMPEG4VideoStreamer.cpp as the test program? And what do
you mean mean by the stack is threadsafe when only 1 thread is init. of
it? Sorry but I have very limited experience with pthreads.
Jerry Johns wrote:
As a first step, you have to integrate the test application as is, as a
separate thread into your encoder application; If you can get that
running, you're already half way there - modify the main() func. In the
test app (testMPEG4VideoReceiver is it?) as a pthread entry point, and
call this in your encode demo as a pthread_create - the livemedia stack
is threadsafe when only 1 thread is init. Of it
After that, you'll have to setup shared buffers between livemedia and
your video encode threads - the output of the video encoder comes
oe.encodedBuffer, and the size is given to you too. Put this into your
shared FIFO. And yes, you'll have to make a new class that delivers data
from a FIFO for LiveMedia
From there on, you should be able to figure it out :)
Jerry Johns
Design Engineer
Nuvation Research Corp - Canada
Tel: (519) 746-2304 ext. 225
www.nuvation.com
-----Original Message-----
From: Anthony Gutierrez [mailto:[EMAIL PROTECTED]
Sent: Friday, July 25, 2008 8:00 AM
To: Jerry Johns
Cc: [email protected]
Subject: Re: dm355: live555 to stream real-time video
I have the DM355 so only MPEG4 elementary stream is available to me. I
have a modified MPEG4VideoStreamFramer.cpp source file (that somebody
gave me, if you want it I'll send it to you) that addresses the header
compatibility issues with the DM355 MPEG4 codec and live555 so I have no
problem streaming the videos, but it's a two step process. First encode
& save to disk, then stream by running liveMediaServer or
TestOnDemandRTSP. Could you tell me a little bit more about how you
modified the test program that you used? They all seem to use inputs
files, I'm guess I would need to use the buffers that contain the
encoded data instead of a file object? Do you know which buffers contain
the encoded data? Also did you have to modify the
ByteStreamFileSource.cpp library? That is where it looks like the fread
from a file is done.
Thanks
Jerry Johns wrote:
Hey Anthony,
We've been successful in producing a real-time video/audio streaming
solution for the DaVinci - we didn't use MPEG4 as the format of choice
(I don't think its header structures are compatible with LiveMedia).
Our solution uses LiveMedia integrated with the video encoder
application to achieve this goal. H.264 was the format we chose, and
we had to write a custom packetizer for it in LiveMedia (it doesn't
support it natively). We run all this under a single process so that
we can control the priority of the livemedia thread (which is a hog) -
its pretty straightforward to integrate liveMedia into the encode demo
application - you have modify the test program in LiveMedia into a
pthread entry point, and include that as a source file that you can
build into the encode app as a separate pthread. This involves also
changing the Makefile
It streams quite nicely to VLC and to Quicktime using the RTSP Server.
If you want to do MPEG4, you'll have to parse the m4v files produced
by the mpeg4 codec server to see how its header structures differ from
what liveMedia expects
The RFC specs are usually the best way to figure this out
Hope it helps,
**Jerry Johns**
//Design Engineer//
//Nuvation Research Corp - Canada//
//Tel: (519) 746-2304 ext. 225//
//www.nuvation.com <http://www.nuvation.com>//
------------------------------------------------------------------------
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source