From c172f1e663cc4769c51efca244dce6f912d50fd6 Mon Sep 17 00:00:00 2001 From: tinyzimmer <38474291+tinyzimmer@users.noreply.github.com> Date: Sat, 3 Oct 2020 16:14:29 +0300 Subject: [PATCH] clean up a bit morer --- examples/appsink/main.go | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/examples/appsink/main.go b/examples/appsink/main.go index 1e1a722..f11731e 100644 --- a/examples/appsink/main.go +++ b/examples/appsink/main.go @@ -81,6 +81,19 @@ func createPipeline() (*gst.Pipeline, error) { return pipeline, nil } +func handleMessage(msg *gst.Message) error { + defer msg.Unref() // Messages are a good candidate for trying out runtime finalizers + + switch msg.Type() { + case gst.MessageEOS: + return app.ErrEOS + case gst.MessageError: + return msg.ParseError() + } + + return nil +} + func mainLoop(pipeline *gst.Pipeline) error { defer pipeline.Destroy() // Will stop and unref the pipeline when this function returns @@ -97,16 +110,9 @@ func mainLoop(pipeline *gst.Pipeline) error { if msg == nil { break } - switch msg.Type() { - case gst.MessageEOS: - msg.Unref() // Messsages are a good candidate for trying out runtime finalizers - break - case gst.MessageError: - err := msg.ParseError() - msg.Unref() + if err := handleMessage(msg); err != nil { return err } - msg.Unref() } return nil