直接代码:
int getFileSize(const char* sFile)
{
FILE* f = fopen(sFile, "rb");
fseek(f,0,SEEK_END);
int s = ftell(f);
fclose(f);
return s;
}
class CJpgQueue
{
public:
CJpgQueue()
{
}
~CJpgQueue()
{
}
void AppendPicFromFile(string szFile)
{
int s = getFileSize(szFile.c_str());
FILE* f = fopen(szFile.c_str(), "rb");
char* buffer = new char[s];
fread(buffer,1,s,f);
string data ;
data.append(buffer,s);
m_lstJpg.push_back(data);
delete[] buffer;
}
string* GetData(int i)
{
if (m_lstJpg.empty())
{
return NULL;
}
int index = i%m_lstJpg.size();
list<string>::iterator it;
int j = 0;
for (it=m_lstJpg.begin();it!=m_lstJpg.end();it++,j++)
{
if (index == j)
{
return &*it;
}
}
return NULL;
}
private:
list<string> m_lstJpg;
};
int read_src_frame(int i,CJpgQueue* q, AVPacket* packe