diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
commit | 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch) | |
tree | 46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/platform/graphics/gstreamer/ImageGStreamerCairo.cpp | |
parent | 32761a6cee1d0dee366b885b7b9c777e67885688 (diff) | |
download | WebKitGtk-tarball-master.tar.gz |
webkitgtk-2.16.5HEADwebkitgtk-2.16.5master
Diffstat (limited to 'Source/WebCore/platform/graphics/gstreamer/ImageGStreamerCairo.cpp')
-rw-r--r-- | Source/WebCore/platform/graphics/gstreamer/ImageGStreamerCairo.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/Source/WebCore/platform/graphics/gstreamer/ImageGStreamerCairo.cpp b/Source/WebCore/platform/graphics/gstreamer/ImageGStreamerCairo.cpp index b153f09ec..c55cfdf97 100644 --- a/Source/WebCore/platform/graphics/gstreamer/ImageGStreamerCairo.cpp +++ b/Source/WebCore/platform/graphics/gstreamer/ImageGStreamerCairo.cpp @@ -32,8 +32,9 @@ using namespace std; using namespace WebCore; -ImageGStreamer::ImageGStreamer(GstBuffer* buffer, GstCaps* caps) +ImageGStreamer::ImageGStreamer(GstSample* sample) { + GstCaps* caps = gst_sample_get_caps(sample); GstVideoInfo videoInfo; gst_video_info_init(&videoInfo); if (!gst_video_info_from_caps(&videoInfo, caps)) @@ -42,6 +43,7 @@ ImageGStreamer::ImageGStreamer(GstBuffer* buffer, GstCaps* caps) // Right now the TextureMapper only supports chromas with one plane ASSERT(GST_VIDEO_INFO_N_PLANES(&videoInfo) == 1); + GstBuffer* buffer = gst_sample_get_buffer(sample); if (!gst_video_frame_map(&m_videoFrame, &videoInfo, buffer, GST_MAP_READ)) return; @@ -60,7 +62,7 @@ ImageGStreamer::ImageGStreamer(GstBuffer* buffer, GstCaps* caps) RefPtr<cairo_surface_t> surface = adoptRef(cairo_image_surface_create_for_data(bufferData, cairoFormat, width, height, stride)); ASSERT(cairo_surface_status(surface.get()) == CAIRO_STATUS_SUCCESS); - m_image = BitmapImage::create(surface.release()); + m_image = BitmapImage::create(WTFMove(surface)); if (GstVideoCropMeta* cropMeta = gst_buffer_get_video_crop_meta(buffer)) setCropRect(FloatRect(cropMeta->x, cropMeta->y, cropMeta->width, cropMeta->height)); @@ -69,9 +71,7 @@ ImageGStreamer::ImageGStreamer(GstBuffer* buffer, GstCaps* caps) ImageGStreamer::~ImageGStreamer() { if (m_image) - m_image.clear(); - - m_image = 0; + m_image = nullptr; // We keep the buffer memory mapped until the image is destroyed because the internal // cairo_surface_t was created using cairo_image_surface_create_for_data(). |