  OMS How-To
  http://www.linuxvideo.org/
  12/18
  |FJG (jeanne@mbox.kyoto-inet.or.jp)
  {F2001/01/18

  ŐVŁF Linux  DVD fĐ@ɂ(ł)ȒPɐ
  s܂B
  ______________________________________________________________________

  ڎ

  1. ͂߂
     1.1 ړI
     1.2 ӎ

  2. KvȊ
  3. CXg[
     3.1 J[l
     3.2 OMS Ƃ̑̃Cu肷

  4. oms RpC鏀
  5. CuRpC
  6. oms RpC
  7. CXg[mF
  8. ͂߂ċN
  9. ʓIȖ
     9.1 łȂ
     9.2 Segmentation faults
     9.3 DVDDB errors
     9.4 ɂĂ̖

  10. 悭鎿W(FAQ)
     10.1 Xv extension gĂ邩ǂ͂ǂ킩܂B
     10.2 ''xdpyinfo'' ƂR}h́AXvideo extension gĂ̂܂A o͂xA oms ̏o͂ Xvideo gĂȂ悤Ɍ܂B͂ ł傤B
     10.3 ATI J[hgĂ܂AXvideo T|[g𓾂ɂ͂ǂ悢łH
     10.4 play(Đ){^ oms NbV̂͂ȂłB
     10.5 OMS ̃RpC͂܂܂ANƎ悤ȃG[ ܂B
     10.6 oms RpCƂɁA''unresolved symbol''ƂG[܂A ȂłB
     10.7 ͂vO}ł͂܂񂪁Ä萫ƃlbg[N̂߂ɁA *nix (󒍁FUNIX n )gĂ܂BOMS ̃oCifBXgr[V ͂ǂȂ̂܂B
     10.8 OMS RpCƁA''Warnings being treated as errors''( )Ƃs \AꂪsǍRpC~Ă܂܂Bǂ ΂܂܂B

  ______________________________________________________________________

  1.  ͂߂

  1.1.  ړI

  ̖̕ړI Linux  DVD fĐ@ɂďǂĐ
  邱ƂłBłȌɂ悤Ǝv܂A킩ɂ
  Ⴂ΁Am点ΏC܂B₪΁Alivid-
  user-subscribe@linuxvideo.org <mailto:livid-user-
  subscribe@linuxvideo.org>livid-dev-subscribe@linuxvideo.org ɁA{
  Ȃ email 𑗂΁Alivid-dev [OXgɓo^ł܂B

  󒍁F̕ LiViD Projects JĂ OMS-HOWTO ̓{ł
  B OMS (Open Media System)́AXJĂAXXV
  Ă܂BĂ̓̕e͎ɂȂƎv܂
  A Linux  DVD g߂̂ƂĂLvȏ񂪊܂܂Ă܂B̕
  Qlɂꍇ́A킹Ď̂ƂɂŐVKmF
  B
  Oms How To

  쌠ƏW

  ̃}jÁAgp͂܂񂪁Â悤ȐڂŁASA
  邢͈ꕔ𕡐Ă܂܂B

  o  q̒쌠Ɋւ钍ӂƂ̋ɂĂ̒ӂ́ASA邢
     Iȕɂ̂܂ܓYtȂ΂܂B

  o  ǂ̂悤Ȗ|hdAzzOɏʂŒ҂ɋ𓾂
     ΂܂B

  o  ̈̕ꕔzzȂÅ̕Słłw
     ĂȂ΂΂܂BɁASł肷@
     ĂȂ΂܂B

  o  K؂ȈpłȂAɎȂɑ̎dňꕔ̏Љ
     邢͈pƂĕʂ̂͂܂܂B

  ړIŎgpȂÂ悤ȋKɂĂ̗OF߂܂B
  ɘAĐq˂ĂB̂悤Ȑ́Aw⋳҂𐧌
  ̂ł͂ȂA҂ی삷邽߂̂̂łB̕ɂǂ̂悤
  \[XR[h(̕ SGML ŏĂ͕̂ʂƂ)AGNU ʌ
  gp_񏑂Ƃɂ܂BGNU ʌgp_񏑂́ÂƂ
  납Amj}X FTP œł܂B the GNU archive
  <ftp://ftp.gnu.org/GNU/COPYING>

  1.2.  ӎ

  ŏɂ̕AێĂ Nathan Rowlan nkr@helo.org
  <mailto:nkr@helo.org>ɊӁB݁AێǗLiViD T|[g`[Ɉ
  pĂ܂B

  OMS ̒҂Ƃ̑ LiViD ̊J҂Ɋӂ܂Bނ͎̑
  ̎ԂƓvWFNgɕ܂BɁA HOWTO 悢
  ̂ɂ邽߂ɋ͂𒸂lɊӂ܂B

  󒍁FOMS  Open Media System ̗łB

   HOWTO ̍\̂قƂǂ́AMark F. Komarinski ɂďꂽ
  HOWTO-HOWTO Qlɂ܂BHOWTO-HOWTO ͎̂Ƃ납ł
  B http://www.linuxdoc.org/ <http://www.linuxdoc.org/>

  2.  KvȊ

   HOWTO ͎̂悤Ȋz肵Ă܂B

  o  dvd ǂݏôɏ\Rs[^ (܂)T|[gꂽ dvd
     J[hKvłBݎ̃J[hT|[gĂ܂B

  o  Matrox g400/g200

     T|[gJ[ĥ͎̂ł:

  o  drr2/dxr3 cards

  o  3dfx cards

  o  Linux ̃J[l v2.2.x ܂͂ȏB DVD ioctls gݍ
     J[lB

  o  XFree86 3.3.X ܂́A 4.x

  o  Linux ŃT|[gĂ A DVD-ROM/RAM/RW hCu (قƂǂ̂
     ̂̓T|[gĂ܂)A܂ .vob T|[gẮB

  o  cvs client: http://www.cyclic.com/

  o  bash Ɖpɂđ̒m邱ƁB

  o  ɎCu[CXg[Ă邱ƁB (ʓIȃfBX
     gr[VpbP[WglɂƂĂ .nr ll -1

     o  GNU Libc 2.1 Aȏ̂́B (OMS RpC邽߂ɕK
        vŁȂ inttypes.h KvƂ̂܂B)

     o  GLIB >= 1.2.5

     o  GTK >= 1.2.5

     o  GDK PIXBUF >= 0.8.0

     o  libxml 1.0 (libxml2 ł͂܂)

     o  zlib

     o  XFree ̊JpCu

  3.  CXg[

  3.1.  J[l

  J[l͏ȂƂ 2.2.16 ̍ŐV̂̂ł邱ƁA܂́A2.4 n
  ł͂ł DVD ioctl support T|[gĂ܂AJ[l̃R
  tBO[VŁA MTRR support `FbNĂ邩ǂmFA
  ʏ̕@ŃRpCACXg[΂悢łB

  ݎgĂJ[lɃpb`ĂȂÂƂŁA
  http://www.kernel.dk/ <http://www.kernel.dk/> g̃J[lɑ΂
  pb`肵܂傤B

  J[l̃CXg[̕@pb`Ă@킩ȂȂA
  Kernel HOWTO ǂłB
  http://howto.tucows.com/LDP/HOWTO/Kernel-HOWTO.html
  <http://howto.tucows.com/LDP/HOWTO/Kernel-HOWTO.html>

  3.2.  OMS Ƃ̑̃Cu肷

  # export CVSROOT=:pserver:anonymous@cvs.linuxvideo.org:/cvs/livid
  # cvs login (pX[h͂vvgo烊^[L[܂)
  # cvs -z3 co -P libvo
  # cvs -z3 co -P libcss
  # cvs -z3 co -P oms

  ̂Ƃ납X[X tar {[肷邱Ƃł܂B
  http://www.linuxvideo.org/devel/dl.html
  <http://www.linuxvideo.org/devel/dl.html>

  ɁAlibvo œ悤Ƀpb`ꂽ Yoann mpeg2dec fBXg
  r[VKvłB̂Ƃ납ł܂B
  http://www.mandrakesoft.com/~yoann/projects/dl/
  <http://www.mandrakesoft.com/~yoann/projects/dl/> Ă鎞_
  ł́A_E[hȂĂ͂Ȃt@ĆA mpeg2dec-patched-for-
  new-libvo.1.tar.gz ƂOɂȂĂ܂B

  ӁF݂̂ƂAʏ MPEG2DEC fBXgr[V͎g܂
  BLCu\zȂ̂ŁALIBVO 𓮂Ƃł܂B

  4.  oms RpC鏀

  X4.0.1 gȂAOMS RpCOɁAroot Ŏ̍Ƃs
  ܂傤B́AX4.0.1 gȂAقƂǂ̐lɂƂĂƂĂd
  vȍƂłBقƂǂ̃fBXgr[Vł͋L`ŎɎ
  CuĂ܂B

  # cd /usr/X11R6/lib/
  # ld --whole-archive -shared -o libXv.so libXv.a
  # ld --whole-archive -shared -o libXxf86dga.so libXxf86dga.a
  # ldconfig

  5.  CuRpC

  libvo(rfIo̓Cu) rhACXg[܂

  # cd libvo
  # ./bootstrap
  # ./configure --disable-sdl
  # make install
  # ldconfig

  ̂ƂAW X11/DGA rfÎ悤ȁA\͏oȂ̂ŁA SDLŃR
  pC邱Ƃ́A߂܂BAX11/DGA ɖ肪
  ASDL g悤ɎĂB

  Yoann  mpeg2dec 𓀂ArhACXg[܂B

  # tar xzvf mpeg2dec-patched-for-new-libvo.1.tar.gz
  # cd mpeg2dec.patched.ok
  # ./bootstrap
  # ./configure
  # make install
  # ldconfig

  libcss rhACXg[܂(قƂǂ̏ꍇȂĂ܂
  A DVD ȂKvł)B

  # cd libcss
  # ./bootstrap
  # ./configure
  # make install
  # ldconfig

  6.  oms RpC

  # cd oms
  # ./boostrap
  # ./configure --help

  --help găIvVǂłBāAn[hEFAɓ
  Cӂ̃IvVg܂B

  # ./configure --disable-sdl

  ꂪȂƂA qKvȃCu₢킹邱Ƃ
  łȂƂ悤ȉG[\ȂAȂׂ̂͂ăCX
  g[܂B͂ƂĂdvłB

  # make

  # make install-strip
  # mkdir ~/.oms/
  # cp doc/config.sample ~/.oms/config

  g̃VXeɂ킹  /.oms/config ҏW܂(foCX̐ݒ
  mF)B܂Aoutput_audio_plugin  ''=sys''ɕύX܂B

  7.  CXg[mF

  # cd /usr/local/lib/libvo
  # ls display*so
  display_null.so*  display_sdl.so*  display_x11.so*
  # cd /usr/local/lib/oms/plugins/
  # ls audio*so
  audio_esd.so*  audio_null.so*  audio_sys.so*  audio_wav.so*

  ƂdvȂQ̂̂́Ax11  sys ŁAꂪ]݂̂̂łB

  8.  ͂߂ċN

  # oms

     o  playlist {^NbN܂B

     o  scan dvd NbN܂B

     o  cross fingers(K^F܂傤)

     o  ̂̂ЂƂ_uNbN܂B

  󒍁F scan dvd ŃXgꂽt@C_uNbNA
  skin  play {^Iق悢łB

  9.  ʓIȖ

  9.1.  łȂ

  oms ̉oƂłȂA邢͉ϑIɕςȂAesd 
  ĂȂ܂B

  # killall esd
   ܂́A
  # esdctl off

  ̑Ɋւm̖肪܂BCɂ́Â悤ɂ
  ĂB

     o  ݒ{^NbN(ftHg̃XLł͈ԍ̃{^
        )B

     o  I[fBIo͂܂݂IB

     o  xNbN(IĂ悤ɌȂ܂
        )B

     o  .nr bi 1

        x sys NbN(IĂ悤ɌȂ܂
        )B

     o  .nr ll -1

   DVD ̍Đŉo͂ł͂łB

  9.2.  Segmentation faults

  ݂̒iKł́ÂƂ segmentation faults ̌ɂȂĂ
  B

     o  x11 o͂̃vOCɐؑւƂB

     o  CXg[iKŁAld sĂȂB

  9.3.  DVDDB errors

  dvddb.c:_dvddbOpen#297    cannot open DVDDB cache file
  (DVDDB LbVt@CJ܂) (/home/user/.oms/dvddb/247C68D6)

  JƂłȂƂG[ot@CA邢́Aoms 
  C(nav_dvd.c)Ƃłł܂B

  9.4.  ɂĂ̖

  ɂẴR[h͂܂Ă܂̂ŁAI[fBIƃrfIŁA
  xōĐłȂƂƂɂĂ̓Rgł܂Bǂ
  䖝ĂˁB

  10.  悭鎿W(FAQ)

  10.1.  Xv extension gĂ邩ǂ͂ǂ킩܂B

  Q̃eXg@܂B

     o  ldd /usr/local/lib/oms/plugins/display_x11.so Ɠ͂ƁA
        libXv.so ɊւĎ̂悤ȉ\͂łB libXv.so =>
        /usr/X11/lib//libXv.so (0x40035000)

        (󒍁F ldd ̓Cüˑ֌W𒲂ׂ܂Bman ldd ŊmF
        B)

     o  oms NƂɁAʂɂ͎̂悤ȕ\o܂B

        $ oms
        Opened audio device "/dev/dsp"
        Using MMX for IDCT transform
        Using MMX for motion compensation
        LOG_ERROR       video_out_x11.c:_x11_setup#289  Xvideo image format: 0x32595559 (YUY2) packed
        LOG_ERROR       video_out_x11.c:_x11_setup#289  Xvideo image format: 0x32315659 (YV12) planar
        LOG_INFO        video_out_x11.c:_x11_setup#301  using Xvideo port 38 for hw scaling

     o  oms ĐA^ȉ摜ifj̏ꍇAu[obNɂȂ
        B

  10.2.

  Xvideo extension [hƎv邢̃rfIJ[h
  A܂T|[gĂ܂Boms ̏o͂ŉȂ
  AXvideo {Ƀ[hĂ邩ǂ邽߂Ɏ̂悤ɂ
  ݂ĂB grep Xvideo /var/log/XFree86.0.log ŁA Xvideo ɂ
  ĉȂȂAg̃J[h̃`bvZbǵA܂T|[gĂ
  Ȃ̂ł傤BAATI ̃`bvZbǵAɂ̓T|[gĂ
  ܂񂪁Apb`Albgŉł傤B

  󒍁Fł́AXvideo extension ƏĂ܂A XVideo ł
  Ă݂ĂB҂̃Oł͎̂悤ȍs܂B

  grep XVideo XFree86.0.log ŁÂ悤ȍs܂B
        (II) Loading extension XVideo

  ܂A XFree86 X Video Extension (Xv) ɂĂ̏ڍׂ͎̂Ƃ
  (XFree86[tm] 4.0.2 ̕ł)B The XFree86 X Video Extension

  10.3.  ATI J[hgĂ܂AXvideo T|[g𓾂ɂ͂ǂ
  悢łH

  http://linuxvideo.org  gatos ZNV痘pł ati_xv Ƃ
  ÕhCo܂Bati_xv ͏ȂƂXFree86 (4.0.1)
  ati_drv.o hCou܂B XFree86 4.0.1 ̃\[XKvɂȂ
  ܂A肵ăCXg[鉿l͂ł傤B

  10.4.  play(Đ){^ oms NbV̂͂ȂłB

  oms ̉ʂJAconfig t@CĂB܂rfIo͕
  ĂB݂̂ƂAOMS ͗płhCofBXvC
  Ŏg܂Bg̃hCoɂȂĂƁA(ȂƂ)x11 h
  Cogݍ߂܂Bnull \ꂽo̓hCoɂȂĂ
  A /.oms/config  output_video_plugin ĂBXgɂȂ
  ̂ plugin ɐݒ肳ĂƁAoutput video plugin CXg[
  Ȃ̂ŁAoms ̓NbV܂(segfault)Bx11 ɐݒ肳ĂĂN
  bVȂA HowTo ɂ ''OMS RpC邽߂ɏ
  邱''̍ڂĂB

  10.5.  OMS ̃RpC͂܂܂ANƎ悤ȃG
  [ ܂B

  Gdk-CRITICAL **: file gdkwindow.c: line 1390 (gdk_window_get_size): assertion `window != NULL' failed.

  Gdk-CRITICAL **: file gdkpixmap.c: line 63 (gdk_pixmap_new): assertion `(width != 0) && (height != 0)' failed.

  Gdk-CRITICAL **: file gdkdraw.c: line 379 (gdk_draw_pixmap): assertion `drawable != NULL' failed.

  Gdk-CRITICAL **: file gdkwindow.c: line 1390 (gdk_window_get_size): assertion `window != NULL' failed.

  Gdk-CRITICAL **: file gdkdraw.c: line 379 (gdk_draw_pixmap): assertion `drawable != NULL' failed.

  Gdk-CRITICAL **: file gdkwindow.c: line 1390 (gdk_window_get_size): assertion `window != NULL' failed.

  Gdk-CRITICAL **: file gdkdraw.c: line 379 (gdk_draw_pixmap): assertion `drawable != NULL' failed.

   oms config(ʏ́A $HOME/.oms/config ɂ܂)t@C
  Ɛݒ肳ĂȂ̂łBskin ܂Ă܂B
   config.sample config ƂOŁA $HOME/.oms/config ɒu
  AŕҏWĎgƂł܂B̂悤ȃG[ skin 
  IĂȂ̂łBconfig file  skin=some A邢
  ́Askin=deepspace 錾sȂ΂܂BC
  ΁Aoms ͓͂łB

  10.6.  oms RpCƂɁA''unresolved symbol''ƂG[
  ܂A ȂłB

  ̃G[͒ʏ oms ł̕sSȈˑ֌WɌA邢
  ́AÂRpC[gƋN܂BG[ __*sdl* ̂悤Ȃ
  ȂA oms IIɖ]ނ̂Âo[W̏ꍇɋN܂B

  10.7.  ͂vO}ł͂܂񂪁Ä萫ƃlbg[
  N̂߂ɁA *nix (󒍁FUNIX n )gĂ܂BOMS ̃oCifBX
  gr[V ͂ǂȂ̂܂B

  ݂̂ƂAOMS ͂܂̊JiKɂ܂BXAR[hς
  ܂BOMS ̎dl̕ύX̑݊̂߁ARPM  .DEB ނAǂȃo
  CipbP[W܂܂B

  󒍁FJł̃oCi[pbP[W͂łɑ݂܂̂ŁAŐVm
  FĂB
  Oms How To

  10.8.  OMS RpCƁA''Warnings being treated as errors''( )
  Ƃs \AꂪsǍRpC~Ă܂
  ܂Bǂ ΂܂܂B

  D݂̃eLXgGfB^(Ƃ΁ApicoA viA joeA Code Commander 
  ) ŁAoms ̃fBNgɂݒt@CJ܂(configure Ƃ
  Õt@C)BT[`IvVgāA-Werror T܂Bs(
  ԂPӏ͂ł) -Werror 폜Aʏ ./configure
  --prefix=/usr ̂悤ɁA ēx configure s܂B̍ƂŁAׂ
   makefile S -Werror 菜Awarning oĂ OMS R
  pCł悤ɂ܂BWarning ̗ނ͉Q͂܂񂪁AJ҂
  `FbNł̂ Warning ̗ނô}Ă܂B

  {̕쐬ɂAZĒX̃XgłB肪
  ܂B

     o  Tsutomu Kawashima <kawawa@mail.interq.or.jp>

     o  Kazuyuki Okamoto <kokamoto@itg.hitachi.co.jp>

