VS2015 vcpkgsrv.exe进程CPU占用高的解决方法

是 VC 智能感知问题,可以禁了。
方法是: 菜单: 工具 -》 选项 -》 文本编辑器 -》 C++ -》 高级
右边 Intellisense false 改为 Ture
注意:此设置会导致无法使用代码高亮与智能提示

其他减少VS的CPU占用率的方法:
工具 -》 选项 -》 搜索codelens, 将 启用 取消勾选,重启VS
工具 -》 选项 -》 源代码管理 -》 当前源代码管理插件:无

FFmpeg新版API接口编译报错解决方法

PIX_FMT_YUV420P -> AV_PIX_FMT_YUV420P


'AVStream::codec': 被声明为已否决:
if(pFormatCtx->streams[i]->codec->codec_type==AVMEDIA_TYPE_VIDEO){
=>
if(pFormatCtx->streams[i]->codecpar->codec_type==AVMEDIA_TYPE_VIDEO){


'AVStream::codec': 被声明为已否决:
pCodecCtx = pFormatCtx->streams[videoindex]->codec;
=>
pCodecCtx = avcodec_alloc_context3(NULL);
avcodec_parameters_to_context(pCodecCtx, pFormatCtx->streams[videoindex]->codecpar);


'avpicture_get_size': 被声明为已否决:
avpicture_get_size(AV_PIX_FMT_YUV420P, pCodecCtx->width, pCodecCtx->height)
=>
#include "libavutil/imgutils.h"
av_image_get_buffer_size(AV_PIX_FMT_YUV420P, pCodecCtx->width, pCodecCtx->height, 1)


'avpicture_fill': 被声明为已否决:
avpicture_fill((AVPicture *)pFrameYUV, out_buffer, AV_PIX_FMT_YUV420P, pCodecCtx->width, pCodecCtx->height);
=>
av_image_fill_arrays(pFrameYUV->data, pFrameYUV->linesize, out_buffer, AV_PIX_FMT_YUV420P, pCodecCtx->width, pCodecCtx->height, 1);


'avcodec_decode_video2': 被声明为已否决:
ret = avcodec_decode_video2(pCodecCtx, pFrame, &got_picture, packet); //got_picture_ptr Zero if no frame could be decompressed
=>
ret = avcodec_send_packet(pCodecCtx, packet);
got_picture = avcodec_receive_frame(pCodecCtx, pFrame); //got_picture = 0 success, a frame was returned
//注意:got_picture含义相反


'av_free_packet': 被声明为已否决:
av_free_packet(packet);
=>
av_packet_unref(packet);



Xcode 编译 OpenCV3

下载CMake,https://cmake.org/download/
下载OpenCV源码,解压

====
GUI编译方法:
安装,启动CMake
Browse Source 指到OpenCV源码目录
Browse Build 指向一个新的目录,例如/Users/lee/Downloads/opencv-3.4.1/gui_release
Configure
选择Unix Makefiles
等待执行完毕
Generate

cd gui_release
make -j4
sudo make install
====

====
命令行编译方法:
安装,启动CMake,打开 Tools - How to install For Command Line Use,按照说明操作

cd /Users/lee/Downloads/opencv-3.4.1
mkdir release
cd release
cmake -G "Unix Makefiles" ..
make
sudo make install
====


====
在终端中使用:
mkdir TestOpenCV
cd TestOpenCV


vi CMakeLists.txt
#版本
cmake_minimum_required(VERSION 2.8)

#项目名称
project( test )

#设置OpenCV所在目录,为后面的find_package提供位置
#OpenCV_DIR为OpenCV源码编译后得到的文件夹(如上面的release目录)
set( OpenCV_DIR /Users/lee/Downloads/opencv-3.4.1/release )

#会在OpenCV所在目录查找配置文件OpenCVConfig.cmake
find_package( OpenCV REQUIRED )

#向工程添加源文件
add_executable( test main.cpp )

#添加链接库
target_link_libraries( test ${OpenCV_LIBS} )


vi main.cpp
#include 
using namespace cv;
int main(int argc, char** argv) {
    Mat image;
    image = imread("/Users/lee/Downloads/20180128214955.jpg", 1);
    namedWindow("Display Image", WINDOW_AUTOSIZE);
    imshow("Display Image", image);
    waitKey(0);
    return 0;
}


cmake .
make
./test
会显示对应的图片
====


====
在Xcode中使用:
创建C++项目
项目属性 - Build Settings - Search Paths
Header Search Path = /usr/local/include/
Library Search Path = /usr/local/lib
在项目下创建lib目录,Add Files To,Command+Shift+G,输入/Usr/local/lib,将所有不带箭头的文件添加进去

#include 
using namespace cv;
int main(int argc, char** argv) {
    Mat image;
    image = imread("/Users/lee/Downloads/20180128214955.jpg", 1);
    namedWindow("Display Image", WINDOW_AUTOSIZE);
    imshow("Display Image", image);
    waitKey(0);
    return 0;
}

编译运行
====