[FFmpeg-devel] [PATCH] ffserver: factorize opt_audio/video_codec

Clément Bœsch u at pkh.me
Wed Nov 27 14:15:39 CET 2013


On Wed, Nov 27, 2013 at 01:59:25PM +0100, Stefano Sabatini wrote:
> Simplify.
> ---
>  ffserver.c | 27 ++++++++-------------------
>  1 file changed, 8 insertions(+), 19 deletions(-)
> 
> diff --git a/ffserver.c b/ffserver.c
> index 5ecdb08..d9add4a 100644
> --- a/ffserver.c
> +++ b/ffserver.c
> @@ -3942,24 +3942,13 @@ static void add_codec(FFStream *stream, AVCodecContext *av)
>      memcpy(st->codec, av, sizeof(AVCodecContext));
>  }
>  
> -static enum AVCodecID opt_audio_codec(const char *arg)
> +static enum AVCodecID opt_codec(const char *name, enum AVMediaType type)
>  {
> -    AVCodec *p= avcodec_find_encoder_by_name(arg);
> +    AVCodec *codec = avcodec_find_encoder_by_name(name);

nit: "enc" looks like a more appropriate name

>  
> -    if (p == NULL || p->type != AVMEDIA_TYPE_AUDIO)
> +    if (!codec || codec->type != type)
>          return AV_CODEC_ID_NONE;
> -
> -    return p->id;
> -}
> -
> -static enum AVCodecID opt_video_codec(const char *arg)
> -{
> -    AVCodec *p= avcodec_find_encoder_by_name(arg);
> -
> -    if (p == NULL || p->type != AVMEDIA_TYPE_VIDEO)
> -        return AV_CODEC_ID_NONE;
> -
> -    return p->id;
> +    return codec->id;
>  }
>  
>  static int ffserver_opt_default(const char *opt, const char *arg,
> @@ -3998,9 +3987,9 @@ static int ffserver_opt_preset(const char *arg,
>              break;
>          }
>          if(!strcmp(tmp, "acodec")){
> -            *audio_id = opt_audio_codec(tmp2);
> +            *audio_id = opt_codec(tmp2, AVMEDIA_TYPE_AUDIO);
>          }else if(!strcmp(tmp, "vcodec")){
> -            *video_id = opt_video_codec(tmp2);
> +            *video_id = opt_codec(tmp2, AVMEDIA_TYPE_VIDEO);
>          }else if(!strcmp(tmp, "scodec")){
>              /* opt_subtitle_codec(tmp2); */
>          }else if(ffserver_opt_default(tmp, tmp2, avctx, type) < 0){
> @@ -4346,13 +4335,13 @@ static int parse_ffconfig(const char *filename)
>                  stream->send_on_key = 1;
>          } else if (!av_strcasecmp(cmd, "AudioCodec")) {
>              get_arg(arg, sizeof(arg), &p);
> -            audio_id = opt_audio_codec(arg);
> +            audio_id = opt_codec(arg, AVMEDIA_TYPE_AUDIO);
>              if (audio_id == AV_CODEC_ID_NONE) {
>                  ERROR("Unknown AudioCodec: %s\n", arg);
>              }
>          } else if (!av_strcasecmp(cmd, "VideoCodec")) {
>              get_arg(arg, sizeof(arg), &p);
> -            video_id = opt_video_codec(arg);
> +            video_id = opt_codec(arg, AVMEDIA_TYPE_VIDEO);
>              if (video_id == AV_CODEC_ID_NONE) {
>                  ERROR("Unknown VideoCodec: %s\n", arg);
>              }

Rest LGTM

-- 
Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20131127/b49cb191/attachment.asc>


More information about the ffmpeg-devel mailing list