mirror of https://git.ffmpeg.org/ffmpeg.git
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->buf = av_malloc(os->bufsize);
|
||||
os->header = -1;
|
||||
os->page_begin = 1;
|
||||
|
||||
st = av_new_stream (s, idx);
|
||||
if (!st)
|
||||
|
@ -242,8 +241,7 @@ ogg_read_page (AVFormatContext * s, int *str)
|
|||
|
||||
idx = ogg_find_stream (ogg, serial);
|
||||
if (idx < 0){
|
||||
for (i = 0; i < ogg->nstreams; i++) {
|
||||
if (!ogg->streams[i].page_begin) {
|
||||
if (ogg->headers) {
|
||||
int n;
|
||||
|
||||
for (n = 0; n < ogg->nstreams; n++) {
|
||||
|
@ -252,8 +250,6 @@ ogg_read_page (AVFormatContext * s, int *str)
|
|||
}
|
||||
ogg->curidx = -1;
|
||||
ogg->nstreams = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
idx = ogg_new_stream (s, serial);
|
||||
if (idx < 0)
|
||||
|
@ -261,8 +257,6 @@ ogg_read_page (AVFormatContext * s, int *str)
|
|||
}
|
||||
|
||||
os = ogg->streams + idx;
|
||||
if (!(flags & OGG_FLAG_BOS))
|
||||
os->page_begin = 0;
|
||||
os->page_pos = avio_tell(bc) - 27;
|
||||
|
||||
if(os->psize > 0)
|
||||
|
|
|
@ -75,7 +75,6 @@ struct ogg_stream {
|
|||
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 keyframe_seek;
|
||||
int page_begin; ///< set to 1 if the stream only received a begin-of-stream packet, otherwise 0
|
||||
void *private;
|
||||
};
|
||||
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include <inttypes.h>
|
||||
|
||||
#include "avformat.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.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
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
|
||||
* decoded packet cumulative data size array, each element is the
|
||||
* 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
|
||||
* 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. */
|
||||
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;
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue