Beiträge von Jonas_N

    Die Fehlerbeschreibung lautet: AAC_DEC_DECODE_FRAME_ERROR < The parsed bitstream value is out of range. Most probably the bitstream is corrupt, or the system crashed.
    Also muss irgendetwas an meinem Stream falsch sein, ich hab jedoch keine Ahnung wie ich herausfinden soll was.
    Wie gesagt wenn ich den Stream abspeichere ist er abspielbar. Ich kann auch mit VLC Media Player direkt auf den Stream zugreifen und es funktioniert.

    Habe meinen Decoder jetzt ohne den Media Extractor konfiguriert. Die Fehlermeldungen mit MM_OSAL und der Konfigurationsdatei erhalte ich nicht mehr. Diese scheinen jedoch nicht das Hauptproblem gewesen zu sein, denn mein Programm funktioniert immer noch nicht und die Meldungen:


    Code
    W/SoftAAC2: aacDecoder_DecodeFrame decoderErr = 0x4004 
    W/SoftAAC2: AAC decoder returned error 0x4004, substituting silence 
    I/SoftAAC2: Reconfiguring decoder: 0->44100 Hz, 0->0 channels

    bleiben weiterhin bestehen.

    Hey!


    Ich bin dabei eine App zu entwickeln, die einen AAC Audio Stream von Gstreamer empfängt, diesen decodiert und abspielt.
    Meine Pipeline in Gstreamer sieht folgendermaßen aus:


    gst-launch-1.0 audiotestsrc ! faac "bitrate=64000" ! "audio/mpeg, mpegversion=4, rate = 44100, channels = 1" ! mux. mpegtsmux name=mux! udpsink host=224.0.0.1 port=8001


    Diese codiert den Audio Stream in AAC LC als mp4 mit einer Bitrate von 64000, einer SampleRate von 44100 und einem Channel in einen mpeg ts container.


    Meinen Decoder initialisiere ich mit folgendem Code:



    Habe es auch schon ohne die Zeile "MediaFormat.KEY_IS_ADTS" probiert, es kommt zum selben Fehler.


    Das ist der Code meines Decoders:





    Ich erhalte folgende Fehlermeldung:



    Java
    W/SoftAAC2: aacDecoder_DecodeFrame decoderErr = 0x4004
    W/SoftAAC2: AAC decoder returned error 0x4004, substituting silence
    I/SoftAAC2: Reconfiguring decoder: 0->48000 Hz, 0->0 channels
    E/AndroidRuntime: FATAL EXCEPTION: Thread-374583


    Wenn ich den Audio Stream in eine Datei speichere ist er abspielbar! Das Problem sollte also nicht beim Empfangen sondern beim Decoder liegen.


    Ich bin für jede Hilfe dankbar ^^

    Und was ist überhaupt dieses "MM_OSAL"? Ich kann im Internet nichts brauchbares dazu finden.


    Die Datei auf die zugegriffen werden soll befindet sich im "data" Ordner von Android, eine App kann jedoch nicht ohne root Rechte auf diesen Ordner zugreifen. Warum will meine App auf diesen Ordner zugreifen?
    Ich debugge mit Android Studio in dem ich mein Smartphone mit dem PC verbinde, hängt es vielleicht damit zusammen?

    Danke für die schnelle Antwort!


    Habe in meiner Manifest die Permissions:


    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    gesetzt.
    Die Fehlermeldungen bleiben weiterhin die selben. Auch wenn ich statt dem externen den internen Speicher benutze ändert sich nichts.
    In der Fehlermeldung "E/MM_OSAL: MM_File_Create File Name /data/mmosal_logmask.cfg , Mode 0"
    Wird die Datei "/data/mmosal_logmask.cfg" genannt, das ist jedoch nicht die Audio Datei, die ich abspeichere. Was könnte das für eine Datei sein? Möglicherweise wird sie vom Decoder erstellt?

    Hey!
    Ich würde gerne Audio von meinem Raspberry mit Hilfe von Gstreamer an mein Android Handy senden.
    In Gstreamer benutze ich folgende Pipeline:
    gst-launch-1.0 audiotestsrc ! faac ! "audio/mpeg, mpegversion=4" ! mux. mpegtsmux name=mux ! udpsink host=224.0.0.1 port=8001
    Dadurch erhalte ich AAC LC Audio Stream mit MPEG-TS als Container.
    Ich versuche die Android App mit Android Studio selbst zu entwickeln. Die Daten empfange ich mit einem MulticastSocket. Nun muss der Audio Stream mit Media Extractor und Media Codec decodiert werden. Da Media Extractor nicht direkt auf den Socket zugreifen kann speichere ich ein Teil der Daten in eine Datei und setze diese als DataSource für den Media Extractor.
    Der Media Extractor scheint teilweise zu funktionieren, er erkennt dass es sich um AAC Audio handelt. Allerdings erhalte ich viele Fehlermeldungen und es wird nichts abgespielt.
    Der relevante Teil meines Codes sieht folgendermaßen aus:


    Das hier sind die Fehlermeldungen in der Logcat:




    Wie schon gesagt schreibe ich zuerst einen Teil des Streams in eine Datei, auf welche der Extractor zugreift. Diese Datei lässt sich abspielen, auch mit den Android Music Player!
    Also denke ich dass der Fehler weniger beim Senden und Empfangen, als eher beim Decodieren liegt. Ich habe mir auch eine AAC Testdatei heruntergeladen, mit dieser kommt es zu den selben Fehlermeldungen.
    Wie ihr wahrscheinlich am Code erkennen könnt bin ich noch nicht sehr Fortgeschritten was Programmieren angeht und somit um jede Hilfe dankbar!