[FFmpeg-devel] [PATCH] Use AVERROR(ENOSYS) when it makes sense

Stefano Sabatini stefano.sabatini-lala
Mon Apr 12 00:42:05 CEST 2010


On date Sunday 2010-04-11 23:33:15 +0200, Michael Niedermayer encoded:
> On Sun, Apr 11, 2010 at 10:13:30PM +0200, Stefano Sabatini wrote:
> > On date Saturday 2010-04-03 13:46:24 +0200, Stefano Sabatini encoded:
> > > Hi, as in subject.
> > > -- 
> > > FFmpeg = Fucking and Fabulous Moronic Peaceful Elitarian Genius
> > 
> > > From e66cec2193ee289f742120f92db17f33e7651fba Mon Sep 17 00:00:00 2001
> > > From: Stefano Sabatini <stefano.sabatini-lala at poste.it>
> > > Date: Tue, 16 Mar 2010 22:48:37 +0100
> > > Subject: [PATCH 2/5] Make url_seek() return AVERROR(ENOSYS) rather than AVERROR(EPIPE) in
> > >  the case where the seek operation is not defined in the protocol
> > >  handler.
> > > 
> > > ---
> > >  libavformat/avio.c |    2 +-
> > >  1 files changed, 1 insertions(+), 1 deletions(-)
> > > 
> > > diff --git a/libavformat/avio.c b/libavformat/avio.c
> > > index af9e049..3fb64d1 100644
> > > --- a/libavformat/avio.c
> > > +++ b/libavformat/avio.c
> > > @@ -201,7 +201,7 @@ int64_t url_seek(URLContext *h, int64_t pos, int whence)
> > >      int64_t ret;
> > >  
> > >      if (!h->prot->url_seek)
> > > -        return AVERROR(EPIPE);
> > > +        return AVERROR(ENOSYS);
> > >      ret = h->prot->url_seek(h, pos, whence & ~AVSEEK_FORCE);
> > >      return ret;
> > >  }
> > > -- 
> > > 1.7.0
> > > 
> > 
> > > From f11131bc3a2e08f46b291e4fa849e7e8c642c757 Mon Sep 17 00:00:00 2001
> > > From: Stefano Sabatini <stefano.sabatini-lala at poste.it>
> > > Date: Tue, 16 Mar 2010 23:08:32 +0100
> > > Subject: [PATCH 3/5] Make url_fseek() return AVERROR(ENOSYS) rather than AVERROR(EPIPE) if
> > >  the seek operation is not defined in the ByteIOContext.
> > > 
> > > ---
> > >  libavformat/aviobuf.c |    2 +-
> > >  1 files changed, 1 insertions(+), 1 deletions(-)
> > > 
> > > diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c
> > > index 37a6f6d..039b6d3 100644
> > > --- a/libavformat/aviobuf.c
> > > +++ b/libavformat/aviobuf.c
> > > @@ -160,7 +160,7 @@ int64_t url_fseek(ByteIOContext *s, int64_t offset, int whence)
> > >              return AVERROR_EOF;
> > >          s->buf_ptr = s->buf_end + offset - s->pos;
> > >      } else {
> > > -        int64_t res = AVERROR(EPIPE);
> > > +        int64_t res = AVERROR(ENOSYS);
> > >  
> > >  #if CONFIG_MUXERS || CONFIG_NETWORK
> > >          if (s->write_flag) {
> > > -- 
> > > 1.7.0
> > > 
> > 
> > > From 492f5063961b0d63fd6dda4404a107aa99484d40 Mon Sep 17 00:00:00 2001
> > > From: Stefano Sabatini <stefano.sabatini-lala at poste.it>
> > > Date: Tue, 16 Mar 2010 23:10:21 +0100
> > > Subject: [PATCH 4/5] Make url_fsize() return AVERROR(ENOSYS) rather than AVERROR(EPIPE) if
> > >  the seek operation is not defined in the ByteIOContext.
> > > 
> > > ---
> > >  libavformat/aviobuf.c |    2 +-
> > >  1 files changed, 1 insertions(+), 1 deletions(-)
> > > 
> > > diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c
> > > index 039b6d3..0c46327 100644
> > > --- a/libavformat/aviobuf.c
> > > +++ b/libavformat/aviobuf.c
> > > @@ -197,7 +197,7 @@ int64_t url_fsize(ByteIOContext *s)
> > >          return AVERROR(EINVAL);
> > >  
> > >      if (!s->seek)
> > > -        return AVERROR(EPIPE);
> > > +        return AVERROR(ENOSYS);
> > >      size = s->seek(s->opaque, 0, AVSEEK_SIZE);
> > >      if(size<0){
> > >          if ((size = s->seek(s->opaque, -1, SEEK_END)) < 0)
> > 
> > Ping.
> 
> you are misusing ENOSYS

This is possible, anyway how is EPIPE better than ENOSYS in this case?

Please give some advice if you have any.

Regards.
-- 
FFmpeg = Freak Fierce Merciful Powered Esoteric Governor



More information about the ffmpeg-devel mailing list