[FFmpeg-devel] [PATCH 4/9] lavf/oggdec: simplify destroying streams with chained audio streams.

Reimar Döffinger Reimar.Doeffinger at gmx.de
Sat Sep 15 01:27:28 CEST 2012


On Sat, Sep 15, 2012 at 01:20:43AM +0200, Clément Bœsch wrote:
> nstreams is assumed to be 1 at that point, so the loop is pointless.
> ---
>  libavformat/oggdec.c | 9 +++------
>  1 file changed, 3 insertions(+), 6 deletions(-)
> 
> diff --git a/libavformat/oggdec.c b/libavformat/oggdec.c
> index 9d27393..05aeddd 100644
> --- a/libavformat/oggdec.c
> +++ b/libavformat/oggdec.c
> @@ -256,18 +256,15 @@ static int ogg_read_page(AVFormatContext *s, int *sid)
>      idx = ogg_find_stream (ogg, serial);
>      if (idx < 0){
>          if (ogg->headers) {
> -            int n;
>  
>              if (ogg->nstreams != 1) {
>                  av_log_missing_feature(s, "Changing stream parameters in multistream ogg is", 0);
>                  return idx;
>              }
>  
> -            for (n = 0; n < ogg->nstreams; n++) {
> -                av_freep(&ogg->streams[n].buf);
> -                if (!ogg->state || ogg->state->streams[n].private != ogg->streams[n].private)
> -                    av_freep(&ogg->streams[n].private);
> -            }
> +            av_freep(&ogg->streams[0].buf);
> +            if (!ogg->state || ogg->state->streams[0].private != ogg->streams[0].private)
> +                av_freep(&ogg->streams[0].private);

The thing is that this is supposed to be only temporary until someone
implements the feature.
I don't think this simplifies the code enough to justify making the
code doing something semantically wrong ("free all streams" vs.
"free the first stream"), even if it has the same effect.


More information about the ffmpeg-devel mailing list