Commit e32a9afe authored by Piotr Caban's avatar Piotr Caban Committed by Alexandre Julliard

qcap: Add Avi Mux IConfigInterleaving::put_Interleaving implementation.

parent cde81264
...@@ -55,6 +55,9 @@ typedef struct { ...@@ -55,6 +55,9 @@ typedef struct {
ISpecifyPropertyPages ISpecifyPropertyPages_iface; ISpecifyPropertyPages ISpecifyPropertyPages_iface;
InterleavingMode mode; InterleavingMode mode;
REFERENCE_TIME interleave;
REFERENCE_TIME preroll;
AviMuxOut *out; AviMuxOut *out;
int input_pin_no; int input_pin_no;
AviMuxIn *in[MAX_PIN_NO-1]; AviMuxIn *in[MAX_PIN_NO-1];
...@@ -364,8 +367,14 @@ static HRESULT WINAPI ConfigInterleaving_put_Interleaving(IConfigInterleaving *i ...@@ -364,8 +367,14 @@ static HRESULT WINAPI ConfigInterleaving_put_Interleaving(IConfigInterleaving *i
const REFERENCE_TIME *prtInterleave, const REFERENCE_TIME *prtPreroll) const REFERENCE_TIME *prtInterleave, const REFERENCE_TIME *prtPreroll)
{ {
AviMux *This = impl_from_IConfigInterleaving(iface); AviMux *This = impl_from_IConfigInterleaving(iface);
FIXME("(%p)->(%p %p)\n", This, prtInterleave, prtPreroll);
return E_NOTIMPL; TRACE("(%p)->(%p %p)\n", This, prtInterleave, prtPreroll);
if(prtInterleave)
This->interleave = *prtInterleave;
if(prtPreroll)
This->preroll = *prtPreroll;
return S_OK;
} }
static HRESULT WINAPI ConfigInterleaving_get_Interleaving(IConfigInterleaving *iface, static HRESULT WINAPI ConfigInterleaving_get_Interleaving(IConfigInterleaving *iface,
...@@ -1616,7 +1625,7 @@ IUnknown* WINAPI QCAP_createAVIMux(IUnknown *pUnkOuter, HRESULT *phr) ...@@ -1616,7 +1625,7 @@ IUnknown* WINAPI QCAP_createAVIMux(IUnknown *pUnkOuter, HRESULT *phr)
return NULL; return NULL;
} }
avimux = HeapAlloc(GetProcessHeap(), 0, sizeof(AviMux)); avimux = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(AviMux));
if(!avimux) { if(!avimux) {
*phr = E_OUTOFMEMORY; *phr = E_OUTOFMEMORY;
return NULL; return NULL;
...@@ -1629,7 +1638,6 @@ IUnknown* WINAPI QCAP_createAVIMux(IUnknown *pUnkOuter, HRESULT *phr) ...@@ -1629,7 +1638,6 @@ IUnknown* WINAPI QCAP_createAVIMux(IUnknown *pUnkOuter, HRESULT *phr)
avimux->IMediaSeeking_iface.lpVtbl = &MediaSeekingVtbl; avimux->IMediaSeeking_iface.lpVtbl = &MediaSeekingVtbl;
avimux->IPersistMediaPropertyBag_iface.lpVtbl = &PersistMediaPropertyBagVtbl; avimux->IPersistMediaPropertyBag_iface.lpVtbl = &PersistMediaPropertyBagVtbl;
avimux->ISpecifyPropertyPages_iface.lpVtbl = &SpecifyPropertyPagesVtbl; avimux->ISpecifyPropertyPages_iface.lpVtbl = &SpecifyPropertyPagesVtbl;
avimux->input_pin_no = 0;
info.dir = PINDIR_OUTPUT; info.dir = PINDIR_OUTPUT;
info.pFilter = &avimux->filter.IBaseFilter_iface; info.pFilter = &avimux->filter.IBaseFilter_iface;
...@@ -1653,6 +1661,8 @@ IUnknown* WINAPI QCAP_createAVIMux(IUnknown *pUnkOuter, HRESULT *phr) ...@@ -1653,6 +1661,8 @@ IUnknown* WINAPI QCAP_createAVIMux(IUnknown *pUnkOuter, HRESULT *phr)
return NULL; return NULL;
} }
avimux->interleave = 10000000;
ObjectRefCount(TRUE); ObjectRefCount(TRUE);
*phr = S_OK; *phr = S_OK;
return (IUnknown*)&avimux->filter.IBaseFilter_iface; return (IUnknown*)&avimux->filter.IBaseFilter_iface;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment