技术标签: pjsip
1. SOURCES = *.cpp
1. SOURCES = hello.cpp
2. main.cpp
1. SOURCES+= hello.cpp
2. SOURCES +=main.cpp
1. CONFIG+= qt warn_on release
1. TARGET = filename
1. INTERFACES = filename.ui
1. win32 {
2. SOURCES += hello_win.cpp
3. }
1. !exists( main.cpp ) {
2. error( "No main.cpp file found")
3. }
1. win32 {
2. debug {
3. CONFIG += console
4. }
5. }
1. win32:debug {
2. CONFIG += console
3. }
1. qmake -oMakefile hello.pro
1. qmake -tvcapp -o hello.dsp hello.pro
1. LIBS += -L/usr/local/lib -lmath
1. INCLUDEPATH = c:/msdev/include d:/stl/include
1. INCLUDEPATH = c:/msdev/include \
2. d:/stl/include
1. extern "C" {
2. #include <ffmpeg/avcodec.h>
3. #include <ffmpeg/avformat.h>
4. }
1. INCLUDEPATH += C:\OpenCV\cv\include \
2. C:\OpenCV\cvaux\include \
3. C:\OpenCV\cxcore\include \
4. C:\OpenCV\otherlibs\highgui
5. LIBS += C:\OpenCV\lib\cv.lib \
6. C:\OpenCV\lib\cvaux.lib \
7. C:\OpenCV\lib\cxcore.lib \
8. C:\OpenCV\lib\highgui.lib \
1. INCLUDEPATH +=
2.
3. D:\Qt\2009.05\ffmpeg\include\libavcodec \
4. D:\Qt\2009.05\ffmpeg\include\libavdevice \
5. D:\Qt\2009.05\ffmpeg\include\libavfilter \
6. D:\Qt\2009.05\ffmpeg\include\libavformat \
7. D:\Qt\2009.05\ffmpeg\include\libavutil \
8. D:\Qt\2009.05\ffmpeg\include\libswscale \
9. D:\Qt\2009.05\ffmpeg\include \
10. LIBS +=
11.
12. D:\Qt\2009.05\ffmpeg\lib\avcodec.lib \
13. D:\Qt\2009.05\ffmpeg\lib\avdevice.lib \
14. D:\Qt\2009.05\ffmpeg\lib\avfilter.lib \
15. D:\Qt\2009.05\ffmpeg\lib\avformat.lib \
16. D:\Qt\2009.05\ffmpeg\lib\avutil.lib \
17. D:\Qt\2009.05\ffmpeg\lib\swscale.lib \
1. D:\Qt\2009.05\SDL\include \
2. D:\Qt\2009.05\SDL\lib\SDL.lib \
3. D:\Qt\2009.05\SDL\lib\SDLmain.lib \
1. #include <SDL.h>
2. #include <SDL_thread.h>
1. undefined reference to `qMain(int, char**)'
1. #include <QtGui/QApplication>
2. #include "mainwindow.h"
3. #include <stdio.h>
4. #include <QLabel>
5. #include <QWidget>
6.
7. extern "C"{
8. #include <avcodec.h>
9. #include <avformat.h>
10. #include <swscale.h>
11. #include <SDL.h>
12. #include <SDL_thread.h>
13. }
14.
15. #ifdef __MINGW32__
16. #undef main /* Prevents SDL from overriding main() */
17. #endif
18.
19. int main(int argc, char *argv[])
20. {
21. QApplication a(argc, argv);
22.
23. AVFormatContext *pFormatCtx;
24. int i, videoStream;
25. AVCodecContext *pCodecCtx;
26. AVCodec *pCodec;
27. AVFrame *pFrame;
28. AVPacket packet;
29. int frameFinished;
30. float aspect_ratio;
31. static struct SwsContext *img_convert_ctx;
32. static int sws_flags = SWS_BICUBIC;
33.
34. SDL_Overlay *bmp;
35. SDL_Surface *screen;
36. SDL_Rect rect;
37. SDL_Event event;
38.
39. MainWindow w;
40. QLabel *frame_pre;
41. frame_pre = new QLabel;
42. QWidget *widget_player;
43. widget_player = new QWidget();
44. widget_player->setAttribute(Qt::WA_PaintOnScreen);
45. widget_player->setAttribute(Qt::WA_NoSystemBackground);
46. widget_player->show();
47. w.show();
48. frame_pre->show();
49.
50. av_register_all();
51.
52. /*set sdl env*/
53. char variable[64];
54. #ifdef Q_OS_WIN
55. sprintf(variable, "SDL_WINDOWID=0x%lx", widget_player->winId());
56. #else
57. sprintf(variable, "SDL_WINDOWID=0x%lx", this->winId());
58. #endif
59. putenv(variable);
60.
61. if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER)) {
62. fprintf(stderr, "Could not initialize SDL - %s\n", SDL_GetError());
63. exit(1);
64. }
65.
66. // Open video file
67. if(av_open_input_file(&pFormatCtx, "D:\\Flyhigh.wmv", NULL, 0, NULL)!=0)
68. return -1; // Couldn't open file
69.
70. // Retrieve stream information
71. if(av_find_stream_info(pFormatCtx)<0)
72. return -1; // Couldn't find stream information
73.
74. // Dump information about file onto standard error
75. dump_format(pFormatCtx, 0, "D:\\Flyhigh.wmv", 0);
76.
77. // Find the first video stream
78. videoStream=-1;
79. for(i=0; i<pFormatCtx->nb_streams; i++)
80. if(pFormatCtx->streams[i]->codec->codec_type==CODEC_TYPE_VIDEO) {
81. videoStream=i;
82. break;
83. }
84. if(videoStream==-1)
85. return -1; // Didn't find a video stream
86.
87. // Get a pointer to the codec context for the video stream
88. pCodecCtx=pFormatCtx->streams[videoStream]->codec;
89.
90. // Find the decoder for the video stream
91. pCodec=avcodec_find_decoder(pCodecCtx->codec_id);
92. if(pCodec==NULL) {
93. fprintf(stderr, "Unsupported codec!\n");
94. return -1; // Codec not found
95. }
96.
97. // Open codec
98. if(avcodec_open(pCodecCtx, pCodec)<0)
99. return -1; // Could not open codec
100.
101. // Allocate video frame
102. pFrame=avcodec_alloc_frame();
103.
104. // Make a screen to put our video
105. #ifndef __DARWIN__
106. screen = SDL_SetVideoMode(pCodecCtx->width, pCodecCtx->height, 0, 0);
107. #else
108. screen = SDL_SetVideoMode(pCodecCtx->width, pCodecCtx->height, 24, 0);
109. #endif
110. if(!screen) {
111. fprintf(stderr, "SDL: could not set video mode - exiting\n");
112. exit(1);
113. }
114.
115. // Allocate a place to put our YUV image on that screen
116. bmp = SDL_CreateYUVOverlay(pCodecCtx->width,
117. pCodecCtx->height,
118. SDL_YV12_OVERLAY,
119. screen);
120.
121. // Read frames and save first five frames to disk
122. i=0;
123.
124. while(av_read_frame(pFormatCtx, &packet)>=0) {
125. // Is this a packet from the video stream?
126. if(packet.stream_index==videoStream) {
127. // Decode video frame
128. avcodec_decode_video(pCodecCtx, pFrame, &frameFinished,
129. packet.data, packet.size);
130. // Did we get a video frame?
131. if(frameFinished) {
132. SDL_LockYUVOverlay(bmp);
133. AVPicture *pict;
134. pict = new AVPicture;
135. pict->data[0] = bmp->pixels[0];
136. pict->data[1] = bmp->pixels[2];
137. pict->data[2] = bmp->pixels[1];
138.
139. pict->linesize[0] = bmp->pitches[0];
140. pict->linesize[1] = bmp->pitches[2];
141. pict->linesize[2] = bmp->pitches[1];
142.
143. // Convert the image into YUV format that SDL uses
144. if (pCodecCtx->pix_fmt == PIX_FMT_YUV420P) {
145. /* as we only generate a YUV420P picture, we must convert it
146. to the codec pixel format if needed */
147. img_convert_ctx = sws_getContext(pCodecCtx->width, pCodecCtx->height,
148. pCodecCtx->pix_fmt,
149. pCodecCtx->width, pCodecCtx->height,
150. PIX_FMT_YUV420P,
151. sws_flags, NULL, NULL, NULL);
152. if (img_convert_ctx == NULL) {
153. fprintf(stderr, "Cannot initialize the conversion context\n");
154. exit(1);
155. }
156. sws_scale(img_convert_ctx, pFrame->data, pFrame->linesize,
157. 0, pCodecCtx->height, pict->data, pict->linesize);
158. }
159. // img_convert(&pict, PIX_FMT_YUV420P,
160. // (AVPicture *)pFrame, pCodecCtx->pix_fmt,
161. // pCodecCtx->width, pCodecCtx->height);
162. SDL_UnlockYUVOverlay(bmp);
163. rect.x = 0;
164. rect.y = 0;
165. rect.w = pCodecCtx->width;
166. rect.h = pCodecCtx->height;
167. SDL_DisplayYUVOverlay(bmp, &rect);
168. }
169. }
170. // Free the packet that was allocated by av_read_frame
171. av_free_packet(&packet);
172. SDL_PollEvent(&event);
173. switch(event.type) {
174. case SDL_QUIT:
175. SDL_Quit();
176. exit(0);
177. break;
178. default:
179. break;
180. }
181. }
182. // Free the YUV frame
183. av_free(pFrame);
184.
185. // Close the codec
186. avcodec_close(pCodecCtx);
187.
188. // Close the video file
189. av_close_input_file(pFormatCtx);
190. return a.exec();
191. }
文章浏览阅读645次。这个肯定是末尾的IDAT了,因为IDAT必须要满了才会开始一下个IDAT,这个明显就是末尾的IDAT了。,对应下面的create_head()代码。,对应下面的create_tail()代码。不要考虑爆破,我已经试了一下,太多情况了。题目来源:UNCTF。_攻防世界困难模式攻略图文
文章浏览阅读2.9k次,点赞3次,收藏10次。偶尔会用到,记录、分享。1. 数据库导出1.1 切换到dmdba用户su - dmdba1.2 进入达梦数据库安装路径的bin目录,执行导库操作 导出语句:./dexp cwy_init/[email protected]:5236 file=cwy_init.dmp log=cwy_init_exp.log 注释: cwy_init/init_123..._达梦数据库导入导出
文章浏览阅读1.9k次。1. 在官网上下载KindEditor文件,可以删掉不需要要到的jsp,asp,asp.net和php文件夹。接着把文件夹放到项目文件目录下。2. 修改html文件,在页面引入js文件:<script type="text/javascript" src="./kindeditor/kindeditor-all.js"></script><script type="text/javascript" src="./kindeditor/lang/zh-CN.js"_kindeditor.js
文章浏览阅读2.3k次,点赞6次,收藏14次。SPI的详情简介不必赘述。假设我们通过SPI发送0xAA,我们的数据线就会变为10101010,通过修改不同的内容,即可修改SPI中0和1的持续时间。比如0xF0即为前半周期为高电平,后半周期为低电平的状态。在SPI的通信模式中,CPHA配置会影响该实验,下图展示了不同采样位置的SPI时序图[1]。CPOL = 0,CPHA = 1:CLK空闲状态 = 低电平,数据在下降沿采样,并在上升沿移出CPOL = 0,CPHA = 0:CLK空闲状态 = 低电平,数据在上升沿采样,并在下降沿移出。_stm32g431cbu6
文章浏览阅读1.2k次,点赞2次,收藏8次。数据链路层习题自测问题1.数据链路(即逻辑链路)与链路(即物理链路)有何区别?“电路接通了”与”数据链路接通了”的区别何在?2.数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点。3.网络适配器的作用是什么?网络适配器工作在哪一层?4.数据链路层的三个基本问题(帧定界、透明传输和差错检测)为什么都必须加以解决?5.如果在数据链路层不进行帧定界,会发生什么问题?6.PPP协议的主要特点是什么?为什么PPP不使用帧的编号?PPP适用于什么情况?为什么PPP协议不_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输
文章浏览阅读587次。软件测试工程师移民加拿大 无证移民,未受过软件工程师的教育(第1部分) (Undocumented Immigrant With No Education to Software Engineer(Part 1))Before I start, I want you to please bear with me on the way I write, I have very little gen...
文章浏览阅读304次。Thinkpad X250笔记本电脑,装的是FreeBSD,进入BIOS修改虚拟化配置(其后可能是误设置了安全开机),保存退出后系统无法启动,显示:secure boot failed ,把自己惊出一身冷汗,因为这台笔记本刚好还没开始做备份.....根据错误提示,到bios里面去找相关配置,在Security里面找到了Secure Boot选项,发现果然被设置为Enabled,将其修改为Disabled ,再开机,终于正常启动了。_安装完系统提示secureboot failure
文章浏览阅读10w+次,点赞93次,收藏352次。1、用strtok函数进行字符串分割原型: char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。参数说明:str为要分解的字符串,delim为分隔符字符串。返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。其它:strtok函数线程不安全,可以使用strtok_r替代。示例://借助strtok实现split#include <string.h>#include <stdio.h&_c++ 字符串分割
文章浏览阅读2.3k次。1 .高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记_2013年第四届c a组蓝桥杯省赛真题解答
文章浏览阅读851次,点赞17次,收藏22次。摘要:本文利用供需算法对核极限学习机(KELM)进行优化,并用于分类。
文章浏览阅读1.1k次。一、系统弱密码登录1、在kali上执行命令行telnet 192.168.26.1292、Login和password都输入msfadmin3、登录成功,进入系统4、测试如下:二、MySQL弱密码登录:1、在kali上执行mysql –h 192.168.26.129 –u root2、登录成功,进入MySQL系统3、测试效果:三、PostgreSQL弱密码登录1、在Kali上执行psql -h 192.168.26.129 –U post..._metasploitable2怎么进入
文章浏览阅读257次。本文将为初学者提供Python学习的详细指南,从Python的历史、基础语法和数据类型到面向对象编程、模块和库的使用。通过本文,您将能够掌握Python编程的核心概念,为今后的编程学习和实践打下坚实基础。_python人工智能开发从入门到精通pdf