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

DVD

开发平台:

C/C++

  1. #ifndef __FILE_IF_H__
  2. #define __FILE_IF_H__
  3. #include "avi_if.h"
  4. #include "file_var.h"
  5. #include "file_def.h"
  6. // macros for file_type
  7. #define RESET_FILE_TYPE() (file_type = FILE_TYPE_UNKNOWN)
  8. #define SET_FILE_TYPE(x) (file_type = (x))
  9. #define GET_FILE_TYPE(x) (file_type)
  10. #define IS_FILE_TYPE_AVI() (file_type == FILE_TYPE_AVI)
  11. #define IS_FILE_TYPE_ASF() (file_type == FILE_TYPE_ASF)
  12. #define IS_FILE_TYPE_QT() (file_type == FILE_TYPE_QT)
  13. // macros for file_media_support
  14. #define RESET_FILE_SUPPORT_MEDIA() (file_media_support = FILE_MODE_ALL)
  15. #define SET_FILE_SUPPORT_MEDIA(x) (file_media_support = (x))
  16. #define ADD_FILE_SUPPORT_MEDIA(x) (file_media_support|= (x))
  17. #define SUB_FILE_SUPPORT_MEDIA(x) (file_media_support &= ~(x))
  18. #define GET_FILE_SUPPORT_MEDIA() (file_media_support)
  19. #define FILE_AUDIO_SUPPORTED() ((file_media_support&FILE_SUPPORT_AUDIO) > 0)
  20. #define FILE_VIDEO_SUPPORTED() ((file_media_support&FILE_SUPPORT_VIDEO) > 0)
  21. #define FILE_SUPIC_SUPPORTED() ((file_media_support&FILE_SUPPORT_SUPIC) > 0)
  22. #define FILE_AVI_IDX1_SUPPORTED() ((file_media_support&FILE_SUPPORT_AVI_IDX1) > 0)
  23. // macros for file_media_flag
  24. #define RESET_FILE_MEDIA_FLAG() (file_media_flag = FILE_STRM_FLAG_NONE | FILE_AV_INTERLEAVED)
  25. #define SET_FILE_MEDIA_FLAG(x) (file_media_flag = (x))
  26. #define ADD_FILE_MEDIA_FLAG(x) (file_media_flag |= (x))
  27. #define SUB_FILE_MEDIA_FLAG(x) (file_media_flag &= ~(x))
  28. #define GET_FILE_MEDIA_FLAG() (file_media_flag)
  29. #define FILE_HAS_AUDIO() ((file_media_flag&FILE_AUDIO) > 0)
  30. #define FILE_HAS_VIDEO() ((file_media_flag&FILE_VIDEO) > 0)
  31. #define FILE_HAS_SUPIC() ((file_media_flag&FILE_SUPIC) > 0)
  32. #define FILE_UNSUPPORT_AUDIO() ((file_media_flag&FILE_SUPPORTED_AUDIO) == 0)
  33. #define FILE_UNSUPPORT_VIDEO() ((file_media_flag&FILE_SUPPORTED_VIDEO) == 0)
  34. #define FILE_UNSUPPORT_SUPIC() ((file_media_flag&FILE_SUPPORTED_SUPIC) == 0)
  35. #define IS_FILE_AUDIO_VBR() ((file_media_flag&FILE_AUDIO_VBR) > 0)
  36. #define IS_FILE_AV_INTERLEAVED() ((file_media_flag&FILE_AV_INTERLEAVED) > 0)
  37. // macros for file_play_state
  38. #define RESET_FILE_PLAY_STATE() (file_play_state = FILE_NORMAL_STATE)
  39. #define SET_FILE_PLAY_STATE(x) (file_play_state = (x))
  40. #define ADD_FILE_PLAY_STATE(x) (file_play_state |= (x))
  41. #define SUB_FILE_PLAY_STATE(x) (file_play_state &= ~(x))
  42. #define GET_FILE_PLAY_STATE() (file_play_state)
  43. #define IS_FILE_DROP_AUDIO() ((file_play_state&FILE_DROPA_STATE) > 0)
  44. #define IS_FILE_DROP_VIDEO() ((file_play_state&FILE_DROPV_STATE) > 0)
  45. #define IS_FILE_DROP_SUPIC() ((file_play_state&FILE_DROPS_STATE) > 0)
  46. // macros for file_error_flag
  47. #define IS_FILE_ERROR() (file_error_flag >= AVI_ERR_CNT_THRESHOLD)
  48. #define CLEAR_FILE_ERROR() (file_error_flag = 0)
  49. // APIs
  50. int file_init_playback(UINT32 msf, UINT32 len);
  51. int file_init_audio();
  52. int file_init_video();
  53. int file_init_supic();
  54. int file_set_audio_stream(int aud_strm_num);
  55. int file_set_video_stream(int vid_strm_num);
  56. int file_set_supic_stream(int sup_strm_num);
  57. //void calc_accm_audio_fPTS();
  58. int do_file_video();
  59. int do_file_audio();
  60. int do_file_drop();
  61. ifunc file_restruct_sync_table;
  62. ifunc5 file_preparser;
  63. u32func2 file_ready_to_jump;
  64. ifunc4 file_get_next_sync;
  65. ifunc2 file_init_audio_stream;
  66. ifunc2 file_init_video_stream;
  67. ifunc2 file_init_supic_stream;
  68. #if 0
  69. int file_preparser_init(UINT32 msf, UINT32 len, UINT32 mode);
  70. UINT32 file_set_aud_stream(int aud_strm_num);
  71. UINT32 file_set_vid_stream(int vid_strm_num);
  72. UINT32 file_set_sup_stream(int sup_strm_num);
  73. ifunc file_preparser;
  74. ifunc file_is_errored;
  75. ifunc file_clear_error;
  76. ifunc file_reset_buffer;
  77. ifunc file_sync_audio_buffer;
  78. ifunc2 file_set_audio_fPTS;
  79. ifunc2 file_set_goto;
  80. ifunc file_set_goto_next_frame;
  81. ifunc2 file_fast_get_next_I;
  82. ifunc avi_error_get_next_I;
  83. ifunc2 file_set_fast;
  84. ifunc2 file_set_slow;
  85. #endif
  86. #endif // __FILE_IF_H__