[C Programmieren] brauche Hilfe zu gstreamer

  • Ich brauche einen echten loop einer wave Datei für ein plugin ohne mini Pause, also ein durchgehender Ton.


    Geht so etwas überhaupt mit gstreamer?


    Wäre echt super wenn wer eine Idee hätte.


    Ich hänge mal das src file an und eine wave Datei. (nicht wundern, im src ist noch eine 7.1 Karte gesetzt)




    Danke und LG

  • Eigentlich müsste es denke ich reichen das du genug in den buffer schreibst so das der audio chip genug zu tun hat während du in ruhe im file wieder nach vorne seekst. Dein wav ist einfach zu kurz, da kommt die CPU nicht mit schnell genug nachzuliefern. Ausserdem würde ich das file mit z.B. 100kB mit einem malloc direkt ins memory lesen und von dort in die pipe blasen, dann setzt du nur mehr den pointer wieder an den Anfang.

  • Hm, folgende Gedanken fallen mir dazu ein:


    1. "about-to-finish" würde ich nicht verwenden, da du mit diesem Vorhaben immer wieder das File öffnest und eine neue Pipeline dadurch erstellt wird
    2. mein Vorgehen wäre, das alles mit der appsrc hinzubekommen. Der Vorteil wäre, dass Du damit direkt Deine Daten in die Pipeline schreiben kannst, sprich Deine Wavedatei könntest Du komplett in einen eigenen Buffer schreiben und diese an die appsrc von gstreamer weitergeben. Dazu kannst Du Dir mal das Signal "need-data" dann anschauen. Also Stichwörter wären da "appsrc" und "need-data", damit würde ich mal anfangen zu experimentieren und Prototypen zu schrieben.


    Ich hab selber sowas noch nicht gebraucht und deswegen nicht implementiert, so dass ich Dir da keine fertige Lösung anbieten kann. :smiling_face: