Frequently Asked Questions - Index

Home | Project philosophy | Developers guide | CVS guide | Cpfspd API | File format | History | FAQ

On this page:
CPFSPD library


CPFSPD library

Why is file size on windows/cygwin different from other platforms?

This issue only relates to releases upto and including 1.10.1.
On windows platforms (cygwin, win32) we use high performance platform specific file I/O. When the OS version (windows NT, 2000, XP) and the file system (ntfs) supports it, unbuffered and asynchronous I/O is used (this is detected at runtime). As an example, the underlaying I/O system performs the read DMA of a next block while the application is processing the current block. This I/O is optimized for sequential image access and allows us to process video data with only a single memcpy operation between an cpfspd internal buffer and the application. On win32, this memcpy is optimized using MMX operations. The result is a data throughput close to the theoretical limits of the harddisk with a very low CPU load overhead. This is only possible with I/O blocks that are a multiple of the disk block size. We found that a block size of 256 kbyte provides optimal performance in most cases. As a side effect of this approach, the file size is always a multiple of 256 kbyte on cygwin/win32. The buffer size can be changed with p_set_file_buf_size().

On all other platforms, regular clib file I/O is used (fopen/fread/fwrite/fclose).

Why is shows my dual screen setup big texts?

Symptom
On a dual screen setup, the *nix version of PV shows large text size for menu entries, status bar, help text, error dialogs etc.

Diagnosis
We observed this problem using the "Reflection" X server on systems with dual monitor setup. The command "xdpyinfo" shows a mismatch between the physical size of your monitors and the resolution; e.g:

> xdpyinfo
...
screen #0:
  dimensions:    2880x1200 pixels (380x300 millimeters)
  resolution:    193x102 dots per inch
...
Two monitors are attached: one 19" 1280x1024 pixels and a secondary monitor with 1600x1200 pixels. The default ReflextionX handling assumes a total screen real estate of (1280+1600) x max(1024,1200) pixels, assuming the physical size of only the primary 19" monitor!

Solution
Start the Reflection X client manager. Under "Settings" -> "Display", you can enter the physical size of the total display area. In the above example, it is changed to 800 x 340 mm. This is slightly larger than the actual size, but this gives best results.


Authors: Bram Riemens

Copyright (c) KONINKLIJKE PHILIPS ELECTRONICS N.V. 2000-2006
Philips Research Laboratories, Eindhoven, The Netherlands
CVS id: $Id: faq.html,v 1.4 2006/03/28 15:15:47 riemens Exp $

This page is hosted by
SourceForge.net Logo