| 147 | ## break |
| 148 | |
| 149 | def _src_buffer_probe_cb(self, pad, buffer): |
| 150 | gst.debug("received probe on pad %r" % pad) |
| 151 | self._probed = True |
| 152 | gst.debug('adding sink bin') |
| 153 | self.pipeline.add(self.sink) |
| 154 | # this seems to get rid of the warnings about pushing on an unactivated |
| 155 | # pad |
| 156 | gst.debug('setting sink state') |
| 157 | |
| 158 | # FIXME: attempt one: sync to current pending state of bin |
| 159 | (res, cur, pen) = self.pipeline.get_state(timeout=0) |
| 160 | target = pen |
| 161 | if target == gst.STATE_VOID_PENDING: |
| 162 | target = cur |
| 163 | gst.debug("setting sink state to %r" % target) |
| 164 | # FIXME: the following print can cause a lock-up; why ? |
| 165 | # print target |
| 166 | # if we don't set async, it will possibly end up in PAUSED |
| 167 | self.sink.set_state(target) |
| 168 | |
| 169 | gst.debug('linking') |
| 170 | self.src.link(self.sink) |
| 171 | gst.debug('removing buffer probe id %r' % self._probe_id) |
| 172 | pad.remove_buffer_probe(self._probe_id) |
| 173 | self._probe_id = None |
| 174 | gst.debug('done') |
| 175 | |
| 176 | def _sink_handoff_cb(self, sink, buffer, pad): |
| 177 | gst.debug('received handoff on pad %r' % pad) |