Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
3.1 KiB

  1. #pragma once
  2. //==========================================================================;
  3. //
  4. // Video Decoder Device abstract base class definition
  5. //
  6. // $Date: 28 Aug 1998 14:43:46 $
  7. // $Revision: 1.1 $
  8. // $Author: Tashjian $
  9. //
  10. // $Copyright: (c) 1997 - 1998 ATI Technologies Inc. All Rights Reserved. $
  11. //
  12. //==========================================================================;
  13. #include "viddefs.h"
  14. #include "mytypes.h"
  15. class CWDMVideoDecoder;
  16. class CVideoDecoderDevice
  17. {
  18. private:
  19. BOOL m_bOutputEnabledSet;
  20. CWDMVideoDecoder* m_pDecoder;
  21. public:
  22. CVideoDecoderDevice();
  23. virtual ~CVideoDecoderDevice();
  24. virtual int GetDefaultDecoderWidth() = 0;
  25. virtual int GetDefaultDecoderHeight() = 0;
  26. virtual void SetRect(MRect &) = 0;
  27. virtual void SetVBIEN(BOOL b) = 0;
  28. virtual void SetVBIFMT(BOOL b) = 0;
  29. virtual void SaveState() = 0;
  30. virtual void RestoreState(DWORD dwStreamsOpen = -1) = 0;
  31. void GetCrossbarProperty(PHW_STREAM_REQUEST_BLOCK);
  32. void SetCrossbarProperty(PHW_STREAM_REQUEST_BLOCK);
  33. virtual BOOL GoodPins(ULONG InPin, ULONG OutPin) = 0;
  34. virtual BOOL TestRoute(ULONG InPin, ULONG OutPin) = 0;
  35. virtual void Route(ULONG OutPin, ULONG InPin) = 0;
  36. virtual ULONG GetNoInputs() = 0;
  37. virtual ULONG GetNoOutputs() = 0;
  38. virtual ULONG GetPinInfo(KSPIN_DATAFLOW dir, ULONG idx, ULONG &related) = 0;
  39. virtual ULONG GetRoute(ULONG OutPin) = 0;
  40. virtual KSPIN_MEDIUM * GetPinMedium(KSPIN_DATAFLOW dir, ULONG idx) = 0;
  41. virtual ErrorCode SetVideoInput(Connector c) = 0;
  42. virtual NTSTATUS GetProcAmpProperty(ULONG, PLONG) = 0;
  43. virtual NTSTATUS SetProcAmpProperty(ULONG, LONG) = 0;
  44. void GetDecoderProperty(PHW_STREAM_REQUEST_BLOCK);
  45. virtual void GetVideoDecoderCaps(PKSPROPERTY_VIDEODECODER_CAPS_S) = 0;
  46. virtual DWORD GetVideoDecoderStandard() = 0;
  47. virtual void GetVideoDecoderStatus(PKSPROPERTY_VIDEODECODER_STATUS_S) = 0;
  48. virtual BOOL IsOutputEnabled() = 0;
  49. void SetDecoderProperty(PHW_STREAM_REQUEST_BLOCK);
  50. virtual BOOL SetVideoDecoderStandard(DWORD) = 0;
  51. virtual void SetOutputEnabled(BOOL) = 0;
  52. void SetOutputEnabledOverridden(BOOL bOutputEnabledSet)
  53. {
  54. m_bOutputEnabledSet = bOutputEnabledSet;
  55. }
  56. BOOL IsOutputEnabledOverridden()
  57. {
  58. return m_bOutputEnabledSet;
  59. }
  60. virtual void GetVideoPortProperty(PHW_STREAM_REQUEST_BLOCK pSrb) = 0;
  61. virtual void GetVideoPortVBIProperty(PHW_STREAM_REQUEST_BLOCK pSrb) = 0;
  62. virtual void Set16BitDataStream(BOOL b) = 0;
  63. virtual BOOL IsHighOdd() = 0;
  64. virtual void SetHighOdd(BOOL b) = 0;
  65. virtual void ConfigVPSurfaceParams(PKSVPSURFACEPARAMS pSurfaceParams) = 0;
  66. virtual void ConfigVPVBISurfaceParams(PKSVPSURFACEPARAMS pSurfaceParams) = 0;
  67. virtual int GetDecoderHeight() = 0;
  68. virtual void GetVideoSurfaceOrigin(int*, int*) = 0;
  69. virtual void GetVBISurfaceOrigin(int*, int*) = 0;
  70. void SetVideoDecoder(CWDMVideoDecoder* pDecoder)
  71. {
  72. m_pDecoder = pDecoder;
  73. }
  74. };