本文整理汇总了C++中AVCodec::encode方法的典型用法代码示例。如果您正苦于以下问题:C++ AVCodec::encode方法的具体用法?C++ AVCodec::encode怎么用?C++ AVCodec::encode使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AVCodec
的用法示例。
在下文中一共展示了AVCodec::encode方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SaveFrame
void CFFMPEGLoader::SaveFrame(int iFrame, const char *add) {
if(pFrame->linesize[0]==0) return;
FILE *pFile;
char szFilename[128];
int y;
UINT numBytes=avpicture_get_size(PIX_FMT_RGB24, pVCodecCon->width,
pVCodecCon->height)+100;
uint8_t *buffer2=(uint8_t *)av_malloc(numBytes*sizeof(uint8_t));
AVCodec* bmpCodec = avcodec_find_encoder(CODEC_ID_BMP);
AVCodecContext* bmpCodecContext = avcodec_alloc_context();
avcodec_open(bmpCodecContext, bmpCodec);
bmpCodecContext->height = pVCodecCon->height;
bmpCodecContext->width = pVCodecCon->width;
int encoded = bmpCodec->encode(bmpCodecContext, buffer2, numBytes,
pFrame);
avcodec_close(bmpCodecContext);
// Open file
sprintf(szFilename, "fr00000.bmp", add);
UINT mul=10000,pos=2;
while(mul>0) {
szFilename[pos++]=iFrame/mul+'0';
iFrame%=mul;
mul/=10;
}
string s=add;
s+=szFilename;
pFile=fopen(s.c_str(), "wb");
if(pFile==NULL)
return;
fwrite(buffer2, 1, encoded,pFile);
// Close file
fclose(pFile);
av_free(buffer2);
}