lavc: Consistently prefix input buffer defines
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
This commit is contained in:
parent
def97856de
commit
059a934806
avconv.c
doc/examples
libavcodec
4xm.ca64multienc.caac_adtstoasc_bsf.caac_parser.caacdec.caacenc.cac3_parser.cac3dec.hadpcmenc.calacenc.casvenc.catrac3.cavcodec.havpacket.cbinkaudio.ccdxl.ccook.cdca_parser.cdss_sp.cdump_extradata_bsf.cdvdec.cffv1enc.cg2meet.cget_bits.hgif.ch264.ch264_mp4toannexb_bsf.chevc_mp4toannexb_bsf.chevc_parse.chuffyuvdec.chuffyuvenc.ciff.cimc.cimx_dump_header_bsf.cinternal.hjpeglsenc.clibdcadec.clibfaac.clibfdk-aacenc.clibopenh264enc.clibopusenc.clibspeexenc.clibvo-aacenc.clibvorbis.clibx265.clibxavs.clibxvid.cljpegenc.cmdec.cmjpega_dump_header_bsf.cmjpegdec.cmotionpixels.cmovsub_bsf.cmpeg4videodec.cmpegvideo.cmss2.cnoise_bsf.cnuv.cnvenc.coptions.cparser.cpngenc.cpnm_parser.cproresenc.cqsvdec.cqsvenc.cqsvenc_hevc.cshorten.cstartcode.csvq1enc.ctiff.ctiffenc.ctruemotion2.cutils.cutvideodec.cutvideoenc.cvc1dec.cwavpack.cwma.hwmadec.cwmalosslessdec.cwmaprodec.cwmavoice.cwnv1.c
libavdevice
libavformat
2
avconv.c
2
avconv.c
@ -1732,7 +1732,7 @@ static int transcode_init(void)
|
|||||||
|
|
||||||
av_assert0(ist && !ost->filter);
|
av_assert0(ist && !ost->filter);
|
||||||
|
|
||||||
extra_size = (uint64_t)dec_ctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE;
|
extra_size = (uint64_t)dec_ctx->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE;
|
||||||
|
|
||||||
if (extra_size > INT_MAX) {
|
if (extra_size > INT_MAX) {
|
||||||
return AVERROR(EINVAL);
|
return AVERROR(EINVAL);
|
||||||
|
@ -226,7 +226,7 @@ static void audio_decode_example(const char *outfilename, const char *filename)
|
|||||||
AVCodecContext *c= NULL;
|
AVCodecContext *c= NULL;
|
||||||
int len;
|
int len;
|
||||||
FILE *f, *outfile;
|
FILE *f, *outfile;
|
||||||
uint8_t inbuf[AUDIO_INBUF_SIZE + FF_INPUT_BUFFER_PADDING_SIZE];
|
uint8_t inbuf[AUDIO_INBUF_SIZE + AV_INPUT_BUFFER_PADDING_SIZE];
|
||||||
AVPacket avpkt;
|
AVPacket avpkt;
|
||||||
AVFrame *decoded_frame = NULL;
|
AVFrame *decoded_frame = NULL;
|
||||||
|
|
||||||
@ -459,14 +459,14 @@ static void video_decode_example(const char *outfilename, const char *filename)
|
|||||||
int frame, got_picture, len;
|
int frame, got_picture, len;
|
||||||
FILE *f;
|
FILE *f;
|
||||||
AVFrame *picture;
|
AVFrame *picture;
|
||||||
uint8_t inbuf[INBUF_SIZE + FF_INPUT_BUFFER_PADDING_SIZE];
|
uint8_t inbuf[INBUF_SIZE + AV_INPUT_BUFFER_PADDING_SIZE];
|
||||||
char buf[1024];
|
char buf[1024];
|
||||||
AVPacket avpkt;
|
AVPacket avpkt;
|
||||||
|
|
||||||
av_init_packet(&avpkt);
|
av_init_packet(&avpkt);
|
||||||
|
|
||||||
/* set end of buffer to 0 (this ensures that no overreading happens for damaged mpeg streams) */
|
/* set end of buffer to 0 (this ensures that no overreading happens for damaged mpeg streams) */
|
||||||
memset(inbuf + INBUF_SIZE, 0, FF_INPUT_BUFFER_PADDING_SIZE);
|
memset(inbuf + INBUF_SIZE, 0, AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
|
|
||||||
printf("Video decoding\n");
|
printf("Video decoding\n");
|
||||||
|
|
||||||
|
@ -405,7 +405,7 @@ int main(int argc, char **argv)
|
|||||||
decoder_ctx->codec_id = AV_CODEC_ID_H264;
|
decoder_ctx->codec_id = AV_CODEC_ID_H264;
|
||||||
if (video_st->codec->extradata_size) {
|
if (video_st->codec->extradata_size) {
|
||||||
decoder_ctx->extradata = av_mallocz(video_st->codec->extradata_size +
|
decoder_ctx->extradata = av_mallocz(video_st->codec->extradata_size +
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE);
|
AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!decoder_ctx->extradata) {
|
if (!decoder_ctx->extradata) {
|
||||||
ret = AVERROR(ENOMEM);
|
ret = AVERROR(ENOMEM);
|
||||||
goto finish;
|
goto finish;
|
||||||
|
@ -446,13 +446,13 @@ static int decode_p_frame(FourXContext *f, const uint8_t *buf, int length)
|
|||||||
}
|
}
|
||||||
|
|
||||||
av_fast_malloc(&f->bitstream_buffer, &f->bitstream_buffer_size,
|
av_fast_malloc(&f->bitstream_buffer, &f->bitstream_buffer_size,
|
||||||
bitstream_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
bitstream_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!f->bitstream_buffer)
|
if (!f->bitstream_buffer)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
f->bbdsp.bswap_buf(f->bitstream_buffer, (const uint32_t *) (buf + extra),
|
f->bbdsp.bswap_buf(f->bitstream_buffer, (const uint32_t *) (buf + extra),
|
||||||
bitstream_size / 4);
|
bitstream_size / 4);
|
||||||
memset((uint8_t*)f->bitstream_buffer + bitstream_size,
|
memset((uint8_t*)f->bitstream_buffer + bitstream_size,
|
||||||
0, FF_INPUT_BUFFER_PADDING_SIZE);
|
0, AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
init_get_bits(&f->gb, f->bitstream_buffer, 8 * bitstream_size);
|
init_get_bits(&f->gb, f->bitstream_buffer, 8 * bitstream_size);
|
||||||
|
|
||||||
wordstream_offset = extra + bitstream_size;
|
wordstream_offset = extra + bitstream_size;
|
||||||
@ -769,13 +769,13 @@ static int decode_i_frame(FourXContext *f, const uint8_t *buf, int length)
|
|||||||
prestream_size = length + buf - prestream;
|
prestream_size = length + buf - prestream;
|
||||||
|
|
||||||
av_fast_malloc(&f->bitstream_buffer, &f->bitstream_buffer_size,
|
av_fast_malloc(&f->bitstream_buffer, &f->bitstream_buffer_size,
|
||||||
prestream_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
prestream_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!f->bitstream_buffer)
|
if (!f->bitstream_buffer)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
f->bbdsp.bswap_buf(f->bitstream_buffer, (const uint32_t *) prestream,
|
f->bbdsp.bswap_buf(f->bitstream_buffer, (const uint32_t *) prestream,
|
||||||
prestream_size / 4);
|
prestream_size / 4);
|
||||||
memset((uint8_t*)f->bitstream_buffer + prestream_size,
|
memset((uint8_t*)f->bitstream_buffer + prestream_size,
|
||||||
0, FF_INPUT_BUFFER_PADDING_SIZE);
|
0, AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
init_get_bits(&f->pre_gb, f->bitstream_buffer, 8 * prestream_size);
|
init_get_bits(&f->pre_gb, f->bitstream_buffer, 8 * prestream_size);
|
||||||
|
|
||||||
f->last_dc = 0 * 128 * 8 * 8;
|
f->last_dc = 0 * 128 * 8 * 8;
|
||||||
@ -849,7 +849,7 @@ static int decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
cfrm = &f->cfrm[i];
|
cfrm = &f->cfrm[i];
|
||||||
|
|
||||||
cfrm->data = av_fast_realloc(cfrm->data, &cfrm->allocated_size,
|
cfrm->data = av_fast_realloc(cfrm->data, &cfrm->allocated_size,
|
||||||
cfrm->size + data_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
cfrm->size + data_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
// explicit check needed as memcpy below might not catch a NULL
|
// explicit check needed as memcpy below might not catch a NULL
|
||||||
if (!cfrm->data) {
|
if (!cfrm->data) {
|
||||||
av_log(f->avctx, AV_LOG_ERROR, "realloc failure");
|
av_log(f->avctx, AV_LOG_ERROR, "realloc failure");
|
||||||
|
@ -209,7 +209,7 @@ static av_cold int a64multi_encode_init(AVCodecContext *avctx)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* set up extradata */
|
/* set up extradata */
|
||||||
if (!(avctx->extradata = av_mallocz(8 * 4 + FF_INPUT_BUFFER_PADDING_SIZE))) {
|
if (!(avctx->extradata = av_mallocz(8 * 4 + AV_INPUT_BUFFER_PADDING_SIZE))) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Failed to allocate memory for extradata.\n");
|
av_log(avctx, AV_LOG_ERROR, "Failed to allocate memory for extradata.\n");
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
}
|
}
|
||||||
|
@ -88,7 +88,7 @@ static int aac_adtstoasc_filter(AVBitStreamFilterContext *bsfc,
|
|||||||
buf += get_bits_count(&gb)/8;
|
buf += get_bits_count(&gb)/8;
|
||||||
}
|
}
|
||||||
avctx->extradata_size = 2 + pce_size;
|
avctx->extradata_size = 2 + pce_size;
|
||||||
avctx->extradata = av_mallocz(avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
avctx->extradata = av_mallocz(avctx->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!avctx->extradata)
|
if (!avctx->extradata)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ static int aac_sync(uint64_t state, AACAC3ParseContext *hdr_info,
|
|||||||
int size;
|
int size;
|
||||||
union {
|
union {
|
||||||
uint64_t u64;
|
uint64_t u64;
|
||||||
uint8_t u8[8 + FF_INPUT_BUFFER_PADDING_SIZE];
|
uint8_t u8[8 + AV_INPUT_BUFFER_PADDING_SIZE];
|
||||||
} tmp;
|
} tmp;
|
||||||
|
|
||||||
tmp.u64 = av_be2ne64(state);
|
tmp.u64 = av_be2ne64(state);
|
||||||
|
@ -2969,7 +2969,7 @@ static int aac_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
if (new_extradata) {
|
if (new_extradata) {
|
||||||
av_free(avctx->extradata);
|
av_free(avctx->extradata);
|
||||||
avctx->extradata = av_mallocz(new_extradata_size +
|
avctx->extradata = av_mallocz(new_extradata_size +
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE);
|
AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!avctx->extradata)
|
if (!avctx->extradata)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
avctx->extradata_size = new_extradata_size;
|
avctx->extradata_size = new_extradata_size;
|
||||||
@ -3089,14 +3089,14 @@ static int latm_decode_audio_specific_config(struct LATMContext *latmctx,
|
|||||||
|
|
||||||
if (avctx->extradata_size < esize) {
|
if (avctx->extradata_size < esize) {
|
||||||
av_free(avctx->extradata);
|
av_free(avctx->extradata);
|
||||||
avctx->extradata = av_malloc(esize + FF_INPUT_BUFFER_PADDING_SIZE);
|
avctx->extradata = av_malloc(esize + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!avctx->extradata)
|
if (!avctx->extradata)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
}
|
}
|
||||||
|
|
||||||
avctx->extradata_size = esize;
|
avctx->extradata_size = esize;
|
||||||
memcpy(avctx->extradata, gb->buffer + (config_start_bit/8), esize);
|
memcpy(avctx->extradata, gb->buffer + (config_start_bit/8), esize);
|
||||||
memset(avctx->extradata+esize, 0, FF_INPUT_BUFFER_PADDING_SIZE);
|
memset(avctx->extradata+esize, 0, AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
}
|
}
|
||||||
skip_bits_long(gb, bits_consumed);
|
skip_bits_long(gb, bits_consumed);
|
||||||
|
|
||||||
|
@ -711,7 +711,7 @@ static av_cold int alloc_buffers(AVCodecContext *avctx, AACEncContext *s)
|
|||||||
int ch;
|
int ch;
|
||||||
FF_ALLOCZ_OR_GOTO(avctx, s->buffer.samples, 3 * 1024 * s->channels * sizeof(s->buffer.samples[0]), alloc_fail);
|
FF_ALLOCZ_OR_GOTO(avctx, s->buffer.samples, 3 * 1024 * s->channels * sizeof(s->buffer.samples[0]), alloc_fail);
|
||||||
FF_ALLOCZ_OR_GOTO(avctx, s->cpe, sizeof(ChannelElement) * s->chan_map[0], alloc_fail);
|
FF_ALLOCZ_OR_GOTO(avctx, s->cpe, sizeof(ChannelElement) * s->chan_map[0], alloc_fail);
|
||||||
FF_ALLOCZ_OR_GOTO(avctx, avctx->extradata, 5 + FF_INPUT_BUFFER_PADDING_SIZE, alloc_fail);
|
FF_ALLOCZ_OR_GOTO(avctx, avctx->extradata, 5 + AV_INPUT_BUFFER_PADDING_SIZE, alloc_fail);
|
||||||
|
|
||||||
for(ch = 0; ch < s->channels; ch++)
|
for(ch = 0; ch < s->channels; ch++)
|
||||||
s->planar_samples[ch] = s->buffer.samples + 3 * 1024 * ch;
|
s->planar_samples[ch] = s->buffer.samples + 3 * 1024 * ch;
|
||||||
|
@ -150,7 +150,7 @@ static int ac3_sync(uint64_t state, AACAC3ParseContext *hdr_info,
|
|||||||
int err;
|
int err;
|
||||||
union {
|
union {
|
||||||
uint64_t u64;
|
uint64_t u64;
|
||||||
uint8_t u8[8 + FF_INPUT_BUFFER_PADDING_SIZE];
|
uint8_t u8[8 + AV_INPUT_BUFFER_PADDING_SIZE];
|
||||||
} tmp = { av_be2ne64(state) };
|
} tmp = { av_be2ne64(state) };
|
||||||
AC3HeaderInfo hdr;
|
AC3HeaderInfo hdr;
|
||||||
GetBitContext gbc;
|
GetBitContext gbc;
|
||||||
|
@ -217,7 +217,7 @@ typedef struct AC3DecodeContext {
|
|||||||
DECLARE_ALIGNED(32, float, window)[AC3_BLOCK_SIZE]; ///< window coefficients
|
DECLARE_ALIGNED(32, float, window)[AC3_BLOCK_SIZE]; ///< window coefficients
|
||||||
DECLARE_ALIGNED(32, float, tmp_output)[AC3_BLOCK_SIZE]; ///< temporary storage for output before windowing
|
DECLARE_ALIGNED(32, float, tmp_output)[AC3_BLOCK_SIZE]; ///< temporary storage for output before windowing
|
||||||
DECLARE_ALIGNED(32, float, output)[AC3_MAX_CHANNELS][AC3_BLOCK_SIZE]; ///< output after imdct transform and windowing
|
DECLARE_ALIGNED(32, float, output)[AC3_MAX_CHANNELS][AC3_BLOCK_SIZE]; ///< output after imdct transform and windowing
|
||||||
DECLARE_ALIGNED(32, uint8_t, input_buffer)[AC3_FRAME_BUFFER_SIZE + FF_INPUT_BUFFER_PADDING_SIZE]; ///< temp buffer to prevent overread
|
DECLARE_ALIGNED(32, uint8_t, input_buffer)[AC3_FRAME_BUFFER_SIZE + AV_INPUT_BUFFER_PADDING_SIZE]; ///< temp buffer to prevent overread
|
||||||
///@}
|
///@}
|
||||||
} AC3DecodeContext;
|
} AC3DecodeContext;
|
||||||
|
|
||||||
|
@ -111,7 +111,7 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx)
|
|||||||
avctx->frame_size = (BLKSIZE - 7 * avctx->channels) * 2 /
|
avctx->frame_size = (BLKSIZE - 7 * avctx->channels) * 2 /
|
||||||
avctx->channels + 2;
|
avctx->channels + 2;
|
||||||
avctx->block_align = BLKSIZE;
|
avctx->block_align = BLKSIZE;
|
||||||
if (!(avctx->extradata = av_malloc(32 + FF_INPUT_BUFFER_PADDING_SIZE)))
|
if (!(avctx->extradata = av_malloc(32 + AV_INPUT_BUFFER_PADDING_SIZE)))
|
||||||
goto error;
|
goto error;
|
||||||
avctx->extradata_size = 32;
|
avctx->extradata_size = 32;
|
||||||
extradata = avctx->extradata;
|
extradata = avctx->extradata;
|
||||||
|
@ -519,7 +519,7 @@ static av_cold int alac_encode_init(AVCodecContext *avctx)
|
|||||||
avctx->channels,
|
avctx->channels,
|
||||||
avctx->bits_per_raw_sample);
|
avctx->bits_per_raw_sample);
|
||||||
|
|
||||||
avctx->extradata = av_mallocz(ALAC_EXTRADATA_SIZE + FF_INPUT_BUFFER_PADDING_SIZE);
|
avctx->extradata = av_mallocz(ALAC_EXTRADATA_SIZE + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!avctx->extradata) {
|
if (!avctx->extradata) {
|
||||||
ret = AVERROR(ENOMEM);
|
ret = AVERROR(ENOMEM);
|
||||||
goto error;
|
goto error;
|
||||||
|
@ -223,7 +223,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
|
|||||||
|
|
||||||
if (!pkt->data &&
|
if (!pkt->data &&
|
||||||
(ret = av_new_packet(pkt, a->mb_height * a->mb_width * MAX_MB_SIZE +
|
(ret = av_new_packet(pkt, a->mb_height * a->mb_width * MAX_MB_SIZE +
|
||||||
FF_MIN_BUFFER_SIZE)) < 0) {
|
AV_INPUT_BUFFER_MIN_SIZE)) < 0) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Error getting output packet.\n");
|
av_log(avctx, AV_LOG_ERROR, "Error getting output packet.\n");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -879,7 +879,7 @@ static av_cold int atrac3_decode_init(AVCodecContext *avctx)
|
|||||||
return AVERROR(EINVAL);
|
return AVERROR(EINVAL);
|
||||||
|
|
||||||
q->decoded_bytes_buffer = av_mallocz(FFALIGN(avctx->block_align, 4) +
|
q->decoded_bytes_buffer = av_mallocz(FFALIGN(avctx->block_align, 4) +
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE);
|
AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!q->decoded_bytes_buffer)
|
if (!q->decoded_bytes_buffer)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
|
@ -535,15 +535,24 @@ typedef struct AVCodecDescriptor {
|
|||||||
* Note: If the first 23 bits of the additional bytes are not 0, then damaged
|
* Note: If the first 23 bits of the additional bytes are not 0, then damaged
|
||||||
* MPEG bitstreams could cause overread and segfault.
|
* MPEG bitstreams could cause overread and segfault.
|
||||||
*/
|
*/
|
||||||
#define FF_INPUT_BUFFER_PADDING_SIZE 8
|
#define AV_INPUT_BUFFER_PADDING_SIZE 8
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup lavc_encoding
|
* @ingroup lavc_encoding
|
||||||
* minimum encoding buffer size
|
* minimum encoding buffer size
|
||||||
* Used to avoid some checks during header writing.
|
* Used to avoid some checks during header writing.
|
||||||
*/
|
*/
|
||||||
#define FF_MIN_BUFFER_SIZE 16384
|
#define AV_INPUT_BUFFER_MIN_SIZE 16384
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated use AV_INPUT_BUFFER_PADDING_SIZE instead
|
||||||
|
*/
|
||||||
|
#define FF_INPUT_BUFFER_PADDING_SIZE 8
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated use AV_INPUT_BUFFER_MIN_SIZE instead
|
||||||
|
*/
|
||||||
|
#define FF_MIN_BUFFER_SIZE 16384
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup lavc_encoding
|
* @ingroup lavc_encoding
|
||||||
@ -1362,7 +1371,7 @@ typedef struct AVCodecContext {
|
|||||||
* mjpeg: Huffman tables
|
* mjpeg: Huffman tables
|
||||||
* rv10: additional flags
|
* rv10: additional flags
|
||||||
* mpeg4: global headers (they can be in the bitstream or here)
|
* mpeg4: global headers (they can be in the bitstream or here)
|
||||||
* The allocated memory should be FF_INPUT_BUFFER_PADDING_SIZE bytes larger
|
* The allocated memory should be AV_INPUT_BUFFER_PADDING_SIZE bytes larger
|
||||||
* than extradata_size to avoid prolems if it is read with the bitstream reader.
|
* than extradata_size to avoid prolems if it is read with the bitstream reader.
|
||||||
* The bytewise contents of extradata must not depend on the architecture or CPU endianness.
|
* The bytewise contents of extradata must not depend on the architecture or CPU endianness.
|
||||||
* - encoding: Set/allocated/freed by libavcodec.
|
* - encoding: Set/allocated/freed by libavcodec.
|
||||||
@ -3627,7 +3636,7 @@ int av_grow_packet(AVPacket *pkt, int grow_by);
|
|||||||
* function returns successfully, the data is owned by the underlying AVBuffer.
|
* function returns successfully, the data is owned by the underlying AVBuffer.
|
||||||
* The caller may not access the data through other means.
|
* The caller may not access the data through other means.
|
||||||
* @param size size of data in bytes, without the padding. I.e. the full buffer
|
* @param size size of data in bytes, without the padding. I.e. the full buffer
|
||||||
* size is assumed to be size + FF_INPUT_BUFFER_PADDING_SIZE.
|
* size is assumed to be size + AV_INPUT_BUFFER_PADDING_SIZE.
|
||||||
*
|
*
|
||||||
* @return 0 on success, a negative AVERROR on error
|
* @return 0 on success, a negative AVERROR on error
|
||||||
*/
|
*/
|
||||||
@ -3843,7 +3852,7 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height,
|
|||||||
* returning samples. It is safe to flush even those decoders that are not
|
* returning samples. It is safe to flush even those decoders that are not
|
||||||
* marked with AV_CODEC_CAP_DELAY, then no samples will be returned.
|
* marked with AV_CODEC_CAP_DELAY, then no samples will be returned.
|
||||||
*
|
*
|
||||||
* @warning The input buffer, avpkt->data must be FF_INPUT_BUFFER_PADDING_SIZE
|
* @warning The input buffer, avpkt->data must be AV_INPUT_BUFFER_PADDING_SIZE
|
||||||
* larger than the actual read bytes because some optimized bitstream
|
* larger than the actual read bytes because some optimized bitstream
|
||||||
* readers read 32 or 64 bits at once and could read over the end.
|
* readers read 32 or 64 bits at once and could read over the end.
|
||||||
*
|
*
|
||||||
@ -3883,7 +3892,7 @@ int avcodec_decode_audio4(AVCodecContext *avctx, AVFrame *frame,
|
|||||||
* Some decoders may support multiple frames in a single AVPacket, such
|
* Some decoders may support multiple frames in a single AVPacket, such
|
||||||
* decoders would then just decode the first frame.
|
* decoders would then just decode the first frame.
|
||||||
*
|
*
|
||||||
* @warning The input buffer must be FF_INPUT_BUFFER_PADDING_SIZE larger than
|
* @warning The input buffer must be AV_INPUT_BUFFER_PADDING_SIZE larger than
|
||||||
* the actual read bytes because some optimized bitstream readers read 32 or 64
|
* the actual read bytes because some optimized bitstream readers read 32 or 64
|
||||||
* bits at once and could read over the end.
|
* bits at once and could read over the end.
|
||||||
*
|
*
|
||||||
@ -4612,7 +4621,7 @@ AVBitStreamFilter *av_bitstream_filter_next(const AVBitStreamFilter *f);
|
|||||||
* Allocate a buffer with padding, reusing the given one if large enough.
|
* Allocate a buffer with padding, reusing the given one if large enough.
|
||||||
*
|
*
|
||||||
* Same behaviour av_fast_malloc but the buffer has additional
|
* Same behaviour av_fast_malloc but the buffer has additional
|
||||||
* FF_INPUT_PADDING_SIZE at the end which will always memset to 0.
|
* AV_INPUT_PADDING_SIZE at the end which will always memset to 0.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void av_fast_padded_malloc(void *ptr, unsigned int *size, size_t min_size);
|
void av_fast_padded_malloc(void *ptr, unsigned int *size, size_t min_size);
|
||||||
|
@ -66,14 +66,14 @@ FF_ENABLE_DEPRECATION_WARNINGS
|
|||||||
static int packet_alloc(AVBufferRef **buf, int size)
|
static int packet_alloc(AVBufferRef **buf, int size)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
if ((unsigned)size >= (unsigned)size + FF_INPUT_BUFFER_PADDING_SIZE)
|
if ((unsigned)size >= (unsigned)size + AV_INPUT_BUFFER_PADDING_SIZE)
|
||||||
return AVERROR(EINVAL);
|
return AVERROR(EINVAL);
|
||||||
|
|
||||||
ret = av_buffer_realloc(buf, size + FF_INPUT_BUFFER_PADDING_SIZE);
|
ret = av_buffer_realloc(buf, size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
memset((*buf)->data + size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
|
memset((*buf)->data + size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -103,20 +103,20 @@ void av_shrink_packet(AVPacket *pkt, int size)
|
|||||||
if (pkt->size <= size)
|
if (pkt->size <= size)
|
||||||
return;
|
return;
|
||||||
pkt->size = size;
|
pkt->size = size;
|
||||||
memset(pkt->data + size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
|
memset(pkt->data + size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
int av_grow_packet(AVPacket *pkt, int grow_by)
|
int av_grow_packet(AVPacket *pkt, int grow_by)
|
||||||
{
|
{
|
||||||
int new_size;
|
int new_size;
|
||||||
av_assert0((unsigned)pkt->size <= INT_MAX - FF_INPUT_BUFFER_PADDING_SIZE);
|
av_assert0((unsigned)pkt->size <= INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!pkt->size)
|
if (!pkt->size)
|
||||||
return av_new_packet(pkt, grow_by);
|
return av_new_packet(pkt, grow_by);
|
||||||
if ((unsigned)grow_by >
|
if ((unsigned)grow_by >
|
||||||
INT_MAX - (pkt->size + FF_INPUT_BUFFER_PADDING_SIZE))
|
INT_MAX - (pkt->size + AV_INPUT_BUFFER_PADDING_SIZE))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
new_size = pkt->size + grow_by + FF_INPUT_BUFFER_PADDING_SIZE;
|
new_size = pkt->size + grow_by + AV_INPUT_BUFFER_PADDING_SIZE;
|
||||||
if (pkt->buf) {
|
if (pkt->buf) {
|
||||||
int ret = av_buffer_realloc(&pkt->buf, new_size);
|
int ret = av_buffer_realloc(&pkt->buf, new_size);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
@ -134,17 +134,17 @@ FF_ENABLE_DEPRECATION_WARNINGS
|
|||||||
}
|
}
|
||||||
pkt->data = pkt->buf->data;
|
pkt->data = pkt->buf->data;
|
||||||
pkt->size += grow_by;
|
pkt->size += grow_by;
|
||||||
memset(pkt->data + pkt->size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
|
memset(pkt->data + pkt->size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int av_packet_from_data(AVPacket *pkt, uint8_t *data, int size)
|
int av_packet_from_data(AVPacket *pkt, uint8_t *data, int size)
|
||||||
{
|
{
|
||||||
if (size >= INT_MAX - FF_INPUT_BUFFER_PADDING_SIZE)
|
if (size >= INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE)
|
||||||
return AVERROR(EINVAL);
|
return AVERROR(EINVAL);
|
||||||
|
|
||||||
pkt->buf = av_buffer_create(data, size + FF_INPUT_BUFFER_PADDING_SIZE,
|
pkt->buf = av_buffer_create(data, size + AV_INPUT_BUFFER_PADDING_SIZE,
|
||||||
av_buffer_default_free, NULL, 0);
|
av_buffer_default_free, NULL, 0);
|
||||||
if (!pkt->buf)
|
if (!pkt->buf)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
@ -172,9 +172,9 @@ do { \
|
|||||||
void *data; \
|
void *data; \
|
||||||
if (padding) { \
|
if (padding) { \
|
||||||
if ((unsigned)(size) > \
|
if ((unsigned)(size) > \
|
||||||
(unsigned)(size) + FF_INPUT_BUFFER_PADDING_SIZE) \
|
(unsigned)(size) + AV_INPUT_BUFFER_PADDING_SIZE) \
|
||||||
goto failed_alloc; \
|
goto failed_alloc; \
|
||||||
ALLOC(data, size + FF_INPUT_BUFFER_PADDING_SIZE); \
|
ALLOC(data, size + AV_INPUT_BUFFER_PADDING_SIZE); \
|
||||||
} else { \
|
} else { \
|
||||||
ALLOC(data, size); \
|
ALLOC(data, size); \
|
||||||
} \
|
} \
|
||||||
@ -183,7 +183,7 @@ do { \
|
|||||||
memcpy(data, src, size); \
|
memcpy(data, src, size); \
|
||||||
if (padding) \
|
if (padding) \
|
||||||
memset((uint8_t *)data + size, 0, \
|
memset((uint8_t *)data + size, 0, \
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE); \
|
AV_INPUT_BUFFER_PADDING_SIZE); \
|
||||||
dst = data; \
|
dst = data; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
@ -266,7 +266,7 @@ uint8_t *av_packet_new_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
|
|||||||
|
|
||||||
if ((unsigned)elems + 1 > INT_MAX / sizeof(*pkt->side_data))
|
if ((unsigned)elems + 1 > INT_MAX / sizeof(*pkt->side_data))
|
||||||
return NULL;
|
return NULL;
|
||||||
if ((unsigned)size > INT_MAX - FF_INPUT_BUFFER_PADDING_SIZE)
|
if ((unsigned)size > INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
pkt->side_data = av_realloc(pkt->side_data,
|
pkt->side_data = av_realloc(pkt->side_data,
|
||||||
@ -274,7 +274,7 @@ uint8_t *av_packet_new_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
|
|||||||
if (!pkt->side_data)
|
if (!pkt->side_data)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
pkt->side_data[elems].data = av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE);
|
pkt->side_data[elems].data = av_malloc(size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!pkt->side_data[elems].data)
|
if (!pkt->side_data[elems].data)
|
||||||
return NULL;
|
return NULL;
|
||||||
pkt->side_data[elems].size = size;
|
pkt->side_data[elems].size = size;
|
||||||
|
@ -302,7 +302,7 @@ static int decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
av_log(avctx, AV_LOG_ERROR, "Packet is too small\n");
|
av_log(avctx, AV_LOG_ERROR, "Packet is too small\n");
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
buf = av_realloc(s->packet_buffer, avpkt->size + FF_INPUT_BUFFER_PADDING_SIZE);
|
buf = av_realloc(s->packet_buffer, avpkt->size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!buf)
|
if (!buf)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
s->packet_buffer = buf;
|
s->packet_buffer = buf;
|
||||||
|
@ -263,7 +263,7 @@ static int cdxl_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
|
|
||||||
if (encoding) {
|
if (encoding) {
|
||||||
av_fast_padded_malloc(&c->new_video, &c->new_video_size,
|
av_fast_padded_malloc(&c->new_video, &c->new_video_size,
|
||||||
h * w + FF_INPUT_BUFFER_PADDING_SIZE);
|
h * w + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!c->new_video)
|
if (!c->new_video)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
if (c->bpp == 8)
|
if (c->bpp == 8)
|
||||||
|
@ -1213,11 +1213,11 @@ static av_cold int cook_decode_init(AVCodecContext *avctx)
|
|||||||
|
|
||||||
/* Pad the databuffer with:
|
/* Pad the databuffer with:
|
||||||
DECODE_BYTES_PAD1 or DECODE_BYTES_PAD2 for decode_bytes(),
|
DECODE_BYTES_PAD1 or DECODE_BYTES_PAD2 for decode_bytes(),
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE, for the bitstreamreader. */
|
AV_INPUT_BUFFER_PADDING_SIZE, for the bitstreamreader. */
|
||||||
q->decoded_bytes_buffer =
|
q->decoded_bytes_buffer =
|
||||||
av_mallocz(avctx->block_align
|
av_mallocz(avctx->block_align
|
||||||
+ DECODE_BYTES_PAD1(avctx->block_align)
|
+ DECODE_BYTES_PAD1(avctx->block_align)
|
||||||
+ FF_INPUT_BUFFER_PADDING_SIZE);
|
+ AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!q->decoded_bytes_buffer)
|
if (!q->decoded_bytes_buffer)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
|
@ -113,7 +113,7 @@ static int dca_parse_params(const uint8_t *buf, int buf_size, int *duration,
|
|||||||
int *sample_rate, int *framesize)
|
int *sample_rate, int *framesize)
|
||||||
{
|
{
|
||||||
GetBitContext gb;
|
GetBitContext gb;
|
||||||
uint8_t hdr[12 + FF_INPUT_BUFFER_PADDING_SIZE] = { 0 };
|
uint8_t hdr[12 + AV_INPUT_BUFFER_PADDING_SIZE] = { 0 };
|
||||||
int ret, sample_blocks, sr_code;
|
int ret, sample_blocks, sr_code;
|
||||||
|
|
||||||
if (buf_size < 12)
|
if (buf_size < 12)
|
||||||
|
@ -65,7 +65,7 @@ typedef struct DssSpContext {
|
|||||||
int pulse_dec_mode;
|
int pulse_dec_mode;
|
||||||
|
|
||||||
DECLARE_ALIGNED(16, uint8_t, bits)[DSS_SP_FRAME_SIZE +
|
DECLARE_ALIGNED(16, uint8_t, bits)[DSS_SP_FRAME_SIZE +
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE];
|
AV_INPUT_BUFFER_PADDING_SIZE];
|
||||||
} DssSpContext;
|
} DssSpContext;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -36,12 +36,12 @@ static int dump_extradata(AVBitStreamFilterContext *bsfc, AVCodecContext *avctx,
|
|||||||
/*||(? && (s->flags & PARSER_FLAG_DUMP_EXTRADATA_AT_BEGIN)*/){
|
/*||(? && (s->flags & PARSER_FLAG_DUMP_EXTRADATA_AT_BEGIN)*/){
|
||||||
int size= buf_size + avctx->extradata_size;
|
int size= buf_size + avctx->extradata_size;
|
||||||
*poutbuf_size= size;
|
*poutbuf_size= size;
|
||||||
*poutbuf= av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE);
|
*poutbuf= av_malloc(size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!*poutbuf)
|
if (!*poutbuf)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
memcpy(*poutbuf, avctx->extradata, avctx->extradata_size);
|
memcpy(*poutbuf, avctx->extradata, avctx->extradata_size);
|
||||||
memcpy((*poutbuf) + avctx->extradata_size, buf, buf_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
memcpy((*poutbuf) + avctx->extradata_size, buf, buf_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -167,8 +167,8 @@ static int dv_decode_video_segment(AVCodecContext *avctx, void *arg)
|
|||||||
GetBitContext gb;
|
GetBitContext gb;
|
||||||
BlockInfo mb_data[5 * DV_MAX_BPM], *mb, *mb1;
|
BlockInfo mb_data[5 * DV_MAX_BPM], *mb, *mb1;
|
||||||
LOCAL_ALIGNED_16(int16_t, sblock, [5 * DV_MAX_BPM], [64]);
|
LOCAL_ALIGNED_16(int16_t, sblock, [5 * DV_MAX_BPM], [64]);
|
||||||
LOCAL_ALIGNED_16(uint8_t, mb_bit_buffer, [80 + FF_INPUT_BUFFER_PADDING_SIZE]); /* allow some slack */
|
LOCAL_ALIGNED_16(uint8_t, mb_bit_buffer, [80 + AV_INPUT_BUFFER_PADDING_SIZE]); /* allow some slack */
|
||||||
LOCAL_ALIGNED_16(uint8_t, vs_bit_buffer, [80 * 5 + FF_INPUT_BUFFER_PADDING_SIZE]); /* allow some slack */
|
LOCAL_ALIGNED_16(uint8_t, vs_bit_buffer, [80 * 5 + AV_INPUT_BUFFER_PADDING_SIZE]); /* allow some slack */
|
||||||
const int log2_blocksize = 3;
|
const int log2_blocksize = 3;
|
||||||
int is_field_mode[5];
|
int is_field_mode[5];
|
||||||
|
|
||||||
|
@ -940,7 +940,7 @@ static int ffv1_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
|
|||||||
|
|
||||||
if ((ret = ff_alloc_packet(pkt, avctx->width * avctx->height *
|
if ((ret = ff_alloc_packet(pkt, avctx->width * avctx->height *
|
||||||
((8 * 2 + 1 + 1) * 4) / 8 +
|
((8 * 2 + 1 + 1) * 4) / 8 +
|
||||||
FF_MIN_BUFFER_SIZE)) < 0) {
|
AV_INPUT_BUFFER_MIN_SIZE)) < 0) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Error getting output packet.\n");
|
av_log(avctx, AV_LOG_ERROR, "Error getting output packet.\n");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -294,10 +294,10 @@ static int jpg_decode_data(JPGContext *c, int width, int height,
|
|||||||
const int ridx = swapuv ? 2 : 0;
|
const int ridx = swapuv ? 2 : 0;
|
||||||
|
|
||||||
if ((ret = av_reallocp(&c->buf,
|
if ((ret = av_reallocp(&c->buf,
|
||||||
src_size + FF_INPUT_BUFFER_PADDING_SIZE)) < 0)
|
src_size + AV_INPUT_BUFFER_PADDING_SIZE)) < 0)
|
||||||
return ret;
|
return ret;
|
||||||
jpg_unescape(src, src_size, c->buf, &unesc_size);
|
jpg_unescape(src, src_size, c->buf, &unesc_size);
|
||||||
memset(c->buf + unesc_size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
|
memset(c->buf + unesc_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
init_get_bits(&gb, c->buf, unesc_size * 8);
|
init_get_bits(&gb, c->buf, unesc_size * 8);
|
||||||
|
|
||||||
width = FFALIGN(width, 16);
|
width = FFALIGN(width, 16);
|
||||||
@ -1170,7 +1170,7 @@ static int g2m_init_buffers(G2MContext *c)
|
|||||||
c->synth_tile = av_mallocz(c->tile_stride * aligned_height);
|
c->synth_tile = av_mallocz(c->tile_stride * aligned_height);
|
||||||
c->jpeg_tile = av_mallocz(c->tile_stride * aligned_height);
|
c->jpeg_tile = av_mallocz(c->tile_stride * aligned_height);
|
||||||
c->kempf_buf = av_mallocz((c->tile_width + 1) * aligned_height +
|
c->kempf_buf = av_mallocz((c->tile_width + 1) * aligned_height +
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE);
|
AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
c->kempf_flags = av_mallocz(c->tile_width * aligned_height);
|
c->kempf_flags = av_mallocz(c->tile_width * aligned_height);
|
||||||
if (!c->synth_tile || !c->jpeg_tile ||
|
if (!c->synth_tile || !c->jpeg_tile ||
|
||||||
!c->kempf_buf || !c->kempf_flags)
|
!c->kempf_buf || !c->kempf_flags)
|
||||||
|
@ -367,7 +367,7 @@ static inline int check_marker(GetBitContext *s, const char *msg)
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize GetBitContext.
|
* Initialize GetBitContext.
|
||||||
* @param buffer bitstream buffer, must be FF_INPUT_BUFFER_PADDING_SIZE bytes
|
* @param buffer bitstream buffer, must be AV_INPUT_BUFFER_PADDING_SIZE bytes
|
||||||
* larger than the actual read bits because some optimized bitstream
|
* larger than the actual read bits because some optimized bitstream
|
||||||
* readers read 32 or 64 bit at once and could read over the end
|
* readers read 32 or 64 bit at once and could read over the end
|
||||||
* @param bit_size the size of the buffer in bits
|
* @param bit_size the size of the buffer in bits
|
||||||
@ -400,7 +400,7 @@ static inline int init_get_bits(GetBitContext *s, const uint8_t *buffer,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize GetBitContext.
|
* Initialize GetBitContext.
|
||||||
* @param buffer bitstream buffer, must be FF_INPUT_BUFFER_PADDING_SIZE bytes
|
* @param buffer bitstream buffer, must be AV_INPUT_BUFFER_PADDING_SIZE bytes
|
||||||
* larger than the actual read bits because some optimized bitstream
|
* larger than the actual read bits because some optimized bitstream
|
||||||
* readers read 32 or 64 bit at once and could read over the end
|
* readers read 32 or 64 bit at once and could read over the end
|
||||||
* @param byte_size the size of the buffer in bytes
|
* @param byte_size the size of the buffer in bytes
|
||||||
|
@ -153,7 +153,7 @@ static int gif_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
|
|||||||
uint8_t *outbuf_ptr, *end;
|
uint8_t *outbuf_ptr, *end;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if ((ret = ff_alloc_packet(pkt, avctx->width*avctx->height*7/5 + FF_MIN_BUFFER_SIZE)) < 0) {
|
if ((ret = ff_alloc_packet(pkt, avctx->width*avctx->height*7/5 + AV_INPUT_BUFFER_MIN_SIZE)) < 0) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Error getting output packet.\n");
|
av_log(avctx, AV_LOG_ERROR, "Error getting output packet.\n");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -275,7 +275,7 @@ const uint8_t *ff_h264_decode_nal(H264Context *h, H264SliceContext *sl,
|
|||||||
}
|
}
|
||||||
|
|
||||||
av_fast_malloc(&sl->rbsp_buffer, &sl->rbsp_buffer_size,
|
av_fast_malloc(&sl->rbsp_buffer, &sl->rbsp_buffer_size,
|
||||||
length + FF_INPUT_BUFFER_PADDING_SIZE);
|
length + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
dst = sl->rbsp_buffer;
|
dst = sl->rbsp_buffer;
|
||||||
|
|
||||||
if (!dst)
|
if (!dst)
|
||||||
@ -304,7 +304,7 @@ const uint8_t *ff_h264_decode_nal(H264Context *h, H264SliceContext *sl,
|
|||||||
dst[di++] = src[si++];
|
dst[di++] = src[si++];
|
||||||
|
|
||||||
nsc:
|
nsc:
|
||||||
memset(dst + di, 0, FF_INPUT_BUFFER_PADDING_SIZE);
|
memset(dst + di, 0, AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
|
|
||||||
*dst_length = di;
|
*dst_length = di;
|
||||||
*consumed = si + 1; // +1 for the header
|
*consumed = si + 1; // +1 for the header
|
||||||
|
@ -41,7 +41,7 @@ static int alloc_and_copy(uint8_t **poutbuf, int *poutbuf_size,
|
|||||||
|
|
||||||
*poutbuf_size += sps_pps_size + in_size + nal_header_size;
|
*poutbuf_size += sps_pps_size + in_size + nal_header_size;
|
||||||
if ((err = av_reallocp(poutbuf,
|
if ((err = av_reallocp(poutbuf,
|
||||||
*poutbuf_size + FF_INPUT_BUFFER_PADDING_SIZE)) < 0) {
|
*poutbuf_size + AV_INPUT_BUFFER_PADDING_SIZE)) < 0) {
|
||||||
*poutbuf_size = 0;
|
*poutbuf_size = 0;
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@ -109,7 +109,7 @@ static int h264_extradata_to_annexb(AVCodecContext *avctx, const int padding)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (out)
|
if (out)
|
||||||
memset(out + total_size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
|
memset(out + total_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
|
|
||||||
if (!sps_seen)
|
if (!sps_seen)
|
||||||
av_log(avctx, AV_LOG_WARNING,
|
av_log(avctx, AV_LOG_WARNING,
|
||||||
@ -150,7 +150,7 @@ static int h264_mp4toannexb_filter(AVBitStreamFilterContext *bsfc,
|
|||||||
|
|
||||||
/* retrieve sps and pps NAL units from extradata */
|
/* retrieve sps and pps NAL units from extradata */
|
||||||
if (!ctx->extradata_parsed) {
|
if (!ctx->extradata_parsed) {
|
||||||
ret = h264_extradata_to_annexb(avctx, FF_INPUT_BUFFER_PADDING_SIZE);
|
ret = h264_extradata_to_annexb(avctx, AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
ctx->length_size = ret;
|
ctx->length_size = ret;
|
||||||
|
@ -67,18 +67,18 @@ static int hevc_extradata_to_annexb(AVCodecContext *avctx)
|
|||||||
for (j = 0; j < cnt; j++) {
|
for (j = 0; j < cnt; j++) {
|
||||||
int nalu_len = bytestream2_get_be16(&gb);
|
int nalu_len = bytestream2_get_be16(&gb);
|
||||||
|
|
||||||
if (4 + FF_INPUT_BUFFER_PADDING_SIZE + nalu_len > SIZE_MAX - new_extradata_size) {
|
if (4 + AV_INPUT_BUFFER_PADDING_SIZE + nalu_len > SIZE_MAX - new_extradata_size) {
|
||||||
ret = AVERROR_INVALIDDATA;
|
ret = AVERROR_INVALIDDATA;
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
ret = av_reallocp(&new_extradata, new_extradata_size + nalu_len + 4 + FF_INPUT_BUFFER_PADDING_SIZE);
|
ret = av_reallocp(&new_extradata, new_extradata_size + nalu_len + 4 + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
AV_WB32(new_extradata + new_extradata_size, 1); // add the startcode
|
AV_WB32(new_extradata + new_extradata_size, 1); // add the startcode
|
||||||
bytestream2_get_buffer(&gb, new_extradata + new_extradata_size + 4, nalu_len);
|
bytestream2_get_buffer(&gb, new_extradata + new_extradata_size + 4, nalu_len);
|
||||||
new_extradata_size += 4 + nalu_len;
|
new_extradata_size += 4 + nalu_len;
|
||||||
memset(new_extradata + new_extradata_size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
|
memset(new_extradata + new_extradata_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ int ff_hevc_extract_rbsp(const uint8_t *src, int length,
|
|||||||
}
|
}
|
||||||
|
|
||||||
av_fast_malloc(&nal->rbsp_buffer, &nal->rbsp_buffer_size,
|
av_fast_malloc(&nal->rbsp_buffer, &nal->rbsp_buffer_size,
|
||||||
length + FF_INPUT_BUFFER_PADDING_SIZE);
|
length + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!nal->rbsp_buffer)
|
if (!nal->rbsp_buffer)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
@ -119,7 +119,7 @@ int ff_hevc_extract_rbsp(const uint8_t *src, int length,
|
|||||||
dst[di++] = src[si++];
|
dst[di++] = src[si++];
|
||||||
|
|
||||||
nsc:
|
nsc:
|
||||||
memset(dst + di, 0, FF_INPUT_BUFFER_PADDING_SIZE);
|
memset(dst + di, 0, AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
|
|
||||||
nal->data = dst;
|
nal->data = dst;
|
||||||
nal->size = di;
|
nal->size = di;
|
||||||
|
@ -35,14 +35,14 @@
|
|||||||
#include "thread.h"
|
#include "thread.h"
|
||||||
|
|
||||||
#define classic_shift_luma_table_size 42
|
#define classic_shift_luma_table_size 42
|
||||||
static const unsigned char classic_shift_luma[classic_shift_luma_table_size + FF_INPUT_BUFFER_PADDING_SIZE] = {
|
static const unsigned char classic_shift_luma[classic_shift_luma_table_size + AV_INPUT_BUFFER_PADDING_SIZE] = {
|
||||||
34, 36, 35, 69, 135, 232, 9, 16, 10, 24, 11, 23, 12, 16, 13, 10,
|
34, 36, 35, 69, 135, 232, 9, 16, 10, 24, 11, 23, 12, 16, 13, 10,
|
||||||
14, 8, 15, 8, 16, 8, 17, 20, 16, 10, 207, 206, 205, 236, 11, 8,
|
14, 8, 15, 8, 16, 8, 17, 20, 16, 10, 207, 206, 205, 236, 11, 8,
|
||||||
10, 21, 9, 23, 8, 8, 199, 70, 69, 68, 0
|
10, 21, 9, 23, 8, 8, 199, 70, 69, 68, 0
|
||||||
};
|
};
|
||||||
|
|
||||||
#define classic_shift_chroma_table_size 59
|
#define classic_shift_chroma_table_size 59
|
||||||
static const unsigned char classic_shift_chroma[classic_shift_chroma_table_size + FF_INPUT_BUFFER_PADDING_SIZE] = {
|
static const unsigned char classic_shift_chroma[classic_shift_chroma_table_size + AV_INPUT_BUFFER_PADDING_SIZE] = {
|
||||||
66, 36, 37, 38, 39, 40, 41, 75, 76, 77, 110, 239, 144, 81, 82, 83,
|
66, 36, 37, 38, 39, 40, 41, 75, 76, 77, 110, 239, 144, 81, 82, 83,
|
||||||
84, 85, 118, 183, 56, 57, 88, 89, 56, 89, 154, 57, 58, 57, 26, 141,
|
84, 85, 118, 183, 56, 57, 88, 89, 56, 89, 154, 57, 58, 57, 26, 141,
|
||||||
57, 56, 58, 57, 58, 57, 184, 119, 214, 245, 116, 83, 82, 49, 80, 79,
|
57, 56, 58, 57, 58, 57, 184, 119, 214, 245, 116, 83, 82, 49, 80, 79,
|
||||||
@ -511,11 +511,11 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
|
|||||||
|
|
||||||
av_fast_malloc(&s->bitstream_buffer,
|
av_fast_malloc(&s->bitstream_buffer,
|
||||||
&s->bitstream_buffer_size,
|
&s->bitstream_buffer_size,
|
||||||
buf_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
buf_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!s->bitstream_buffer)
|
if (!s->bitstream_buffer)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
memset(s->bitstream_buffer + buf_size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
|
memset(s->bitstream_buffer + buf_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
s->bdsp.bswap_buf((uint32_t *) s->bitstream_buffer,
|
s->bdsp.bswap_buf((uint32_t *) s->bitstream_buffer,
|
||||||
(const uint32_t *) buf, buf_size / 4);
|
(const uint32_t *) buf, buf_size / 4);
|
||||||
|
|
||||||
|
@ -453,7 +453,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
|
|||||||
int i, j, size = 0, ret;
|
int i, j, size = 0, ret;
|
||||||
|
|
||||||
if (!pkt->data &&
|
if (!pkt->data &&
|
||||||
(ret = av_new_packet(pkt, width * height * 3 * 4 + FF_MIN_BUFFER_SIZE)) < 0) {
|
(ret = av_new_packet(pkt, width * height * 3 * 4 + AV_INPUT_BUFFER_MIN_SIZE)) < 0) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Error allocating output packet.\n");
|
av_log(avctx, AV_LOG_ERROR, "Error allocating output packet.\n");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -172,7 +172,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
|
|||||||
if ((err = av_image_check_size(avctx->width, avctx->height, 0, avctx)))
|
if ((err = av_image_check_size(avctx->width, avctx->height, 0, avctx)))
|
||||||
return err;
|
return err;
|
||||||
s->planesize = FFALIGN(avctx->width, 16) >> 3; // Align plane size in bits to word-boundary
|
s->planesize = FFALIGN(avctx->width, 16) >> 3; // Align plane size in bits to word-boundary
|
||||||
s->planebuf = av_malloc(s->planesize + FF_INPUT_BUFFER_PADDING_SIZE);
|
s->planebuf = av_malloc(s->planesize + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!s->planebuf)
|
if (!s->planebuf)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
|
@ -997,7 +997,7 @@ static int imc_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
|
|
||||||
IMCContext *q = avctx->priv_data;
|
IMCContext *q = avctx->priv_data;
|
||||||
|
|
||||||
LOCAL_ALIGNED_16(uint16_t, buf16, [(IMC_BLOCK_SIZE + FF_INPUT_BUFFER_PADDING_SIZE) / 2]);
|
LOCAL_ALIGNED_16(uint16_t, buf16, [(IMC_BLOCK_SIZE + AV_INPUT_BUFFER_PADDING_SIZE) / 2]);
|
||||||
|
|
||||||
if (buf_size < IMC_BLOCK_SIZE * avctx->channels) {
|
if (buf_size < IMC_BLOCK_SIZE * avctx->channels) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "frame too small!\n");
|
av_log(avctx, AV_LOG_ERROR, "frame too small!\n");
|
||||||
|
@ -42,7 +42,7 @@ static int imx_dump_header(AVBitStreamFilterContext *bsfc, AVCodecContext *avctx
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
*poutbuf = av_malloc(buf_size + 20 + FF_INPUT_BUFFER_PADDING_SIZE);
|
*poutbuf = av_malloc(buf_size + 20 + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!*poutbuf)
|
if (!*poutbuf)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
poutbufp = *poutbuf;
|
poutbufp = *poutbuf;
|
||||||
|
@ -157,7 +157,7 @@ int avpriv_unlock_avformat(void);
|
|||||||
* This value was chosen such that every bit of the buffer is
|
* This value was chosen such that every bit of the buffer is
|
||||||
* addressable by a 32-bit signed integer as used by get_bits.
|
* addressable by a 32-bit signed integer as used by get_bits.
|
||||||
*/
|
*/
|
||||||
#define FF_MAX_EXTRADATA_SIZE ((1 << 28) - FF_INPUT_BUFFER_PADDING_SIZE)
|
#define FF_MAX_EXTRADATA_SIZE ((1 << 28) - AV_INPUT_BUFFER_PADDING_SIZE)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check AVPacket size and/or allocate data.
|
* Check AVPacket size and/or allocate data.
|
||||||
|
@ -268,7 +268,7 @@ static int encode_picture_ls(AVCodecContext *avctx, AVPacket *pkt,
|
|||||||
comps = 3;
|
comps = 3;
|
||||||
|
|
||||||
if ((ret = ff_alloc_packet(pkt, avctx->width * avctx->height * comps * 4 +
|
if ((ret = ff_alloc_packet(pkt, avctx->width * avctx->height * comps * 4 +
|
||||||
FF_MIN_BUFFER_SIZE)) < 0) {
|
AV_INPUT_BUFFER_MIN_SIZE)) < 0) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Error getting output packet.\n");
|
av_log(avctx, AV_LOG_ERROR, "Error getting output packet.\n");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,7 @@ static int dcadec_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
}
|
}
|
||||||
mrk = AV_RB32(input);
|
mrk = AV_RB32(input);
|
||||||
if (mrk != DCA_SYNCWORD_CORE_BE && mrk != DCA_SYNCWORD_SUBSTREAM) {
|
if (mrk != DCA_SYNCWORD_CORE_BE && mrk != DCA_SYNCWORD_SUBSTREAM) {
|
||||||
s->buffer = av_fast_realloc(s->buffer, &s->buffer_size, avpkt->size + FF_INPUT_BUFFER_PADDING_SIZE);
|
s->buffer = av_fast_realloc(s->buffer, &s->buffer_size, avpkt->size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!s->buffer)
|
if (!s->buffer)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
|
@ -139,7 +139,7 @@ static av_cold int Faac_encode_init(AVCodecContext *avctx)
|
|||||||
|
|
||||||
if (!faacEncGetDecoderSpecificInfo(s->faac_handle, &buffer,
|
if (!faacEncGetDecoderSpecificInfo(s->faac_handle, &buffer,
|
||||||
&decoder_specific_info_size)) {
|
&decoder_specific_info_size)) {
|
||||||
avctx->extradata = av_malloc(decoder_specific_info_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
avctx->extradata = av_malloc(decoder_specific_info_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!avctx->extradata) {
|
if (!avctx->extradata) {
|
||||||
ret = AVERROR(ENOMEM);
|
ret = AVERROR(ENOMEM);
|
||||||
goto error;
|
goto error;
|
||||||
|
@ -292,7 +292,7 @@ static av_cold int aac_encode_init(AVCodecContext *avctx)
|
|||||||
if (avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER) {
|
if (avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER) {
|
||||||
avctx->extradata_size = info.confSize;
|
avctx->extradata_size = info.confSize;
|
||||||
avctx->extradata = av_mallocz(avctx->extradata_size +
|
avctx->extradata = av_mallocz(avctx->extradata_size +
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE);
|
AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!avctx->extradata) {
|
if (!avctx->extradata) {
|
||||||
ret = AVERROR(ENOMEM);
|
ret = AVERROR(ENOMEM);
|
||||||
goto error;
|
goto error;
|
||||||
|
@ -143,7 +143,7 @@ static av_cold int svc_encode_init(AVCodecContext *avctx)
|
|||||||
(*s->encoder)->EncodeParameterSets(s->encoder, &fbi);
|
(*s->encoder)->EncodeParameterSets(s->encoder, &fbi);
|
||||||
for (i = 0; i < fbi.sLayerInfo[0].iNalCount; i++)
|
for (i = 0; i < fbi.sLayerInfo[0].iNalCount; i++)
|
||||||
size += fbi.sLayerInfo[0].pNalLengthInByte[i];
|
size += fbi.sLayerInfo[0].pNalLengthInByte[i];
|
||||||
avctx->extradata = av_mallocz(size + FF_INPUT_BUFFER_PADDING_SIZE);
|
avctx->extradata = av_mallocz(size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!avctx->extradata) {
|
if (!avctx->extradata) {
|
||||||
err = AVERROR(ENOMEM);
|
err = AVERROR(ENOMEM);
|
||||||
goto fail;
|
goto fail;
|
||||||
|
@ -262,7 +262,7 @@ static int av_cold libopus_encode_init(AVCodecContext *avctx)
|
|||||||
}
|
}
|
||||||
|
|
||||||
header_size = 19 + (avctx->channels > 2 ? 2 + avctx->channels : 0);
|
header_size = 19 + (avctx->channels > 2 ? 2 + avctx->channels : 0);
|
||||||
avctx->extradata = av_malloc(header_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
avctx->extradata = av_malloc(header_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!avctx->extradata) {
|
if (!avctx->extradata) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Failed to allocate extradata.\n");
|
av_log(avctx, AV_LOG_ERROR, "Failed to allocate extradata.\n");
|
||||||
ret = AVERROR(ENOMEM);
|
ret = AVERROR(ENOMEM);
|
||||||
|
@ -244,7 +244,7 @@ static av_cold int encode_init(AVCodecContext *avctx)
|
|||||||
header_data = speex_header_to_packet(&s->header, &header_size);
|
header_data = speex_header_to_packet(&s->header, &header_size);
|
||||||
|
|
||||||
/* allocate extradata */
|
/* allocate extradata */
|
||||||
avctx->extradata = av_malloc(header_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
avctx->extradata = av_malloc(header_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!avctx->extradata) {
|
if (!avctx->extradata) {
|
||||||
speex_header_free(header_data);
|
speex_header_free(header_data);
|
||||||
speex_encoder_destroy(s->enc_state);
|
speex_encoder_destroy(s->enc_state);
|
||||||
|
@ -105,7 +105,7 @@ static av_cold int aac_encode_init(AVCodecContext *avctx)
|
|||||||
if (avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER) {
|
if (avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER) {
|
||||||
avctx->extradata_size = 2;
|
avctx->extradata_size = 2;
|
||||||
avctx->extradata = av_mallocz(avctx->extradata_size +
|
avctx->extradata = av_mallocz(avctx->extradata_size +
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE);
|
AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!avctx->extradata) {
|
if (!avctx->extradata) {
|
||||||
ret = AVERROR(ENOMEM);
|
ret = AVERROR(ENOMEM);
|
||||||
goto error;
|
goto error;
|
||||||
|
@ -206,7 +206,7 @@ static av_cold int libvorbis_encode_init(AVCodecContext *avctx)
|
|||||||
xiph_len(header_comm.bytes) +
|
xiph_len(header_comm.bytes) +
|
||||||
header_code.bytes;
|
header_code.bytes;
|
||||||
p = avctx->extradata = av_malloc(avctx->extradata_size +
|
p = avctx->extradata = av_malloc(avctx->extradata_size +
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE);
|
AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!p) {
|
if (!p) {
|
||||||
ret = AVERROR(ENOMEM);
|
ret = AVERROR(ENOMEM);
|
||||||
goto error;
|
goto error;
|
||||||
|
@ -225,7 +225,7 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx)
|
|||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
avctx->extradata = av_malloc(avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
avctx->extradata = av_malloc(avctx->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!avctx->extradata) {
|
if (!avctx->extradata) {
|
||||||
av_log(avctx, AV_LOG_ERROR,
|
av_log(avctx, AV_LOG_ERROR,
|
||||||
"Cannot allocate HEVC header of size %d.\n", avctx->extradata_size);
|
"Cannot allocate HEVC header of size %d.\n", avctx->extradata_size);
|
||||||
|
@ -81,7 +81,7 @@ static int encode_nals(AVCodecContext *ctx, AVPacket *pkt,
|
|||||||
{
|
{
|
||||||
XavsContext *x4 = ctx->priv_data;
|
XavsContext *x4 = ctx->priv_data;
|
||||||
uint8_t *p;
|
uint8_t *p;
|
||||||
int i, s, ret, size = x4->sei_size + FF_MIN_BUFFER_SIZE;
|
int i, s, ret, size = x4->sei_size + AV_INPUT_BUFFER_MIN_SIZE;
|
||||||
|
|
||||||
if (!nnal)
|
if (!nnal)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -688,7 +688,7 @@ static int xvid_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
|
|||||||
xvid_enc_stats_t xvid_enc_stats = { 0 };
|
xvid_enc_stats_t xvid_enc_stats = { 0 };
|
||||||
|
|
||||||
if (!user_packet &&
|
if (!user_packet &&
|
||||||
(ret = av_new_packet(pkt, mb_width * mb_height * MAX_MB_BYTES + FF_MIN_BUFFER_SIZE)) < 0) {
|
(ret = av_new_packet(pkt, mb_width * mb_height * MAX_MB_BYTES + AV_INPUT_BUFFER_MIN_SIZE)) < 0) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Error getting output packet.\n");
|
av_log(avctx, AV_LOG_ERROR, "Error getting output packet.\n");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -211,7 +211,7 @@ static int ljpeg_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
|
|||||||
const int height = avctx->height;
|
const int height = avctx->height;
|
||||||
const int mb_width = (width + s->hsample[0] - 1) / s->hsample[0];
|
const int mb_width = (width + s->hsample[0] - 1) / s->hsample[0];
|
||||||
const int mb_height = (height + s->vsample[0] - 1) / s->vsample[0];
|
const int mb_height = (height + s->vsample[0] - 1) / s->vsample[0];
|
||||||
int max_pkt_size = FF_MIN_BUFFER_SIZE;
|
int max_pkt_size = AV_INPUT_BUFFER_MIN_SIZE;
|
||||||
int ret, header_bits;
|
int ret, header_bits;
|
||||||
|
|
||||||
if (avctx->pix_fmt == AV_PIX_FMT_BGR24)
|
if (avctx->pix_fmt == AV_PIX_FMT_BGR24)
|
||||||
|
@ -181,7 +181,7 @@ static int decode_frame(AVCodecContext *avctx,
|
|||||||
frame.f->pict_type = AV_PICTURE_TYPE_I;
|
frame.f->pict_type = AV_PICTURE_TYPE_I;
|
||||||
frame.f->key_frame = 1;
|
frame.f->key_frame = 1;
|
||||||
|
|
||||||
av_fast_malloc(&a->bitstream_buffer, &a->bitstream_buffer_size, buf_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
av_fast_malloc(&a->bitstream_buffer, &a->bitstream_buffer_size, buf_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!a->bitstream_buffer)
|
if (!a->bitstream_buffer)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
for (i = 0; i < buf_size; i += 2) {
|
for (i = 0; i < buf_size; i += 2) {
|
||||||
|
@ -44,7 +44,7 @@ static int mjpega_dump_header(AVBitStreamFilterContext *bsfc, AVCodecContext *av
|
|||||||
}
|
}
|
||||||
|
|
||||||
*poutbuf_size = 0;
|
*poutbuf_size = 0;
|
||||||
*poutbuf = av_malloc(buf_size + 44 + FF_INPUT_BUFFER_PADDING_SIZE);
|
*poutbuf = av_malloc(buf_size + 44 + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!*poutbuf)
|
if (!*poutbuf)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
poutbufp = *poutbuf;
|
poutbufp = *poutbuf;
|
||||||
|
@ -1422,7 +1422,7 @@ int ff_mjpeg_find_marker(MJpegDecodeContext *s,
|
|||||||
*unescaped_buf_ptr = s->buffer;
|
*unescaped_buf_ptr = s->buffer;
|
||||||
*unescaped_buf_size = dst - s->buffer;
|
*unescaped_buf_size = dst - s->buffer;
|
||||||
memset(s->buffer + *unescaped_buf_size, 0,
|
memset(s->buffer + *unescaped_buf_size, 0,
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE);
|
AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
|
|
||||||
av_log(s->avctx, AV_LOG_DEBUG, "escaping removed %td bytes\n",
|
av_log(s->avctx, AV_LOG_DEBUG, "escaping removed %td bytes\n",
|
||||||
(buf_end - *buf_ptr) - (dst - s->buffer));
|
(buf_end - *buf_ptr) - (dst - s->buffer));
|
||||||
@ -1465,7 +1465,7 @@ int ff_mjpeg_find_marker(MJpegDecodeContext *s,
|
|||||||
*unescaped_buf_ptr = dst;
|
*unescaped_buf_ptr = dst;
|
||||||
*unescaped_buf_size = (bit_count + 7) >> 3;
|
*unescaped_buf_size = (bit_count + 7) >> 3;
|
||||||
memset(s->buffer + *unescaped_buf_size, 0,
|
memset(s->buffer + *unescaped_buf_size, 0,
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE);
|
AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
} else {
|
} else {
|
||||||
*unescaped_buf_ptr = *buf_ptr;
|
*unescaped_buf_ptr = *buf_ptr;
|
||||||
*unescaped_buf_size = buf_end - *buf_ptr;
|
*unescaped_buf_size = buf_end - *buf_ptr;
|
||||||
|
@ -274,14 +274,14 @@ static int mp_decode_frame(AVCodecContext *avctx,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* le32 bitstream msb first */
|
/* le32 bitstream msb first */
|
||||||
av_fast_malloc(&mp->bswapbuf, &mp->bswapbuf_size, buf_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
av_fast_malloc(&mp->bswapbuf, &mp->bswapbuf_size, buf_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!mp->bswapbuf)
|
if (!mp->bswapbuf)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
mp->bdsp.bswap_buf((uint32_t *) mp->bswapbuf, (const uint32_t *) buf,
|
mp->bdsp.bswap_buf((uint32_t *) mp->bswapbuf, (const uint32_t *) buf,
|
||||||
buf_size / 4);
|
buf_size / 4);
|
||||||
if (buf_size & 3)
|
if (buf_size & 3)
|
||||||
memcpy(mp->bswapbuf + (buf_size & ~3), buf + (buf_size & ~3), buf_size & 3);
|
memcpy(mp->bswapbuf + (buf_size & ~3), buf + (buf_size & ~3), buf_size & 3);
|
||||||
memset(mp->bswapbuf + buf_size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
|
memset(mp->bswapbuf + buf_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
init_get_bits(&gb, mp->bswapbuf, buf_size * 8);
|
init_get_bits(&gb, mp->bswapbuf, buf_size * 8);
|
||||||
|
|
||||||
memset(mp->changes_map, 0, avctx->width * avctx->height);
|
memset(mp->changes_map, 0, avctx->width * avctx->height);
|
||||||
|
@ -28,7 +28,7 @@ static int text2movsub(AVBitStreamFilterContext *bsfc, AVCodecContext *avctx, co
|
|||||||
const uint8_t *buf, int buf_size, int keyframe){
|
const uint8_t *buf, int buf_size, int keyframe){
|
||||||
if (buf_size > 0xffff) return 0;
|
if (buf_size > 0xffff) return 0;
|
||||||
*poutbuf_size = buf_size + 2;
|
*poutbuf_size = buf_size + 2;
|
||||||
*poutbuf = av_malloc(*poutbuf_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
*poutbuf = av_malloc(*poutbuf_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!*poutbuf)
|
if (!*poutbuf)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
AV_WB16(*poutbuf, buf_size);
|
AV_WB16(*poutbuf, buf_size);
|
||||||
@ -47,7 +47,7 @@ static int mov2textsub(AVBitStreamFilterContext *bsfc, AVCodecContext *avctx, co
|
|||||||
const uint8_t *buf, int buf_size, int keyframe){
|
const uint8_t *buf, int buf_size, int keyframe){
|
||||||
if (buf_size < 2) return 0;
|
if (buf_size < 2) return 0;
|
||||||
*poutbuf_size = FFMIN(buf_size - 2, AV_RB16(buf));
|
*poutbuf_size = FFMIN(buf_size - 2, AV_RB16(buf));
|
||||||
*poutbuf = av_malloc(*poutbuf_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
*poutbuf = av_malloc(*poutbuf_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!*poutbuf)
|
if (!*poutbuf)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
memcpy(*poutbuf, buf + 2, *poutbuf_size);
|
memcpy(*poutbuf, buf + 2, *poutbuf_size);
|
||||||
|
@ -2516,7 +2516,7 @@ int ff_mpeg4_frame_end(AVCodecContext *avctx, const uint8_t *buf, int buf_size)
|
|||||||
av_fast_malloc(&s->bitstream_buffer,
|
av_fast_malloc(&s->bitstream_buffer,
|
||||||
&s->allocated_bitstream_buffer_size,
|
&s->allocated_bitstream_buffer_size,
|
||||||
buf_size - current_pos +
|
buf_size - current_pos +
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE);
|
AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!s->bitstream_buffer)
|
if (!s->bitstream_buffer)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
memcpy(s->bitstream_buffer, buf + current_pos,
|
memcpy(s->bitstream_buffer, buf + current_pos,
|
||||||
|
@ -544,7 +544,7 @@ do {\
|
|||||||
|
|
||||||
if (s1->bitstream_buffer) {
|
if (s1->bitstream_buffer) {
|
||||||
if (s1->bitstream_buffer_size +
|
if (s1->bitstream_buffer_size +
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE > s->allocated_bitstream_buffer_size)
|
AV_INPUT_BUFFER_PADDING_SIZE > s->allocated_bitstream_buffer_size)
|
||||||
av_fast_malloc(&s->bitstream_buffer,
|
av_fast_malloc(&s->bitstream_buffer,
|
||||||
&s->allocated_bitstream_buffer_size,
|
&s->allocated_bitstream_buffer_size,
|
||||||
s1->allocated_bitstream_buffer_size);
|
s1->allocated_bitstream_buffer_size);
|
||||||
@ -552,7 +552,7 @@ do {\
|
|||||||
memcpy(s->bitstream_buffer, s1->bitstream_buffer,
|
memcpy(s->bitstream_buffer, s1->bitstream_buffer,
|
||||||
s1->bitstream_buffer_size);
|
s1->bitstream_buffer_size);
|
||||||
memset(s->bitstream_buffer + s->bitstream_buffer_size, 0,
|
memset(s->bitstream_buffer + s->bitstream_buffer_size, 0,
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE);
|
AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// linesize dependend scratch buffer allocation
|
// linesize dependend scratch buffer allocation
|
||||||
|
@ -476,7 +476,7 @@ static int mss2_decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
|
|||||||
Rectangle wmv9rects[MAX_WMV9_RECTANGLES], *r;
|
Rectangle wmv9rects[MAX_WMV9_RECTANGLES], *r;
|
||||||
int used_rects = 0, i, implicit_rect = 0, av_uninit(wmv9_mask);
|
int used_rects = 0, i, implicit_rect = 0, av_uninit(wmv9_mask);
|
||||||
|
|
||||||
av_assert0(FF_INPUT_BUFFER_PADDING_SIZE >=
|
av_assert0(AV_INPUT_BUFFER_PADDING_SIZE >=
|
||||||
ARITH2_PADDING + (MIN_CACHE_BITS + 7) / 8);
|
ARITH2_PADDING + (MIN_CACHE_BITS + 7) / 8);
|
||||||
|
|
||||||
init_get_bits(&gb, buf, buf_size * 8);
|
init_get_bits(&gb, buf, buf_size * 8);
|
||||||
|
@ -32,10 +32,10 @@ static int noise(AVBitStreamFilterContext *bsfc, AVCodecContext *avctx, const ch
|
|||||||
int amount= args ? atoi(args) : (*state % 10001+1);
|
int amount= args ? atoi(args) : (*state % 10001+1);
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
*poutbuf= av_malloc(buf_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
*poutbuf= av_malloc(buf_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!*poutbuf)
|
if (!*poutbuf)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
memcpy(*poutbuf, buf, buf_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
memcpy(*poutbuf, buf, buf_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
for(i=0; i<buf_size; i++){
|
for(i=0; i<buf_size; i++){
|
||||||
(*state) += (*poutbuf)[i] + 1;
|
(*state) += (*poutbuf)[i] + 1;
|
||||||
if(*state % amount == 0)
|
if(*state % amount == 0)
|
||||||
|
@ -128,7 +128,7 @@ static int codec_reinit(AVCodecContext *avctx, int width, int height,
|
|||||||
avctx->height = c->height = height;
|
avctx->height = c->height = height;
|
||||||
ptr = av_fast_realloc(c->decomp_buf, &c->decomp_size,
|
ptr = av_fast_realloc(c->decomp_buf, &c->decomp_size,
|
||||||
c->height * c->width * 3 / 2 +
|
c->height * c->width * 3 / 2 +
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE +
|
AV_INPUT_BUFFER_PADDING_SIZE +
|
||||||
RTJPEG_HEADER_SIZE);
|
RTJPEG_HEADER_SIZE);
|
||||||
if (!ptr) {
|
if (!ptr) {
|
||||||
av_log(avctx, AV_LOG_ERROR,
|
av_log(avctx, AV_LOG_ERROR,
|
||||||
@ -202,7 +202,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
|
|||||||
buf = &buf[12];
|
buf = &buf[12];
|
||||||
buf_size -= 12;
|
buf_size -= 12;
|
||||||
if (comptype == NUV_RTJPEG_IN_LZO || comptype == NUV_LZO) {
|
if (comptype == NUV_RTJPEG_IN_LZO || comptype == NUV_LZO) {
|
||||||
int outlen = c->decomp_size - FF_INPUT_BUFFER_PADDING_SIZE;
|
int outlen = c->decomp_size - AV_INPUT_BUFFER_PADDING_SIZE;
|
||||||
int inlen = buf_size;
|
int inlen = buf_size;
|
||||||
if (av_lzo1x_decode(c->decomp_buf, &outlen, buf, &inlen)) {
|
if (av_lzo1x_decode(c->decomp_buf, &outlen, buf, &inlen)) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "error during lzo decompression\n");
|
av_log(avctx, AV_LOG_ERROR, "error during lzo decompression\n");
|
||||||
|
@ -747,7 +747,7 @@ static int nvenc_setup_extradata(AVCodecContext *avctx)
|
|||||||
NV_ENC_SEQUENCE_PARAM_PAYLOAD payload = { 0 };
|
NV_ENC_SEQUENCE_PARAM_PAYLOAD payload = { 0 };
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
avctx->extradata = av_mallocz(EXTRADATA_SIZE + FF_INPUT_BUFFER_PADDING_SIZE);
|
avctx->extradata = av_mallocz(EXTRADATA_SIZE + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!avctx->extradata)
|
if (!avctx->extradata)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
|
@ -203,7 +203,7 @@ int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src)
|
|||||||
memset(((uint8_t *) dest->obj) + size, 0, pad); \
|
memset(((uint8_t *) dest->obj) + size, 0, pad); \
|
||||||
}
|
}
|
||||||
alloc_and_copy_or_fail(extradata, src->extradata_size,
|
alloc_and_copy_or_fail(extradata, src->extradata_size,
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE);
|
AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
alloc_and_copy_or_fail(intra_matrix, 64 * sizeof(int16_t), 0);
|
alloc_and_copy_or_fail(intra_matrix, 64 * sizeof(int16_t), 0);
|
||||||
alloc_and_copy_or_fail(inter_matrix, 64 * sizeof(int16_t), 0);
|
alloc_and_copy_or_fail(inter_matrix, 64 * sizeof(int16_t), 0);
|
||||||
alloc_and_copy_or_fail(rc_override, src->rc_override_count * sizeof(*src->rc_override), 0);
|
alloc_and_copy_or_fail(rc_override, src->rc_override_count * sizeof(*src->rc_override), 0);
|
||||||
|
@ -126,7 +126,7 @@ int av_parser_parse2(AVCodecParserContext *s, AVCodecContext *avctx,
|
|||||||
int64_t pts, int64_t dts, int64_t pos)
|
int64_t pts, int64_t dts, int64_t pos)
|
||||||
{
|
{
|
||||||
int index, i;
|
int index, i;
|
||||||
uint8_t dummy_buf[FF_INPUT_BUFFER_PADDING_SIZE];
|
uint8_t dummy_buf[AV_INPUT_BUFFER_PADDING_SIZE];
|
||||||
|
|
||||||
if (!(s->flags & PARSER_FLAG_FETCHED_OFFSET)) {
|
if (!(s->flags & PARSER_FLAG_FETCHED_OFFSET)) {
|
||||||
s->next_frame_offset =
|
s->next_frame_offset =
|
||||||
@ -195,13 +195,13 @@ int av_parser_change(AVCodecParserContext *s, AVCodecContext *avctx,
|
|||||||
int size = buf_size + avctx->extradata_size;
|
int size = buf_size + avctx->extradata_size;
|
||||||
|
|
||||||
*poutbuf_size = size;
|
*poutbuf_size = size;
|
||||||
*poutbuf = av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE);
|
*poutbuf = av_malloc(size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!*poutbuf)
|
if (!*poutbuf)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
memcpy(*poutbuf, avctx->extradata, avctx->extradata_size);
|
memcpy(*poutbuf, avctx->extradata, avctx->extradata_size);
|
||||||
memcpy(*poutbuf + avctx->extradata_size, buf,
|
memcpy(*poutbuf + avctx->extradata_size, buf,
|
||||||
buf_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
buf_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -243,7 +243,7 @@ int ff_combine_frame(ParseContext *pc, int next,
|
|||||||
if (next == END_NOT_FOUND) {
|
if (next == END_NOT_FOUND) {
|
||||||
void *new_buffer = av_fast_realloc(pc->buffer, &pc->buffer_size,
|
void *new_buffer = av_fast_realloc(pc->buffer, &pc->buffer_size,
|
||||||
*buf_size + pc->index +
|
*buf_size + pc->index +
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE);
|
AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
|
|
||||||
if (!new_buffer)
|
if (!new_buffer)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
@ -260,14 +260,14 @@ int ff_combine_frame(ParseContext *pc, int next,
|
|||||||
if (pc->index) {
|
if (pc->index) {
|
||||||
void *new_buffer = av_fast_realloc(pc->buffer, &pc->buffer_size,
|
void *new_buffer = av_fast_realloc(pc->buffer, &pc->buffer_size,
|
||||||
next + pc->index +
|
next + pc->index +
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE);
|
AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
|
|
||||||
if (!new_buffer)
|
if (!new_buffer)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
pc->buffer = new_buffer;
|
pc->buffer = new_buffer;
|
||||||
if (next > -FF_INPUT_BUFFER_PADDING_SIZE)
|
if (next > -AV_INPUT_BUFFER_PADDING_SIZE)
|
||||||
memcpy(&pc->buffer[pc->index], *buf,
|
memcpy(&pc->buffer[pc->index], *buf,
|
||||||
next + FF_INPUT_BUFFER_PADDING_SIZE);
|
next + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
pc->index = 0;
|
pc->index = 0;
|
||||||
*buf = pc->buffer;
|
*buf = pc->buffer;
|
||||||
}
|
}
|
||||||
|
@ -297,7 +297,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
|
|||||||
enc_row_size = deflateBound(&s->zstream, row_size);
|
enc_row_size = deflateBound(&s->zstream, row_size);
|
||||||
max_packet_size = avctx->height * (enc_row_size +
|
max_packet_size = avctx->height * (enc_row_size +
|
||||||
((enc_row_size + IOBUF_SIZE - 1) / IOBUF_SIZE) * 12)
|
((enc_row_size + IOBUF_SIZE - 1) / IOBUF_SIZE) * 12)
|
||||||
+ FF_MIN_BUFFER_SIZE;
|
+ AV_INPUT_BUFFER_MIN_SIZE;
|
||||||
if (!pkt->data &&
|
if (!pkt->data &&
|
||||||
(ret = av_new_packet(pkt, max_packet_size)) < 0) {
|
(ret = av_new_packet(pkt, max_packet_size)) < 0) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Could not allocate output packet of size %d.\n",
|
av_log(avctx, AV_LOG_ERROR, "Could not allocate output packet of size %d.\n",
|
||||||
|
@ -55,7 +55,7 @@ retry:
|
|||||||
goto retry;
|
goto retry;
|
||||||
}
|
}
|
||||||
#if 0
|
#if 0
|
||||||
if (pc->index && pc->index * 2 + FF_INPUT_BUFFER_PADDING_SIZE < pc->buffer_size && buf_size > pc->index) {
|
if (pc->index && pc->index * 2 + AV_INPUT_BUFFER_PADDING_SIZE < pc->buffer_size && buf_size > pc->index) {
|
||||||
memcpy(pc->buffer + pc->index, buf, pc->index);
|
memcpy(pc->buffer + pc->index, buf, pc->index);
|
||||||
pc->index += pc->index;
|
pc->index += pc->index;
|
||||||
buf += pc->index;
|
buf += pc->index;
|
||||||
|
@ -948,7 +948,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
|
|||||||
|
|
||||||
pkt_size = ctx->frame_size_upper_bound;
|
pkt_size = ctx->frame_size_upper_bound;
|
||||||
|
|
||||||
if ((ret = ff_alloc_packet(pkt, pkt_size + FF_MIN_BUFFER_SIZE)) < 0) {
|
if ((ret = ff_alloc_packet(pkt, pkt_size + AV_INPUT_BUFFER_MIN_SIZE)) < 0) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Error getting output packet.\n");
|
av_log(avctx, AV_LOG_ERROR, "Error getting output packet.\n");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -341,7 +341,7 @@ int ff_qsv_process_data(AVCodecContext *avctx, QSVContext *q,
|
|||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
if (avctx->extradata) {
|
if (avctx->extradata) {
|
||||||
q->avctx_internal->extradata = av_mallocz(avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
q->avctx_internal->extradata = av_mallocz(avctx->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!q->avctx_internal->extradata)
|
if (!q->avctx_internal->extradata)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
|
@ -177,7 +177,7 @@ static int qsv_retrieve_enc_params(AVCodecContext *avctx, QSVEncContext *q)
|
|||||||
}
|
}
|
||||||
|
|
||||||
avctx->extradata = av_malloc(extradata.SPSBufSize + need_pps * extradata.PPSBufSize +
|
avctx->extradata = av_malloc(extradata.SPSBufSize + need_pps * extradata.PPSBufSize +
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE);
|
AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!avctx->extradata)
|
if (!avctx->extradata)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
@ -185,7 +185,7 @@ static int qsv_retrieve_enc_params(AVCodecContext *avctx, QSVEncContext *q)
|
|||||||
if (need_pps)
|
if (need_pps)
|
||||||
memcpy(avctx->extradata + extradata.SPSBufSize, pps_buf, extradata.PPSBufSize);
|
memcpy(avctx->extradata + extradata.SPSBufSize, pps_buf, extradata.PPSBufSize);
|
||||||
avctx->extradata_size = extradata.SPSBufSize + need_pps * extradata.PPSBufSize;
|
avctx->extradata_size = extradata.SPSBufSize + need_pps * extradata.PPSBufSize;
|
||||||
memset(avctx->extradata + avctx->extradata_size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
|
memset(avctx->extradata + avctx->extradata_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -140,7 +140,7 @@ static int generate_fake_vps(QSVEncContext *q, AVCodecContext *avctx)
|
|||||||
}
|
}
|
||||||
|
|
||||||
vps_size = bytestream2_tell_p(&pbc);
|
vps_size = bytestream2_tell_p(&pbc);
|
||||||
new_extradata = av_mallocz(vps_size + avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
new_extradata = av_mallocz(vps_size + avctx->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!new_extradata)
|
if (!new_extradata)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
memcpy(new_extradata, vps_buf, vps_size);
|
memcpy(new_extradata, vps_buf, vps_size);
|
||||||
|
@ -431,7 +431,7 @@ static int shorten_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
void *tmp_ptr;
|
void *tmp_ptr;
|
||||||
s->max_framesize = 1024; // should hopefully be enough for the first header
|
s->max_framesize = 1024; // should hopefully be enough for the first header
|
||||||
tmp_ptr = av_fast_realloc(s->bitstream, &s->allocated_bitstream_size,
|
tmp_ptr = av_fast_realloc(s->bitstream, &s->allocated_bitstream_size,
|
||||||
s->max_framesize + FF_INPUT_BUFFER_PADDING_SIZE);
|
s->max_framesize + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!tmp_ptr) {
|
if (!tmp_ptr) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "error allocating bitstream buffer\n");
|
av_log(avctx, AV_LOG_ERROR, "error allocating bitstream buffer\n");
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
@ -33,7 +33,7 @@ int ff_startcode_find_candidate_c(const uint8_t *buf, int size)
|
|||||||
int i = 0;
|
int i = 0;
|
||||||
#if HAVE_FAST_UNALIGNED
|
#if HAVE_FAST_UNALIGNED
|
||||||
/* we check i < size instead of i + 3 / 7 because it is
|
/* we check i < size instead of i + 3 / 7 because it is
|
||||||
* simpler and there must be FF_INPUT_BUFFER_PADDING_SIZE
|
* simpler and there must be AV_INPUT_BUFFER_PADDING_SIZE
|
||||||
* bytes at the end.
|
* bytes at the end.
|
||||||
*/
|
*/
|
||||||
#if HAVE_FAST_64BIT
|
#if HAVE_FAST_64BIT
|
||||||
|
@ -586,7 +586,7 @@ static int svq1_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
|
|||||||
|
|
||||||
if (!pkt->data &&
|
if (!pkt->data &&
|
||||||
(ret = av_new_packet(pkt, s->y_block_width * s->y_block_height *
|
(ret = av_new_packet(pkt, s->y_block_width * s->y_block_height *
|
||||||
MAX_MB_BYTES * 3 + FF_MIN_BUFFER_SIZE)) < 0) {
|
MAX_MB_BYTES * 3 + AV_INPUT_BUFFER_MIN_SIZE)) < 0) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Error getting output packet.\n");
|
av_log(avctx, AV_LOG_ERROR, "Error getting output packet.\n");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -141,7 +141,7 @@ static int tiff_unpack_fax(TiffContext *s, uint8_t *dst, int stride,
|
|||||||
{
|
{
|
||||||
int i, ret = 0;
|
int i, ret = 0;
|
||||||
uint8_t *src2 = av_malloc((unsigned)size +
|
uint8_t *src2 = av_malloc((unsigned)size +
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE);
|
AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
|
|
||||||
if (!src2) {
|
if (!src2) {
|
||||||
av_log(s->avctx, AV_LOG_ERROR,
|
av_log(s->avctx, AV_LOG_ERROR,
|
||||||
@ -159,7 +159,7 @@ static int tiff_unpack_fax(TiffContext *s, uint8_t *dst, int stride,
|
|||||||
for (i = 0; i < size; i++)
|
for (i = 0; i < size; i++)
|
||||||
src2[i] = ff_reverse[src[i]];
|
src2[i] = ff_reverse[src[i]];
|
||||||
}
|
}
|
||||||
memset(src2 + size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
|
memset(src2 + size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
ret = ff_ccitt_unpack(s->avctx, src2, size, dst, lines, stride,
|
ret = ff_ccitt_unpack(s->avctx, src2, size, dst, lines, stride,
|
||||||
s->compr, s->fax_opts);
|
s->compr, s->fax_opts);
|
||||||
av_free(src2);
|
av_free(src2);
|
||||||
|
@ -309,7 +309,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
|
|||||||
strips = (s->height - 1) / s->rps + 1;
|
strips = (s->height - 1) / s->rps + 1;
|
||||||
|
|
||||||
packet_size = avctx->height * ((avctx->width * s->bpp + 7) >> 3) * 2 +
|
packet_size = avctx->height * ((avctx->width * s->bpp + 7) >> 3) * 2 +
|
||||||
avctx->height * 4 + FF_MIN_BUFFER_SIZE;
|
avctx->height * 4 + AV_INPUT_BUFFER_MIN_SIZE;
|
||||||
|
|
||||||
if (!pkt->data &&
|
if (!pkt->data &&
|
||||||
(ret = av_new_packet(pkt, packet_size)) < 0) {
|
(ret = av_new_packet(pkt, packet_size)) < 0) {
|
||||||
|
@ -856,7 +856,7 @@ static int decode_frame(AVCodecContext *avctx,
|
|||||||
int i, t, ret;
|
int i, t, ret;
|
||||||
uint8_t *swbuf;
|
uint8_t *swbuf;
|
||||||
|
|
||||||
swbuf = av_malloc(buf_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
swbuf = av_malloc(buf_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!swbuf) {
|
if (!swbuf) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Cannot allocate temporary buffer\n");
|
av_log(avctx, AV_LOG_ERROR, "Cannot allocate temporary buffer\n");
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
@ -59,14 +59,14 @@ static void *avformat_mutex;
|
|||||||
void av_fast_padded_malloc(void *ptr, unsigned int *size, size_t min_size)
|
void av_fast_padded_malloc(void *ptr, unsigned int *size, size_t min_size)
|
||||||
{
|
{
|
||||||
void **p = ptr;
|
void **p = ptr;
|
||||||
if (min_size > SIZE_MAX - FF_INPUT_BUFFER_PADDING_SIZE) {
|
if (min_size > SIZE_MAX - AV_INPUT_BUFFER_PADDING_SIZE) {
|
||||||
av_freep(p);
|
av_freep(p);
|
||||||
*size = 0;
|
*size = 0;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
av_fast_malloc(p, size, min_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
av_fast_malloc(p, size, min_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (*size)
|
if (*size)
|
||||||
memset((uint8_t *)*p + min_size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
|
memset((uint8_t *)*p + min_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* encoder management */
|
/* encoder management */
|
||||||
@ -1324,7 +1324,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
|
|||||||
|
|
||||||
int ff_alloc_packet(AVPacket *avpkt, int size)
|
int ff_alloc_packet(AVPacket *avpkt, int size)
|
||||||
{
|
{
|
||||||
if (size > INT_MAX - FF_INPUT_BUFFER_PADDING_SIZE)
|
if (size > INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE)
|
||||||
return AVERROR(EINVAL);
|
return AVERROR(EINVAL);
|
||||||
|
|
||||||
if (avpkt->data) {
|
if (avpkt->data) {
|
||||||
|
@ -142,7 +142,7 @@ static int decode_plane(UtvideoContext *c, int plane_no,
|
|||||||
|
|
||||||
memcpy(c->slice_bits, src + slice_data_start + c->slices * 4,
|
memcpy(c->slice_bits, src + slice_data_start + c->slices * 4,
|
||||||
slice_size);
|
slice_size);
|
||||||
memset(c->slice_bits + slice_size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
|
memset(c->slice_bits + slice_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
c->bdsp.bswap_buf((uint32_t *) c->slice_bits,
|
c->bdsp.bswap_buf((uint32_t *) c->slice_bits,
|
||||||
(uint32_t *) c->slice_bits,
|
(uint32_t *) c->slice_bits,
|
||||||
(slice_data_end - slice_data_start + 3) >> 2);
|
(slice_data_end - slice_data_start + 3) >> 2);
|
||||||
@ -388,7 +388,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
|
|||||||
}
|
}
|
||||||
|
|
||||||
av_fast_malloc(&c->slice_bits, &c->slice_bits_size,
|
av_fast_malloc(&c->slice_bits, &c->slice_bits_size,
|
||||||
max_slice_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
max_slice_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
|
|
||||||
if (!c->slice_bits) {
|
if (!c->slice_bits) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Cannot allocate temporary buffer\n");
|
av_log(avctx, AV_LOG_ERROR, "Cannot allocate temporary buffer\n");
|
||||||
|
@ -157,7 +157,7 @@ static av_cold int utvideo_encode_init(AVCodecContext *avctx)
|
|||||||
avctx->extradata_size = 16;
|
avctx->extradata_size = 16;
|
||||||
|
|
||||||
avctx->extradata = av_mallocz(avctx->extradata_size +
|
avctx->extradata = av_mallocz(avctx->extradata_size +
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE);
|
AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
|
|
||||||
if (!avctx->extradata) {
|
if (!avctx->extradata) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Could not allocate extradata.\n");
|
av_log(avctx, AV_LOG_ERROR, "Could not allocate extradata.\n");
|
||||||
@ -167,7 +167,7 @@ static av_cold int utvideo_encode_init(AVCodecContext *avctx)
|
|||||||
|
|
||||||
for (i = 0; i < c->planes; i++) {
|
for (i = 0; i < c->planes; i++) {
|
||||||
c->slice_buffer[i] = av_malloc(c->slice_stride * (avctx->height + 2) +
|
c->slice_buffer[i] = av_malloc(c->slice_stride * (avctx->height + 2) +
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE);
|
AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!c->slice_buffer[i]) {
|
if (!c->slice_buffer[i]) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Cannot allocate temporary buffer 1.\n");
|
av_log(avctx, AV_LOG_ERROR, "Cannot allocate temporary buffer 1.\n");
|
||||||
utvideo_encode_close(avctx);
|
utvideo_encode_close(avctx);
|
||||||
@ -547,7 +547,7 @@ static int utvideo_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
|
|||||||
bytestream2_init_writer(&pb, dst, pkt->size);
|
bytestream2_init_writer(&pb, dst, pkt->size);
|
||||||
|
|
||||||
av_fast_malloc(&c->slice_bits, &c->slice_bits_size,
|
av_fast_malloc(&c->slice_bits, &c->slice_bits_size,
|
||||||
width * height + FF_INPUT_BUFFER_PADDING_SIZE);
|
width * height + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
|
|
||||||
if (!c->slice_bits) {
|
if (!c->slice_bits) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Cannot allocate temporary buffer 2.\n");
|
av_log(avctx, AV_LOG_ERROR, "Cannot allocate temporary buffer 2.\n");
|
||||||
|
@ -461,7 +461,7 @@ static av_cold int vc1_decode_init(AVCodecContext *avctx)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
buf2 = av_mallocz(avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
buf2 = av_mallocz(avctx->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
start = find_next_marker(start, end); // in WVC1 extradata first byte is its size, but can be 0 in mkv
|
start = find_next_marker(start, end); // in WVC1 extradata first byte is its size, but can be 0 in mkv
|
||||||
next = start;
|
next = start;
|
||||||
for (; next < end; start = next) {
|
for (; next < end; start = next) {
|
||||||
@ -612,7 +612,7 @@ static int vc1_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
//for advanced profile we may need to parse and unescape data
|
//for advanced profile we may need to parse and unescape data
|
||||||
if (avctx->codec_id == AV_CODEC_ID_VC1 || avctx->codec_id == AV_CODEC_ID_VC1IMAGE) {
|
if (avctx->codec_id == AV_CODEC_ID_VC1 || avctx->codec_id == AV_CODEC_ID_VC1IMAGE) {
|
||||||
int buf_size2 = 0;
|
int buf_size2 = 0;
|
||||||
buf2 = av_mallocz(buf_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
buf2 = av_mallocz(buf_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
|
|
||||||
if (IS_MARKER(AV_RB32(buf))) { /* frame starts with marker and needs to be parsed */
|
if (IS_MARKER(AV_RB32(buf))) { /* frame starts with marker and needs to be parsed */
|
||||||
const uint8_t *start, *end, *next;
|
const uint8_t *start, *end, *next;
|
||||||
@ -635,7 +635,7 @@ static int vc1_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
if (!tmp)
|
if (!tmp)
|
||||||
goto err;
|
goto err;
|
||||||
slices = tmp;
|
slices = tmp;
|
||||||
slices[n_slices].buf = av_mallocz(buf_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
slices[n_slices].buf = av_mallocz(buf_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!slices[n_slices].buf)
|
if (!slices[n_slices].buf)
|
||||||
goto err;
|
goto err;
|
||||||
buf_size3 = vc1_unescape_buffer(start + 4, size,
|
buf_size3 = vc1_unescape_buffer(start + 4, size,
|
||||||
@ -660,7 +660,7 @@ static int vc1_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
if (!tmp)
|
if (!tmp)
|
||||||
goto err;
|
goto err;
|
||||||
slices = tmp;
|
slices = tmp;
|
||||||
slices[n_slices].buf = av_mallocz(buf_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
slices[n_slices].buf = av_mallocz(buf_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!slices[n_slices].buf)
|
if (!slices[n_slices].buf)
|
||||||
goto err;
|
goto err;
|
||||||
buf_size3 = vc1_unescape_buffer(start + 4, size,
|
buf_size3 = vc1_unescape_buffer(start + 4, size,
|
||||||
@ -686,7 +686,7 @@ static int vc1_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
if (!tmp)
|
if (!tmp)
|
||||||
goto err;
|
goto err;
|
||||||
slices = tmp;
|
slices = tmp;
|
||||||
slices[n_slices].buf = av_mallocz(buf_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
slices[n_slices].buf = av_mallocz(buf_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!slices[n_slices].buf)
|
if (!slices[n_slices].buf)
|
||||||
goto err;
|
goto err;
|
||||||
buf_size3 = vc1_unescape_buffer(divider + 4, buf + buf_size - divider - 4, slices[n_slices].buf);
|
buf_size3 = vc1_unescape_buffer(divider + 4, buf + buf_size - divider - 4, slices[n_slices].buf);
|
||||||
|
@ -446,7 +446,7 @@ static float wv_get_value_float(WavpackFrameContext *s, uint32_t *crc, int S)
|
|||||||
const int max_bits = 1 + 23 + 8 + 1;
|
const int max_bits = 1 + 23 + 8 + 1;
|
||||||
const int left_bits = get_bits_left(&s->gb_extra_bits);
|
const int left_bits = get_bits_left(&s->gb_extra_bits);
|
||||||
|
|
||||||
if (left_bits + 8 * FF_INPUT_BUFFER_PADDING_SIZE < max_bits)
|
if (left_bits + 8 * AV_INPUT_BUFFER_PADDING_SIZE < max_bits)
|
||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ typedef struct WMACodecContext {
|
|||||||
/* output buffer for one frame and the last for IMDCT windowing */
|
/* output buffer for one frame and the last for IMDCT windowing */
|
||||||
DECLARE_ALIGNED(32, float, frame_out)[MAX_CHANNELS][BLOCK_MAX_SIZE * 2];
|
DECLARE_ALIGNED(32, float, frame_out)[MAX_CHANNELS][BLOCK_MAX_SIZE * 2];
|
||||||
/* last frame info */
|
/* last frame info */
|
||||||
uint8_t last_superframe[MAX_CODED_SUPERFRAME_SIZE + FF_INPUT_BUFFER_PADDING_SIZE]; /* padding added */
|
uint8_t last_superframe[MAX_CODED_SUPERFRAME_SIZE + AV_INPUT_BUFFER_PADDING_SIZE]; /* padding added */
|
||||||
int last_bitoffset;
|
int last_bitoffset;
|
||||||
int last_superframe_len;
|
int last_superframe_len;
|
||||||
float noise_table[NOISE_TAB_SIZE];
|
float noise_table[NOISE_TAB_SIZE];
|
||||||
|
@ -853,7 +853,7 @@ static int wma_decode_superframe(AVCodecContext *avctx, void *data,
|
|||||||
}
|
}
|
||||||
if (len > 0)
|
if (len > 0)
|
||||||
*q++ = (get_bits) (&s->gb, len) << (8 - len);
|
*q++ = (get_bits) (&s->gb, len) << (8 - len);
|
||||||
memset(q, 0, FF_INPUT_BUFFER_PADDING_SIZE);
|
memset(q, 0, AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
|
|
||||||
/* XXX: bit_offset bits into last frame */
|
/* XXX: bit_offset bits into last frame */
|
||||||
init_get_bits(&s->gb, s->last_superframe,
|
init_get_bits(&s->gb, s->last_superframe,
|
||||||
|
@ -69,7 +69,7 @@ typedef struct WmallDecodeCtx {
|
|||||||
/* generic decoder variables */
|
/* generic decoder variables */
|
||||||
AVCodecContext *avctx;
|
AVCodecContext *avctx;
|
||||||
AVFrame *frame;
|
AVFrame *frame;
|
||||||
uint8_t frame_data[MAX_FRAMESIZE + FF_INPUT_BUFFER_PADDING_SIZE]; ///< compressed frame data
|
uint8_t frame_data[MAX_FRAMESIZE + AV_INPUT_BUFFER_PADDING_SIZE]; ///< compressed frame data
|
||||||
PutBitContext pb; ///< context for filling the frame_data buffer
|
PutBitContext pb; ///< context for filling the frame_data buffer
|
||||||
|
|
||||||
/* frame size dependent frame information (set during initialization) */
|
/* frame size dependent frame information (set during initialization) */
|
||||||
|
@ -173,7 +173,7 @@ typedef struct WMAProDecodeCtx {
|
|||||||
AVCodecContext* avctx; ///< codec context for av_log
|
AVCodecContext* avctx; ///< codec context for av_log
|
||||||
AVFloatDSPContext fdsp;
|
AVFloatDSPContext fdsp;
|
||||||
uint8_t frame_data[MAX_FRAMESIZE +
|
uint8_t frame_data[MAX_FRAMESIZE +
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE];///< compressed frame data
|
AV_INPUT_BUFFER_PADDING_SIZE];///< compressed frame data
|
||||||
PutBitContext pb; ///< context for filling the frame_data buffer
|
PutBitContext pb; ///< context for filling the frame_data buffer
|
||||||
FFTContext mdct_ctx[WMAPRO_BLOCK_SIZES]; ///< MDCT context per block size
|
FFTContext mdct_ctx[WMAPRO_BLOCK_SIZES]; ///< MDCT context per block size
|
||||||
DECLARE_ALIGNED(32, float, tmp)[WMAPRO_BLOCK_MAX_SIZE]; ///< IMDCT output buffer
|
DECLARE_ALIGNED(32, float, tmp)[WMAPRO_BLOCK_MAX_SIZE]; ///< IMDCT output buffer
|
||||||
|
@ -205,7 +205,7 @@ typedef struct WMAVoiceContext {
|
|||||||
///< to #wmavoice_decode_packet() (since
|
///< to #wmavoice_decode_packet() (since
|
||||||
///< they're part of the previous superframe)
|
///< they're part of the previous superframe)
|
||||||
|
|
||||||
uint8_t sframe_cache[SFRAME_CACHE_MAXSIZE + FF_INPUT_BUFFER_PADDING_SIZE];
|
uint8_t sframe_cache[SFRAME_CACHE_MAXSIZE + AV_INPUT_BUFFER_PADDING_SIZE];
|
||||||
///< cache for superframe data split over
|
///< cache for superframe data split over
|
||||||
///< multiple packets
|
///< multiple packets
|
||||||
int sframe_cache_size; ///< set to >0 if we have data from an
|
int sframe_cache_size; ///< set to >0 if we have data from an
|
||||||
|
@ -75,7 +75,7 @@ static int decode_frame(AVCodecContext *avctx,
|
|||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
rbuf = av_malloc(buf_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
rbuf = av_malloc(buf_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!rbuf) {
|
if (!rbuf) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Cannot allocate temporary buffer\n");
|
av_log(avctx, AV_LOG_ERROR, "Cannot allocate temporary buffer\n");
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
@ -392,7 +392,7 @@ static int vfw_read_header(AVFormatContext *s)
|
|||||||
codec->codec_id = AV_CODEC_ID_RAWVIDEO;
|
codec->codec_id = AV_CODEC_ID_RAWVIDEO;
|
||||||
if(biCompression == BI_RGB) {
|
if(biCompression == BI_RGB) {
|
||||||
codec->bits_per_coded_sample = biBitCount;
|
codec->bits_per_coded_sample = biBitCount;
|
||||||
codec->extradata = av_malloc(9 + FF_INPUT_BUFFER_PADDING_SIZE);
|
codec->extradata = av_malloc(9 + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (codec->extradata) {
|
if (codec->extradata) {
|
||||||
codec->extradata_size = 9;
|
codec->extradata_size = 9;
|
||||||
memcpy(codec->extradata, "BottomUp", 9);
|
memcpy(codec->extradata, "BottomUp", 9);
|
||||||
|
@ -227,7 +227,7 @@ static int xcbgrab_frame_shm(AVFormatContext *s, AVPacket *pkt)
|
|||||||
xcb_shm_get_image_reply_t *img;
|
xcb_shm_get_image_reply_t *img;
|
||||||
xcb_drawable_t drawable = c->screen->root;
|
xcb_drawable_t drawable = c->screen->root;
|
||||||
uint8_t *data;
|
uint8_t *data;
|
||||||
int size = c->frame_size + FF_INPUT_BUFFER_PADDING_SIZE;
|
int size = c->frame_size + AV_INPUT_BUFFER_PADDING_SIZE;
|
||||||
int id = shmget(IPC_PRIVATE, size, IPC_CREAT | 0777);
|
int id = shmget(IPC_PRIVATE, size, IPC_CREAT | 0777);
|
||||||
xcb_generic_error_t *e = NULL;
|
xcb_generic_error_t *e = NULL;
|
||||||
|
|
||||||
|
@ -111,7 +111,7 @@ static int parse_vtrk(AVFormatContext *s,
|
|||||||
st->codec->codec_type = AVMEDIA_TYPE_VIDEO;
|
st->codec->codec_type = AVMEDIA_TYPE_VIDEO;
|
||||||
st->codec->codec_id = AV_CODEC_ID_4XM;
|
st->codec->codec_id = AV_CODEC_ID_4XM;
|
||||||
|
|
||||||
st->codec->extradata = av_mallocz(4 + FF_INPUT_BUFFER_PADDING_SIZE);
|
st->codec->extradata = av_mallocz(4 + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!st->codec->extradata)
|
if (!st->codec->extradata)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
st->codec->extradata_size = 4;
|
st->codec->extradata_size = 4;
|
||||||
|
@ -76,7 +76,7 @@ static int adx_read_header(AVFormatContext *s)
|
|||||||
c->header_size = avio_rb16(s->pb) + 4;
|
c->header_size = avio_rb16(s->pb) + 4;
|
||||||
avio_seek(s->pb, -4, SEEK_CUR);
|
avio_seek(s->pb, -4, SEEK_CUR);
|
||||||
|
|
||||||
avctx->extradata = av_mallocz(c->header_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
avctx->extradata = av_mallocz(c->header_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!avctx->extradata)
|
if (!avctx->extradata)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
if (avio_read(s->pb, avctx->extradata, c->header_size) < c->header_size) {
|
if (avio_read(s->pb, avctx->extradata, c->header_size) < c->header_size) {
|
||||||
|
@ -259,7 +259,7 @@ static int aiff_read_header(AVFormatContext *s)
|
|||||||
case MKTAG('w', 'a', 'v', 'e'):
|
case MKTAG('w', 'a', 'v', 'e'):
|
||||||
if ((uint64_t)size > (1<<30))
|
if ((uint64_t)size > (1<<30))
|
||||||
return -1;
|
return -1;
|
||||||
st->codec->extradata = av_mallocz(size + FF_INPUT_BUFFER_PADDING_SIZE);
|
st->codec->extradata = av_mallocz(size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!st->codec->extradata)
|
if (!st->codec->extradata)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
st->codec->extradata_size = size;
|
st->codec->extradata_size = size;
|
||||||
|
@ -133,7 +133,7 @@ static int read_header(AVFormatContext *s)
|
|||||||
|
|
||||||
/* color cycling and palette data */
|
/* color cycling and palette data */
|
||||||
st->codec->extradata_size = 16*8 + 4*256;
|
st->codec->extradata_size = 16*8 + 4*256;
|
||||||
st->codec->extradata = av_mallocz(st->codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
|
st->codec->extradata = av_mallocz(st->codec->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!st->codec->extradata) {
|
if (!st->codec->extradata) {
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ static int apc_read_header(AVFormatContext *s)
|
|||||||
|
|
||||||
st->codec->extradata_size = 2 * 4;
|
st->codec->extradata_size = 2 * 4;
|
||||||
st->codec->extradata = av_malloc(st->codec->extradata_size +
|
st->codec->extradata = av_malloc(st->codec->extradata_size +
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE);
|
AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!st->codec->extradata)
|
if (!st->codec->extradata)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ static int ape_tag_read_field(AVFormatContext *s)
|
|||||||
av_log(s, AV_LOG_WARNING, "Invalid APE tag key '%s'.\n", key);
|
av_log(s, AV_LOG_WARNING, "Invalid APE tag key '%s'.\n", key);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (size > INT32_MAX - FF_INPUT_BUFFER_PADDING_SIZE) {
|
if (size > INT32_MAX - AV_INPUT_BUFFER_PADDING_SIZE) {
|
||||||
av_log(s, AV_LOG_ERROR, "APE tag size too large.\n");
|
av_log(s, AV_LOG_ERROR, "APE tag size too large.\n");
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
@ -94,7 +94,7 @@ static int ape_tag_read_field(AVFormatContext *s)
|
|||||||
st->attached_pic.stream_index = st->index;
|
st->attached_pic.stream_index = st->index;
|
||||||
st->attached_pic.flags |= AV_PKT_FLAG_KEY;
|
st->attached_pic.flags |= AV_PKT_FLAG_KEY;
|
||||||
} else {
|
} else {
|
||||||
st->codec->extradata = av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE);
|
st->codec->extradata = av_malloc(size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!st->codec->extradata)
|
if (!st->codec->extradata)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
if (avio_read(pb, st->codec->extradata, size) != size) {
|
if (avio_read(pb, st->codec->extradata, size) != size) {
|
||||||
|
@ -674,12 +674,12 @@ static int parse_video_info(AVIOContext *pb, AVStream *st)
|
|||||||
int ret;
|
int ret;
|
||||||
st->codec->extradata_size = size - BMP_HEADER_SIZE;
|
st->codec->extradata_size = size - BMP_HEADER_SIZE;
|
||||||
if (!(st->codec->extradata = av_malloc(st->codec->extradata_size +
|
if (!(st->codec->extradata = av_malloc(st->codec->extradata_size +
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE))) {
|
AV_INPUT_BUFFER_PADDING_SIZE))) {
|
||||||
st->codec->extradata_size = 0;
|
st->codec->extradata_size = 0;
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
}
|
}
|
||||||
memset(st->codec->extradata + st->codec->extradata_size , 0,
|
memset(st->codec->extradata + st->codec->extradata_size , 0,
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE);
|
AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if ((ret = avio_read(pb, st->codec->extradata,
|
if ((ret = avio_read(pb, st->codec->extradata,
|
||||||
st->codec->extradata_size)) < 0)
|
st->codec->extradata_size)) < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -625,7 +625,7 @@ static int avi_read_header(AVFormatContext *s)
|
|||||||
if (size > 10 * 4 && size < (1 << 30)) {
|
if (size > 10 * 4 && size < (1 << 30)) {
|
||||||
st->codec->extradata_size = size - 10 * 4;
|
st->codec->extradata_size = size - 10 * 4;
|
||||||
st->codec->extradata = av_malloc(st->codec->extradata_size +
|
st->codec->extradata = av_malloc(st->codec->extradata_size +
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE);
|
AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!st->codec->extradata) {
|
if (!st->codec->extradata) {
|
||||||
st->codec->extradata_size = 0;
|
st->codec->extradata_size = 0;
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
@ -696,7 +696,7 @@ static int avi_read_header(AVFormatContext *s)
|
|||||||
st->codec->extradata_size += 9;
|
st->codec->extradata_size += 9;
|
||||||
if ((ret = av_reallocp(&st->codec->extradata,
|
if ((ret = av_reallocp(&st->codec->extradata,
|
||||||
st->codec->extradata_size +
|
st->codec->extradata_size +
|
||||||
FF_INPUT_BUFFER_PADDING_SIZE)) < 0) {
|
AV_INPUT_BUFFER_PADDING_SIZE)) < 0) {
|
||||||
st->codec->extradata_size = 0;
|
st->codec->extradata_size = 0;
|
||||||
return ret;
|
return ret;
|
||||||
} else
|
} else
|
||||||
|
@ -396,7 +396,7 @@ int avio_open_dyn_buf(AVIOContext **s);
|
|||||||
/**
|
/**
|
||||||
* Return the written size and a pointer to the buffer. The buffer
|
* Return the written size and a pointer to the buffer. The buffer
|
||||||
* must be freed with av_free().
|
* must be freed with av_free().
|
||||||
* Padding of FF_INPUT_BUFFER_PADDING_SIZE is added to the buffer.
|
* Padding of AV_INPUT_BUFFER_PADDING_SIZE is added to the buffer.
|
||||||
*
|
*
|
||||||
* @param s IO context
|
* @param s IO context
|
||||||
* @param pbuffer pointer to a byte buffer
|
* @param pbuffer pointer to a byte buffer
|
||||||
|
@ -983,7 +983,7 @@ int avio_close_dyn_buf(AVIOContext *s, uint8_t **pbuffer)
|
|||||||
{
|
{
|
||||||
DynBuffer *d;
|
DynBuffer *d;
|
||||||
int size;
|
int size;
|
||||||
static const char padbuf[FF_INPUT_BUFFER_PADDING_SIZE] = {0};
|
static const char padbuf[AV_INPUT_BUFFER_PADDING_SIZE] = {0};
|
||||||
int padding = 0;
|
int padding = 0;
|
||||||
|
|
||||||
if (!s) {
|
if (!s) {
|
||||||
@ -994,7 +994,7 @@ int avio_close_dyn_buf(AVIOContext *s, uint8_t **pbuffer)
|
|||||||
/* don't attempt to pad fixed-size packet buffers */
|
/* don't attempt to pad fixed-size packet buffers */
|
||||||
if (!s->max_packet_size) {
|
if (!s->max_packet_size) {
|
||||||
avio_write(s, padbuf, sizeof(padbuf));
|
avio_write(s, padbuf, sizeof(padbuf));
|
||||||
padding = FF_INPUT_BUFFER_PADDING_SIZE;
|
padding = AV_INPUT_BUFFER_PADDING_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
avio_flush(s);
|
avio_flush(s);
|
||||||
|
@ -120,7 +120,7 @@ static int read_header(AVFormatContext *s)
|
|||||||
|
|
||||||
vst->codec->codec_type = AVMEDIA_TYPE_VIDEO;
|
vst->codec->codec_type = AVMEDIA_TYPE_VIDEO;
|
||||||
vst->codec->codec_id = AV_CODEC_ID_BINKVIDEO;
|
vst->codec->codec_id = AV_CODEC_ID_BINKVIDEO;
|
||||||
vst->codec->extradata = av_mallocz(4 + FF_INPUT_BUFFER_PADDING_SIZE);
|
vst->codec->extradata = av_mallocz(4 + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!vst->codec->extradata)
|
if (!vst->codec->extradata)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
vst->codec->extradata_size = 4;
|
vst->codec->extradata_size = 4;
|
||||||
@ -156,7 +156,7 @@ static int read_header(AVFormatContext *s)
|
|||||||
ast->codec->channels = 1;
|
ast->codec->channels = 1;
|
||||||
ast->codec->channel_layout = AV_CH_LAYOUT_MONO;
|
ast->codec->channel_layout = AV_CH_LAYOUT_MONO;
|
||||||
}
|
}
|
||||||
ast->codec->extradata = av_mallocz(4 + FF_INPUT_BUFFER_PADDING_SIZE);
|
ast->codec->extradata = av_mallocz(4 + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!ast->codec->extradata)
|
if (!ast->codec->extradata)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
ast->codec->extradata_size = 4;
|
ast->codec->extradata_size = 4;
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user