2012-02-22 9 views
5

Ho aggiornato la mia versione ffmpeg per l'ultima commit e ora posso vedere che il funciton di decodifica audio avcodec_decode_audio3 è stato deprecato e quando uso la nuova funzione avcodec_decode_audio4, come per le modifiche richieste in esso, ottengo l'errore comebuffer in avcodec_decode_audio4()

[amrnb @ 003a5000] get_buffer() failed.

io non sono in grado di trovare ciò che provoca questo errore. Chiunque ha un esempio campione di usng questa nuova funzione:

avcodec_decode_audio4((AVCodecContext *avctx, AVFrame *frame,int *got_frame_ptr, AVPacket *avpkt);

+1

io ho lo stesso problema con i file AAC. Hai trovato una soluzione alla fine? – lynnard

risposta

3

check decoding_encoding.c esempio dalla sorgente di ffmpeg. Utilizza la funzione avcodec_decode_audio4.

+0

Grazie Ho usato lo stesso esempio e semplicemente ho copiato il codice da questo e ancora la len arriva come -22 e restituisce l'errore come get_buffer() fallito. – NitinG

+0

Che tipo di media è questo? Puoi decodificarlo con ffmpeg, o giocare in ffplay? –

+1

il suo audio amr_nb. Ho decodificato con successo con la versione precedente di ffmpeg con la funzione audio3. Inoltre, ho provato con tutte le finestre binari di ffmpeg e sono in grado di decodificare e riprodurre l'audio decodificato. Questo problema si verifica solo quando provo a decodificare con la funzione audio4 nella mia applicazione per lo stesso supporto. – NitinG