[Libreoffice-commits] core.git: Branch 'libreoffice-4-3' - avmedia/source

Zolnai Tamás tamas.zolnai at collabora.com
Mon Jul 21 01:26:32 PDT 2014


 avmedia/source/opengl/oglframegrabber.cxx |    7 ++++++-
 avmedia/source/opengl/oglwindow.cxx       |    7 ++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

New commits:
commit f3785c8532e627e4d9d0e7372213cffe67fdd96f
Author: Zolnai Tamás <tamas.zolnai at collabora.com>
Date:   Mon Jul 14 00:21:55 2014 +0200

    glTF: More rendering related error handling
    
    If any error occurs related to glTF rendering, a question
    mark is displayed at the place of the OpenGL window
    (Question mark is a general concept of media objects).
    
    Change-Id: Id7df5a47a4dd6832e640b3a7cb3c7712ebfb4408
    (cherry picked from commit 58fd5a6dd6d5d599df88c9fd4ed5257577562bd9)
    Reviewed-on: https://gerrit.libreoffice.org/10275
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/avmedia/source/opengl/oglframegrabber.cxx b/avmedia/source/opengl/oglframegrabber.cxx
index cca8cc0..2f76436 100644
--- a/avmedia/source/opengl/oglframegrabber.cxx
+++ b/avmedia/source/opengl/oglframegrabber.cxx
@@ -38,7 +38,12 @@ uno::Reference< css::graphic::XGraphic > SAL_CALL OGLFrameGrabber::grabFrame( do
 {
     boost::scoped_array<sal_uInt8> pBuffer(new sal_uInt8[m_rHandle.viewport.width * m_rHandle.viewport.height * 4]);
     glTFHandle* pHandle = &m_rHandle;
-    gltf_renderer_get_bitmap(&pHandle, 1, (char*)pBuffer.get(), GL_BGRA);
+    int nRet = gltf_renderer_get_bitmap(&pHandle, 1, (char*)pBuffer.get(), GL_BGRA);
+    if( nRet != 0 )
+    {
+        SAL_WARN("avmedia.opengl", "Error occured while rendering to bitmap! Error code: " << nRet);
+        return uno::Reference< css::graphic::XGraphic >();
+    }
     BitmapEx aBitmap = OpenGLHelper::ConvertBGRABufferToBitmapEx(pBuffer.get(), m_rHandle.viewport.width, m_rHandle.viewport.height);
     return Graphic( aBitmap ).GetXGraphic();
 }
diff --git a/avmedia/source/opengl/oglwindow.cxx b/avmedia/source/opengl/oglwindow.cxx
index 09a6333..72ccbfb 100644
--- a/avmedia/source/opengl/oglwindow.cxx
+++ b/avmedia/source/opengl/oglwindow.cxx
@@ -34,7 +34,12 @@ OGLWindow::~OGLWindow()
 void SAL_CALL OGLWindow::update() throw (css::uno::RuntimeException, std::exception)
 {
     m_rContext.makeCurrent();
-    gltf_prepare_renderer(&m_rHandle);
+    int nRet = gltf_prepare_renderer(&m_rHandle);
+    if( nRet != 0 )
+    {
+        SAL_WARN("avmedia.opengl", "Error occured while preparing for rendering! Error code: " << nRet);
+        return;
+    }
     gltf_renderer(&m_rHandle);
     gltf_complete_renderer(&m_rHandle);
     m_rContext.swapBuffers();


More information about the Libreoffice-commits mailing list