The Windows runtime aborts if it finds %t or %z. Fixes ticket #3472. Reviewed-by: Ronald Bultjetags/n2.3
| @@ -383,7 +383,7 @@ static int encode_dvd_subtitles(AVCodecContext *avctx, | |||||
| qq = outbuf; | qq = outbuf; | ||||
| bytestream_put_be16(&qq, q - outbuf); | bytestream_put_be16(&qq, q - outbuf); | ||||
| av_log(NULL, AV_LOG_DEBUG, "subtitle_packet size=%td\n", q - outbuf); | |||||
| av_log(NULL, AV_LOG_DEBUG, "subtitle_packet size=%"PTRDIFF_SPECIFIER"\n", q - outbuf); | |||||
| ret = q - outbuf; | ret = q - outbuf; | ||||
| fail: | fail: | ||||
| @@ -612,7 +612,7 @@ static int flac_parse(AVCodecParserContext *s, AVCodecContext *avctx, | |||||
| if ( av_fifo_space(fpc->fifo_buf) < read_end - read_start | if ( av_fifo_space(fpc->fifo_buf) < read_end - read_start | ||||
| && av_fifo_realloc2(fpc->fifo_buf, (read_end - read_start) + 2*av_fifo_size(fpc->fifo_buf)) < 0) { | && av_fifo_realloc2(fpc->fifo_buf, (read_end - read_start) + 2*av_fifo_size(fpc->fifo_buf)) < 0) { | ||||
| av_log(avctx, AV_LOG_ERROR, | av_log(avctx, AV_LOG_ERROR, | ||||
| "couldn't reallocate buffer of size %td\n", | |||||
| "couldn't reallocate buffer of size %"PTRDIFF_SPECIFIER"\n", | |||||
| (read_end - read_start) + av_fifo_size(fpc->fifo_buf)); | (read_end - read_start) + av_fifo_size(fpc->fifo_buf)); | ||||
| goto handle_error; | goto handle_error; | ||||
| } | } | ||||
| @@ -2405,10 +2405,10 @@ static int decode_slice(struct AVCodecContext *avctx, void *arg) | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| if (h->cabac.bytestream > h->cabac.bytestream_end + 2 ) | if (h->cabac.bytestream > h->cabac.bytestream_end + 2 ) | ||||
| av_log(h->avctx, AV_LOG_DEBUG, "bytestream overread %td\n", h->cabac.bytestream_end - h->cabac.bytestream); | |||||
| av_log(h->avctx, AV_LOG_DEBUG, "bytestream overread %"PTRDIFF_SPECIFIER"\n", h->cabac.bytestream_end - h->cabac.bytestream); | |||||
| if (ret < 0 || h->cabac.bytestream > h->cabac.bytestream_end + 4) { | if (ret < 0 || h->cabac.bytestream > h->cabac.bytestream_end + 4) { | ||||
| av_log(h->avctx, AV_LOG_ERROR, | av_log(h->avctx, AV_LOG_ERROR, | ||||
| "error while decoding MB %d %d, bytestream %td\n", | |||||
| "error while decoding MB %d %d, bytestream %"PTRDIFF_SPECIFIER"\n", | |||||
| h->mb_x, h->mb_y, | h->mb_x, h->mb_y, | ||||
| h->cabac.bytestream_end - h->cabac.bytestream); | h->cabac.bytestream_end - h->cabac.bytestream); | ||||
| er_add_slice(h, h->resync_mb_x, h->resync_mb_y, h->mb_x, | er_add_slice(h, h->resync_mb_x, h->resync_mb_y, h->mb_x, | ||||
| @@ -782,7 +782,7 @@ static int jpeg2000_decode_packet(Jpeg2000DecoderContext *s, | |||||
| return ret; | return ret; | ||||
| if (ret > sizeof(cblk->data)) { | if (ret > sizeof(cblk->data)) { | ||||
| avpriv_request_sample(s->avctx, | avpriv_request_sample(s->avctx, | ||||
| "Block with lengthinc greater than %zu", | |||||
| "Block with lengthinc greater than %"SIZE_SPECIFIER"", | |||||
| sizeof(cblk->data)); | sizeof(cblk->data)); | ||||
| return AVERROR_PATCHWELCOME; | return AVERROR_PATCHWELCOME; | ||||
| } | } | ||||
| @@ -158,7 +158,7 @@ static av_cold void dump_enc_cfg(AVCodecContext *avctx, | |||||
| width, "g_lag_in_frames:", cfg->g_lag_in_frames); | width, "g_lag_in_frames:", cfg->g_lag_in_frames); | ||||
| av_log(avctx, level, "rate control settings\n" | av_log(avctx, level, "rate control settings\n" | ||||
| " %*s%u\n %*s%u\n %*s%u\n %*s%u\n" | " %*s%u\n %*s%u\n %*s%u\n %*s%u\n" | ||||
| " %*s%d\n %*s%p(%zu)\n %*s%u\n", | |||||
| " %*s%d\n %*s%p(%"SIZE_SPECIFIER")\n %*s%u\n", | |||||
| width, "rc_dropframe_thresh:", cfg->rc_dropframe_thresh, | width, "rc_dropframe_thresh:", cfg->rc_dropframe_thresh, | ||||
| width, "rc_resize_allowed:", cfg->rc_resize_allowed, | width, "rc_resize_allowed:", cfg->rc_resize_allowed, | ||||
| width, "rc_resize_up_thresh:", cfg->rc_resize_up_thresh, | width, "rc_resize_up_thresh:", cfg->rc_resize_up_thresh, | ||||
| @@ -373,7 +373,7 @@ static av_cold int vpx_init(AVCodecContext *avctx, | |||||
| ctx->twopass_stats.buf = av_malloc(ctx->twopass_stats.sz); | ctx->twopass_stats.buf = av_malloc(ctx->twopass_stats.sz); | ||||
| if (!ctx->twopass_stats.buf) { | if (!ctx->twopass_stats.buf) { | ||||
| av_log(avctx, AV_LOG_ERROR, | av_log(avctx, AV_LOG_ERROR, | ||||
| "Stat buffer alloc (%zu bytes) failed\n", | |||||
| "Stat buffer alloc (%"SIZE_SPECIFIER" bytes) failed\n", | |||||
| ctx->twopass_stats.sz); | ctx->twopass_stats.sz); | ||||
| return AVERROR(ENOMEM); | return AVERROR(ENOMEM); | ||||
| } | } | ||||
| @@ -616,7 +616,7 @@ static int queue_frames(AVCodecContext *avctx, AVPacket *pkt_out, | |||||
| if (!cx_frame->buf) { | if (!cx_frame->buf) { | ||||
| av_log(avctx, AV_LOG_ERROR, | av_log(avctx, AV_LOG_ERROR, | ||||
| "Data buffer alloc (%zu bytes) failed\n", | |||||
| "Data buffer alloc (%"SIZE_SPECIFIER" bytes) failed\n", | |||||
| cx_frame->sz); | cx_frame->sz); | ||||
| av_free(cx_frame); | av_free(cx_frame); | ||||
| return AVERROR(ENOMEM); | return AVERROR(ENOMEM); | ||||
| @@ -626,7 +626,7 @@ static int queue_frames(AVCodecContext *avctx, AVPacket *pkt_out, | |||||
| cx_frame->buf_alpha = av_malloc(cx_frame->sz_alpha); | cx_frame->buf_alpha = av_malloc(cx_frame->sz_alpha); | ||||
| if (!cx_frame->buf_alpha) { | if (!cx_frame->buf_alpha) { | ||||
| av_log(avctx, AV_LOG_ERROR, | av_log(avctx, AV_LOG_ERROR, | ||||
| "Data buffer alloc (%zu bytes) failed\n", | |||||
| "Data buffer alloc (%"SIZE_SPECIFIER" bytes) failed\n", | |||||
| cx_frame->sz_alpha); | cx_frame->sz_alpha); | ||||
| av_free(cx_frame); | av_free(cx_frame); | ||||
| return AVERROR(ENOMEM); | return AVERROR(ENOMEM); | ||||
| @@ -1813,7 +1813,7 @@ int ff_mjpeg_find_marker(MJpegDecodeContext *s, | |||||
| memset(s->buffer + *unescaped_buf_size, 0, | memset(s->buffer + *unescaped_buf_size, 0, | ||||
| FF_INPUT_BUFFER_PADDING_SIZE); | FF_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 %"PTRDIFF_SPECIFIER" bytes\n", | |||||
| (buf_end - *buf_ptr) - (dst - s->buffer)); | (buf_end - *buf_ptr) - (dst - s->buffer)); | ||||
| } else if (start_code == SOS && s->ls) { | } else if (start_code == SOS && s->ls) { | ||||
| const uint8_t *src = *buf_ptr; | const uint8_t *src = *buf_ptr; | ||||
| @@ -1896,7 +1896,7 @@ int ff_mjpeg_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, | |||||
| start_code, unescaped_buf_size, buf_size); | start_code, unescaped_buf_size, buf_size); | ||||
| return AVERROR_INVALIDDATA; | return AVERROR_INVALIDDATA; | ||||
| } | } | ||||
| av_log(avctx, AV_LOG_DEBUG, "marker=%x avail_size_in_buf=%td\n", | |||||
| av_log(avctx, AV_LOG_DEBUG, "marker=%x avail_size_in_buf=%"PTRDIFF_SPECIFIER"\n", | |||||
| start_code, buf_end - buf_ptr); | start_code, buf_end - buf_ptr); | ||||
| ret = init_get_bits8(&s->gb, unescaped_buf_ptr, unescaped_buf_size); | ret = init_get_bits8(&s->gb, unescaped_buf_ptr, unescaped_buf_size); | ||||
| @@ -2181,7 +2181,7 @@ the_end: | |||||
| av_dict_copy(avpriv_frame_get_metadatap(data), s->exif_metadata, 0); | av_dict_copy(avpriv_frame_get_metadatap(data), s->exif_metadata, 0); | ||||
| av_dict_free(&s->exif_metadata); | av_dict_free(&s->exif_metadata); | ||||
| av_log(avctx, AV_LOG_DEBUG, "decode frame unused %td bytes\n", | |||||
| av_log(avctx, AV_LOG_DEBUG, "decode frame unused %"PTRDIFF_SPECIFIER" bytes\n", | |||||
| buf_end - buf_ptr); | buf_end - buf_ptr); | ||||
| // return buf_end - buf_ptr; | // return buf_end - buf_ptr; | ||||
| return buf_ptr - buf; | return buf_ptr - buf; | ||||
| @@ -2391,7 +2391,7 @@ static int decode_chunks(AVCodecContext *avctx, AVFrame *picture, | |||||
| input_size = buf_end - buf_ptr; | input_size = buf_end - buf_ptr; | ||||
| if (avctx->debug & FF_DEBUG_STARTCODE) | if (avctx->debug & FF_DEBUG_STARTCODE) | ||||
| av_log(avctx, AV_LOG_DEBUG, "%3"PRIX32" at %td left %d\n", | |||||
| av_log(avctx, AV_LOG_DEBUG, "%3"PRIX32" at %"PTRDIFF_SPECIFIER" left %d\n", | |||||
| start_code, buf_ptr - buf, input_size); | start_code, buf_ptr - buf, input_size); | ||||
| /* prepare data for next start code */ | /* prepare data for next start code */ | ||||
| @@ -1045,7 +1045,7 @@ static int load_input_picture(MpegEncContext *s, const AVFrame *pic_arg) | |||||
| if (s->linesize & (STRIDE_ALIGN-1)) | if (s->linesize & (STRIDE_ALIGN-1)) | ||||
| direct = 0; | direct = 0; | ||||
| av_dlog(s->avctx, "%d %d %td %td\n", pic_arg->linesize[0], | |||||
| av_dlog(s->avctx, "%d %d %"PTRDIFF_SPECIFIER" %"PTRDIFF_SPECIFIER"\n", pic_arg->linesize[0], | |||||
| pic_arg->linesize[1], s->linesize, s->uvlinesize); | pic_arg->linesize[1], s->linesize, s->uvlinesize); | ||||
| if (direct) { | if (direct) { | ||||
| @@ -927,7 +927,7 @@ static int wma_decode_superframe(AVCodecContext *avctx, void *data, | |||||
| samples_offset += s->frame_len; | samples_offset += s->frame_len; | ||||
| } | } | ||||
| av_dlog(s->avctx, "%d %d %d %d outbytes:%td eaten:%d\n", | |||||
| av_dlog(s->avctx, "%d %d %d %d outbytes:%"PTRDIFF_SPECIFIER" eaten:%d\n", | |||||
| s->frame_len_bits, s->block_len_bits, s->frame_len, s->block_len, | s->frame_len_bits, s->block_len_bits, s->frame_len, s->block_len, | ||||
| (int8_t *)samples - (int8_t *)data, avctx->block_align); | (int8_t *)samples - (int8_t *)data, avctx->block_align); | ||||
| @@ -145,7 +145,7 @@ static int zmbv_decode_xor_8(ZmbvContext *c) | |||||
| prev += c->width * c->bh; | prev += c->width * c->bh; | ||||
| } | } | ||||
| if (src - c->decomp_buf != c->decomp_len) | if (src - c->decomp_buf != c->decomp_len) | ||||
| av_log(c->avctx, AV_LOG_ERROR, "Used %ti of %i bytes\n", | |||||
| av_log(c->avctx, AV_LOG_ERROR, "Used %"PTRDIFF_SPECIFIER" of %i bytes\n", | |||||
| src-c->decomp_buf, c->decomp_len); | src-c->decomp_buf, c->decomp_len); | ||||
| return 0; | return 0; | ||||
| } | } | ||||
| @@ -219,7 +219,7 @@ static int zmbv_decode_xor_16(ZmbvContext *c) | |||||
| prev += c->width * c->bh; | prev += c->width * c->bh; | ||||
| } | } | ||||
| if (src - c->decomp_buf != c->decomp_len) | if (src - c->decomp_buf != c->decomp_len) | ||||
| av_log(c->avctx, AV_LOG_ERROR, "Used %ti of %i bytes\n", | |||||
| av_log(c->avctx, AV_LOG_ERROR, "Used %"PTRDIFF_SPECIFIER" of %i bytes\n", | |||||
| src-c->decomp_buf, c->decomp_len); | src-c->decomp_buf, c->decomp_len); | ||||
| return 0; | return 0; | ||||
| } | } | ||||
| @@ -377,7 +377,7 @@ static int zmbv_decode_xor_32(ZmbvContext *c) | |||||
| prev += c->width * c->bh; | prev += c->width * c->bh; | ||||
| } | } | ||||
| if (src - c->decomp_buf != c->decomp_len) | if (src - c->decomp_buf != c->decomp_len) | ||||
| av_log(c->avctx, AV_LOG_ERROR, "Used %ti of %i bytes\n", | |||||
| av_log(c->avctx, AV_LOG_ERROR, "Used %"PTRDIFF_SPECIFIER" of %i bytes\n", | |||||
| src-c->decomp_buf, c->decomp_len); | src-c->decomp_buf, c->decomp_len); | ||||
| return 0; | return 0; | ||||
| } | } | ||||
| @@ -264,7 +264,7 @@ static int ape_read_header(AVFormatContext * s) | |||||
| } | } | ||||
| if (ape->seektablelength / sizeof(*ape->seektable) < ape->totalframes) { | if (ape->seektablelength / sizeof(*ape->seektable) < ape->totalframes) { | ||||
| av_log(s, AV_LOG_ERROR, | av_log(s, AV_LOG_ERROR, | ||||
| "Number of seek entries is less than number of frames: %zu vs. %"PRIu32"\n", | |||||
| "Number of seek entries is less than number of frames: %"SIZE_SPECIFIER" vs. %"PRIu32"\n", | |||||
| ape->seektablelength / sizeof(*ape->seektable), ape->totalframes); | ape->seektablelength / sizeof(*ape->seektable), ape->totalframes); | ||||
| return AVERROR_INVALIDDATA; | return AVERROR_INVALIDDATA; | ||||
| } | } | ||||
| @@ -327,14 +327,14 @@ static void read_geobtag(AVFormatContext *s, AVIOContext *pb, int taglen, | |||||
| geob_data = av_mallocz(sizeof(ID3v2ExtraMetaGEOB)); | geob_data = av_mallocz(sizeof(ID3v2ExtraMetaGEOB)); | ||||
| if (!geob_data) { | if (!geob_data) { | ||||
| av_log(s, AV_LOG_ERROR, "Failed to alloc %zu bytes\n", | |||||
| av_log(s, AV_LOG_ERROR, "Failed to alloc %"SIZE_SPECIFIER" bytes\n", | |||||
| sizeof(ID3v2ExtraMetaGEOB)); | sizeof(ID3v2ExtraMetaGEOB)); | ||||
| return; | return; | ||||
| } | } | ||||
| new_extra = av_mallocz(sizeof(ID3v2ExtraMeta)); | new_extra = av_mallocz(sizeof(ID3v2ExtraMeta)); | ||||
| if (!new_extra) { | if (!new_extra) { | ||||
| av_log(s, AV_LOG_ERROR, "Failed to alloc %zu bytes\n", | |||||
| av_log(s, AV_LOG_ERROR, "Failed to alloc %"SIZE_SPECIFIER" bytes\n", | |||||
| sizeof(ID3v2ExtraMeta)); | sizeof(ID3v2ExtraMeta)); | ||||
| goto fail; | goto fail; | ||||
| } | } | ||||
| @@ -119,7 +119,7 @@ static int read_data_packet(MMSHContext *mmsh, const int len) | |||||
| int res; | int res; | ||||
| if (len > sizeof(mms->in_buffer)) { | if (len > sizeof(mms->in_buffer)) { | ||||
| av_log(NULL, AV_LOG_ERROR, | av_log(NULL, AV_LOG_ERROR, | ||||
| "Data packet length %d exceeds the in_buffer size %zu\n", | |||||
| "Data packet length %d exceeds the in_buffer size %"SIZE_SPECIFIER"\n", | |||||
| len, sizeof(mms->in_buffer)); | len, sizeof(mms->in_buffer)); | ||||
| return AVERROR(EIO); | return AVERROR(EIO); | ||||
| } | } | ||||
| @@ -194,7 +194,7 @@ static int get_http_header_data(MMSHContext *mmsh) | |||||
| if (len) { | if (len) { | ||||
| if (len > sizeof(mms->in_buffer)) { | if (len > sizeof(mms->in_buffer)) { | ||||
| av_log(NULL, AV_LOG_ERROR, | av_log(NULL, AV_LOG_ERROR, | ||||
| "Other packet len = %d exceed the in_buffer size %zu\n", | |||||
| "Other packet len = %d exceed the in_buffer size %"SIZE_SPECIFIER"\n", | |||||
| len, sizeof(mms->in_buffer)); | len, sizeof(mms->in_buffer)); | ||||
| return AVERROR(EIO); | return AVERROR(EIO); | ||||
| } | } | ||||
| @@ -284,7 +284,7 @@ static MMSSCPacketType get_tcp_server_response(MMSTContext *mmst) | |||||
| if (length_remaining < 0 | if (length_remaining < 0 | ||||
| || length_remaining > sizeof(mms->in_buffer) - 12) { | || length_remaining > sizeof(mms->in_buffer) - 12) { | ||||
| av_log(NULL, AV_LOG_ERROR, | av_log(NULL, AV_LOG_ERROR, | ||||
| "Incoming packet length %d exceeds bufsize %zu\n", | |||||
| "Incoming packet length %d exceeds bufsize %"SIZE_SPECIFIER"\n", | |||||
| length_remaining, sizeof(mms->in_buffer) - 12); | length_remaining, sizeof(mms->in_buffer) - 12); | ||||
| return AVERROR_INVALIDDATA; | return AVERROR_INVALIDDATA; | ||||
| } | } | ||||
| @@ -320,7 +320,7 @@ static MMSSCPacketType get_tcp_server_response(MMSTContext *mmst) | |||||
| if (length_remaining < 0 | if (length_remaining < 0 | ||||
| || length_remaining > sizeof(mms->in_buffer) - 8) { | || length_remaining > sizeof(mms->in_buffer) - 8) { | ||||
| av_log(NULL, AV_LOG_ERROR, | av_log(NULL, AV_LOG_ERROR, | ||||
| "Data length %d is invalid or too large (max=%zu)\n", | |||||
| "Data length %d is invalid or too large (max=%"SIZE_SPECIFIER")\n", | |||||
| length_remaining, sizeof(mms->in_buffer)); | length_remaining, sizeof(mms->in_buffer)); | ||||
| return AVERROR_INVALIDDATA; | return AVERROR_INVALIDDATA; | ||||
| } | } | ||||
| @@ -170,7 +170,7 @@ int ff_vorbis_comment(AVFormatContext *as, AVDictionary **m, | |||||
| if (p != end) | if (p != end) | ||||
| av_log(as, AV_LOG_INFO, | av_log(as, AV_LOG_INFO, | ||||
| "%ti bytes of comment header remain\n", end - p); | |||||
| "%"PTRDIFF_SPECIFIER" bytes of comment header remain\n", end - p); | |||||
| if (n > 0) | if (n > 0) | ||||
| av_log(as, AV_LOG_INFO, | av_log(as, AV_LOG_INFO, | ||||
| "truncated comment header, %i comments not found\n", n); | "truncated comment header, %i comments not found\n", n); | ||||
| @@ -256,7 +256,7 @@ parse_packed_headers(const uint8_t * packed_headers, | |||||
| if (packed_headers_end - packed_headers < 9) { | if (packed_headers_end - packed_headers < 9) { | ||||
| av_log(codec, AV_LOG_ERROR, | av_log(codec, AV_LOG_ERROR, | ||||
| "Invalid %td byte packed header.", | |||||
| "Invalid %"PTRDIFF_SPECIFIER" byte packed header.", | |||||
| packed_headers_end - packed_headers); | packed_headers_end - packed_headers); | ||||
| return AVERROR_INVALIDDATA; | return AVERROR_INVALIDDATA; | ||||
| } | } | ||||
| @@ -278,7 +278,7 @@ parse_packed_headers(const uint8_t * packed_headers, | |||||
| if (packed_headers_end - packed_headers != length || | if (packed_headers_end - packed_headers != length || | ||||
| length1 > length || length2 > length - length1) { | length1 > length || length2 > length - length1) { | ||||
| av_log(codec, AV_LOG_ERROR, | av_log(codec, AV_LOG_ERROR, | ||||
| "Bad packed header lengths (%d,%d,%td,%d)\n", length1, | |||||
| "Bad packed header lengths (%d,%d,%"PTRDIFF_SPECIFIER",%d)\n", length1, | |||||
| length2, packed_headers_end - packed_headers, length); | length2, packed_headers_end - packed_headers, length); | ||||
| return AVERROR_INVALIDDATA; | return AVERROR_INVALIDDATA; | ||||
| } | } | ||||
| @@ -217,7 +217,7 @@ static char *extradata2psets(AVCodecContext *c) | |||||
| sps_end = r1; | sps_end = r1; | ||||
| } | } | ||||
| if (av_base64_encode(p, MAX_PSET_SIZE - (p - psets), r, r1 - r) == NULL) { | if (av_base64_encode(p, MAX_PSET_SIZE - (p - psets), r, r1 - r) == NULL) { | ||||
| av_log(c, AV_LOG_ERROR, "Cannot Base64-encode %td %td!\n", MAX_PSET_SIZE - (p - psets), r1 - r); | |||||
| av_log(c, AV_LOG_ERROR, "Cannot Base64-encode %"PTRDIFF_SPECIFIER" %"PTRDIFF_SPECIFIER"!\n", MAX_PSET_SIZE - (p - psets), r1 - r); | |||||
| av_free(psets); | av_free(psets); | ||||
| return NULL; | return NULL; | ||||
| @@ -231,6 +231,11 @@ void avpriv_request_sample(void *avc, | |||||
| #if HAVE_LIBC_MSVCRT | #if HAVE_LIBC_MSVCRT | ||||
| #define avpriv_open ff_open | #define avpriv_open ff_open | ||||
| #define PTRDIFF_SPECIFIER "Id" | |||||
| #define SIZE_SPECIFIER "Iu" | |||||
| #else | |||||
| #define PTRDIFF_SPECIFIER "td" | |||||
| #define SIZE_SPECIFIER "zu" | |||||
| #endif | #endif | ||||
| /** | /** | ||||