Sooner than later:
- option to re-write time-stamps in the resulting MPEG. (based on GopFixup)

For the 0.9.1 release:
- cache packet information to a text file (.gop) for faster parse times
- save clip info (GOP indexes) for an mpeg (.clips)
- load GOPs during the original pass
- Fix plural forms:
    http://www.gnu.org/manual/gettext/html_mono/gettext.html#SEC150
- Fix GUI contexts:
    http://www.gnu.org/manual/gettext/html_mono/gettext.html#SEC151


For 0.9.2 release:
- create a command-line-editing interface (EDL?)
- make a "tests" directory and scripts to run GOPchop against
  - nice to have regression tests, etc.
  - would require the EDL to build files from the command line


There are various things I'd still like to do for GOPchop:

- distinguish between Frames and Fields (do I need to?)

- figure out how to get libvo window to auto-refresh on uncover

- add configurable options:
	- debug output of parser to file (default=off)
	- clip-save report to file (default=off)
	- remove leading B frames on a spliced open GOPs (default=yes)

- add warnings when MPEG2-PS format resists GOP closing or GOP splitting

- update libvo from mpeg2cat CVS? (make a script to do it?)

- change "Run" to "Run File"
- add "Run Clips"
	- this requires re-vamping the packet-tracking mechanisms so that
	  the GOP-type can arbitrarily change information within it's packet
	  temporarily.

- add "detailed" info section to info window.  For example,
	the clist should start with the "GOP" expanded to show
		Packets
		Pictures
		Audio
	each Packet list can be expanded to show each of the system packets
	each Picture item can be expanded to show each of the video packets
	each Audio item can be expanded to show each of the audio packets

- get audio playable.  Maybe figure out a way to link to/control mplayer?
	- this requires having both "seek to byte" and "show only X frames"
	  to work from the "slave" mode.  Source to mplayer didn't want
	  to do that.

- finish weird PES header flag parsers
	- or, optionally, totally skip header flags?  weaker parser, but
	  a faster parser maybe?  Or maybe disk will continue to be the
	  limiting factor?  Make this a configurable option?

- add time offset to scroll bar somewhere.  maybe in a centered box below
  the clip list?

- add time offsets to the clip list, along with GOP number

- detect non-MPEG2-PS files (or rather, detect MPEG1 files quickly)

- speed up the parser!  hehehe

- change mmap interface somehow to not require writable files
	- this will be addressed by the private GOP area changes mentioned
	  below.

- make clip list editable to hand-move start/end markers
	- maybe add a pair of arrow buttons to affect the currently
	  selected clip's start and end markers?

- create little "time" graphic for showing how long clips are in clist

- add "1 of 50..." info to Info box for GOP numbers.

- find a way to suppress repeated error messages?

Rearrange items:
- move GOP writer into GroupOfPictures Object?
- move GOP displayer into GOP Obj?
- privately allocate GOP area for header rewrites and B-Frame dropping?


LOW
- issue warning when trying to close/exit with clips still in list
- figure out how to measure time within spliced GOPs
- add "number" col to Info box
- change font in error box header
- figure out how to auto-resize the error message window
- add right-click pop-ups to Info clist for saving:
	- single GOP as MPEG2-PS file
	- single I-frame as jpg or something
	- audio packets of a GOP as a raw ES stream file

mpegcat
-------
- stream extraction
- sub-stream type extraction
        - for getting SPUs out
- i18n tagging

gtkspu
------
- i18n tagging




Thoughts

- I care about:
	- Pack's: they carry SCR: I shouldn't mess with this, they wrap:
	  - System packets: they carry rate & bounds
	  - VES packets: they define the video stream, and carry:
	    - SEQ headers
	    - GOP headers
	    - Picture headers
	  - other packets (audio, stuffing, whatever)

I must have a GOP before each I-frame.
I must have (or build) a SEQ header in front of each split, minimally, and
	in front of each GOP maximally.
I must include all AES Packs between GOPs in the prior GOP.
A System Header must follow the first Pack.  All System Headers must be the
        same.



I must build a table of:

System header locations, parent Pack, and length (correctable)
GOP header locations, parent Pack, and last seen SEQ
Picture header locations, parent Pack, and last seen GOP
SEQ header locations, and parent Pack
PES packet locations, and length (which must be corrected for dropped frames)
Pack packet locations, and length (which must be corrected for dropped frames)

I must re-write:
- GOP "closed" and "broken" flags
- VES to drop open-GOP B-frames following a GOP/I-frame
	- requires they are "exclusively" enclosed in Packs
- packet lengths where I need to

I could re-write:
- GOP time codes

When I write, I must write Packs.  Any added data (SEQ headers) will be added
either as:
- stand-alone Pack with stand-alone VES packet
- prepended to a VES packet, having both VES and Pack packets' length increased


