playbin2 成员

1. playbin2
 

  struct _GstPlayBin
{
  GstPipeline parent;

  GMutex *lock;                

 
  GstSourceGroup groups[2];    
  GstSourceGroup *curr_group;  
  GstSourceGroup *next_group;  

 
  guint connection_speed;      
  gint current_video;          
  gint current_audio;          
  gint current_text;           

  guint64 buffer_duration;     
  guint buffer_size;           

 
  GstPlaySink *playsink; // sink也可能是一个bin

 
  GstElement *source;

 
  GMutex *dyn_lock;
 
  gint shutdown;

  GMutex *elements_lock;
  guint32 elements_cookie;
  GValueArray *elements;       

  gboolean have_selector;      

  GstElement *audio_sink;      
  GstElement *video_sink;      
  GstElement *text_sink;       

  struct
  {
    gboolean valid;
    GstFormat format;
    gint64 duration;
  } duration[5];               

  GstSegment segments[3];      
};


2. Playsink
在playbin2的playsink中构建了一些chain:
 struct _GstPlaySink
{
    GstBin bin;
   
    GstPlayAudioChain *audiochain;
    GstPlayVideoDeinterlaceChain *videodeinterlacechain;
    GstPlayVideoChain *videochain;
    GstPlayVisChain *vischain;
    GstPlayTextChain *textchain;
}

其中:
  audiochain:
       playbin2音视频同步机制和显示驱动调用

 videoChain:
    playbin2音视频同步机制和显示驱动调用

 textChain:
   playbin2音视频同步机制和显示驱动调用

 videodeinterlacechain:
     playbin2音视频同步机制和显示驱动调用
vischain:
     playbin2音视频同步机制和显示驱动调用


chain的数据结构:
   playbin2音视频同步机制和显示驱动调用
    playbin2音视频同步机制和显示驱动调用
    playbin2音视频同步机制和显示驱动调用

从上面的数据结构可以看到,chain就是一个bin包含了一个完整的flow。每一个bin包含property,并且需要绑定signal和callback函数:
              playbin2音视频同步机制和显示驱动调用


转载于:https://www.cnblogs.com/shakin/p/6103677.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值