descriptionOpenGL player for uncompressed YUV files
repository URLgit://diracvideo.org/git/videoplayer.git
ownerjonathan.rosser@rd.bbc.co.uk
last changeFri, 10 Oct 2008 16:34:48 +0000 (10 16:34 +0000)
last refreshMon, 7 Aug 2017 00:07:13 +0000 (7 02:07 +0200)
content tags
add:
README
Videoplayer is a program designed to allow the real time playback of raw,
headerless YUV files that are encountered in video processing and broadcast
applications.

The source data should be a single file of concatenated video frames.

Aims
----

* Play video locked exactly to the display device refresh rate (VSYNC)

* Play back uncompressed video in real time

* Offload chrominance upconversion and colour matrixing to the GPU
  to permit high performance playback.

Source Formats
--------------

Videoplayer provides compatibility with a wide range of YUV formats:

FourCC code     Description
-----------     -----------
I420            YUV planar 8 bit data

YV12            YVU planar 8 bit data

UYVY            UYVY multiplexed 8 bit data

V210            UYVY multiplexed 10 bit data, 3 components packed into 32 bits

V216            UYVY multiplexed 8-16 bit data, little endian,
                data packed to the most significant bits

16P0            16 bit, MSbyte first, 16 bit planar data, 4:2:0 chroma

16P2            16 bit, MSbyte first, 16 bit planar data, 4:2:2 chroma

16P4            16 bit, MSbyte first, 16 bit planar data, 4:4:4 chroma

Operating System Compatibility
------------------------------

Videoplayer has been developed using the Qt cross platform toolkit.

Ubuntu Linux 7.10 has been the main development platform. Linux is the most
stable platform for runnung Videoplayer.

Videoplayer can be compiled and run on OS X 10.5. Stability problems exist
with the ATI graphics in Intel iMacs, which may be resolved with the release
of Qt 4.4. Apple specific OpenGL optimisations have not been done.
As a result, playback of full screen 1920x1080 video is currently limited to
30fps on a Power Mac G5 with NVIDIA GeForce 6600 graphics. Smaller windows will
play at 60fps. A more modern GPU may allow higher frame rates

Videoplayer can be compiled and run on the Windows platform. Testing has been
done on Windows XP SP2 with both NVidia and ATI Radeon HD2400PRO graphics
cards. Windows appears to use 100% CPU whilst waiting for VSYNC. This does
not appear to affect performance, with NVidia GeForce 6600GT easily able to
show 1920x1080x60fps video without dropping frames.

Hardware Requirements
---------------------

Playing uncompressed video sources requires significant read bandwidth from
a storage device.

Standard Definition video can be played from a single HDD.
1920x1080 HDTV at 25/30fps can be played from four HDDs in software RAID-0.
1920x1080 HDTV at 50/60fps can be played from eight HDDs in software RAID-0.

It should be noted that the continuous read rate of a HDD varies across the
platters. It may be possible to play back from fewer disks than described
above, but frames may be dropped at certain filesystem occupancies.

If a large disk array is not available, system RAM can be used to cache video
files if enough is available. Source video can be copied to /tmp and then
played. Alternatively, video can be played from a slow HDD and will stutter
on the first loop of the file. Subsequent loops will play in real time as the
video data is now cached by the operating system.

Videoplayer uses OpenGL to accelerate playback. Development has been done with
NVidia QuadroFX3450, 6600GT, 8600GT and 8800GT cards. Recent PCIe graphics cards
are recommended, but no testing of other models has been done.
shortlog
2008-10-10 David Flynn[mmap] partial revert of 8cef8db4 to disable using... master
2008-09-05 Andrea GabrielliniAdded support for mmap on OS X.
2008-08-13 Jonathan Rosseronly upload new textures / swap renderers when we get...
2008-08-13 Jonathan Rosserswitch to a pair of Pixel Buffer Objects for interleave...
2008-08-12 Jonathan Rosseruse yuvReaderMmap on linux
2008-08-12 Jonathan Rosserintroduce new yuvReader that uses mmap rather than...
2008-08-12 Jonathan Rossersmall changes
2008-08-12 Jonathan Rosserremove unnecessary mutex from videoTransport
2008-08-11 Jonathan Rosserclean up whitespace
2008-07-23 David Flynn[dirac] Add vague support for --loop=0 and -q options
2008-07-23 David FlynnFix command line handling
2008-07-23 David Flynn[dirac] Rework of reader to remove external dirac_parse...
2008-07-11 Jonathan Rosserallow explicit switching between user, video and comput...
2008-07-10 David Flynn[console] Added linux only console input method
2008-05-08 David Flynn[repo] Fix spurious executable files
2008-05-08 David Flynn[GLSL] Fix {i420,uyvy} deinterlacing
...
heads
15 years ago master