2015-08-08 8 views
5

Dostaję się na logcat następny błąd podczas kodowania za pośrednictwem MediaCodec w systemie Android.MediaCodec podaje błąd śledzenia storeMetaDataInBuffers

Rzeczywiste kodowanie działa poprawnie, a dane wyjściowe są generowane poprawnie, więc nie mogę zrozumieć, dlaczego otrzymałem ten ślad. Czy jest to nieszkodliwy ślad błędu, czy jest coś, czego mi brakuje?

E/ACodec (6438): [OMX.qcom.video.encoder.h263] storeMetaDataInBuffers (wyjście) nie wag/błędu -1010

Dalej jest kod gdzie się ślad

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); 
//--------------------------------- 

Odpowiedz

3

Jest nieszkodliwy, większość urządzeń to pokazuje. Zobacz Q12 pod adresem http://bigflake.com/mediacodec/.

To tylko mówi, że pierwszy sposób sygnalizacji kodowania powierzchni nie był obsługiwany przez koder, więc użył innych sposobów jego konfiguracji. (Istnieje wiele sposobów, aby warstwa MediaCodec/ACodec mogła powiedzieć o tym enkoderem.)

3

Poprzednia odpowiedź wskazuje, że ostrzeżenie jest zupełnie nieszkodliwe. Niektóre informacje dodatkowe o log i przyczyn tego samego

Ten ślad w dzienniku wskazuje, że encoder nie wspiera storeMetadataInBuffers na porcie w output. W przypadku modelu encoder ten tryb może być obsługiwany na obu portach input i output.

Tryb ten jest stosowany do portu input przejść surowych danych obrazu w formacie metadata czyli przechodzą jedynie odniesienie do gralloc uchwytu, który może stosowanego przez encoder dostępu do danych. Jest to wykorzystywane przez aplikacje camera i/lub inne aplikacje screen recording do przekazywania odniesienia do danych YUV do kodera.

Tryb był obsługiwany dla portu output również dla potencjalnego enkapsulacji danych wyjściowych bitstream. Na przykład, gdy sesja Miracast lub WiFi-Display jest aktywny, a dane są kodowane jest zabezpieczyć jak treści premium, staje się konieczne w celu ochrony danych pomiędzy modułem encoder i HDCP szyfrowania, podczas którego Format metadata staje się przydać. Nie wiele urządzeń encoder obsługuje ten tryb, dlatego też przestrzegasz tego ostrzeżenia.

+0

Czy jest tam jakaś flaga konfiguracji, która może być ustawiona, aby uniknąć tego śladu, lub czy ślad jest pouczający? – PerracoLabs

+1

@PerracoLabs .. Jest to po prostu pouczające, ponieważ jest częścią struktury 'Stagefright'. Myślę, że można go łatwo zignorować. Należy pamiętać, że ten sam wydruk działa zarówno dla portów 'input' i' output'. Enkodery powinny obsługiwać ten tryb na porcie 'input' dla optymalnego wykorzystania. – Ganesh

Powiązane problemy