Problem and Solution Log

Last updated 11/30/2002

Issue First Faced Issue Resolved

Description and Solutions

11/6/2002 11/9/2002 Compiling the MpegTV SDK sample Simpleplayer for WCE ARM Release Target may take a while due to various issues. Refer to the SDK forum within  http://forums.pocketmovies.net for steps to resolve these issues.
11/9/2002 11/13/2002 Streaming Servers:

Problem: Finding a streaming server which uses RTSP/RTP and is also capable of streaming MPEG-1 streams. Darwin Streaming Server is able to stream only hinted video files. Hinting is the process of adding hint tracks to a movie stream which is useful during streaming. Simpleplayer was capable of playing only mpeg-1 files. MPEG tools, which could hint a video stream could only produce .mov files after the hinting process. Other freeware streaming servers either did not stream MPEG-1 streams or were not capable of streaming using RTP. Finally, we found the Helix Streaming Server from real networks, which fit the bill.

11/9/2002 11/10/2002 Pocket PC 2002 Emulator always causes an abrupt computer restart on Windows 2000. Problem not seen on XP. Problem resolved by installing Platform Manager 4.1 and then installing EVT.
11/9/2002 11/11/2002 Unable to Debug Simpleplayer, because of some incompatibilities between the SimplePlayer libraries' target architecture and the pocket pc 2002 emulator. Debugging with MessageBoxes messy and totally bad way of doing things. Found STLogFile.h from http://www.pocketpcdn.com. Very simple and efficient logging solution. Works within DLL's too.
11/14/2002 11/14/2002 Streaming server's splits Video and Audio streams and transmit them in separate RTP sessions. This was totally unsuitable in view of the SDK's exported API. Mixing the two streams complicated process. Resorted to playing only the video stream.
11/14/2002 11/16/2002 RTP Payload of MPEG-1 adds a media specific header to the normal MPEG payload. Initially did not know how to strip the extra media specific header. Turns out that simply stripping out the first 4 bytes from the payload produces the original MPEG stream.
11/16/2002 11/20/2002 Nomad implements a kind of fire-walling. Connections which originate from outside of Nomad, and are destined into Nomad are blocked. An RTP connection typically originates from a server outside of nomad and then reaches a port which the client indicates using RTSP. To enable such packets to cross the firewall boundary, there are two things that must be done.
1. Bind to a port within range 6970 through 6999 ( inclusive).
2. Send a dummy packet from this bound socket to the server, after which Nomad opens a hole in the firewall considering the connection to have originated from within Nomad.
11/17/2002 11/17/2002 When the Ipaq is connected to the cradle, it smartly uses the first available internet connection. i.e., the connection through the host computer. If a nomad login session is started with the Ipaq being still within the cradle, then the Ipaq does not switch to using the wireless internet access, still maintaining access through the host PC. To resolve this, as soon as a nomad session is started, remove the Ipaq from the cradle and then do some internet processing before placing it back in the cradle. Now, even with the Ipaq being in the cradle, it uses the wireless connection.
11/22/2002 11/22/2002 Memory Allocation: Be aware of how much memory is available for applications to use. This information can be viewed by going to System -> Memory from the start menu. Filling up the Ipaq's file system with a lot of files can cause very little memory to be available for applications, causing failures during malloc operations of large data structures.
11/28/2002 11/28/2002 QoS Measurements:

On WinCE, while running Simpleplayer and a background task as a separate application, the application that is selected to run (clicked to execute)  last, gets all the priority. The higher priority application runs to completion before the other application gets a chance to execute. The reason for this behavior is still unresolved. Forced us to incorporate our load as another thread in SimplePlayer ( which might be causing other issues that we don't really understand yet).