• 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音视频同步机制和显示驱动调用


  • 相关阅读:
    arguments伪对象数组 javascript
    typeof获取变量的数据类型 javascript
    《转》Cucumber之一Cucumber概述——学习新篇章
    【转】Dubbo分布式服务框架
    SQL语句
    (转)面试必备之乐观锁与悲观锁
    多线程的实现方式
    Exception和RuntimeException区别
    实例化对象的两种方式
    包装类对象的比较
  • 原文地址:https://www.cnblogs.com/shakin/p/6103677.html
Copyright © 2020-2023  润新知