From: Rémi Bernon rbernon@codeweavers.com
Signed-off-by: Rémi Bernon rbernon@codeweavers.com --- dlls/winegstreamer/wg_sample.c | 94 +++++++++++++++++----------------- 1 file changed, 47 insertions(+), 47 deletions(-)
diff --git a/dlls/winegstreamer/wg_sample.c b/dlls/winegstreamer/wg_sample.c index 8879de6c232..b7fd9a002a5 100644 --- a/dlls/winegstreamer/wg_sample.c +++ b/dlls/winegstreamer/wg_sample.c @@ -32,7 +32,7 @@ struct wg_sample_queue struct list samples; };
-struct mf_sample +struct sample { IMFSample *sample; IMFMediaBuffer *media_buffer; @@ -40,39 +40,39 @@ struct mf_sample struct list entry; };
-HRESULT wg_sample_create_mf(IMFSample *sample, struct wg_sample **out) +HRESULT wg_sample_create_mf(IMFSample *mf_sample, struct wg_sample **out) { DWORD current_length, max_length; - struct mf_sample *mf_sample; + struct sample *sample; BYTE *buffer; HRESULT hr;
- if (!(mf_sample = calloc(1, sizeof(*mf_sample)))) + if (!(sample = calloc(1, sizeof(*sample)))) return E_OUTOFMEMORY; - if (FAILED(hr = IMFSample_ConvertToContiguousBuffer(sample, &mf_sample->media_buffer))) - goto out; - if (FAILED(hr = IMFMediaBuffer_Lock(mf_sample->media_buffer, &buffer, &max_length, ¤t_length))) - goto out; - - IMFSample_AddRef((mf_sample->sample = sample)); - mf_sample->wg_sample.data = buffer; - mf_sample->wg_sample.size = current_length; - mf_sample->wg_sample.max_size = max_length; - - TRACE("Created mf_sample %p for sample %p.\n", mf_sample, sample); - *out = &mf_sample->wg_sample; + if (FAILED(hr = IMFSample_ConvertToContiguousBuffer(mf_sample, &sample->media_buffer))) + goto fail; + if (FAILED(hr = IMFMediaBuffer_Lock(sample->media_buffer, &buffer, &max_length, ¤t_length))) + goto fail; + + IMFSample_AddRef((sample->sample = mf_sample)); + sample->wg_sample.data = buffer; + sample->wg_sample.size = current_length; + sample->wg_sample.max_size = max_length; + + *out = &sample->wg_sample; + TRACE("Created wg_sample %p for MF sample %p.\n", *out, mf_sample); return S_OK;
-out: - if (mf_sample->media_buffer) - IMFMediaBuffer_Release(mf_sample->media_buffer); - free(mf_sample); +fail: + if (sample->media_buffer) + IMFMediaBuffer_Release(sample->media_buffer); + free(sample); return hr; }
void wg_sample_release(struct wg_sample *wg_sample) { - struct mf_sample *mf_sample = CONTAINING_RECORD(wg_sample, struct mf_sample, wg_sample); + struct sample *sample = CONTAINING_RECORD(wg_sample, struct sample, wg_sample);
if (InterlockedOr(&wg_sample->refcount, 0)) { @@ -80,23 +80,23 @@ void wg_sample_release(struct wg_sample *wg_sample) return; }
- IMFMediaBuffer_Unlock(mf_sample->media_buffer); - IMFMediaBuffer_Release(mf_sample->media_buffer); - IMFSample_Release(mf_sample->sample); + IMFMediaBuffer_Unlock(sample->media_buffer); + IMFMediaBuffer_Release(sample->media_buffer); + IMFSample_Release(sample->sample);
- free(mf_sample); + free(sample); }
static void wg_sample_queue_begin_append(struct wg_sample_queue *queue, struct wg_sample *wg_sample) { - struct mf_sample *mf_sample = CONTAINING_RECORD(wg_sample, struct mf_sample, wg_sample); + struct sample *sample = CONTAINING_RECORD(wg_sample, struct sample, wg_sample);
/* make sure a concurrent wg_sample_queue_flush call won't release the sample until we're done */ InterlockedIncrement(&wg_sample->refcount); - mf_sample->wg_sample.flags |= WG_SAMPLE_FLAG_HAS_REFCOUNT; + sample->wg_sample.flags |= WG_SAMPLE_FLAG_HAS_REFCOUNT;
EnterCriticalSection(&queue->cs); - list_add_tail(&queue->samples, &mf_sample->entry); + list_add_tail(&queue->samples, &sample->entry); LeaveCriticalSection(&queue->cs); }
@@ -110,16 +110,16 @@ static void wg_sample_queue_end_append(struct wg_sample_queue *queue, struct wg_
void wg_sample_queue_flush(struct wg_sample_queue *queue, bool all) { - struct mf_sample *mf_sample, *next; + struct sample *sample, *next;
EnterCriticalSection(&queue->cs);
- LIST_FOR_EACH_ENTRY_SAFE(mf_sample, next, &queue->samples, struct mf_sample, entry) + LIST_FOR_EACH_ENTRY_SAFE(sample, next, &queue->samples, struct sample, entry) { - if (!InterlockedOr(&mf_sample->wg_sample.refcount, 0) || all) + if (!InterlockedOr(&sample->wg_sample.refcount, 0) || all) { - list_remove(&mf_sample->entry); - wg_sample_release(&mf_sample->wg_sample); + list_remove(&sample->entry); + wg_sample_release(&sample->wg_sample); } }
@@ -156,23 +156,23 @@ void wg_sample_queue_destroy(struct wg_sample_queue *queue) HRESULT wg_transform_push_mf(struct wg_transform *transform, struct wg_sample *wg_sample, struct wg_sample_queue *queue) { - struct mf_sample *mf_sample = CONTAINING_RECORD(wg_sample, struct mf_sample, wg_sample); + struct sample *sample = CONTAINING_RECORD(wg_sample, struct sample, wg_sample); LONGLONG time, duration; UINT32 value; HRESULT hr;
- if (SUCCEEDED(IMFSample_GetSampleTime(mf_sample->sample, &time))) + if (SUCCEEDED(IMFSample_GetSampleTime(sample->sample, &time))) { - mf_sample->wg_sample.flags |= WG_SAMPLE_FLAG_HAS_PTS; - mf_sample->wg_sample.pts = time; + sample->wg_sample.flags |= WG_SAMPLE_FLAG_HAS_PTS; + sample->wg_sample.pts = time; } - if (SUCCEEDED(IMFSample_GetSampleDuration(mf_sample->sample, &duration))) + if (SUCCEEDED(IMFSample_GetSampleDuration(sample->sample, &duration))) { - mf_sample->wg_sample.flags |= WG_SAMPLE_FLAG_HAS_DURATION; - mf_sample->wg_sample.duration = duration; + sample->wg_sample.flags |= WG_SAMPLE_FLAG_HAS_DURATION; + sample->wg_sample.duration = duration; } - if (SUCCEEDED(IMFSample_GetUINT32(mf_sample->sample, &MFSampleExtension_CleanPoint, &value)) && value) - mf_sample->wg_sample.flags |= WG_SAMPLE_FLAG_SYNC_POINT; + if (SUCCEEDED(IMFSample_GetUINT32(sample->sample, &MFSampleExtension_CleanPoint, &value)) && value) + sample->wg_sample.flags |= WG_SAMPLE_FLAG_SYNC_POINT;
wg_sample_queue_begin_append(queue, wg_sample); hr = wg_transform_push_data(transform, wg_sample); @@ -184,20 +184,20 @@ HRESULT wg_transform_push_mf(struct wg_transform *transform, struct wg_sample *w HRESULT wg_transform_read_mf(struct wg_transform *transform, struct wg_sample *wg_sample, struct wg_format *format) { - struct mf_sample *mf_sample = CONTAINING_RECORD(wg_sample, struct mf_sample, wg_sample); + struct sample *sample = CONTAINING_RECORD(wg_sample, struct sample, wg_sample); HRESULT hr;
if (FAILED(hr = wg_transform_read_data(transform, wg_sample, format))) return hr;
- IMFMediaBuffer_SetCurrentLength(mf_sample->media_buffer, wg_sample->size); + IMFMediaBuffer_SetCurrentLength(sample->media_buffer, wg_sample->size);
if (wg_sample->flags & WG_SAMPLE_FLAG_HAS_PTS) - IMFSample_SetSampleTime(mf_sample->sample, wg_sample->pts); + IMFSample_SetSampleTime(sample->sample, wg_sample->pts); if (wg_sample->flags & WG_SAMPLE_FLAG_HAS_DURATION) - IMFSample_SetSampleDuration(mf_sample->sample, wg_sample->duration); + IMFSample_SetSampleDuration(sample->sample, wg_sample->duration); if (wg_sample->flags & WG_SAMPLE_FLAG_SYNC_POINT) - IMFSample_SetUINT32(mf_sample->sample, &MFSampleExtension_CleanPoint, 1); + IMFSample_SetUINT32(sample->sample, &MFSampleExtension_CleanPoint, 1);
return S_OK; }