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


  • 相关阅读:
    基于SSM框架web搜索功能的实现
    使用APICloud打包webapp
    mac如何运行vue项目
    前端和算法实现:给网站上加上自己的水印(以后用上)
    jQuery常用代码片段
    关于vscode的个人配置
    听说你想用git,安装一下咯
    vue创建项目的一种方法
    用js控制css动画效果@keyframes
    axios的封装和拦截
  • 原文地址:https://www.cnblogs.com/shakin/p/6103677.html
Copyright © 2020-2023  润新知