README
上传用户:aoeyumen
上传日期:2007-01-06
资源大小:3329k
文件大小:3k
源码类别:

DVD

开发平台:

Unix_Linux

  1. mpeg2dec - a free MPEG-2 video stream decoder
  2. Written by Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
  3. Contributions by:
  4. Real Ouellet <realo@sympatico.ca> - g200 fixes
  5. Brion Vibber <brion@gizmo.usc.edu> - x11 fixes
  6. Franck SICARD <Franck.Sicard@miniruth.solsoft.fr> - x11 fixes
  7. H}kan Hjort <d95hjort@dtek.chalmers.se> - Solaris fixes
  8. Didier Gautheron <dgautheron@magic.fr> - bug fixes
  9. (let me know if I've forgotten anyone)
  10. First of all, this is very early code. If you're not interested
  11. in hacking video codecs then there isn't much point in downloading
  12. it. Normally I wouldn't release something this early, but it seems
  13. like there is a lot of interested hackers out there so...
  14. mpeg2dec is the result of me attempting to re-write the slice 
  15. level and below code of the MPEG software simulation groups (MSSG)
  16. decoder. After a few days of pain I decided I was better off 
  17. re-writing the entire thing. I think my code is pretty easy to
  18. read and understand. I'd love to have some feedback on the design.
  19. Here's a hierarchy of how the code fits together:
  20. decode.c
  21. |--parse.c
  22. |-----bitstream.c
  23. |-----getvlc.c
  24. |-----stats.c
  25. |--mb_buffer.c
  26. |--idct.c
  27. |--motion_comp.c
  28. |--display_*.c
  29. For each frame, decode.c uses parse.c to stuff macroblocks into the
  30. macroblock buffer (mb_buffer.c). When this buffer is full or the frame
  31. is done, the main decoding pipeline (idct, motion_comp) 
  32. is run over the contents of the buffer.
  33. Modules with optimized code for a particular architecture have an
  34. _foo suffix (like idct_mmx.c). The appropriate code is selected
  35. at runtime in the case of instructions that aren't always available
  36. supported (like 3dnow or SSE). The philosophy is "one binary->one
  37. architecture".
  38. Stuff that works
  39. - I-type Frame pictures 
  40. Stuff that is broken
  41. - field based pictures
  42. - P,B type pictures  (motion_comp.c needs some filling in)
  43. Stuff that needs to be done
  44. - fix the broken stuff (see above)
  45. - the MSSG getvlc.c needs to be sanitized and turned into vlc.c
  46. - motion.c need to be sanitized and pulled into parse.c 
  47.   (in cvs 'bp_frames_branch')
  48. - make it really fast :)
  49. Patches
  50. If you manage to fix bugs or add features to mpeg2dec, please send a 
  51. patch to <aholtzma@ess.engr.uvic.ca>. Patches must be in 'diff -urN'
  52. format. Also, if you send me assembly, it must be in AT&T format and
  53. preferably inline assembly. Special ISA extensions (like 3dnow,MMX)
  54. should be #ifdef'ed with the appropriate _ISA_, not the extension.
  55. You should also include a test to determine if you extension is present
  56. and set the appropriate function pointers.
  57. How to use mga_vid from scratch
  58. 1. mknod /dev/mga_vid c 178 0
  59. 2. ./configure
  60. 3. if you have a g200 you might want to change the memory size in 
  61.    mga_vid.c to 8 megs.
  62. 4. make
  63. 5. su 
  64. 6. /sbin/insmod videodev; /sbin/insmod drivers/mga_vid.o  (you must have 
  65.    v4l built for your kernel)
  66. 7. ./mpeg2dec foo.mpeg2  (you're done!)
  67. Documentation
  68. If you need the mpeg-2 video spec, you can get it on www.wotsit.org
  69. (mpeg2-2.doc). 
  70. Aaron Holtzman,
  71. December 1999