Merge remote-tracking branch 'qatar/master'
* qatar/master: (34 commits) mlp_parser: fix the channel mask value used for the top surround channel vorbisenc: check all allocations for failure roqaudioenc: return AVERROR codes instead of -1 roqaudioenc: set correct bit rate roqaudioenc: use AVCodecContext.frame_size correctly. roqaudioenc: remove unneeded sample_fmt check ra144enc: use int16_t* for input samples rather than void* ra144enc: set AVCodecContext.coded_frame ra144enc: remove unneeded sample_fmt check nellymoserenc: set AVCodecContext.coded_frame nellymoserenc: improve error checking in encode_init() nellymoserenc: return AVERROR codes instead of -1 libvorbis: improve error checking in oggvorbis_encode_init() mpegaudioenc: return AVERROR codes instead of -1 libfaac: improve error checking and handling in Faac_encode_init() avutil: add AVERROR_UNKNOWN check for coded_frame allocation failure in several audio encoders audio encoders: do not set coded_frame->key_frame. g722enc: check for trellis data allocation error libspeexenc: export encoder delay through AVCodecContext.delay ... Conflicts: doc/APIchanges libavcodec/avcodec.h libavcodec/fraps.c libavcodec/kgv1dec.c libavcodec/libfaac.c libavcodec/libgsm.c libavcodec/libvorbis.c libavcodec/mlp_parser.c libavcodec/roqaudioenc.c libavcodec/vorbisenc.c libavutil/avutil.h libavutil/error.c libavutil/error.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
305e4b35ea
30 changed files with 572 additions and 257 deletions
|
|
@ -697,16 +697,19 @@ static int ebml_read_float(AVIOContext *pb, int size, double *num)
|
|||
*/
|
||||
static int ebml_read_ascii(AVIOContext *pb, int size, char **str)
|
||||
{
|
||||
av_free(*str);
|
||||
char *res;
|
||||
|
||||
/* EBML strings are usually not 0-terminated, so we allocate one
|
||||
* byte more, read the string and NULL-terminate it ourselves. */
|
||||
if (!(*str = av_malloc(size + 1)))
|
||||
if (!(res = av_malloc(size + 1)))
|
||||
return AVERROR(ENOMEM);
|
||||
if (avio_read(pb, (uint8_t *) *str, size) != size) {
|
||||
av_freep(str);
|
||||
if (avio_read(pb, (uint8_t *) res, size) != size) {
|
||||
av_free(res);
|
||||
return AVERROR(EIO);
|
||||
}
|
||||
(*str)[size] = '\0';
|
||||
(res)[size] = '\0';
|
||||
av_free(*str);
|
||||
*str = res;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue