avsync.h
上传用户:poi891205
上传日期:2013-07-15
资源大小:9745k
文件大小:2k
源码类别:

DVD

开发平台:

C/C++

  1. #ifndef __AVSYNC_H
  2. #define __AVSYNC_H
  3. //
  4. // when audio out of sync (with stc), update stc with
  5. // new pts (with some offset).
  6. //
  7. #define AVSYNC_ADJUST_STC_WITH_AUDIO_PTS
  8. //
  9. // STC_CLK
  10. // a 90 kHz system time counter/stamp
  11. //
  12. #define STC_CLK 90000
  13. #define INVALID_PTS (UINT64)-1
  14. #define B_FRAME_DELAY (UINT64)(3000)
  15. //
  16. // PACK_SCR_BUFFERING
  17. // NAVI_SCR_BUFFERING
  18. //
  19. // when pack_scr used to initialize STC (mpeg1 or mpeg2 svcd), 
  20. // we set STC to (pack_scr-PACK_SCR_BUFFERING) in order to 
  21. // compensate SCR to STC buffering effect
  22. //
  23. #define PACK_SCR_BUFFERING ((int)(0.15 * STC_CLK))
  24. #define NAVI_SCR_BUFFERING ((int)(0.10 * STC_CLK))
  25. //
  26. // SCR_MAX
  27. // 
  28. // used to control the bitstream enter the decoder time.
  29. // if the (SCR-STC) of the following packet is greater than
  30. // this value we will stop the bitstream incoming.
  31. //
  32. // PTS_JUMP: 2 (20011121)
  33. //
  34. #define AVSYNC_SCR_MAX ((int)( 0.1 * STC_CLK))
  35. #define AVSYNC_SCR_SETUP ((int)( 3.0 * STC_CLK))
  36. #define AVSYNC_SCR_JUMP_MAX ((int)(10.0 * STC_CLK))
  37. #define AVSYNC_PTS_JUMP_MAX ((int)( 2.0 * STC_CLK))
  38. #define AVSYNC_VPTS_JUMP_MAX ((int)(20.0 * STC_CLK))
  39. //
  40. // STC_PDIFF_SETUP
  41. // (PTSa - STC)
  42. // the difference of audio PTS and STC.  I think real
  43. // audio PTS is about 0.1s (CENTER) slower then we receive.
  44. // therefore when we receive PTSa=0.5s, that means it 
  45. // should enter decoder at about STC=0.4s.
  46. //
  47. // NDIFF:
  48. // audio is too slow. need to speed up??
  49. //
  50. #define AVD_STC_AUDIO_CENTER        ((int)( 0.10 * STC_CLK))
  51. #define AVD_STC_PDIFF_SETUP         ((int)( 2.0  * STC_CLK) + AVD_STC_AUDIO_CENTER)
  52. #define AVD_STC_NDIFF_SETUP         ((int)(-2.0  * STC_CLK) + AVD_STC_AUDIO_CENTER)
  53. #define AVD_STC_ASDIFF_WARNING      ((int)(0.5 * STC_CLK) + AVD_STC_AUDIO_CENTER)
  54. #define AVD_STC_AV_IN_SYNC          ((int)(0.7 * STC_CLK))
  55. //
  56. // (PTSv - STC)
  57. // video should be a little slow with audio since
  58. // audio has some delay buffer. i think -0.2 is a good 
  59. // value
  60. // (that is: WAIT<SKIP)
  61. //
  62. // DIFF_WAIT: when PTS-STC is greater than this value: wait
  63. // DIFF_SKIP: when PTS-STC is less than this value: skip
  64. //
  65. #define AVD_VIDEO_DIFF_WAIT ((int)(0.1 * STC_CLK))
  66. #define AVD_VIDEO_DIFF_SKIP ((int)(-0.80 * STC_CLK))
  67. //
  68. // AVD_PTS_OUT_OF_SYNC
  69. //
  70. // if the PTS-difference is greater than this value
  71. // then we will filter this out and record.  only 2
  72. // consecutive PTS (of the same kind) will take effect.
  73. //
  74. #define AVD_PTS_OUT_OF_SYNC ((int)(20.0 * STC_CLK))
  75. #endif/*__AVSYNC_H*/