---------------------------
Fobs - 0.4.2 - 2007/?
---------------------------
- TODO
   *Improve a/v sync in playback
   *Improve a/v sync in encoding (when changing frame rate)
   *Handle multiple io protocols in fobs4jmf
   *HTTP may load the whole file if Duration is not included in format information.
   *Update OpenGL renderer to use new buffer passing mechanism.
   *Improve grab frame synchronization. Test synchronized blocks performance.

---------------------------
Fobs - 0.4.1 - 2006/12
---------------------------

- Fobs4JMF
  * Updates (2005/12/28)
    > StandAloneAudioCodec: included first experimental version (segfaults). 
      Related files: jmf-pi/stand_alone_codec.cpp and jmf-pi/com/omnividea/media/codec/audio/JavaDecoder.java
    > RTP support for MP4V (Scott Hays contribution). Package com.neon.
  * Changes submitted to the forum (2005/09/10) Anonymous
    > Renderes support FrameGrabbingControl
    > TODO: Synchronize image buffer to avoid data corruption
    > Better Datasource behavior
  * Changes submitted to the forum (2005/09/10) Scott
    > Minor fix in video.JavaDecoder when format comes with null size
  * Http protocol support (2005/09/08) jsanpedro
    > new datasource for supporting http streams.
    > seeking is supported, but very slow.
  *Stand alone codec (2005/09/15) jsanpedro
    > Better memory management (always releases buffers)
    > Throws away remaining parts of decoded packets (allows playing mp4 videos)
    > Can use native buffers (flag is the dts parameter... dirty, I know)
    > Uses RGBA which is faster
    > Java side now compatible with AWTRenderer and Java2DRenderer
  * Building support (2006/11/24) jsanpedro
    > New ffmpeg version compatible
    > gcc/g++ 4.1 compatible
	> new javac command line: uses -source 1.4 -target 1.4.2 params, which seems to improve compatibility with different versions of the JVM
  * Bug fixes (jsanpedro 2006/11/27)
    > Transcoder.cpp: when reencoding, the size of decoded audio frames wasn't checked leading to potential segfaults 
  * Documentation (jsanpedro 2006/11/28)
    > README file includes instructions to build 3rd party libraries in the different supported platforms, including: x264, xvid, faac, faad, vorbis, ogg, a52, lamemp3, and of course ffmpeg.
  * Java2DRenderer (jsanpedro, rhastings, keith 2007/01/10)
    > Code improved to use individual buffers and allow several renderers to be opened at the same time
    > Class now extends JPanel to take care of repaint events and refresh window properly

    

---------------------------
Fobs - 0.4.0 - 2005/08/29
---------------------------

- Fobs4JMF
 * New processor project by Masato Alemayehu
 * Improve rendering performance
	- Two new renderers: Java2D and OpenGL (thanks to Robert)
	- Use of native buffers to transmit frames (thanks to Masato)
	- Color Space Conversion in GPU
 * New Fobs Configuration class (com.omnividea.FobsConfiguration)
	- Allows to set the mode of opertation of Fobs (for better compatibility or performance)
 * New DataSource class
	- Seems to solve problems with paths containing blank spaces (thanks to Masato)
 * No more "OpenError: Not initialized" message
 * J2SE 1.5 supported
 * Seeking in audio streams improved
	- No sample decoding while seeking
 * Latest ffmpeg CVS snapshot seems to have some frame_rate detection problems that may affect encoding&decoding. Fobs4JMF works fine.
 * Encoder & Transcoder
	- Several bug fixes affecting resizing
	- DTS&PTS corrected using start_time from FormatContext
 * Skeleton for the stand alone audio codec


---------------------------
Fobs - 0.3pre2 - 2004
---------------------------

- Fobs4Jmf changes
 * Audio-only files suppported:
  + Tested with: ogg-vorbis, mp3, ac3, wav, m4a.
  + Some mp3 files don't seem to be ffmpeg compliant
  + Seeking works but it's not optimized
  + Flac files must be encapsulated in a file format
 * AC3 channel reduction working - DVDs can finally be played
  + Performance problems appear due to high video resolution (720x576 is too much for Java)
 * Improved rendering
  + Ffmpeg uses java buffers instead of temporal C++ buffers

