Python-GStreamer:使用固定参数访问回调函数内的类成员

时间:2018-08-17 10:07:49

标签: python python-3.x gstreamer python-gstreamer

我有一个回调,它由GStreamer-Python绑定提供,它接受固定数量的参数。这是API:add_probe 我从类函数内部调用此函数。下面是伪代码:

class Example:
   def __init__(self):
        thread = threading.Thread(target=self.run)
        thread.start()

   def run(self):
        #if external event
        self.idsrcpad = identity.get_static_pad("src")  #get source pad 
        self.idsrcpad.add_probe(Gst.PadProbeType.IDLE,self.modify_pipeline)


   def modify_pipeline(pad,info,self):
        #access self.idsrcpad
        self.idsrcpad.unlink(...)

访问self.idsrcpad时出现错误,指出idsrcpad不是自身的成员。

以下question解决了类似的问题,但是问题中的回调函数没有固定数量的参数。就我而言,回调函数的参数是固定的。这是add_probe函数的详细说明。

有人可以建议我在这里做错什么吗

1 个答案:

答案 0 :(得分:1)

回调的正确语法是:

 def modify_pipeline(self,pad,info):

有了这个新定义,可以在函数内部使用self