2011-02-16 4 views
7

Au lieu d'appeler av_register_all(), existe-t-il un exemple de sélection d'un seul décodeur à utiliser? Je suppose que je devrais appeler avcodec_register(), av_register_codec_parser() etc ...av_register_all() vs avcodec_register()

La question est, qui doit être appelée exactement, parce que av_open_input_file() échoue avec -2 si je ne l'utilise pas av_register_all ().

Répondre

10

Il y a un moyen de le faire :) Je viens de noter toutes les étapes pour vous qui av_register_all fait. Je pensais que cela pourrait vous aider à mieux comprendre, car il ne suffirait peut-être pas d'enregistrer uniquement le codec. Le mieux serait pour vous de jeter un coup d'oeil dans le code source:

http://cekirdek.pardus.org.tr/~ismail/ffmpeg-docs/allformats_8c-source.html

1) du matériel d'accélération:

av_register_hwaccel(AVHWAccel*accel); 

2) le Codecs/Dec, Enc, DecEnc, poste. Les bibliothèques etc ....

avcodec_register(AVCodec*codec); 

3) les parseurs

av_register_codec_parser(AVCodecParser*parser); 

4) Filtres Bitstream

av_register_bitstream_filter(AVBitstreamFilter*bsf); 

5) Registre MUX/démultiplexeurs

av_register_output_format(AVOutputFormat*ov); 
av_register_input_format(AVInputFormat*if); 

6) Si RTP:

av_register_rtp_dynamic_payload_handlers(); 
av_register_rdt_dynamic_payload_handlers(); 

7) Protocoles

av_register_protocol2(URLProtocol*pr, int size); 

Espoir qui a aidé?