Gstreamer中的段事件失败

时间:2016-01-07 09:22:46

标签: gstreamer

鉴于视频文件,我正在尝试播放从给定开始时间到给定结束时间的视频。 我正在尝试使用Segment Event实现此目的,如下所示:

  1. 首先,我正在创建并初始化一个细分市场。
  2. 使用gst_event_new_segment()
  3. 创建了一个段事件
  4. 使用gst_element_send_event()
  5. 将段事件发送到管道

    但是,视频只是从头开始播放,而不是从开始播放。 当事件到达管道的接收器元素时,段事件对回放事件没有影响(由gst调试消息验证)。

    以下是代码段:

    GstSegment *gstSegment;
    GstEvent *event_seg;
    
    gstSegment = gst_segment_new();
    gst_segment_init( gstSegment, GST_FORMAT_BYTES );
    gstSegment->rate  = 2.0;
    gstSegment->start = 10 * 1920 * 1080 * 2;    
    gstSegment->stop = 20 * 1920 * 1080 * 2;    
    
    event_seg =  gst_event_new_segment(gstSegment);
    
    ret = gst_element_set_state (data.videoPipeline, GST_STATE_PLAYING);
    if (ret == GST_STATE_CHANGE_FAILURE) {
        printf("Unable to set the pipeline to the playing state\n");
        gst_object_unref (data.videoPipeline);
        return 1;
    }
    
    if ( !gst_element_send_event( GST_ELEMENT (data.videoPipeline), event_seg))
      printf("Error"); 
    

    我可以使用Seek Event实现这一目标。 但无法处理细分事件。

    有人可以告诉我如何使用细分事件来实现这一目标吗?

0 个答案:

没有答案