mirror of
https://github.com/go-gst/go-gst.git
synced 2025-10-05 07:56:51 +08:00
dont sink reference on pads from iterators
This commit is contained in:
@@ -84,8 +84,6 @@ func (m *minioSrc) GetSize(self *base.GstBaseSrc) (bool, int64) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (m *minioSrc) Start(self *base.GstBaseSrc) bool {
|
func (m *minioSrc) Start(self *base.GstBaseSrc) bool {
|
||||||
m.state.mux.Lock()
|
|
||||||
defer m.state.mux.Unlock()
|
|
||||||
|
|
||||||
if m.state.started {
|
if m.state.started {
|
||||||
self.ErrorMessage(gst.DomainResource, gst.ResourceErrorFailed, "MinIOSrc is already started", "")
|
self.ErrorMessage(gst.DomainResource, gst.ResourceErrorFailed, "MinIOSrc is already started", "")
|
||||||
@@ -102,6 +100,8 @@ func (m *minioSrc) Start(self *base.GstBaseSrc) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m.state.mux.Lock()
|
||||||
|
|
||||||
if strings.HasPrefix(m.settings.accessKeyID, "env:") {
|
if strings.HasPrefix(m.settings.accessKeyID, "env:") {
|
||||||
spl := strings.Split(m.settings.accessKeyID, "env:")
|
spl := strings.Split(m.settings.accessKeyID, "env:")
|
||||||
m.settings.accessKeyID = os.Getenv(spl[len(spl)-1])
|
m.settings.accessKeyID = os.Getenv(spl[len(spl)-1])
|
||||||
@@ -116,6 +116,7 @@ func (m *minioSrc) Start(self *base.GstBaseSrc) bool {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
self.ErrorMessage(gst.DomainResource, gst.ResourceErrorFailed,
|
self.ErrorMessage(gst.DomainResource, gst.ResourceErrorFailed,
|
||||||
fmt.Sprintf("Failed to connect to MinIO endpoint %s", m.settings.endpoint), err.Error())
|
fmt.Sprintf("Failed to connect to MinIO endpoint %s", m.settings.endpoint), err.Error())
|
||||||
|
m.state.mux.Unlock()
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -124,6 +125,7 @@ func (m *minioSrc) Start(self *base.GstBaseSrc) bool {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
self.ErrorMessage(gst.DomainResource, gst.ResourceErrorOpenRead,
|
self.ErrorMessage(gst.DomainResource, gst.ResourceErrorOpenRead,
|
||||||
fmt.Sprintf("Failed to retrieve object %q from bucket %q", m.settings.key, m.settings.bucket), err.Error())
|
fmt.Sprintf("Failed to retrieve object %q from bucket %q", m.settings.key, m.settings.bucket), err.Error())
|
||||||
|
m.state.mux.Unlock()
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -132,11 +134,13 @@ func (m *minioSrc) Start(self *base.GstBaseSrc) bool {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
self.ErrorMessage(gst.DomainResource, gst.ResourceErrorOpenRead,
|
self.ErrorMessage(gst.DomainResource, gst.ResourceErrorOpenRead,
|
||||||
fmt.Sprintf("Failed to stat object %q in bucket %q: %s", m.settings.key, m.settings.bucket, err.Error()), "")
|
fmt.Sprintf("Failed to stat object %q in bucket %q: %s", m.settings.key, m.settings.bucket, err.Error()), "")
|
||||||
|
m.state.mux.Unlock()
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
self.Log(srcCAT, gst.LevelInfo, fmt.Sprintf("%+v", m.state.objInfo))
|
self.Log(srcCAT, gst.LevelInfo, fmt.Sprintf("%+v", m.state.objInfo))
|
||||||
|
|
||||||
m.state.started = true
|
m.state.started = true
|
||||||
|
m.state.mux.Unlock()
|
||||||
|
|
||||||
self.StartComplete(gst.FlowOK)
|
self.StartComplete(gst.FlowOK)
|
||||||
|
|
||||||
|
@@ -1133,7 +1133,7 @@ func iteratorToPadSlice(iterator *C.GstIterator) ([]*Pad, error) {
|
|||||||
case C.GST_ITERATOR_OK:
|
case C.GST_ITERATOR_OK:
|
||||||
cPadVoid := C.g_value_get_object((*C.GValue)(gval))
|
cPadVoid := C.g_value_get_object((*C.GValue)(gval))
|
||||||
cPad := (*C.GstPad)(cPadVoid)
|
cPad := (*C.GstPad)(cPadVoid)
|
||||||
pads = append(pads, FromGstPadUnsafeFull(unsafe.Pointer(cPad)))
|
pads = append(pads, wrapPad(toGObject(unsafe.Pointer(cPad))))
|
||||||
C.g_value_reset((*C.GValue)(gval))
|
C.g_value_reset((*C.GValue)(gval))
|
||||||
default:
|
default:
|
||||||
return nil, errors.New("Pad iterator failed")
|
return nil, errors.New("Pad iterator failed")
|
||||||
|
Reference in New Issue
Block a user