Rémi Bernon (@rbernon) commented about dlls/winegstreamer/media_sink.c:
- if (SUCCEEDED(IMFSample_GetSampleTime(sample, &time)))
- {
wg_sample->flags |= WG_SAMPLE_FLAG_HAS_PTS;
wg_sample->pts = time;
- }
- if (SUCCEEDED(IMFSample_GetSampleDuration(sample, &duration)))
- {
wg_sample->flags |= WG_SAMPLE_FLAG_HAS_DURATION;
wg_sample->duration = duration;
- }
- if (SUCCEEDED(IMFSample_GetUINT32(sample, &MFSampleExtension_CleanPoint, &value)) && value)
wg_sample->flags |= WG_SAMPLE_FLAG_SYNC_POINT;
- if (SUCCEEDED(IMFSample_GetUINT32(sample, &MFSampleExtension_Discontinuity, &value)) && value)
wg_sample->flags |= WG_SAMPLE_FLAG_DISCONTINUITY;
- return wg_muxer_push_sample(muxer, wg_sample);
Without a wg_sample_queue you need to release the wg_sample here, though you also need to remove zero-copy from the unix side as will complain otherwise.