Rémi Bernon (@rbernon) commented about dlls/winegstreamer/wma_decoder.c:
- return E_NOTIMPL;
- struct wma_decoder *decoder = impl_from_IMediaObject(iface);
- HRESULT hr;
- TRACE("iface %p, flags %#lx, count %lu, buffers %p, status %p.\n", iface, flags, count, buffers, status);
- if (!decoder->wg_transform)
return DMO_E_TYPE_NOT_SET;
- if ((hr = wg_transform_read_dmo(decoder->wg_transform, buffers)) == MF_E_TRANSFORM_STREAM_CHANGE)
hr = wg_transform_read_dmo(decoder->wg_transform, buffers);
- if (SUCCEEDED(hr))
- {
/* WMA Lossless emits anything from 0 to 12 packets of output for each packet of input */
buffers[0].dwStatus |= DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE;
This doesn't look right. The flag should be set if the buffer was partially read already.