diff options
author | Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com> | 2008-05-07 14:39:45 +0000 |
---|---|---|
committer | Jan Schmidt <thaytan@noraisin.net> | 2009-05-16 01:29:18 +0100 |
commit | 1aa90c3ce12b56aa7a1c2a5cb7087a60b72c84a3 (patch) | |
tree | a913d296874ba615c11fc7dfc179556d21e9c76b | |
parent | edaeddd5d1fe2c84019de2a509a604eca74a0c5f (diff) | |
download | gst-plugins-bad-1aa90c3ce12b56aa7a1c2a5cb7087a60b72c84a3.tar.gz gst-plugins-bad-1aa90c3ce12b56aa7a1c2a5cb7087a60b72c84a3.tar.bz2 gst-plugins-bad-1aa90c3ce12b56aa7a1c2a5cb7087a60b72c84a3.zip |
[MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c
Original commit message from CVS:
* sys/directdraw/gstdirectdrawsink.c
(gst_directdraw_sink_buffer_alloc):
Reverting previous commit, it had it all mixed up, was for a different
patch (major automation screw-up). Sorry!
-rw-r--r-- | sys/directdraw/gstdirectdrawsink.c | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/sys/directdraw/gstdirectdrawsink.c b/sys/directdraw/gstdirectdrawsink.c index a8fe4eff..1dd334c2 100644 --- a/sys/directdraw/gstdirectdrawsink.c +++ b/sys/directdraw/gstdirectdrawsink.c @@ -572,8 +572,6 @@ gst_directdraw_sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf) { GstDirectDrawSink *ddrawsink = GST_DIRECTDRAW_SINK (bsink); - GstStructure *structure; - gint width, height; GstDDrawSurface *surface = NULL; GstFlowReturn ret = GST_FLOW_OK; GstCaps *buffer_caps = caps; @@ -582,14 +580,6 @@ gst_directdraw_sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, GST_CAT_INFO_OBJECT (directdrawsink_debug, ddrawsink, "a buffer of %u bytes was requested", size); - structure = gst_caps_get_structure (caps, 0); - if (!gst_structure_get_int (structure, "width", &width) || - !gst_structure_get_int (structure, "height", &height)) { - GST_WARNING_OBJECT (ddrawsink, "invalid caps for buffer allocation %" - GST_PTR_FORMAT, caps); - return GST_FLOW_UNEXPECTED; - } - g_mutex_lock (ddrawsink->pool_lock); /* Inspect our buffer pool */ @@ -601,8 +591,8 @@ gst_directdraw_sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, ddrawsink->buffer_pool); /* If the surface is invalid for our need, destroy */ - if ((surface->width != width) || - (surface->height != height) || + if ((surface->width != ddrawsink->video_width) || + (surface->height != ddrawsink->video_height) || (memcmp (&surface->dd_pixel_format, &ddrawsink->dd_pixel_format, sizeof (DDPIXELFORMAT)) || !gst_directdraw_sink_surface_check (ddrawsink, surface)) @@ -625,7 +615,9 @@ gst_directdraw_sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, HRESULT hres; DDSURFACEDESC2 surface_desc; DDSURFACEDESC2 *sd; + GstStructure *structure = NULL; + structure = gst_caps_get_structure (caps, 0); if (!gst_structure_get_int (structure, "depth", &depth)) { GST_CAT_DEBUG_OBJECT (directdrawsink_debug, ddrawsink, "Can't get depth from buffer_alloc caps"); @@ -681,7 +673,7 @@ gst_directdraw_sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, buffer_caps = copy_caps; buffercaps_unref = TRUE; /* update buffer size needed to store video frames according to new caps */ - size = width * height * (bpp / 8); + size = ddrawsink->video_width * ddrawsink->video_height * (bpp / 8); /* update our member pixel format */ gst_ddrawvideosink_get_format_from_caps (ddrawsink, buffer_caps, |