amstream: Store parent as struct audio_stream in audio stream sample.
Signed-off-by: Anton Baskanov <baskanov@gmail.com> Signed-off-by: Zebediah Figura <z.figura12@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
18502ed9c6
commit
e7f0917665
|
@ -27,10 +27,31 @@ WINE_DEFAULT_DEBUG_CHANNEL(amstream);
|
|||
|
||||
static const WCHAR sink_id[] = L"I{A35FF56B-9FDA-11D0-8FDF-00C04FD9189D}";
|
||||
|
||||
struct audio_stream
|
||||
{
|
||||
IAMMediaStream IAMMediaStream_iface;
|
||||
IAudioMediaStream IAudioMediaStream_iface;
|
||||
IMemInputPin IMemInputPin_iface;
|
||||
IPin IPin_iface;
|
||||
LONG ref;
|
||||
|
||||
IMultiMediaStream* parent;
|
||||
MSPID purpose_id;
|
||||
STREAM_TYPE stream_type;
|
||||
CRITICAL_SECTION cs;
|
||||
IMediaStreamFilter *filter;
|
||||
|
||||
IPin *peer;
|
||||
IMemAllocator *allocator;
|
||||
AM_MEDIA_TYPE mt;
|
||||
WAVEFORMATEX format;
|
||||
FILTER_STATE state;
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
IAudioStreamSample IAudioStreamSample_iface;
|
||||
LONG ref;
|
||||
IMediaStream *parent;
|
||||
struct audio_stream *parent;
|
||||
IAudioData *audio_data;
|
||||
} IAudioStreamSampleImpl;
|
||||
|
||||
|
@ -146,7 +167,7 @@ static const struct IAudioStreamSampleVtbl AudioStreamSample_Vtbl =
|
|||
IAudioStreamSampleImpl_GetAudioData
|
||||
};
|
||||
|
||||
static HRESULT audiostreamsample_create(IAudioMediaStream *parent, IAudioData *audio_data, IAudioStreamSample **audio_stream_sample)
|
||||
static HRESULT audiostreamsample_create(struct audio_stream *parent, IAudioData *audio_data, IAudioStreamSample **audio_stream_sample)
|
||||
{
|
||||
IAudioStreamSampleImpl *object;
|
||||
|
||||
|
@ -158,7 +179,7 @@ static HRESULT audiostreamsample_create(IAudioMediaStream *parent, IAudioData *a
|
|||
|
||||
object->IAudioStreamSample_iface.lpVtbl = &AudioStreamSample_Vtbl;
|
||||
object->ref = 1;
|
||||
object->parent = (IMediaStream*)parent;
|
||||
object->parent = parent;
|
||||
object->audio_data = audio_data;
|
||||
|
||||
*audio_stream_sample = &object->IAudioStreamSample_iface;
|
||||
|
@ -166,27 +187,6 @@ static HRESULT audiostreamsample_create(IAudioMediaStream *parent, IAudioData *a
|
|||
return S_OK;
|
||||
}
|
||||
|
||||
struct audio_stream
|
||||
{
|
||||
IAMMediaStream IAMMediaStream_iface;
|
||||
IAudioMediaStream IAudioMediaStream_iface;
|
||||
IMemInputPin IMemInputPin_iface;
|
||||
IPin IPin_iface;
|
||||
LONG ref;
|
||||
|
||||
IMultiMediaStream* parent;
|
||||
MSPID purpose_id;
|
||||
STREAM_TYPE stream_type;
|
||||
CRITICAL_SECTION cs;
|
||||
IMediaStreamFilter *filter;
|
||||
|
||||
IPin *peer;
|
||||
IMemAllocator *allocator;
|
||||
AM_MEDIA_TYPE mt;
|
||||
WAVEFORMATEX format;
|
||||
FILTER_STATE state;
|
||||
};
|
||||
|
||||
static inline struct audio_stream *impl_from_IAMMediaStream(IAMMediaStream *iface)
|
||||
{
|
||||
return CONTAINING_RECORD(iface, struct audio_stream, IAMMediaStream_iface);
|
||||
|
@ -565,7 +565,7 @@ static HRESULT WINAPI audio_IAudioMediaStream_CreateSample(IAudioMediaStream *if
|
|||
if (!audio_data)
|
||||
return E_POINTER;
|
||||
|
||||
return audiostreamsample_create(iface, audio_data, sample);
|
||||
return audiostreamsample_create(This, audio_data, sample);
|
||||
}
|
||||
|
||||
static const struct IAudioMediaStreamVtbl audio_IAudioMediaStream_vtbl =
|
||||
|
|
Loading…
Reference in New Issue