From 584ac24ba01f0f33e4f2732c1a5b2da7769e79ab Mon Sep 17 00:00:00 2001 From: David Hoyt Date: Mon, 1 Feb 2010 16:26:36 -0800 Subject: [PATCH] dshowvideosink: don't crash on invalid AM_MEDIA_TYPE --- sys/dshowvideosink/dshowvideosink.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sys/dshowvideosink/dshowvideosink.cpp b/sys/dshowvideosink/dshowvideosink.cpp index 773387212f..bbde078f45 100644 --- a/sys/dshowvideosink/dshowvideosink.cpp +++ b/sys/dshowvideosink/dshowvideosink.cpp @@ -521,8 +521,15 @@ gst_dshowvideosink_window_thread (GstDshowVideoSink * sink) * of the video. */ RECT rect; - VIDEOINFOHEADER *vi = (VIDEOINFOHEADER *)sink->mediatype.pbFormat; + AM_MEDIA_TYPE pmt = (AM_MEDIA_TYPE)sink->mediatype; + VIDEOINFOHEADER *vi = (VIDEOINFOHEADER *)pmt.pbFormat; + if (vi == NULL) + { + GST_ELEMENT_ERROR (sink, RESOURCE, NOT_FOUND, ("Unknown media format"), (NULL)); + return NULL; + } + /* rcTarget is the aspect-ratio-corrected size of the video. */ width = vi->rcTarget.right + GetSystemMetrics (SM_CXSIZEFRAME) * 2; height = vi->rcTarget.bottom + GetSystemMetrics (SM_CYCAPTION) +