You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	avcodec/apng: Add APNG_FCTL_CHUNK_SIZE define
Also use it where appropriate. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
		| @@ -38,4 +38,7 @@ enum { | ||||
|     APNG_BLEND_OP_OVER   = 1, | ||||
| }; | ||||
|  | ||||
| /* Only the payload data, not including length, fourcc and CRC-32. */ | ||||
| #define APNG_FCTL_CHUNK_SIZE    26 | ||||
|  | ||||
| #endif /* AVCODEC_APNG_H */ | ||||
|   | ||||
| @@ -972,7 +972,7 @@ static int decode_fctl_chunk(AVCodecContext *avctx, PNGDecContext *s, | ||||
|     uint32_t sequence_number; | ||||
|     int cur_w, cur_h, x_offset, y_offset, dispose_op, blend_op; | ||||
|  | ||||
|     if (bytestream2_get_bytes_left(gb) != 26) | ||||
|     if (bytestream2_get_bytes_left(gb) != APNG_FCTL_CHUNK_SIZE) | ||||
|         return AVERROR_INVALIDDATA; | ||||
|  | ||||
|     if (!(s->hdr_state & PNG_IHDR)) { | ||||
|   | ||||
| @@ -988,7 +988,7 @@ static int encode_apng(AVCodecContext *avctx, AVPacket *pkt, | ||||
|         // to have the image data write to the correct place in the buffer | ||||
|         fctl_chunk.sequence_number = s->sequence_number; | ||||
|         ++s->sequence_number; | ||||
|         s->bytestream += 26 + 12; | ||||
|         s->bytestream += APNG_FCTL_CHUNK_SIZE + 12; | ||||
|  | ||||
|         ret = apng_encode_frame(avctx, pict, &fctl_chunk, &s->last_frame_fctl); | ||||
|         if (ret < 0) | ||||
| @@ -1002,7 +1002,7 @@ static int encode_apng(AVCodecContext *avctx, AVPacket *pkt, | ||||
|  | ||||
|     if (s->last_frame) { | ||||
|         uint8_t* last_fctl_chunk_start = pkt->data; | ||||
|         uint8_t buf[26]; | ||||
|         uint8_t buf[APNG_FCTL_CHUNK_SIZE]; | ||||
|         if (!s->extra_data_updated) { | ||||
|             uint8_t *side_data = av_packet_new_side_data(pkt, AV_PKT_DATA_NEW_EXTRADATA, s->extra_data_size); | ||||
|             if (!side_data) | ||||
| @@ -1020,7 +1020,7 @@ static int encode_apng(AVCodecContext *avctx, AVPacket *pkt, | ||||
|         AV_WB16(buf + 22, s->last_frame_fctl.delay_den); | ||||
|         buf[24] = s->last_frame_fctl.dispose_op; | ||||
|         buf[25] = s->last_frame_fctl.blend_op; | ||||
|         png_write_chunk(&last_fctl_chunk_start, MKTAG('f', 'c', 'T', 'L'), buf, 26); | ||||
|         png_write_chunk(&last_fctl_chunk_start, MKTAG('f', 'c', 'T', 'L'), buf, sizeof(buf)); | ||||
|  | ||||
|         *got_packet = 1; | ||||
|     } | ||||
|   | ||||
| @@ -222,7 +222,7 @@ static int apng_read_header(AVFormatContext *s) | ||||
|                                     ctx->num_frames, ctx->num_play); | ||||
|             break; | ||||
|         case MKTAG('f', 'c', 'T', 'L'): | ||||
|             if (!acTL_found || len != 26) { | ||||
|             if (!acTL_found || len != APNG_FCTL_CHUNK_SIZE) { | ||||
|                 return AVERROR_INVALIDDATA; | ||||
|             } | ||||
|             if ((ret = avio_seek(pb, -8, SEEK_CUR)) < 0) | ||||
| @@ -336,7 +336,7 @@ static int apng_read_packet(AVFormatContext *s, AVPacket *pkt) | ||||
|  | ||||
|     switch (tag) { | ||||
|     case MKTAG('f', 'c', 'T', 'L'): | ||||
|         if (len != 26) | ||||
|         if (len != APNG_FCTL_CHUNK_SIZE) | ||||
|             return AVERROR_INVALIDDATA; | ||||
|  | ||||
|         if ((ret = decode_fctl_chunk(s, ctx, pkt)) < 0) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user