On Mon Oct 16 23:46:01 2023 +0000, Zebediah Figura wrote:
> Shouldn't we get an exact number of frames here? Or is that not
> consistent somehow?
Yes, it's inconsistent. Wine emits two frames; native only emits one, probably because the graph is paused.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3938#note_49354
On Mon Oct 16 23:46:02 2023 +0000, Zebediah Figura wrote:
> Can you please also check (at least the return value of)
> IMediaSample::GetMediaType()? I'm rather curious if it's updated or not.
It just returns S_FALSE every frame (which means unchanged since previous sample).
Sure, let's test it, no reason not to.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3938#note_49355
On Mon Oct 16 23:46:06 2023 +0000, Zebediah Figura wrote:
> Usually enum values are capitalized; also, _t is usually reserved for
> typedefs. That said, do we even want this enum? Is there any instance
> where we shouldn't just iterate over the whole array?
> Two of these formats are todo, but I think something like "todo_wine_if
> (i == 1 || i == 8)" would be fine.
Turns out that no, we don't. Every piece either should test every supported format, or uses only one format and doesn't care which, so it might as well use (or copy) the hardcoded YUY2 one. (Except the RGB8 check in init_video_mt, but I can just switch that to check something else.)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3938#note_49351
On Mon Oct 16 23:46:01 2023 +0000, Zebediah Figura wrote:
> Wait, so is the data here generated with ffmpeg or GStreamer?
Both. ffmpeg to generate a black video, then GStreamer to demux it and emit only the video elementary stream.
Guess I should rewrite it to GStreamer only.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3938#note_49350
On Mon Oct 16 23:45:52 2023 +0000, Zebediah Figura wrote:
> We have amt_from_wg_format(), that should be usable here.
Good point. It fills in a few fields in unexpected ways, but most are correct, so it's an improvement. And some of the incorrect fields look like omissions in that function, which are better fixed there.
I tried running some tests locally, to check if something depends on the previous definition, but one failed because I compiled Wine without SChannel, another hit an assertion because I compiled without Vulkan, and several of them create windows all over which steal focus and make it hard to do anything else on the computer. I'll just leave that check for the CI. (And hope I don't miss it between the flaky tests already in master.)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3938#note_49348
On Mon Oct 16 23:45:45 2023 +0000, Zebediah Figura wrote:
> This is correct, I think, but also orthogonal to the purpose of this
> patch. Can you please split this out into a separate patch?
I hope it doesn't mess with the decodebin chaining thing. But the mpegsplit and mpegvideo tests pass, so probably no big deal.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3938#note_49344
On Mon Oct 16 23:45:46 2023 +0000, Zebediah Figura wrote:
> Isn't this redundant with the same logic done in wg_parser_stream_seek()?
Only if wg_parser_stream_seek has access to the duration.
Which, uh, it does, so let's just force push that and pretend it didn't happen.
(On a totally related note, GST_ERROR/etc shouldn't end with \n. I'll go clean that up too.)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3938#note_49345
On Mon Oct 16 23:45:56 2023 +0000, Zebediah Figura wrote:
> Does the application actually use IAMStreamSelect::Info()? If so we
> should have tests for it. Also, ideally this'd be a separate patch.
> If not I'd just drop this hunk.
Does "it calls the function, but doesn't really do anything with the result" count? https://github.com/krkrz/krkr2/blob/dec49af97e174d31059c3ccd7efc700ba3c6b78…
It would be satisfied if IStreamSelect::Count was a semi-stub that just returns zero, but I suspect that's not the best idea.
But tests, yes, absolutely.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3938#note_49346
On Mon Oct 16 23:45:47 2023 +0000, Zebediah Figura wrote:
> That doesn't seem right. What is this doing?
It silences these warnings from the Wagamama demo:
```
(wine:1578450): GStreamer-CRITICAL **: 01:44:15.602: gst_event_new_qos: assertion 'diff >= 0 || -diff <= timestamp' failed
0:00:00.608062458 1578450 0x7f9190049ef0 ERROR WINE dlls/winegstreamer/wg_parser.c:486:wg_parser_stream_notify_qos: Failed to create QOS event.
(wine:1578450): GStreamer-CRITICAL **: 01:44:15.602: gst_pad_push_event: assertion 'GST_IS_EVENT (event)' failed
```
But like the format change thing, it doesn't seem to do any actual harm. And I agree it is a weird solution. I guess it's safest to remove it and leave it for later.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3938#note_49347