以编程方式控制 DirectVobSub 过滤器
Controlling DirectVobSub filter programmatically
我有一个基于 DirectShow 的播放器,它使用 DirectVobSub 来显示字幕。
我想要快捷方式来上下移动字幕同步。
这在 VobSub 对话中是可能的,但没有捷径。
我使用 Visual C++,现在我有 IBaseFilter 指针指向 VobSub 过滤器,我想我必须以某种方式调用该接口。有什么想法吗?
您应该能够使用来自 IBaseFilter
的常规 IUnknown::QueryInterface
获得 IDirectVobSub
和类似界面。
要获得这些接口的定义,通常需要首先检查用于构建过滤器的源代码(您是从某处获得的,对吧?)。虽然从另一个仓库复制一份也应该可以。
interface __declspec(uuid("EBE1FB08-3957-47ca-AF13-5827E5442E56"))
IDirectVobSub :
public IUnknown
{
STDMETHOD(get_FileName) (THIS_
WCHAR* fn // fn should point to a buffer allocated to at least the length of MAX_PATH (=260)
) PURE;
STDMETHOD(put_FileName) (THIS_
WCHAR* fn
) PURE;
我有一个基于 DirectShow 的播放器,它使用 DirectVobSub 来显示字幕。
我想要快捷方式来上下移动字幕同步。
这在 VobSub 对话中是可能的,但没有捷径。
我使用 Visual C++,现在我有 IBaseFilter 指针指向 VobSub 过滤器,我想我必须以某种方式调用该接口。有什么想法吗?
您应该能够使用来自 IBaseFilter
的常规 IUnknown::QueryInterface
获得 IDirectVobSub
和类似界面。
要获得这些接口的定义,通常需要首先检查用于构建过滤器的源代码(您是从某处获得的,对吧?)。虽然从另一个仓库复制一份也应该可以。
interface __declspec(uuid("EBE1FB08-3957-47ca-AF13-5827E5442E56"))
IDirectVobSub :
public IUnknown
{
STDMETHOD(get_FileName) (THIS_
WCHAR* fn // fn should point to a buffer allocated to at least the length of MAX_PATH (=260)
) PURE;
STDMETHOD(put_FileName) (THIS_
WCHAR* fn
) PURE;