//define
typedef struct
{
unsigned char* picture;
size_t *len;
}PICTURE;
PICTURE *m_p = NULL;
//function's implemation
PICTURE* CMpExtractInfo::getPicture()
{
if(m_p!=NULL)
{
delete [] m_p;
cout<<"******************delete m_p"<<endl;
m_p = NULL;
}
if(&m_tag==NULL)
{
return NULL;
}
else
{
m_p = new PICTURE;
ID3_Frame *tp_frame =m_tag.Find(ID3FID_PICTURE);
if (NULL != tp_frame)
{
qDebug()<<"getpicture here";
//tp_frame->Field(ID3FN_DATA).ToFile("output.bmp");
ID3_Field & tmp = tp_frame->Field(ID3FN_DATA);
m_p->len = new size_t(0);
*(m_p->len) = tp_frame->GetDataSize();
cout << " Len : " << *(m_p->len) << endl;
m_p->picture = new unsigned char[*(m_p->len) + 1]; //error here
memset(m_p->picture,0,*(m_p->len) + 1);
tmp.Get(m_p->picture, *(m_p->len) + 1);
return m_p;
}
}
}
reference size : www.id3.org
typedef struct
{
unsigned char* picture;
size_t *len;
}PICTURE;
PICTURE *m_p = NULL;
//function's implemation
PICTURE* CMpExtractInfo::getPicture()
{
if(m_p!=NULL)
{
delete [] m_p;
cout<<"******************delete m_p"<<endl;
m_p = NULL;
}
if(&m_tag==NULL)
{
return NULL;
}
else
{
m_p = new PICTURE;
ID3_Frame *tp_frame =m_tag.Find(ID3FID_PICTURE);
if (NULL != tp_frame)
{
qDebug()<<"getpicture here";
//tp_frame->Field(ID3FN_DATA).ToFile("output.bmp");
ID3_Field & tmp = tp_frame->Field(ID3FN_DATA);
m_p->len = new size_t(0);
*(m_p->len) = tp_frame->GetDataSize();
cout << " Len : " << *(m_p->len) << endl;
m_p->picture = new unsigned char[*(m_p->len) + 1]; //error here
memset(m_p->picture,0,*(m_p->len) + 1);
tmp.Get(m_p->picture, *(m_p->len) + 1);
return m_p;
}
}
}
reference size : www.id3.org