2015-08-08 7 views
5

Sto arrivando al logcat l'errore successivo durante la codifica tramite MediaCodec in Android.MediaCodec restituisce un errore di tracciaMetaDataInBuffers

La codifica effettiva funziona correttamente e l'output è prodotto correttamente, quindi non riesco a capire veramente perché ottengo questa traccia. È una traccia di errore innocua, o c'è qualcosa che mi manca?

E/acodec (6438): [] OMX.qcom.video.encoder.h263 storeMetaDataInBuffers (output) non è riuscito w/errare -1010

prossima è il codice dove ho la traccia

final int BIT_RATE   = 4000000; 
final int FRAME_RATE  = 30; 
final int IFRAME_INTERVAL = 5; 
final String MIME_TYPE  = "video/avc"; 

final MediaFormat format = MediaFormat.createVideoFormat(MIME_TYPE, width, height); 
format.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface); 
format.setInteger(MediaFormat.KEY_BIT_RATE, BIT_RATE); 
format.setInteger(MediaFormat.KEY_FRAME_RATE, FRAME_RATE); 
format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, IFRAME_INTERVAL); 

MediaCodec encoder = MediaCodec.createEncoderByType(MIME_TYPE); 

//--------------------------------- 
// NEXT LINE PRODUCES THE TRACE 
encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE); 
//--------------------------------- 

risposta

3

È innocuo, la maggior parte dei dispositivi mostra questo. Vedi Q12 allo http://bigflake.com/mediacodec/.

Questo dice solo che il primo modo di segnalare la codifica di superficie non era supportato dall'encoder, quindi ha usato altri modi per configurarlo. (Esistono diversi modi per il livello MediaCodec/ACodec di comunicarlo al singolo encoder.)

3

La risposta precedente ha indicato che l'avviso è abbastanza innocuo. Alcune informazioni aggiuntive sulle ragioni log e dietro la stessa

Questa traccia nel registro indica che il encoder non sta sostenendo storeMetadataInBuffers sulla porta output. Per un encoder, questa modalità potrebbe essere supportata su entrambe le porte input e output.

Questa modalità viene impiegata per input porta per passare dati grezzi in formato metadata cioè passare solo un riferimento al manico gralloc che può impiegato dal encoder per accedere ai dati. Questo viene utilizzato dalle applicazioni camera e/o altre screen recording per passare un riferimento ai dati YUV all'encoder.

La modalità metadata era supportata per la porta output anche per potenziale incapsulamento dei dati di uscita bitstream. Per esempio, quando una sessione Miracast o WiFi-Display è attiva ei dati in fase di codifica è garantire come un contenuto premium, si rende necessario per proteggere i dati tra il modulo encoder e HDCP crittografia, durante la quale formato metadata diventa a portata di mano. Non molti encoder supportano questa modalità e quindi, si osserva questo avviso.

+0

Quindi c'è un flag di configurazione che può essere impostato per evitare questa traccia o la traccia è solo informativa? – PerracoLabs

+1

@PerracoLabs .. È solo informativo dato che fa parte del framework 'Stagefright'. Penso che possa essere facilmente ignorato. Si noti che la stessa stampa funziona sia per le porte 'input' che' output'. Gli Encoder dovrebbero supportare questa modalità sulla porta 'input' per un utilizzo ottimale. – Ganesh

Problemi correlati