- Fobs changes
 * Encoder bug fixes
  + A-V Sync is not working yet :(
 * Error messages
  + New method omnividea::fobs::getErrorMessage(ReturnCode ) to get information about an error code

- Ffmpeg Core
 * Now using latest CVS sanpshot (2004-12-17)
  + Solves issues with mov/mp4 files
  + New codecs support
  + av_seek_frame prototype changed: Fixes required in Decoder class

- Build system
 * Two new build options:
  + OPTIMIZATIONS = [yes|no] Compiles/Links C++ code using -O3
  + DEBUG_SYMBOLS = [yes|no] Compiles/Links C++ code using -g

- Binaries built using:
 * ffmpeg-20041217
   ./configure --enable-gpl --enable-mp3lame --enable-vorbis --enable-faac 
               --enable-mingw32 --enable-a52 --enable-pp --enable-faad 
               --extra-ldflags=-L/usr/local/lib 
               --extra-cflags=-I/usr/local/include
 * liba52 0.7.4
 * faac-1.24
 * lame-3.96.1
 * libogg-1.1.2
 * libvorbis-1.1.0
 * libfaad2-15092004

 Binaries are compiled using GPL libs, and so your code must be GPL!!

KNOWN ISSUES:
- j2sdk 1.5 does not work fine with JMF and Fobs.

TODO:
- Hardcoded return codes in jmf classes
- Javah automatic generation
- API to create DataSource/MediaLocator


---------------------------
Fobs - 0.3pre1 - 2004/09/14
---------------------------

This new Fobs release features:

- Encoding: Both for audio and video streams
 * Java NOT supported
 * Synchronization between streams is not implemented (quite some work to do here ;)
 * Only video files tested and working.
 * Fobs don't support advanced codec settings.
- Transcoding: Class to transcode media files.
 * To change the format of a media file programatically.
 * Input files can have both video and audio streams.
- JNI Improved binding

- Build process
 * Scons build environment updated (0.96.1)
 * Java packages are actually built. Jars are rebuilt when necessary.

- Ffmpeg version 0.49pre1 or above required!

- Codec stand-alone JMF classes. These classes allow to use custom
  datasources and other JMF functionality. Fully JMF compliant! 
  These classes were discarded because of issues between JMF parser and
  ffmpeg codecs, so use it with careful!
 * Only video decoder has been implemented: com.omnividea.media.codec.video.JavaDecoder

- I haven't fully tested it. That's why it is a pre-release.

- Bug Fixes:
 * Videos beggining with timestamps different that zero are correctly played.
 * Java DataSource issue in windows when using custom players. Special thanks go to Christian Berger!

-----------------------
Fobs - 0.2 - 2004/06/04
-----------------------

Building:
- The latest ffmpeg snapshot is now included in the source code package ($FOBS_HOME/ffmpeg). The building script uses this distribution as default. The FFMPEG_HOME parameter is still available (more info with 'buildFobs.sh --help').

- A new parameter is available in the building script: FOBS4JMF=yes|no. It allows to avoid the building of the Fobs4JMF plugin. Interesting if you don't have JAVA installed in your system.

- The binaries generated are now organized in a different fashion. All binaries are available in the '/lib' directory:
   lib/         ->   fobs library and headers (all you need to build your apps)
   lib/samples  ->   sample programs using fobs library 
   lib/fobs4jmf ->   fobs4jmf native&java libraries

Improvements:
- Code has changed to be compatible with the latest snapshot of ffmpeg (img_resample_full_init function).

Bug fixes:
- Potential infinite loop when opening certain corrupted videos.
  Fix: width&height test after getting parameters



-----------------------
Fobs - 0.1 - 2004/04/22
-----------------------

Initial release. See README for full details.
