1
|
1 ChangeLog:
|
|
2 ~~~~~~~~~~
|
|
3 v0.2: [first public release]
|
|
4 - parser: add support for VOB files (audio format still has problems...)
|
|
5 - libmpeg3: improvements in file-type detector, supporting mpegs with RIFF hdr
|
|
6 - libmpeg3: improvements on mpeg3_read_program() to handle damaged files better
|
|
7 - libmpeg3: new functions for separated PTS access: mpeg3_audio_pts() and
|
|
8 mpeg3_video_pts(), they return timestamp in seconds, format: double
|
|
9 - play: new audio-video sync method, using timestamps from streams.
|
|
10 much better, even on very damaged files!
|
|
11 - play: measuring of audio buffer size instead constant hard-wired value
|
|
12 - libmpeg3: more improvements to handle better strange files...
|
|
13 - play: drop timestamp correction if > 2 seconds (good for concatenated files)
|
|
14
|
|
15 v0.3:
|
|
16 - much better audio-video sync, using limited timestamp correction
|
|
17 - TVout directory added, with tools & scripts to setup TVout on Matrox cards
|
|
18 (it is able to play mpegs fullscreen on TV without using X)
|
|
19
|
|
20 v0.5:
|
|
21 - integrating dvdview for video decoding
|
|
22 (still using libmpeg3 for system stream parsing and audio decoding)
|
|
23 -> not works... some variable randomly changes (uninitialized pointers
|
|
24 in dvdview??? c++/c mixing problem?)
|
|
25
|
|
26 v0.6:
|
|
27 - new player from scratch, using my mp3lib for audio, parser.c for demuxing.
|
|
28 integrated dvdview is still buggy...
|
|
29
|
|
30 v0.7: [second edition]
|
|
31 - dvdview as separated process, using FIFOs for communication.
|
|
32 - some fixes in dvdview/system/sysdec1.cc, improved re-syncing on reset
|
|
33 - double-buffering support into dvdview's mga_vid class (and some
|
|
34 changes in the mga_vid kernel module too!)
|
|
35 - EOF problem solved
|
|
36 - background playing option (using MGA Color-Keying and xsetroot)
|
|
37 - rebuild README, added Standard Disclaimer section
|
|
38
|
|
39 v0.71:
|
|
40 - better missing-stream detection (counting only the real packets)
|
|
41 - check for file and missing streams before fork()
|
|
42 - fixed ugly byteorder bug when reading header dword
|
|
43 - new system stream sync method (doesn't requires SYSTEM_HEADER_START_CODE)
|
|
44 - seeking (byte or second pos), works *only* with streams with immediate
|
|
45 SYSTEM_HEADER frames.
|
|
46
|
|
47 v0.8: [seeking works]
|
|
48 - implementing own video packet reader -> disabling the whole streaming part
|
|
49 of dvdview.
|
|
50 - saving system headers, and re-sent after starting dvdview (seeking/resync)
|
|
51 -> allow seeking in single-header mpeg files (contact2.mpg)
|
|
52 - advanced resync and seek_sec method, using video-packet type-checks
|
|
53 - fix read() problem, when not enough bytes available in fifo (see man 2 read)
|
|
54 - removed unused objects (postproc,options,streaming) from dvdview's Makefile
|
|
55 (smaller executable, faster compile)
|
|
56 - sec. and bytepos seek fixed, works well now.
|
|
57 - simple console gui, using my getch2 (from mailer3 source) for keyboard.
|
|
58 allows seek,pause,quit functions (for testing only)
|
|
59 it's time to begin develop some nice GUI with skins, plugins etc :)
|
|
60 - improved runtime seeking, added force_redraw variable, and PTS audio
|
|
61 correction after every seek.
|
|
62
|
|
63 v0.81:
|
|
64 - fps fixed (other than 25fps supported again)
|
|
65 - EOF handling fixed again
|
|
66 - nosound support (currently only system streams supported, not video-only)
|
|
67 also see -nosound commandline option
|
|
68 - mga_vid: changed mmap() to allow double buffering in 704x528
|
|
69 - mga_vid: double buffering is optional from now (dvdview option -db )
|
|
70 * it successfully plays .VOB files (without sound)
|
|
71 - PTS/DTS support in mpeg-2 system streams (.vob files)
|
|
72 - PCM audio (48kHz stereo, unsigned, swapped byteorder) playing implemented
|
|
73 * it "plays" .VOB files with PCM sound, but it's too sloooooow :(((
|
|
74 - some optimization of dvdview's bitstream handler (see FillBits & GetBitsFast)
|
|
75
|
|
76 v0.82: [VOB support]
|
|
77 - updated dvdview from current CVS version (1.2.0-pre) -> about 25% faster!!!
|
|
78 * it's now fast enough for VOB playback
|
|
79 - AC3 audio support (using Aaron Holtzman's libac3 from ac3dec package)
|
|
80 - new, simpler Makefile for libac3
|
|
81 - re-organized text files (README splitted to ChangeLog and AUTHORS)
|
|
82
|
|
83 v0.83: [ALSA support]
|
|
84 - some timing code to fix audio syncing with ALSA drivers (test it! I can't)
|
|
85 use -alsa cmdline option to enable this experimental code!
|
|
86 - cmdline option (-abs) for overriding audio buffer size (default: measured)
|
|
87 why is it needed? some audio drivers has bad implementaion of select(),
|
|
88 so measuring buffer size gives false result.
|
|
89 if you hear sound before picture window appears, then you should use this!
|
|
90
|
|
91 v0.84:
|
|
92 - multiple DVD audio channels/streams support (use -aid option to select chn.)
|
|
93 - cmdline option for maximum PTS time correction (-mc <value>)
|
|
94 - PTS sync code moved to frame display loop -> more precise timing
|
|
95 now it sync audio after every 5 decoded frames
|
|
96 - cmdline option for override frame rate (-fps <rate>)
|
|
97 some .VOB files has bad frame rate value in headers (why? any ideas?)
|
|
98 - ac3 audio seeking works (some hack in libac3's parse.c)
|
|
99
|
|
100 v0.85: [first non-experimental release]
|
|
101 - directory structure changed
|
|
102 - better documentation, added new INSTALL
|
|
103 - every Makefile uses OPTFLAGS environment variable, see INSTALL
|
|
104 - help (run mpg12play without any parameters or with -h/--help)
|
|
105 - fixed byte seeking (-sb)
|
|
106 - allow selecting mpeg audio channel, see -aid (streams 0x1C0-1DF)
|
|
107 - allow selecting video channel, see -vid (0x1E0-1EF)
|
|
108 - allow audio format override, see -afm
|
|
109 - new streaming system (with 4k buffering)
|
|
110 - initial VCD (Video CD) support, use -vcd to select track, and give
|
|
111 device name as filename (e.g.: mpg12play -vcd 2 /dev/cdrom)
|
|
112 Problems with dual streaming, it's very slow! reads every sectors twice...
|
|
113 - VCD cache system... -> solved dual (A+V) streaming slowdown
|
|
114
|
|
115 v0.86: [cleanup]
|
|
116 - last_frame_* thing removed + control fifo read() fixed -> better and
|
|
117 linear (no seek-back) resync if dvdview dies
|
|
118 - better nosound timing (uses -alsa timer), seeking works
|
|
119 - resync_to_pts eliminated (using new max_pts_correction)
|
|
120 - cleanups, error checks, small fixes in the whole player.c
|
|
121 - removed some unused old code
|
|
122 - exit code moved to exit_player(), removed redundancy, fixed kill order
|
|
123
|
|
124 v0.87:
|
|
125 - i've found the reason of bad fps value with some vob files...
|
|
126 the fps is correct, but the dvdview doesn't decode all the frames
|
|
127 (reads repeat_first_field flag but don't rely on it)
|
|
128 - new demuxer code: read & demux input stream only at once, and uses two
|
|
129 memory FIFO-s for packages. also new reader code, everyting named ds_*()
|
|
130 The new demuxer can autodetect video and audio stream ids, if not
|
|
131 specified with -aid / -vid option, and better implementation of -afm
|
|
132 - vcd cache is optional (and disabled by default), because unneccesary with
|
|
133 new demux/streaming code
|
|
134
|
|
135 v0.90pre:
|
|
136 - new codec added: mpeg2dec by Aaron Holtzman
|
|
137 after doing some fixes (see at bottom), it's able to play mpeg1/mpeg2 video
|
|
138 - FIFO API changed: after frame_complete command (0x0) the codec must
|
|
139 send the fps*10000 and the length*100 value. length is 1.00 for a simple
|
|
140 frame, and >=1 for mpeg2 fields (eliminates the fps problem)
|
|
141 Now, using mpeg2dec we are able to play .vob files with correct fps timing!
|
|
142 - better AC3 resync after seek (new func. in libac3: ac3_bitstream_reset())
|
|
143 using ac3_decode_frame() instead ds_fill_buffer() when syncing PTS
|
|
144
|
|
145 v0.90pre2:
|
|
146 - mpeg2dec integrated into player binary
|
|
147 - using pipe() instead of named pipes
|
|
148 - using shared memory (mmap(...MAP_ANON...)) for packet transfer to codec
|
|
149 - stream_select() thing removed
|
|
150 - some optimization in demuxer code
|
|
151 - measuring codec CPU usage (relative to video time!!!, so it can be >100%
|
|
152 on a slow system) This value must be <=100% for continous video playback.
|
|
153
|
|
154 v0.90pre3:
|
|
155 - ugly bug fixed causing packet loss at codec restarting
|
|
156 (i wrote control_fifo instead of control_fifo2 into codec controller)
|
|
157 - video init part moved to the player
|
|
158 - using shared memory for image buffers to avoid green flashes when
|
|
159 codec restarted...
|
|
160 - new shared memory allocation code (the mmap() thing worked only with
|
|
161 kernel 2.4.x). thanx to LGB for the info and help... see linux/shmem.[ch]
|
|
162 - config.h moved, Makefiles changed a bit (added libvo path, thanx to LGB)
|
|
163 you may select CPU extensions (3Dnow/MMX/SSE) *only* at config.h
|
|
164 - meaningfull error messages if video stream cannot be synced
|
|
165 (many user asked about "missing video stream" error...)
|
|
166
|
|
167 v0.90pre4:
|
|
168 - included new mpeg2dec source (with SSE idct code)
|
|
169
|
|
170 v0.90pre5:
|
|
171 - libvo: OpenGL video renderer code by me
|
|
172 - included new mpeg2dec and ac3dec from today CVS snapshot
|
|
173 - new docs: SPEED and MTRR
|
|
174 - seq. head processing and video init code moved into player.c, just
|
|
175 before fork()'ing, so the child inherits all this info!
|
|
176 - removed all sequenceheader[] code, it's unneeded now
|
|
177 - source cleanup, removed some debug printf()'s, old comments
|
|
178 - EOF problem seems to be solved (maybe at the cleanup???)
|
|
179 - implemented bitrate (and free framerate) reading into mpeg2dec/header.c
|
|
180 - seeking skip times are better, based on bitrate
|
|
181
|
|
182
|
|
183 Changed in libac3 source:
|
|
184 ~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
185 - ac3.h replaced with the old version from v0.6.0
|
|
186 - decode.c modified to fit my interface
|
|
187 - stats.h: use stats_* functions only if DEBUG defined
|
|
188
|
|
189 Changed in libmpeg2 source:
|
|
190 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
191 - header.c: implemented repeat_first_field thing (see picture.repeat_count)
|
|
192 - HACK_MODE set to 1 (default is 0, which works only with mpeg2 streams)
|
|
193 - decode.c: some changes added, active only if MPG12PLAY #defined
|
|
194 - header.c: implemented bitrate (and free framerate) reading
|
|
195
|
|
196 Changed in libvo source:
|
|
197 ~~~~~~~~~~~~~~~~~~~~~~~~
|
|
198 - fixed bug in mga_vid vo module: used dest_width/height instead src_*
|
|
199 (dst is important only for the card, we need (for memory, etc) the src size!)
|
|
200 - added OpenGL video renderer (based on x11 rendere and Pontscho's opengl code)
|
|
201
|
|
202 Changed in DVDview source:
|
|
203 ~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
204 main.cc: replaced with my code
|
|
205 Makefile: removed unneccesary objects, added optimization flags
|
|
206 output/out_mgavid.cc & .hh: added double-buffering and color-keying support
|
|
207 system/userpack.cc & .hh: new code, by me (interface to my packet reader)
|
|
208 video12/vdecoder.hh: added GetSeqHeader() function (for accessing FPS value)
|
|
209 video12/vdecoder.cc: commented out calls to PrintDataBin() (debug info only)
|
|
210
|
|
211 TODO:
|
|
212 ~~~~~
|
|
213 - multiple video packets (whole frame) transfer to codec - DONE
|
|
214 - B-frame skipping (DVD for slow systems)
|
|
215 - VCD support - DONE
|
|
216 - DVD Audio downsampling (for 44kHz cards)
|
|
217 - SEEKing in VOB files with AC3 sound (some hack needed in libac3) - DONE
|
|
218 - own AC3 frame reader -> better resync after seek - DONE
|
|
219 - player source is really ugly now... it's time to some cleanup - DONE?
|
|
220 - seek/resync without immediate SYSTEM_HEADER frames. - DONE
|
|
221 - end of file detecion !!! - DONE - NOT done (see matrix.vob!) - DONE
|
|
222 - other than 25fps movies - DONE
|
|
223 - test with mono sound - DONE (currently playing as stereo)
|
|
224 - nosound (no audio card or no audio stream) - DONE
|
|
225 - .vob support (non-crypted DVD/mpeg2 stream) - DONE
|
|
226 - AC3 and PCM audio support - DONE
|
|
227 - audio-only and video-only file support
|
|
228 - nice GUI (something new written in gtk or modify xmovie's gui)
|
|
229 - Xv support - DONE (libvo has it)
|
|
230 - easier compile, maybe new ./configure and makefiles - DONE?
|
|
231 - decss support (encrypted dvd)
|
|
232 - test speed with pgcc (does it worth?)
|