Piotr Caban : qcap: Add Avi Mux IConfigInterleaving:: put_Interleaving implementation.

Alexandre Julliard julliard at winehq.org
Tue Feb 25 16:58:15 CST 2014


Module: wine
Branch: master
Commit: e32a9afe65d042d2972da95dd603c6bf0acb0412
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=e32a9afe65d042d2972da95dd603c6bf0acb0412

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Tue Feb 25 12:21:59 2014 +0100

qcap: Add Avi Mux IConfigInterleaving::put_Interleaving implementation.

---

 dlls/qcap/avimux.c |   18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/dlls/qcap/avimux.c b/dlls/qcap/avimux.c
index 79e6368..4b3a443 100644
--- a/dlls/qcap/avimux.c
+++ b/dlls/qcap/avimux.c
@@ -55,6 +55,9 @@ typedef struct {
     ISpecifyPropertyPages ISpecifyPropertyPages_iface;
 
     InterleavingMode mode;
+    REFERENCE_TIME interleave;
+    REFERENCE_TIME preroll;
+
     AviMuxOut *out;
     int input_pin_no;
     AviMuxIn *in[MAX_PIN_NO-1];
@@ -364,8 +367,14 @@ static HRESULT WINAPI ConfigInterleaving_put_Interleaving(IConfigInterleaving *i
         const REFERENCE_TIME *prtInterleave, const REFERENCE_TIME *prtPreroll)
 {
     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,
@@ -1616,7 +1625,7 @@ IUnknown* WINAPI QCAP_createAVIMux(IUnknown *pUnkOuter, HRESULT *phr)
         return NULL;
     }
 
-    avimux = HeapAlloc(GetProcessHeap(), 0, sizeof(AviMux));
+    avimux = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(AviMux));
     if(!avimux) {
         *phr = E_OUTOFMEMORY;
         return NULL;
@@ -1629,7 +1638,6 @@ IUnknown* WINAPI QCAP_createAVIMux(IUnknown *pUnkOuter, HRESULT *phr)
     avimux->IMediaSeeking_iface.lpVtbl = &MediaSeekingVtbl;
     avimux->IPersistMediaPropertyBag_iface.lpVtbl = &PersistMediaPropertyBagVtbl;
     avimux->ISpecifyPropertyPages_iface.lpVtbl = &SpecifyPropertyPagesVtbl;
-    avimux->input_pin_no = 0;
 
     info.dir = PINDIR_OUTPUT;
     info.pFilter = &avimux->filter.IBaseFilter_iface;
@@ -1653,6 +1661,8 @@ IUnknown* WINAPI QCAP_createAVIMux(IUnknown *pUnkOuter, HRESULT *phr)
         return NULL;
     }
 
+    avimux->interleave = 10000000;
+
     ObjectRefCount(TRUE);
     *phr = S_OK;
     return (IUnknown*)&avimux->filter.IBaseFilter_iface;




More information about the wine-cvs mailing list