ref: 23c8a83da2b22646d61edd1dd475a0d62352eb7b
parent: 87b951c338fb3835e12221bb786e0f30ccbd6f50
author: Timothy B. Terriberry <tterribe@xiph.org>
date: Wed Aug 28 21:05:46 EDT 2013
Mark a bunch of API functions const. This makes it clear they don't modify the state, which is a useful indicator of what is safe to call from the application decode callback.
--- a/include/opusfile.h
+++ b/include/opusfile.h
@@ -1406,7 +1406,7 @@
This function may be called on partially-opened streams.
\param _of The \c OggOpusFile whose seekable status is to be returned.
\return A non-zero value if seekable, and 0 if unseekable.*/
-int op_seekable(OggOpusFile *_of) OP_ARG_NONNULL(1);
+int op_seekable(const OggOpusFile *_of) OP_ARG_NONNULL(1);
/**Returns the number of links in this chained stream.
This function may be called on partially-opened streams, but it will always
@@ -1416,7 +1416,7 @@
\return For fully-open seekable sources, this returns the total number of
links in the whole stream, which will be at least 1.
For partially-open or unseekable sources, this always returns 1.*/
-int op_link_count(OggOpusFile *_of) OP_ARG_NONNULL(1);
+int op_link_count(const OggOpusFile *_of) OP_ARG_NONNULL(1);
/**Get the serial number of the given link in a (possibly-chained) Ogg Opus
stream.
@@ -1431,7 +1431,7 @@
the serial number of the last link.
If the source is not seekable, this always returns the serial number
of the current link.*/
-opus_uint32 op_serialno(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1);
+opus_uint32 op_serialno(const OggOpusFile *_of,int _li) OP_ARG_NONNULL(1);
/**Get the channel count of the given link in a (possibly-chained) Ogg Opus
stream.
@@ -1448,7 +1448,7 @@
the channel count of the last link.
If the source is not seekable, this always returns the channel count
of the current link.*/
-int op_channel_count(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1);
+int op_channel_count(const OggOpusFile *_of,int _li) OP_ARG_NONNULL(1);
/**Get the total (compressed) size of the stream, or of an individual link in
a (possibly-chained) Ogg Opus stream, including all headers and Ogg muxing
@@ -1466,7 +1466,7 @@
\retval #OP_EINVAL The source is not seekable (so we can't know the length),
\a _li wasn't less than the total number of links in
the stream, or the stream was only partially open.*/
-opus_int64 op_raw_total(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1);
+opus_int64 op_raw_total(const OggOpusFile *_of,int _li) OP_ARG_NONNULL(1);
/**Get the total PCM length (number of samples at 48 kHz) of the stream, or of
an individual link in a (possibly-chained) Ogg Opus stream.
@@ -1484,7 +1484,7 @@
\retval #OP_EINVAL The source is not seekable (so we can't know the length),
\a _li wasn't less than the total number of links in
the stream, or the stream was only partially open.*/
-ogg_int64_t op_pcm_total(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1);
+ogg_int64_t op_pcm_total(const OggOpusFile *_of,int _li) OP_ARG_NONNULL(1);
/**Get the ID header information for the given link in a (possibly chained) Ogg
Opus stream.
@@ -1500,7 +1500,7 @@
information for the current link is always returned, if
available.
\return The contents of the ID header for the given link.*/
-const OpusHead *op_head(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1);
+const OpusHead *op_head(const OggOpusFile *_of,int _li) OP_ARG_NONNULL(1);
/**Get the comment header information for the given link in a (possibly
chained) Ogg Opus stream.
@@ -1518,7 +1518,7 @@
\return The contents of the comment header for the given link, or
<code>NULL</code> if this is an unseekable stream that encountered
an invalid link.*/
-const OpusTags *op_tags(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1);
+const OpusTags *op_tags(const OggOpusFile *_of,int _li) OP_ARG_NONNULL(1);
/**Retrieve the index of the current link.
This is the link that produced the data most recently read by
@@ -1535,7 +1535,7 @@
each time a new link is encountered (even though op_link_count()
always returns 1).
\retval #OP_EINVAL The stream was only partially open.*/
-int op_current_link(OggOpusFile *_of) OP_ARG_NONNULL(1);
+int op_current_link(const OggOpusFile *_of) OP_ARG_NONNULL(1);
/**Computes the bitrate for a given link in a (possibly chained) Ogg Opus
stream.
@@ -1548,7 +1548,7 @@
\retval #OP_EINVAL The stream was only partially open, the stream was not
seekable, or \a _li was larger than the number of
links.*/
-opus_int32 op_bitrate(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1);
+opus_int32 op_bitrate(const OggOpusFile *_of,int _li) OP_ARG_NONNULL(1);
/**Compute the instantaneous bitrate, measured as the ratio of bits to playable
samples decoded since a) the last call to op_bitrate_instant(), b) the last
@@ -1567,7 +1567,7 @@
\param _of The \c OggOpusFile from which to retrieve the position indicator.
\return The byte position that is currently being read from.
\retval #OP_EINVAL The stream was only partially open.*/
-opus_int64 op_raw_tell(OggOpusFile *_of) OP_ARG_NONNULL(1);
+opus_int64 op_raw_tell(const OggOpusFile *_of) OP_ARG_NONNULL(1);
/**Obtain the PCM offset of the next sample to be read.
If the stream is not properly timestamped, this might not increment by the
@@ -1576,7 +1576,7 @@
\param _of The \c OggOpusFile from which to retrieve the PCM offset.
\return The PCM offset of the next sample to be read.
\retval #OP_EINVAL The stream was only partially open.*/
-ogg_int64_t op_pcm_tell(OggOpusFile *_of) OP_ARG_NONNULL(1);
+ogg_int64_t op_pcm_tell(const OggOpusFile *_of) OP_ARG_NONNULL(1);
/*@}*/
/*@}*/
--- a/src/opusfile.c
+++ b/src/opusfile.c
@@ -1686,25 +1686,25 @@
}
}
-int op_seekable(OggOpusFile *_of){
+int op_seekable(const OggOpusFile *_of){
return _of->seekable;
}
-int op_link_count(OggOpusFile *_of){
+int op_link_count(const OggOpusFile *_of){
return _of->nlinks;
}
-ogg_uint32_t op_serialno(OggOpusFile *_of,int _li){
+ogg_uint32_t op_serialno(const OggOpusFile *_of,int _li){
if(OP_UNLIKELY(_li>=_of->nlinks))_li=_of->nlinks-1;
if(!_of->seekable)_li=0;
return _of->links[_li<0?_of->cur_link:_li].serialno;
}
-int op_channel_count(OggOpusFile *_of,int _li){
+int op_channel_count(const OggOpusFile *_of,int _li){
return op_head(_of,_li)->channel_count;
}
-opus_int64 op_raw_total(OggOpusFile *_of,int _li){
+opus_int64 op_raw_total(const OggOpusFile *_of,int _li){
if(OP_UNLIKELY(_of->ready_state<OP_OPENED)
||OP_UNLIKELY(!_of->seekable)
||OP_UNLIKELY(_li>=_of->nlinks)){
@@ -1715,7 +1715,7 @@
-_of->links[_li].offset;
}
-ogg_int64_t op_pcm_total(OggOpusFile *_of,int _li){
+ogg_int64_t op_pcm_total(const OggOpusFile *_of,int _li){
OggOpusLink *links;
ogg_int64_t diff;
int nlinks;
@@ -1745,13 +1745,13 @@
return diff-links[_li].head.pre_skip;
}
-const OpusHead *op_head(OggOpusFile *_of,int _li){
+const OpusHead *op_head(const OggOpusFile *_of,int _li){
if(OP_UNLIKELY(_li>=_of->nlinks))_li=_of->nlinks-1;
if(!_of->seekable)_li=0;
return &_of->links[_li<0?_of->cur_link:_li].head;
}
-const OpusTags *op_tags(OggOpusFile *_of,int _li){
+const OpusTags *op_tags(const OggOpusFile *_of,int _li){
if(OP_UNLIKELY(_li>=_of->nlinks))_li=_of->nlinks-1;
if(!_of->seekable){
if(_of->ready_state<OP_STREAMSET&&_of->ready_state!=OP_PARTOPEN){
@@ -1763,7 +1763,7 @@
return &_of->links[_li].tags;
}
-int op_current_link(OggOpusFile *_of){
+int op_current_link(const OggOpusFile *_of){
if(OP_UNLIKELY(_of->ready_state<OP_OPENED))return OP_EINVAL;
return _of->cur_link;
}
@@ -1792,7 +1792,7 @@
OP_INT32_MAX);
}
-opus_int32 op_bitrate(OggOpusFile *_of,int _li){
+opus_int32 op_bitrate(const OggOpusFile *_of,int _li){
if(OP_UNLIKELY(_of->ready_state<OP_OPENED)||OP_UNLIKELY(!_of->seekable)
||OP_UNLIKELY(_li>=_of->nlinks)){
return OP_EINVAL;
@@ -2493,7 +2493,7 @@
return 0;
}
-opus_int64 op_raw_tell(OggOpusFile *_of){
+opus_int64 op_raw_tell(const OggOpusFile *_of){
if(OP_UNLIKELY(_of->ready_state<OP_OPENED))return OP_EINVAL;
return _of->offset;
}
@@ -2529,7 +2529,7 @@
return pcm_offset;
}
-ogg_int64_t op_pcm_tell(OggOpusFile *_of){
+ogg_int64_t op_pcm_tell(const OggOpusFile *_of){
ogg_int64_t gp;
int nbuffered;
int li;