Initial upload of OD networked video player. More comments and bug fixes to come. I've included the various FFmpeg/OpenAL/OpenGL dlls required for building this VS project.
Removed sleep in main GL callback.
Moved pboMode declaration.
Refactored network time class (commented out used test code).
Additional check to the main audio playback function to ensure the video has reached the end before shutting down the streams.
Turned off logging.
Refactored gl skeleton.
Refactored ffmpeg class:
 - Removed deprecated functions.
 - modified video_refresh_timer_next to decrement the picture buffer size and added a special return if the video decoder has reached the end.
Added support for asynchronous pbo loading.
 - map buffers are now created on the main OpenGL context and placed on a ring buffer.
 - next they are updated on a seperate thread.
 - finally they are prepared and bound for rendering.
Added glfont class to main project (instead of including it from OD common)
Removed old used audio code.
Cleaning up code.
Fixed ifdef in frameloader class.
Refactored text rendering to help improve performance (now only text representing the debug variables are cleared/redrawn each frame).
main.cpp-:
 - OpenGL optimistations
   - Grouped opengl state changes (blending and color alterations) together to prevent unneccessary/costly switching.
   - Set the blend function once.
 - Reduced the update rate of fonts.
 - Added check to drawInitialText.

frameloader.h-:
 - added new fuction prototypes.

frameloader.cpp-:
 - Added stopAudioDecoder function to ensure proper destruction of the OpenAL environment.
 - Extra audio preprocessers.
 - Bug fix: if the video file cannot be read delete the video source.
 - Added pauseFrameReader to pause the packet reading thread.

pbo.cpp-:
 - Removed deprecated timer functions.
 - Initialised global arrays.
 - Added comments/spacing.
 - Refractoring.

ODFfmpegSource.h-:
 - added new fuction prototypes.

ODFfmpegSource.cpp-:
 - Added new isPaused boolean.
 - return false when av_open_input_file fails.
 - added check video_refresh_timer_next function to see if the decoder has reached the end.

videoplayback.h-:
 - added new external fuction prototypes.

videoplayback.cpp-:
 - Refactoring.
 - Added check to the seek video to ensure that the source is playing.
 - Added call to pause the frame reader thread.
 - Added call to shutdown the audio environment.
windowsglskeleton.cpp-:
 - Refactoring.
 - Changed mouse left key mapping to modify the global co-ordinates on an up event.
 - Modified the way in which player shuts down (now called from a single location before the GL window is destroyed)
 - Handle mouse wheel events.

main.cpp-:
 - Added mouse check for new timeline seeking feature.
 - Added a function to toogle v-sync.
 - Refactoring of variables.
 - Cleanup shutdown procedure - delete pbos, textures and freetype-gl fonts/buffers.
 - Added a new command line parameter to toggle broadcast audio functionality.
 - Added a new texture buffer for drawing the pts clock in the test pattern mode - so i can scale the drawing.
 - Check if OpenGL context supports non-power of two textures.
 - The current clock time used in test pattern mode, printing debug info and seeking are now consistent.
 - Window title set when a new video is loaded.

frameloader.cpp-:
 - Added critical sections for mutual exclusion.
 - Close reader semaphore handle when done.
 - Cleanup locks on shutdown.

netClockSync.h-:
 - added new fuction prototypes.

netClockSync.cpp-:
 - added new multicast address for broadcast mode.
 - determine minimum network latency.
 - set UDP connection to non blocking.
 - broke TCP and UDP processing into seperate threads so command processing is not blocked.
 - Removed sleep to prevent delays in updating the network clock.

constants.h-:
 - Added critical sections preprocessor option.

ODFfmpegSource.cpp-:
 - Added critical sections for mutual exclusion.
 - Added return check if the video queue cannot attain a packet.
 - Refactoring.
 - Added function to check if a video source contains an audio stream.

videoplayback.h-:
 - added new fuction prototypes.

videoplayback.cpp-:
 - Refactoring.
 - Added function to delete remaining pbos and textures upon shutdown.
 - Added a check to determine the target timer resolution of the windows system.
 - Added linker to windows multimedia system.
 - Changed the message command queue to work outside of networked mode. Extented to enable correctly initialise, shutdown and destroy OpenGL textures, pbos from the correct context.
 - Added code paths to test windows timers for pbo index updating.
 - Created a new thread for updating mapped pbo buffers (this could be elimated by decoding directly in the pbo).
 - Video timer delay is now calculated locally in the callback routine without accquiring the video source lock.
 - Created a new draw function to draw, map and unmap pbos.

 pbo.h-:
 - added new fuction prototypes.

pbo.cpp-:
 - Init pbo function now initialises locks and semaphores.
 - Added new function to delete pbos when a video is stopped.
 - Cleanup - destroy synchronization objects on shutdown.
 - Added asynchronous functions for mapping pbo buffers, updating the appropriate pointers, unmapping, incrementing and drawing pbos.
 - Added critical sections for mutual exclusion.
Merge branch 'master' of https://github.com/snowyoneill/NetworkVideoPlayer