zoukankan      html  css  js  c++  java
  • 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音视频同步机制和显示驱动调用


  • 相关阅读:
    UIGestureRecognizer在多层视图中的触发问题
    mysql出现Waiting for table metadata lock的原因及解决方案
    SQL逆向工程
    自己总结的ruby on rails 查询方法
    hdu 1536 SG函数模板题
    spring 源码分析之BeanPostProcessor
    spring bean生命周期管理--转
    java.lang.Long cannot be cast to java.lang.Integer解决办法
    Mybatis之Oracle增删查改示例--转
    Anti-If: The missing patterns--转
  • 原文地址:https://www.cnblogs.com/shakin/p/6103677.html
Copyright © 2011-2022 走看看