func: int show_help(void *optctx,const char *opt,const char *arg) char * topic ; char * par ; topic = av_strdup ( ( arg ? arg : "" ) ); par = strchr ( topic , '=' ); if ( par )  * ( par ++ ) = 0; show_help_default ( topic , par ); show_help_codec ( par , 0 ); static void show_help_codec(const char *name,int encoder) if ( ! name )  codec = ( ( encoder ? avcodec_find_encoder_by_name ( name ) : avcodec_find_decoder_by_name ( name ) ) ); if ( codec )  print_codec ( codec ); static void print_codec(const AVCodec *c) int encoder = av_codec_is_encoder ( c ) ; printf ( "%s %s [%s]:\n" , ( encoder ? "Encoder" : "Decoder" ) , c -> name , ( c -> long_name ? c -> long_name : "" ) ); if ( ( c -> type ) == AVMEDIA_TYPE_VIDEO )  switch ( c -> capabilities & ( 0x1000 | 0x2000 ) )  if ( c -> supported_framerates )  const AVRational * fps = c -> supported_framerates ; while ( fps -> num )  printf ( " %d/%d" , fps -> num , fps -> den ); fps ++; if ( c -> pix_fmts )  const enum AVPixelFormat * p = c -> pix_fmts ; while ( ( * p ) != AV_PIX_FMT_NONE )  const char * name = av_get_pix_fmt_name ( * p ) ; printf ( " %s" , name ); p ++; if ( c -> supported_samplerates )  const int * p = c -> supported_samplerates ; while ( * p != 0 )  snprintf ( name , sizeof ( name ) , "%d" , * p ); printf ( " %s" , name ); p ++; if ( c -> sample_fmts )  const enum AVSampleFormat * p = c -> sample_fmts ; while ( ( * p ) != AV_SAMPLE_FMT_NONE )  const char * name = av_get_sample_fmt_name ( * p ) ; printf ( " %s" , name ); p ++; if ( c -> channel_layouts )  const uint64_t * p = c -> channel_layouts ; while ( * p != 0 )  av_get_channel_layout_string ( name , ( sizeof ( name ) ) , 0 , * p ); printf ( " %s" , name ); p ++; if ( c -> priv_class )  show_help_children ( c -> priv_class , 1 | 2 ); if ( desc = avcodec_descriptor_get_by_name ( name ) )  while ( codec = next_codec_for_id ( desc -> id , codec , encoder ) )  static const AVCodec *next_codec_for_id(enum AVCodecID id,const AVCodec *prev,int encoder) while ( prev = ( av_codec_next ( prev ) ) )  if ( ( prev -> id ) == id && ( ( encoder ? av_codec_is_encoder ( prev ) : av_codec_is_decoder ( prev ) ) ) )  return prev ; print_codec ( codec ); static void print_codec(const AVCodec *c) int encoder = av_codec_is_encoder ( c ) ; printf ( "%s %s [%s]:\n" , ( encoder ? "Encoder" : "Decoder" ) , c -> name , ( c -> long_name ? c -> long_name : "" ) ); if ( ( c -> type ) == AVMEDIA_TYPE_VIDEO )  switch ( c -> capabilities & ( 0x1000 | 0x2000 ) )  if ( c -> supported_framerates )  const AVRational * fps = c -> supported_framerates ; while ( fps -> num )  printf ( " %d/%d" , fps -> num , fps -> den ); fps ++; if ( c -> pix_fmts )  const enum AVPixelFormat * p = c -> pix_fmts ; while ( ( * p ) != AV_PIX_FMT_NONE )  const char * name = av_get_pix_fmt_name ( * p ) ; printf ( " %s" , name ); p ++; if ( c -> supported_samplerates )  const int * p = c -> supported_samplerates ; while ( * p != 0 )  snprintf ( name , sizeof ( name ) , "%d" , * p ); printf ( " %s" , name ); p ++; if ( c -> sample_fmts )  const enum AVSampleFormat * p = c -> sample_fmts ; while ( ( * p ) != AV_SAMPLE_FMT_NONE )  const char * name = av_get_sample_fmt_name ( * p ) ; printf ( " %s" , name ); p ++; if ( c -> channel_layouts )  const uint64_t * p = c -> channel_layouts ; while ( * p != 0 )  av_get_channel_layout_string ( name , ( sizeof ( name ) ) , 0 , * p ); printf ( " %s" , name ); p ++; if ( c -> priv_class )  show_help_children ( c -> priv_class , 1 | 2 ); av_log ( ( ( void * ) 0 ) , 16 , "Codec '%s' is known to FFmpeg, but no %s for it are available. FFmpeg might need to be recompiled with additional external libraries.\n" , name , ( encoder ? "encoders" : "decoders" ) ); av_log ( ( ( void * ) 0 ) , 16 , "Codec '%s' is not recognized by FFmpeg.\n" , name ); show_help_codec ( par , 1 ); static void show_help_codec(const char *name,int encoder) if ( ! name )  codec = ( ( encoder ? avcodec_find_encoder_by_name ( name ) : avcodec_find_decoder_by_name ( name ) ) ); if ( codec )  print_codec ( codec ); if ( desc = avcodec_descriptor_get_by_name ( name ) )  while ( codec = next_codec_for_id ( desc -> id , codec , encoder ) )  print_codec ( codec ); av_log ( ( ( void * ) 0 ) , 16 , "Codec '%s' is known to FFmpeg, but no %s for it are available. FFmpeg might need to be recompiled with additional external libraries.\n" , name , ( encoder ? "encoders" : "decoders" ) ); av_log ( ( ( void * ) 0 ) , 16 , "Codec '%s' is not recognized by FFmpeg.\n" , name ); show_help_demuxer ( par ); static void show_help_demuxer(const char *name) const AVInputFormat * fmt = ( av_find_input_format ( name ) ) ; if ( ! fmt )  av_log ( ( ( void * ) 0 ) , 16 , "Unknown format '%s'.\n" , name ); printf ( "Demuxer %s [%s]:\n" , fmt -> name , fmt -> long_name ); if ( fmt -> extensions )  printf ( "    Common extensions: %s.\n" , fmt -> extensions ); if ( fmt -> priv_class )  show_help_children ( fmt -> priv_class , 2 ); show_help_muxer ( par ); static void show_help_muxer(const char *name) const AVOutputFormat * fmt = ( av_guess_format ( name , ( ( void * ) 0 ) , ( ( void * ) 0 ) ) ) ; if ( ! fmt )  av_log ( ( ( void * ) 0 ) , 16 , "Unknown format '%s'.\n" , name ); printf ( "Muxer %s [%s]:\n" , fmt -> name , fmt -> long_name ); if ( fmt -> extensions )  printf ( "    Common extensions: %s.\n" , fmt -> extensions ); if ( fmt -> mime_type )  printf ( "    Mime type: %s.\n" , fmt -> mime_type ); if ( ( fmt -> video_codec ) != AV_CODEC_ID_NONE && ( desc = avcodec_descriptor_get ( fmt -> video_codec ) ) )  printf ( "    Default video codec: %s.\n" , desc -> name ); if ( ( fmt -> audio_codec ) != AV_CODEC_ID_NONE && ( desc = avcodec_descriptor_get ( fmt -> audio_codec ) ) )  printf ( "    Default audio codec: %s.\n" , desc -> name ); if ( ( fmt -> subtitle_codec ) != AV_CODEC_ID_NONE && ( desc = avcodec_descriptor_get ( fmt -> subtitle_codec ) ) )  printf ( "    Default subtitle codec: %s.\n" , desc -> name ); if ( fmt -> priv_class )  show_help_children ( fmt -> priv_class , 1 ); show_help_default ( topic , par ); 