[Ffmpeg-devel] Porting to symbian, possible ??

Colin Ward lists
Mon Aug 21 11:52:58 CEST 2006


   My apologies for the delay in replying, we have a new release coming 
up at work so I have been rather busy!

Henrik Antonsson wrote:
> Thanks very much for your answer Colin, just the answer I hoped for.
> 
> I have tried to use the MMF to solve my problem but it does not work with
> streaming, it can only download the whole file before it can start 
> playback.

   That seems unusual.  I do know that many phones have atrocious RTP 
implementations that do exactly what you have said above, but I am 
surprised that the MMF system does this.  Have you taken a look at:

   http://opensource.nokia.com/projects/s60internetradio/index.html

   This streams using MMF - maybe there are some helpful pointers in there?

> Maybe it would work if I wrote some sink/source plugins and a controller to
> use the built-in H.263 codec, but I don't have very much information about
> that so I thought porting the H.263 codec from libavcodec and display it
> with direct screen access would be a better idea. Unless I could get my
> hands on a Symbian DevKit which would give me tighter access to the decoder
> and encoder. I guess I am thinking of writing my own independent player 
> so I
> would be very glad to know about the pitfalls with doing this.

   The biggest problem that I had when I wrote my video player is 
latency.  In my active object timer callbacks where I was rendering my 
video, I would sometimes see latencies as high as 600 milliseconds!!! 
It wasn't too bad when I was playing a file back locally, but when 
streaming, the TCP/IP stack seemed to have some VERY long RunL() 
implementation.  If I had to write another video player now then I would 
either:

   a) Do the video rendering on a separate thread (difficult because you 
can't access the font and bitmap server from a separate thread, unless 
you can create another connection to it).  Or

   b) Do the streaming decoding in a separate thread and the video 
rendering in the main thread.

   Whichever way you do it, you need to ensure that the thread that 
renders the video isn't going to be doing anything else or you will get 
hit by that latency!  It was nasty!

   I have also found that the only way to stream audio that doesn't 
break up when you switch the application to the background is to have it 
on its own realtime priority thread.  Also, the thread doing the 
decoding needs to be realtime as well in order to not run out of decoded 
data when launching other applications.

   Symbian is NOT a multimedia friendly OS!  :-/

-- 
/-------------------------------------------------------------------\
[Hitman/Code HQ - 6502/z80/68000/604e/80x86/ARM coder - Amiga rulez!]
[VZ-200/VIC-20/MZ-700/c16/c64*10/c128*8/Plus-4/CPC464/CD32/500*2    ]
[600/1000/1200*2/A4000/SNES/N64/Dreamcast/Athlon 1100/AmigaOne      ]
[Assembly Language: The most fun you can have with your clothes on! ]
\-------------------------------------------------------------------/




More information about the ffmpeg-devel mailing list