Skip to content

Commit a9d2819

Browse files
committed
update readme
1 parent eb1e0e9 commit a9d2819

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

README

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,16 @@ gq.flv.torrent 是从优酷找的一个超清视频文件做的种子.
1515
整个项目分为几个模块:
1616
1. avcore 这只是一个包装类, 实现windows上的窗口创建以及消息响应, 比如: 右击暂停/开始, 单击按屏幕宽百分比seek, F2全屏切换.
1717
在这个模块中, avplayer类是外部接口类, 具体实现在player_impl类中. 在player_impl类中, 初始化各模块结构指针由下面几个函数实现,
18-
void init_file_source(media_source *ms);
19-
void init_audio(audio_render *ao);
20-
void init_video(video_render *vo);
18+
void init_file_source(source_context *sc);
19+
void init_audio(ao_context *ao);
20+
void init_video(vo_context *vo);
2121
你可以根据自己的需求来修改这些函数实现.
22-
media_source是一个提供数据访问的结构, 包含一些函数指针, 如果你需要重新从其它地方读取数据进来提供给播放器, 那么你可以参照这个结构体, 实现这些函数并指向它, 就可以获得从你指定的地方读取数据来进行播放, 这里实现了一个从文件读取数据播放的dll.
23-
audio_render是用于播放音频的结构, 同样包含了一些函数指针, 只要实现这些函数指针, 就可以改变音频输出, 比如把音频数据写到文件, 这里实现了2种方式输出音频, 一种是使用dsound来输出音频, 另一种是使用waveout来输出音频.
24-
video_render是用于渲染视频的结构, 原理同上, 需要注意的是render_one_frame的data是YUV420格式.
22+
source_context是一个提供数据访问的结构, 包含一些函数指针, 如果你需要重新从其它地方读取数据进来提供给播放器, 那么你可以参照这个结构体, 实现这些函数并指向它, 就可以获得从你指定的地方读取数据来进行播放, 这里实现了一个从文件读取数据播放的dll.
23+
ao_context是用于播放音频的结构, 同样包含了一些函数指针, 只要实现这些函数指针, 就可以改变音频输出, 比如把音频数据写到文件, 这里实现了2种方式输出音频, 一种是使用dsound来输出音频, 另一种是使用waveout来输出音频.
24+
vo_context是用于渲染视频的结构, 原理同上, 需要注意的是render_one_frame的data是YUV420格式.
2525
2. libav 这是一个基于ffmpeg的播放框架, 该框架不包含视频渲染和音频播放以及数据读取, 若需要可以实现上述结构体各函数即可, 这个框架中主要完成了使用ffmpeg解码, 以及音视频同步, seek操作处理, 并提供一些基本的控制播放器的函数(在avplay.h中定义).
26-
3. audio 是一个音频播放输出模块实现, 主要实现了audio_render中那几个函数指针. 在这个模块中实现了2套音频输出dsound和waveout.
27-
4. video 是一个视频渲染模块的实现, 实现了video_render中的那几个函数指针. 在这个模块中, 实现了3套视频渲染输出d3d, ddraw, opengl这些方式(还有gdi方式渲染没有添加到video_out.h中).
26+
3. audio 是一个音频播放输出模块实现, 主要实现了ao_context中那几个函数指针. 在这个模块中实现了2套音频输出dsound和waveout.
27+
4. video 是一个视频渲染模块的实现, 实现了vo_context中的那几个函数指针. 在这个模块中, 实现了3套视频渲染输出d3d, ddraw, opengl这些方式(还有gdi方式渲染没有添加到video_out.h中).
2828
5. avplayer 是一个使用avcore实现一个简单播放器的示范, 如果要创建一个播放器, 只需要avplayer.h, 然后使用创建一个avplayer对象, 就可以创建一个播放器, 关于如何使用avcore的具体细节可以参考avplayer/main.cpp.
2929

3030

0 commit comments

Comments
 (0)