From: H}kan H. <d95...@dt...> - 2001-07-13 14:25:58
|
Hi Fri Jul 13 2001, Rich Wareham wrote: >=20 > On Fri, 13 Jul 2001, James Courtier-Dutton wrote: >=20 > > I few things: - > > 1) I think the cell output is off a bit. >=20 > Yup. Noticed that myself. I think It might be something to do the > difference between what ogle thinks is the cell start block and the > position libdvdread reads from. (IIRC, the cell start blocks stored in = the > IFO are offsets from the start of the IFO but libdvdread starts from th= e > beginning of the title VOBs). >=20 It is _not_. You could perhaps ask if you are uncertain about things. See this from VTS_02_0.IFO of 'The Matrix' which should clearly show that the sector does not include any offset from the start of the IFO. The Sector is offset from the start of the VTS_02_1.VOB (this is in title dom.). =20 Program 1 Entry Cell: 1 Cell: 1 00:00:12.01 @ 29.97 fps STC_discontinuty Start sector: 00000000 First ILVU end sector: 00000000 End sector: 000010a5 Last VOBU start sector: 0000107e Cell: 1 has VOB ID: 1, Cell ID: 1 If you want the offset from the start of the IFO you must add VTSTT_VOBS offset found in vtsi_mat (the very fist structure in the IFO). VTS top level ------------- VTS Identifier: DVDVIDEO-VTS Last Sector of VTS: 002d3c43 Last Sector of VTSI: 0000004c Specification version number: 1.1 VTS Category: 00000000 End byte of VTSI_MAT: 000007ff Start sector of VTSM_VOBS: 0000004d Start sector of VTSTT_VOBS: 00011c0f =20 Though libdvdread reads at the exact offset that you give it (from the start of the file that you have told it to open). --snip-- >=20 > > 2) The best way for buttons would probably be taking mouse possition = input > > from the video_output windows. > > Then at least you could click on a button, and something should work. > > You then compare the mouse input against the the NAV packet's x,y > > width,hight button blocks. >=20 > I agree with that, its just I didn't have time last night to implement = the > required stuff in Xine for this. If no-one has any objections I'll try = to > make the Xv output plugin support the mouse event stuff in input API v2. >=20 The simplest, and the most correct, way is to instead handle keyboard input. Normal consumber DVD player don't have mouse input, this is just an extra feature of some computer DVD players. It's even so that some DVDs rely on this behaviour (i.e only haveing up, down, left, right and enter) and will look/behave rather strange when you use a mouse for selecting butons. > > We need to really think of what the best way for all this will be. > > I think that we should have 2 methods. > > 1) have a decoder plugin for nav. > > 2) have the input plugin for nav. >=20 > This is definately the way to go. The stuff implemented above was just = a > test to see how difficult parsing NAV packets is (not very :)). Its a > simple matter to move the code to demux_mpeg_block.c and pass it to a N= AV > plugin. My initial suspicions were confirmed in that there is no PTS > information in the NAV packets and so it may be useful (for sync purpos= es) > to assign them the nominal PTS of the last demuxed video/audio block > (maybe +1 so we get ordering correct). >=20 Sure there is PTS info in the nav packets. You might not want to use it but it's there. Also there is a flag in the cell playback table (in the IFO files) that tell you if there is a PTS discontinuity. --snip-- > > > > > > I can use the menus on all of my DVDs with this plugin so it should= work > > > on /one/ of someone elses :) > > > and indeed the code in Ogle works very good (I would hope :) so unless something broke it should be fine. Perhaps you'd want to help me packaged up the remaning parts of ogle so that it can be used by xine/gstreamer/vlc/.. there is much to be done here. I'd hate to see every player out there have a slightly different copy of the code. /Regards --=20 H=E5kan Hjort d95...@dt... |