/* Copyright (c) 2005 by Olivier Goffart ************************************************************************* * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ************************************************************************* */ #include "mimicwrapper.h" #include "libmimic/mimic.h" //#include #include #include MimicWrapper::MimicWrapper() : m_init(false) { m_mimctx=mimic_open(); } MimicWrapper::~MimicWrapper() { mimic_close(m_mimctx); } QPixmap MimicWrapper::decode(const QByteArray& data) { if(!m_init) { if(!mimic_decoder_init(m_mimctx, (guchar*)(data.data()))) { kdWarning(14140) << k_funcinfo << "Impossible to init decoder" << endl; return QPixmap(); } if (!mimic_get_property( m_mimctx, "buffer_size", &m_bufferSize) ) { kdWarning(14140) << k_funcinfo << "Impossible to get buffer size" << endl; return QPixmap(); } m_init=true; } QByteArray buff(m_bufferSize); if(!mimic_decode_frame(m_mimctx, (guchar*)(data.data()) , (guchar*)(buff.data()) ) ) { kdWarning(14140) << k_funcinfo << "Impossible to decode frame" << endl; return QPixmap(); } int width,height; mimic_get_property(m_mimctx, "width", &width); mimic_get_property(m_mimctx, "height", &height); QByteArray buff2(m_bufferSize*4/3); uint b2=0; for(uint f=0;f