Commit d3b379b9 authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit '4d012eb5'

* commit '4d012eb5':
  xwma: Fix wrong printf format expression.
  xwma demuxer: typos
  oggdec: simplify audio chained ogg streams support
Merged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents f6302ad6 4d012eb5
...@@ -164,7 +164,6 @@ ogg_new_stream (AVFormatContext * s, uint32_t serial) ...@@ -164,7 +164,6 @@ ogg_new_stream (AVFormatContext * s, uint32_t serial)
os->bufsize = DECODER_BUFFER_SIZE; os->bufsize = DECODER_BUFFER_SIZE;
os->buf = av_malloc(os->bufsize); os->buf = av_malloc(os->bufsize);
os->header = -1; os->header = -1;
os->page_begin = 1;
st = av_new_stream (s, idx); st = av_new_stream (s, idx);
if (!st) if (!st)
...@@ -242,8 +241,7 @@ ogg_read_page (AVFormatContext * s, int *str) ...@@ -242,8 +241,7 @@ ogg_read_page (AVFormatContext * s, int *str)
idx = ogg_find_stream (ogg, serial); idx = ogg_find_stream (ogg, serial);
if (idx < 0){ if (idx < 0){
for (i = 0; i < ogg->nstreams; i++) { if (ogg->headers) {
if (!ogg->streams[i].page_begin) {
int n; int n;
for (n = 0; n < ogg->nstreams; n++) { for (n = 0; n < ogg->nstreams; n++) {
...@@ -252,8 +250,6 @@ ogg_read_page (AVFormatContext * s, int *str) ...@@ -252,8 +250,6 @@ ogg_read_page (AVFormatContext * s, int *str)
} }
ogg->curidx = -1; ogg->curidx = -1;
ogg->nstreams = 0; ogg->nstreams = 0;
break;
}
} }
idx = ogg_new_stream (s, serial); idx = ogg_new_stream (s, serial);
if (idx < 0) if (idx < 0)
...@@ -261,8 +257,6 @@ ogg_read_page (AVFormatContext * s, int *str) ...@@ -261,8 +257,6 @@ ogg_read_page (AVFormatContext * s, int *str)
} }
os = ogg->streams + idx; os = ogg->streams + idx;
if (!(flags & OGG_FLAG_BOS))
os->page_begin = 0;
os->page_pos = avio_tell(bc) - 27; os->page_pos = avio_tell(bc) - 27;
if(os->psize > 0) if(os->psize > 0)
......
...@@ -75,7 +75,6 @@ struct ogg_stream { ...@@ -75,7 +75,6 @@ struct ogg_stream {
int incomplete; ///< whether we're expecting a continuation in the next page int incomplete; ///< whether we're expecting a continuation in the next page
int page_end; ///< current packet is the last one completed in the page int page_end; ///< current packet is the last one completed in the page
int keyframe_seek; int keyframe_seek;
int page_begin; ///< set to 1 if the stream only received a begin-of-stream packet, otherwise 0
void *private; void *private;
}; };
......
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include <inttypes.h>
#include "avformat.h" #include "avformat.h"
#include "riff.h" #include "riff.h"
...@@ -90,7 +92,7 @@ static int xwma_read_header(AVFormatContext *s, AVFormatParameters *ap) ...@@ -90,7 +92,7 @@ static int xwma_read_header(AVFormatContext *s, AVFormatParameters *ap)
* codecs require extradata, so we provide our own fake extradata. * codecs require extradata, so we provide our own fake extradata.
* *
* First, check that there really was no extradata in the header. If * First, check that there really was no extradata in the header. If
* there was, then try to use, after asking the the user to provide a * there was, then try to use it, after asking the user to provide a
* sample of this unusual file. * sample of this unusual file.
*/ */
if (st->codec->extradata_size != 0) { if (st->codec->extradata_size != 0) {
...@@ -129,7 +131,7 @@ static int xwma_read_header(AVFormatContext *s, AVFormatParameters *ap) ...@@ -129,7 +131,7 @@ static int xwma_read_header(AVFormatContext *s, AVFormatParameters *ap)
/* Quoting the MSDN xWMA docs on the dpds chunk: "Contains the /* Quoting the MSDN xWMA docs on the dpds chunk: "Contains the
* decoded packet cumulative data size array, each element is the * decoded packet cumulative data size array, each element is the
* number of bytes accumulated after the corresponding xWMA packet * number of bytes accumulated after the corresponding xWMA packet
* is decoded in order" * is decoded in order."
* *
* Each packet has size equal to st->codec->block_align, which in * Each packet has size equal to st->codec->block_align, which in
* all cases I saw so far was always 2230. Thus, we can use the * all cases I saw so far was always 2230. Thus, we can use the
...@@ -144,11 +146,13 @@ static int xwma_read_header(AVFormatContext *s, AVFormatParameters *ap) ...@@ -144,11 +146,13 @@ static int xwma_read_header(AVFormatContext *s, AVFormatParameters *ap)
/* Compute the number of entries in the dpds chunk. */ /* Compute the number of entries in the dpds chunk. */
if (size & 3) { /* Size should be divisible by four */ if (size & 3) { /* Size should be divisible by four */
av_log(s, AV_LOG_WARNING, "dpds chunk size "PRId64" not divisible by 4\n", size); av_log(s, AV_LOG_WARNING,
"dpds chunk size %"PRId64" not divisible by 4\n", size);
} }
dpds_table_size = size / 4; dpds_table_size = size / 4;
if (dpds_table_size == 0 || dpds_table_size >= INT_MAX / 4) { if (dpds_table_size == 0 || dpds_table_size >= INT_MAX / 4) {
av_log(s, AV_LOG_ERROR, "dpds chunk size "PRId64" invalid\n", size); av_log(s, AV_LOG_ERROR,
"dpds chunk size %"PRId64" invalid\n", size);
return -1; return -1;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment