Domanda

Sto lavorando su un progetto di videoconferenza. Stavamo utilizzando il codec del software per codifica e decodifica dei fotogrammi video che faranno bene per risoluzioni inferiori (fino a 320p). Abbiamo pianificato di supportare la nostra applicazione per risoluzioni più elevate anche fino a 720p. Sono venuto a sapere che l'accelerazione hardware farà questo lavoro abbastanza bene.

Poiché il codec multimediale dell'API del codec hardware è disponibile da Jelly Bean in avanti l'ho usato per codificare e decodificare e stanno funzionando bene. Ma la mia applicazione è supportata da 2.3. Quindi ho bisogno di avere un decodificatore video accelerato hardware per fotogrammi H.264 di 720p a 30 fps.

La ricerca è arrivata nell'idea di utilizzare OMX Codec modificando il palcoscenico Fright Framework.i ha letto che il decodificatore hardware per H.264 è disponibile da 2.1 e encoder è lì da 3.0. Ho passato molti articoli e domande fornite in questo sito e ha confermato che posso andare avanti.

Avevo letto l'architettura della paura del palcoscenico qui -Architecture e qui- stagefright Come funziona

e ho letto su OMX Codec qui- Android-hardware-decodificatore-con-omxcodec-in-ndk .

Sto avendo un problema di partenza e alcune confusioni sulla sua implementazione. Vorrei avere alcune informazioni su di esso.

    .
  1. Per l'utilizzo di OMX Codec nel mio codice dovrei costruire il mio progetto con l'intero albero di origine Android o posso fare aggiungendo alcuni file da ASOND SOURCE (se sì quale ALL).
  2. Quali sono i passi da zero che dovrei seguire per raggiungerlo.
  3. qualcuno può darmi una linea guida su questo

    Grazie ...

È stato utile?

Soluzione

Il miglior esempio per descrivere l'integrazione di OMXCodec in Native Layer è l'utilità della riga di comando stagefright come è possibile osservare qui in GingerBread stesso. Questo esempio mostra come OMXCodec viene creato .

Alcuni punti da notare:

    .
  1. L'ingresso a OMXCodec deve essere modellato come MediaSource e quindi, è necessario assicurarsi che la tua applicazione gestisca questo requisito. Un esempio per la creazione di una fonte basata su MediaSource può essere trovata in File di utilità record come DummySource .

  2. L'ingresso al decodificatore I.e. MediaSource dovrebbe fornire i dati tramite il metodo read e quindi, la domanda dovrebbe fornire singoli fotogrammi per ogni chiamata read.

  3. Il decodificatore potrebbe essere creato con NativeWindow per l'assegnazione del buffer di uscita. In questo caso, se si desidera accedere al buffer dalla CPU, dovresti probabilmente fare riferimento a Questa query per maggiori dettagli.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top