BUGS - load/save dialog doesn't remember where we were last after exit - maybe make that be an option (to remember the location or not) - file/exit freaks out if we were running Sooner than later: - option to re-write time-stamps in the resulting MPEG. (based on GopFixup) For the 1.1.next release: - capture button down/up on the slider to disable auto refresh to make scrolling actually work sanely, now that run speed exists. - 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 1.1.next+1 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: - have a "last GOP" window while selecting start-frame of a clip - if FILE mtime is greater than .gop mtime, regenerate .gop file? - or, option to skip .gop reading (and regenerate) - option to save .gop stuff - report audio format (hard) - warn about saving a clip if the final position hasn't been saved (i.e., a clip has been "start"ed, but not "finish"ed.) - "run in reverse" - 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 ------- - i18n tagging (mpeg2consts.c too) gtkspu ------ - hunt for SPU within a file (or as some separate utility) - add "screen size" option to draw SPUs relative to an expected screen size - i18n tagging - don't load the entire file, load it as needed - bind arrows, space, and backspace to step forward/back through SPU seqs - use future "libmpeg2ps" to open an mpg instead of a ".spu" - get color info from the DVD files 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