On 4/9/20 10:23 AM, Vijay Kiran Kamuju wrote:
+typedef enum +{
- DVD_ResetOnStop = 1,
 - DVD_NotifyParentalLevelChange = 2,
 - DVD_HMSF_TimeCodeEvents = 3,
 - DVD_AudioDuringFFwdRew = 4,
 - DVD_EnableNonblockingAPIs = 5,
 - DVD_CacheSizeInMB = 6,
 - DVD_EnablePortableBookmarks = 7,
 - DVD_EnableExtendedCopyProtectErrors = 8,
 - DVD_NotifyPositionChange = 9,
 - DVD_IncreaseOutputControl = 10,
 - DVD_EnableStreaming = 11,
 - DVD_EnableESOutput = 12,
 
Stray spaces here.
- DVD_EnableTitleLength = 13,
 - DVD_DisableStillThrottle = 14,
 - DVD_EnableLoggingEvents = 15,
 - DVD_MaxReadBurstInKB = 16,
 - DVD_ReadBurstPeriodInMS = 17,
 - DVD_RestartDisc = 18,
 - DVD_EnableCC = 19
 +} DVD_OPTION_FLAG;
...
+cpp_quote("#include <pshpack1.h>") +typedef struct tagDVD_AudioAttributes +{
- DVD_AUDIO_APPMODE AppMode;
 - BYTE AppModeData;
 - DVD_AUDIO_FORMAT AudioFormat;
 - LCID Language;
 - DVD_AUDIO_LANG_EXT LanguageExtension;
 - BOOL fHasMultichannelInfo;
 - DWORD dwFrequency;
 - BYTE bQuantization;
 - BYTE bNumberOfChannels;
 - DWORD dwReserved[2];
 +} DVD_AudioAttributes;
+typedef struct tagDVD_KaraokeAttributes +{
- BYTE bVersion;
 - BOOL fMasterOfCeremoniesInGuideVocal1;
 - BOOL fDuet;
 - DVD_KARAOKE_ASSIGNMENT ChannelAssignment;
 - WORD wChannelContents[8];
 +} DVD_KaraokeAttributes;
+typedef struct tagDVD_TitleMainAttributes +{
- union
 - {
 DVD_TITLE_APPMODE AppMode;DVD_HMSF_TIMECODE TitleLength;- } DUMMYUNIONNAME;
 - DVD_VideoAttributes VideoAttributes;
 - ULONG ulNumberOfAudioStreams;
 - DVD_AudioAttributes AudioAttributes[8];
 - DVD_MultichannelAudioAttributes MultichannelAudioAttributes[8];
 - ULONG ulNumberOfSubpictureStreams;
 - DVD_SubpictureAttributes SubpictureAttributes[32];
 +} DVD_TitleAttributes; +cpp_quote("#include <poppack.h>")
I don't see any packing directives in Microsoft's headers for these structures. In fact, the Windows 10 SDK includes directives to ignore padding warnings.
...
+typedef struct tagDVD_DECODER_CAPS +{
- DWORD dwSize;
 - DWORD dwAudioCaps;
 - double dFwdMaxRateVideo;
 - double dFwdMaxRateAudio;
 - double dFwdMaxRateSP;
 - double dBwdMaxRateVideo;
 - double dBwdMaxRateAudio;
 - double dBwdMaxRateSP;
 - DWORD dwRes1 ;
 - DWORD dwRes2 ;
 
Stray spaces.
- DWORD dwRes3;
 - DWORD dwRes4;
 +} DVD_DECODER_CAPS;
...
+[
- local,
 - object,
 - uuid(a70efe61-e2a3-11d0-a9be-00aa0061be93),
 - pointer_default(unique)
 
Can you please keep indentation at a consistent 4 spaces?
+] +interface IDvdControl : IUnknown +{
- HRESULT TitlePlay(
 [in] ULONG ulTitle);
Please avoid Hungarian notation for parameter names outside of library blocks. There's also no need to put each parameter on a separate line, or to put spaces between each function.
- HRESULT ChapterPlay(
 [in] ULONG ulTitle,[in] ULONG ulChapter);
...
- HRESULT GetRoot(
 [out, size_is(ulBufSize)] LPSTR *pRoot,
This isn't a (double) pointer in my copy of the PSDK.
[in] ULONG ulBufSize,[out] ULONG *pulActualSize);+}
...
- HRESULT GetCmdFromEvent(
 [in] ULONG_PTR lParam1,
This is LONG_PTR in my copy of the PSDK.
[out] IDvdCmd **pCmdObj);- HRESULT GetDefaultMenuLanguage(
 [out] LCID *pLanguage);- HRESULT GetDefaultAudioLanguage(
 [out] LCID *pLanguage,[out] DVD_AUDIO_LANG_EXT *pAudioExtension);- HRESULT SelectDefaultSubpictureLanguage(
 [out] LCID *pLanguage,[out] DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension);- HRESULT GetDecoderCaps(
 [out] DVD_DECODER_CAPS *pCaps);- HRESULT GetButtonRect(
 [in] ULONG ulButton,[out] RECT *pRect);- HRESULT IsSubpictureStreamEnabled(
 [in] ULONG ulStreamNum,[out] BOOL *pbEnabled);+}
+[ +local, +object, +uuid(fcc152B6-f372-11d0-8e00-00c04fd7c08b), +pointer_default(unique)
Please indent these attributes, and avoid mixing case in GUID declarations.
+] +interface IDvdGraphBuilder : IUnknown +{
- HRESULT GetFiltergraph(
 [out] IGraphBuilder **ppGB);- HRESULT GetDvdInterface(
 [in] REFIID riid,[out] void **ppIF);- HRESULT RenderDvdVideoVolume(
 [in] LPCWSTR lpcwszPathName,[in] DWORD dwFlags,[out] AM_DVD_RENDERSTATUS *pStatus);+} diff --git a/include/strmif.idl b/include/strmif.idl index a06f99b751..38af866f47 100644 --- a/include/strmif.idl +++ b/include/strmif.idl @@ -27,5 +27,6 @@ import "objidl.idl";
#include <dyngraph.idl>
-/* TODO: #include <dvdif.h> */ #include <vmrender.idl>
+#include <dvdif.idl>
-- 2.26.0