ReactOS 0.4.17-dev-966-gf06eace
amstream_private.h File Reference
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "wtypes.h"
#include "wingdi.h"
#include "winuser.h"
#include "dshow.h"
#include "mmstream.h"
#include "austream.h"
#include "amstream.h"
Include dependency graph for amstream_private.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

HRESULT multimedia_stream_create (IUnknown *outer, void **out)
 
HRESULT AMAudioData_create (IUnknown *pUnkOuter, LPVOID *ppObj)
 
HRESULT filter_create (IUnknown *outer, void **out)
 
HRESULT ddraw_stream_create (IUnknown *outer, void **out)
 
HRESULT audio_stream_create (IUnknown *outer, void **out)
 

Function Documentation

◆ AMAudioData_create()

HRESULT AMAudioData_create ( IUnknown *  pUnkOuter,
LPVOID *  ppObj 
)

Definition at line 219 of file audiodata.c.

220{
222
223 TRACE("(%p,%p)\n", pUnkOuter, ppObj);
224
225 if (pUnkOuter)
227
228 if (!(object = calloc(1, sizeof(*object))))
229 return E_OUTOFMEMORY;
230
231 object->IAudioData_iface.lpVtbl = &AudioData_Vtbl;
232 object->ref = 1;
233
234 object->wave_format.wFormatTag = WAVE_FORMAT_PCM;
235 object->wave_format.nChannels = 1;
236 object->wave_format.nSamplesPerSec = 11025;
237 object->wave_format.wBitsPerSample = 16;
238 object->wave_format.nBlockAlign = object->wave_format.wBitsPerSample * object->wave_format.nChannels / 8;
239 object->wave_format.nAvgBytesPerSec = object->wave_format.nBlockAlign * object->wave_format.nSamplesPerSec;
240
241 *ppObj = &object->IAudioData_iface;
242
243 return S_OK;
244}
static const struct IAudioDataVtbl AudioData_Vtbl
Definition: audiodata.c:204
#define WAVE_FORMAT_PCM
Definition: constants.h:425
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define S_OK
Definition: intsafe.h:52
#define calloc
Definition: rosglue.h:14
#define TRACE(s)
Definition: solgame.cpp:4
#define CLASS_E_NOAGGREGATION
Definition: winerror.h:3771

◆ audio_stream_create()

HRESULT audio_stream_create ( IUnknown *  outer,
void **  out 
)

Definition at line 1389 of file audiostream.c.

1390{
1391 struct audio_stream *object;
1392
1393 if (outer)
1394 return CLASS_E_NOAGGREGATION;
1395
1396 if (!(object = calloc(1, sizeof(*object))))
1397 return E_OUTOFMEMORY;
1398
1399 object->IAMMediaStream_iface.lpVtbl = &audio_IAMMediaStream_vtbl;
1400 object->IAudioMediaStream_iface.lpVtbl = &audio_IAudioMediaStream_vtbl;
1401 object->IMemInputPin_iface.lpVtbl = &audio_meminput_vtbl;
1402 object->IPin_iface.lpVtbl = &audio_sink_vtbl;
1403 object->ref = 1;
1404
1406 list_init(&object->receive_queue);
1407 list_init(&object->update_queue);
1408
1409 TRACE("Created audio stream %p.\n", object);
1410
1411 *out = &object->IAMMediaStream_iface;
1412
1413 return S_OK;
1414}
static const IPinVtbl audio_sink_vtbl
Definition: audiostream.c:1224
static const IMemInputPinVtbl audio_meminput_vtbl
Definition: audiostream.c:1376
static const struct IAudioMediaStreamVtbl audio_IAudioMediaStream_vtbl
Definition: audiostream.c:772
static const struct IAMMediaStreamVtbl audio_IAMMediaStream_vtbl
Definition: audiostream.c:619
static void list_init(struct list_entry *head)
Definition: list.h:51
static IUnknown * outer
Definition: compobj.c:82
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
Definition: synch.c:687
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383

Referenced by multimedia_stream_AddMediaStream().

◆ ddraw_stream_create()

HRESULT ddraw_stream_create ( IUnknown *  outer,
void **  out 
)

Definition at line 1473 of file ddrawstream.c.

