[FFmpeg-cvslog] r25258 - trunk/libavcodec/libvorbis.c

Stefano Sabatini stefano.sabatini-lala
Wed Sep 29 18:05:47 CEST 2010


On date Wednesday 2010-09-29 17:09:39 +0200, michael wrote:
> Author: michael
> Date: Wed Sep 29 17:09:38 2010
> New Revision: 25258
> 
> Log:
> Allow setting the impulse block bias for libvorbis through a private codec parameter.
> First example and test of private codec parameters.
> 
> Modified:
>    trunk/libavcodec/libvorbis.c
> 
> Modified: trunk/libavcodec/libvorbis.c
> ==============================================================================
> --- trunk/libavcodec/libvorbis.c	Wed Sep 29 17:05:47 2010	(r25257)
> +++ trunk/libavcodec/libvorbis.c	Wed Sep 29 17:09:38 2010	(r25258)
> @@ -26,6 +26,7 @@
>  
>  #include <vorbis/vorbisenc.h>
>  
> +#include "libavutil/opt.h"
>  #include "avcodec.h"
>  #include "bytestream.h"
>  #include "vorbis.h"
> @@ -38,6 +39,7 @@
>  #define BUFFER_SIZE (1024*64)
>  
>  typedef struct OggVorbisContext {
> +    AVClass *av_class;
>      vorbis_info vi ;
>      vorbis_dsp_state vd ;
>      vorbis_block vb ;
> @@ -48,10 +50,18 @@ typedef struct OggVorbisContext {
>      /* decoder */
>      vorbis_comment vc ;
>      ogg_packet op;
> +
> +    double iblock;
>  } OggVorbisContext ;
>  
> +static const AVOption options[]={
> +{"iblock", "Sets the impulse block bias", offsetof(OggVorbisContext, iblock), FF_OPT_TYPE_DOUBLE, 0, -15, 0, AV_OPT_FLAG_ENCODING_PARAM},
> +{NULL}
> +};
> +static const AVClass class = { "libvorbis", NULL, options, LIBAVUTIL_VERSION_INT };

That's cool, now we should also try to document it. Some volunteer to
create and fill a doc/codecs.texi?
  
>  static av_cold int oggvorbis_init_encoder(vorbis_info *vi, AVCodecContext *avccontext) {
> +    OggVorbisContext *context = avccontext->priv_data ;

for avoiding horrible confusion I suggest to call the private context
something along the lines of the private context itself, e.g. it may
be vorbis in this case, that's similiar to what it's done in lavfi
filters.

>      double cfreq;
>  
>      if(avccontext->flags & CODEC_FLAG_QSCALE) {
> @@ -82,6 +92,10 @@ static av_cold int oggvorbis_init_encode
>              return -1;
>      }
>  
> +    if(context->iblock){
> +        vorbis_encode_ctl(vi, OV_ECTL_IBLOCK_SET, &context->iblock);
> +    }

Please avoid if(...){ in favor of if_(...)_{ for karma bonus.

Regards.
-- 
FFmpeg = Fancy and Frightening Most Plastic Ecumenical Governor



More information about the ffmpeg-cvslog mailing list