[PATCH 2/4] quartz: Use own destory message in video window.
Preparation for the next commit. Signed-off-by: Akihiro Sagawa <sagawa.aki(a)gmail.com> --- dlls/quartz/window.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
Hi, While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check? Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=89994 Your paranoid android. === debiant2 (build log) === winegstreamer: error: avdec_mpeg2video0: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video0: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin2/GstDecodeBin:decodebin2/avdec_mpeg2video:avdec_mpeg2video0: winegstreamer: error: avdec_mpeg2video0: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video0: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin2/GstDecodeBin:decodebin2/avdec_mpeg2video:avdec_mpeg2video0: winegstreamer: error: avdec_mpeg2video0: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video0: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin2/GstDecodeBin:decodebin2/avdec_mpeg2video:avdec_mpeg2video0: winegstreamer: error: avdec_mpeg2video1: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video1: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin3/GstDecodeBin:decodebin3/avdec_mpeg2video:avdec_mpeg2video1: winegstreamer: error: avdec_mpeg2video1: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video1: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin3/GstDecodeBin:decodebin3/avdec_mpeg2video:avdec_mpeg2video1: winegstreamer: error: avdec_mpeg2video1: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video1: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin3/GstDecodeBin:decodebin3/avdec_mpeg2video:avdec_mpeg2video1: winegstreamer: error: avdec_mpeg2video0: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video0: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin2/GstDecodeBin:decodebin2/avdec_mpeg2video:avdec_mpeg2video0: winegstreamer: error: avdec_mpeg2video0: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video0: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin2/GstDecodeBin:decodebin2/avdec_mpeg2video:avdec_mpeg2video0: winegstreamer: error: avdec_mpeg2video0: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video0: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin2/GstDecodeBin:decodebin2/avdec_mpeg2video:avdec_mpeg2video0: winegstreamer: error: avdec_mpeg2video1: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video1: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin3/GstDecodeBin:decodebin3/avdec_mpeg2video:avdec_mpeg2video1: winegstreamer: error: avdec_mpeg2video1: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video1: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin3/GstDecodeBin:decodebin3/avdec_mpeg2video:avdec_mpeg2video1: winegstreamer: error: avdec_mpeg2video1: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video1: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin3/GstDecodeBin:decodebin3/avdec_mpeg2video:avdec_mpeg2video1: === debiant2 (build log) === winegstreamer: error: avdec_mpeg2video0: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video0: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin2/GstDecodeBin:decodebin2/avdec_mpeg2video:avdec_mpeg2video0: winegstreamer: error: avdec_mpeg2video0: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video0: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin2/GstDecodeBin:decodebin2/avdec_mpeg2video:avdec_mpeg2video0: winegstreamer: error: avdec_mpeg2video0: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video0: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin2/GstDecodeBin:decodebin2/avdec_mpeg2video:avdec_mpeg2video0: winegstreamer: error: avdec_mpeg2video1: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video1: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin3/GstDecodeBin:decodebin3/avdec_mpeg2video:avdec_mpeg2video1: winegstreamer: error: avdec_mpeg2video1: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video1: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin3/GstDecodeBin:decodebin3/avdec_mpeg2video:avdec_mpeg2video1: winegstreamer: error: avdec_mpeg2video1: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video1: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin3/GstDecodeBin:decodebin3/avdec_mpeg2video:avdec_mpeg2video1: winegstreamer: error: avdec_mpeg2video0: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video0: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin2/GstDecodeBin:decodebin2/avdec_mpeg2video:avdec_mpeg2video0: winegstreamer: error: avdec_mpeg2video0: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video0: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin2/GstDecodeBin:decodebin2/avdec_mpeg2video:avdec_mpeg2video0: winegstreamer: error: avdec_mpeg2video0: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video0: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin2/GstDecodeBin:decodebin2/avdec_mpeg2video:avdec_mpeg2video0: winegstreamer: error: avdec_mpeg2video1: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video1: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin3/GstDecodeBin:decodebin3/avdec_mpeg2video:avdec_mpeg2video1: winegstreamer: error: avdec_mpeg2video1: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video1: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin3/GstDecodeBin:decodebin3/avdec_mpeg2video:avdec_mpeg2video1: winegstreamer: error: avdec_mpeg2video1: No valid frames decoded before end of stream winegstreamer: error: avdec_mpeg2video1: ../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstBin:bin3/GstDecodeBin:decodebin3/avdec_mpeg2video:avdec_mpeg2video1:
Sorry for neglecting this series for a long time. I assumed it was causing test failures, but on further examination, all of the quartz failures seem to be preëxisting, and while I've never seen those GStreamer errors from the testbot before, they can't possibly be related to these patches. On 5/6/21 9:06 AM, Akihiro Sagawa wrote:
From: Akihiro Sagawa <sagawa.aki(a)gmail.com> Subject: [PATCH 2/4] quartz: Use own destory message in video window. Message-Id: <20210506230501.D291.375B48EC(a)gmail.com> Date: Thu, 06 May 2021 23:06:00 +0900
Preparation for the next commit.
Personally I'd be more inclined to just merge the two together; it's arguably clearer that way.
Signed-off-by: Akihiro Sagawa <sagawa.aki(a)gmail.com> --- dlls/quartz/window.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/dlls/quartz/window.c b/dlls/quartz/window.c index 3983d43b08f..bc34cd37cf9 100644 --- a/dlls/quartz/window.c +++ b/dlls/quartz/window.c @@ -20,6 +20,8 @@
#include "quartz_private.h"
+#define WM_QUARTZ_DESTROY (WM_USER + WM_DESTROY) + WINE_DEFAULT_DEBUG_CHANNEL(quartz);
static const WCHAR class_name[] = L"wine_quartz_window"; @@ -71,6 +73,9 @@ static LRESULT CALLBACK WndProcW(HWND hwnd, UINT message, WPARAM wparam, LPARAM if (window->default_dst) GetClientRect(window->hwnd, &window->dst); break; + case WM_QUARTZ_DESTROY: + DestroyWindow(hwnd); + return 0; }
return DefWindowProcW(hwnd, message, wparam, lparam); @@ -1251,7 +1256,7 @@ void video_window_cleanup(struct video_window *window) * it would become top-level for a brief period before being destroyed. */ SetWindowLongW(window->hwnd, GWL_STYLE, GetWindowLongW(window->hwnd, GWL_STYLE) & ~WS_CHILD);
- SendMessageW(window->hwnd, WM_CLOSE, 0, 0); + SendMessageW(window->hwnd, WM_QUARTZ_DESTROY, 0, 0); window->hwnd = NULL; } }
participants (3)
-
Akihiro Sagawa -
Marvin -
Zebediah Figura (she/her)