生成Buffer流程:
es_out.c->EsOutDecodersStopBuffering>>event.c->input_SendEventCache
增加接口的流程:
media_player.c->input_event_changed>>
1、增加newval.i_int == INPUT_EVENT_CACHE的处理判断;
通知libvlc_MediaPlayerBuffering事件处理。
2、增加libvlc_MediaPlayerBuffering事件的处理,
修改libvlc_events.h中的libvlc_event_t结构,增加
/* buffering处理*/
struct
{
     float new_cache;
} media_player_buffering_changed;
结构;
3、在newval.i_int == INPUT_EVENT_CACHE处理中加入如下代码
/* */
event.type = libvlc_MediaPlayerBuffering;
event.u.media_player_buffering_changed.new_cache =
      var_GetFloat( p_input, "cache" );
libvlc_event_send( p_mi->p_event_manager, &event );
全部重新编译,OK。
这样就可以在事件处理中直接得到Buffering信息了。
libvlc_event_attach(eventManager, libvlc_MediaPlayerBuffering,
                            handle_Buffering_changed_event, this);
libvlc_event_detach(eventManager, libvlc_MediaPlayerBuffering,
                            handle_Buffering_changed_event, this);
posted on 2010-11-04 16:20  一个人的天空@  阅读(6207)  评论(1编辑  收藏  举报