Merge commit '4d012eb541ed7f35e00c87035a470d9f0a24a6e8'
* commit '4d012eb541ed7f35e00c87035a470d9f0a24a6e8': xwma: Fix wrong printf format expression. xwma demuxer: typos oggdec: simplify audio chained ogg streams support Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
d3b379b95b
@ -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)
|
|||||||
|
|
||||||
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)
|
|||||||
}
|
}
|
||||||
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)
|
|||||||
}
|
}
|
||||||
|
|
||||||
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 {
|
|||||||
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 @@
|
|||||||
* 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)
|
|||||||
* 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)
|
|||||||
/* 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)
|
|||||||
|
|
||||||
/* 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user