Hello to Everybody,

does anybody know the very exact video-format that a S60-Nokia-Phone
suppot ? I create a video-file with the Quick Time Video Player Version 7.0.3.
Following video-file-features :

Content Type is 3gpp - Release 5
Video-Format : H.263
Data-Rate : 64 kbps
Image-Sitze : 176 x 244 QCIF
Image-Rate : 10 Images per second
Key-Frame : All - 24 Images

When I invoke the "start-method of a Player-Instance" in my MIDlet on a
Nokia-S60-Emulator of the "Nokia Prototype SDK 3.0 for J2ME" I get the
following Exception :

java.lang.ArrayIndexOutOfBoundsException: 13
at com.nokia.phone.sdk.concept.util.mmedia.video.v3gpp.VideoTrack.readFrame(VideoTrack.java)
at com.sun.media.SourceThread.process(BasicSourceModule.java:664)
at com.sun.media.util.LoopThread.run(LoopThread.java:135)

Here the emulator is hanging...

Now I kill the Emulator-Process and the Exception continues with...
java.lang.InterruptedException: sleep interrupted
at java.lang.Thread.sleep(Native Method)
at com.nokia.phone.sdk.concept.mirrors.mma.media.player.VideoPlayer.doPrefetch(VideoPlayer.java)
at com.nokia.phone.sdk.concept.mirrors.mma.media.player.BasicPlayer.prefetch(BasicPlayer.java)
at com.nokia.phone.sdk.concept.mirrors.mma.media.player.BasicPlayer.start(BasicPlayer.java)
at com.nokia.phone.sdk.concept.mirrors.mma.media.MMAManager.start(MMAManager.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.nokia.phone.sdk.concept.gateway.g.a(g.java)
at com.nokia.phone.sdk.concept.gateway.g.run(g.java)
at java.lang.Thread.run(Unknown Source)


This is the method where the exception occurs at the player.start()-command :
-------------------------------------------------------------------------

private void play(){
if(videoFile == null)
midlet.alertError("No video file specified");
else{
try {
InputStream is = getClass().getResourceAsStream(videoFile);
player = Manager.createPlayer(is, "video/3gpp");
player.addPlayerListener(this);
player.realize();
//player.prefetch();
//player.setLoopCount(-1);

//get the video control and attach it to our canvas
VideoControl videoControl = (VideoControl)(player.getControl("VideoControl"));
if(videoControl == null) {
midlet.alertError("Video Control not supported");
}else {
videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, this);
// centre video, letting it be clipped if it's too big
int canvasWidth = getWidth();
int canvasHeight = getHeight();
int displayWidth = videoControl.getDisplayWidth();
int displayHeight = videoControl.getDisplayHeight();
int x = (canvasWidth-displayWidth)/2;
int y = (canvasHeight-displayHeight)/2;
videoControl.setDisplayLocation(x,y);
videoControl.setVisible(true);
player.start();
}
}catch(IOException ioe) {
discardPlayer();
midlet.alertError("IOException : " + ioe.getMessage());
}catch(MediaException me) {
discardPlayer();
midlet.alertError("MediaException : " + me.getMessage());
}catch(SecurityException se) {
discardPlayer();
midlet.alertError("SecurityException : " + se.getMessage());
}catch(IllegalArgumentException iae){}
catch(ArrayIndexOutOfBoundsException ioB){
ioB.printStackTrace();
}
}
}

-------------------------------------------------------------------------
Can anybody reproduce this error-message or does anybody encountered this error and know the solution ?

Maybe "QuickTime Video Player 7.0.3" is the wrong software to
create 3gpp-Videos ? Is there anything else advisable to produce 3gpp-videos ?

Best Regards and thanx for investigations...