1474{
1475 struct ddraw_stream *object;
1476
1477 if (outer)
1478 return CLASS_E_NOAGGREGATION;
1479
1480 if (!(object = calloc(1, sizeof(*object))))
1481 return E_OUTOFMEMORY;
1482
1483 object->IAMMediaStream_iface.lpVtbl = &ddraw_IAMMediaStream_vtbl;
1484 object->IDirectDrawMediaStream_iface.lpVtbl = &ddraw_IDirectDrawMediaStream_Vtbl;
1485 object->IMemInputPin_iface.lpVtbl = &ddraw_meminput_vtbl;
1486 object->IPin_iface.lpVtbl = &ddraw_sink_vtbl;
1487 object->ref = 1;
1488
1489 object->format.width = 100;
1490 object->format.height = 100;
1491
1493 InitializeConditionVariable(&object->update_queued_cv);
1494 list_init(&object->update_queue);
1495
1496 TRACE("Created ddraw stream %p.\n", object);
1497
1498 *out = &object->IAMMediaStream_iface;
1499
1500 return S_OK;
1501}
static const IPinVtbl ddraw_sink_vtbl
Definition: ddrawstream.c:1255
static const struct IDirectDrawMediaStreamVtbl ddraw_IDirectDrawMediaStream_Vtbl
Definition: ddrawstream.c:755
static const struct IAMMediaStreamVtbl ddraw_IAMMediaStream_vtbl
Definition: ddrawstream.c:398
static const IMemInputPinVtbl ddraw_meminput_vtbl
Definition: ddrawstream.c:1460
VOID WINAPI InitializeConditionVariable(PCONDITION_VARIABLE ConditionVariable)
Definition: sync.c:22

Referenced by multimedia_stream_AddMediaStream().

◆ filter_create()

HRESULT filter_create ( IUnknown *  outer,
void **  out 
)

Definition at line 1088 of file filter.c.

1089{
1090 struct filter *object;
1091
1092 TRACE("outer %p, out %p.\n", outer, out);
1093
1094 if (outer)
1095 return CLASS_E_NOAGGREGATION;
1096
1097 if (!(object = calloc(1, sizeof(*object))))
1098 return E_OUTOFMEMORY;
1099
1100 object->IMediaStreamFilter_iface.lpVtbl = &filter_vtbl;
1101 object->IMediaSeeking_iface.lpVtbl = &filter_seeking_vtbl;
1102 object->refcount = 1;
1103 list_init(&object->free_events);
1104 list_init(&object->used_events);
1106 object->cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": MediaStreamFilter.cs");
1107
1108 TRACE("Created media stream filter %p.\n", object);
1109 *out = &object->IMediaStreamFilter_iface;
1110 return S_OK;
1111}
static const IMediaSeekingVtbl filter_seeking_vtbl
Definition: filter.c:1064
static const IMediaStreamFilterVtbl filter_vtbl
Definition: filter.c:824
BOOL WINAPI InitializeCriticalSectionEx(OUT LPCRITICAL_SECTION lpCriticalSection, IN DWORD dwSpinCount, IN DWORD flags)
Definition: sync.c:107
Definition: filter.c:165
#define DWORD_PTR
Definition: treelist.c:76
#define RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO
Definition: winnt_old.h:1156

◆ multimedia_stream_create()

HRESULT multimedia_stream_create ( IUnknown *  outer,
void **  out 
)

Definition at line 557 of file multimedia.c.

558{
560 HRESULT hr;
561
562 if (outer)
564
565 if (!(object = calloc(1, sizeof(*object))))
566 return E_OUTOFMEMORY;
567
568 object->IAMMultiMediaStream_iface.lpVtbl = &multimedia_stream_vtbl;
569 object->ref = 1;
570
571 if (FAILED(hr = CoCreateInstance(&CLSID_MediaStreamFilter, NULL,
572 CLSCTX_INPROC_SERVER, &IID_IMediaStreamFilter, (void **)&object->filter)))
573 {
574 ERR("Failed to create stream filter, hr %#lx.\n", hr);
575 free(object);
576 return hr;
577 }
578
579 /* The stream takes an additional reference to the filter. */
580 IMediaStreamFilter_AddRef(object->filter);
581
582 TRACE("Created multimedia stream %p.\n", object);
583 *out = &object->IAMMultiMediaStream_iface;
584
585 return S_OK;
586}
#define ERR(fmt,...)
Definition: precomp.h:57
#define free
Definition: debug_ros.c:5
HRESULT hr
Definition: delayimp.cpp:582
#define NULL
Definition: types.h:112
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, IUnknown *outer, DWORD cls_context, REFIID riid, void **obj)
Definition: combase.c:1685
#define FAILED(hr)
Definition: intsafe.h:51
static const IAMMultiMediaStreamVtbl multimedia_stream_vtbl
Definition: multimedia.c:534