History

avio: make get_checksum() internal.

Anton Khirnov committed 15 years ago

Commit b64030f1 parent d09cc226 files · +18 −14Browse files

Unified · Split

6 files
  1. libavformat/avio.h +1 −2
  2. libavformat/avio_internal.h +1 −0
  3. libavformat/aviobuf.c +5 −1
  4. libavformat/nutdec.c +6 −6
  5. libavformat/nutenc.c +4 −4
  6. libavformat/oggenc.c +1 −1
libavformat/avio.h+1−2
@@ -455,6 +455,7 @@ attribute_deprecated int udp_get_local_port(URLContext *h); · 454 unmodified lines
455attribute_deprecated void init_checksum(AVIOContext *s,455attribute_deprecated void init_checksum(AVIOContext *s,
456 unsigned long (*update_checksum)(unsigned long c, const uint8_t *p, unsigned int len),456 unsigned long (*update_checksum)(unsigned long c, const uint8_t *p, unsigned int len),
457 unsigned long checksum);457 unsigned long checksum);
458attribute_deprecated unsigned long get_checksum(AVIOContext *s);
458#endif459#endif
459 460
460AVIOContext *avio_alloc_context(461AVIOContext *avio_alloc_context(
@@ -675,8 +676,6 @@ int url_open_dyn_packet_buf(AVIOContext **s, int max_packet_size); · 214 unmodified lines
675 */676 */
676int url_close_dyn_buf(AVIOContext *s, uint8_t **pbuffer);677int url_close_dyn_buf(AVIOContext *s, uint8_t **pbuffer);
677 678
678unsigned long get_checksum(AVIOContext *s);
679
680#if FF_API_UDP_GET_FILE679#if FF_API_UDP_GET_FILE
681int udp_get_file_handle(URLContext *h);680int udp_get_file_handle(URLContext *h);
682#endif681#endif
libavformat/avio_internal.h+1−0
@@ -77,6 +77,7 @@ int ff_udp_get_local_port(URLContext *h); · 76 unmodified lines
77void ffio_init_checksum(AVIOContext *s,77void ffio_init_checksum(AVIOContext *s,
78 unsigned long (*update_checksum)(unsigned long c, const uint8_t *p, unsigned int len),78 unsigned long (*update_checksum)(unsigned long c, const uint8_t *p, unsigned int len),
79 unsigned long checksum);79 unsigned long checksum);
80unsigned long ffio_get_checksum(AVIOContext *s);
80unsigned long ff_crc04C11DB7_update(unsigned long checksum, const uint8_t *buf,81unsigned long ff_crc04C11DB7_update(unsigned long checksum, const uint8_t *buf,
81 unsigned int len);82 unsigned int len);
82 83
libavformat/aviobuf.c+5−1
@@ -412,6 +412,10 @@ void init_checksum(AVIOContext *s, · 411 unmodified lines
412{412{
413 ffio_init_checksum(s, update_checksum, checksum);413 ffio_init_checksum(s, update_checksum, checksum);
414}414}
415unsigned long get_checksum(AVIOContext *s)
416{
417 return ffio_get_checksum(s);
418}
415#endif419#endif
416 420
417int avio_put_str(AVIOContext *s, const char *str)421int avio_put_str(AVIOContext *s, const char *str)
@@ -554,7 +558,7 @@ unsigned long ff_crc04C11DB7_update(unsigned long checksum, const uint8_t *buf, · 136 unmodified lines
554 return av_crc(av_crc_get_table(AV_CRC_32_IEEE), checksum, buf, len);558 return av_crc(av_crc_get_table(AV_CRC_32_IEEE), checksum, buf, len);
555}559}
556 560
557unsigned long get_checksum(AVIOContext *s)561unsigned long ffio_get_checksum(AVIOContext *s)
558{562{
559 s->checksum= s->update_checksum(s->checksum, s->checksum_ptr, s->buf_ptr - s->checksum_ptr);563 s->checksum= s->update_checksum(s->checksum, s->checksum_ptr, s->buf_ptr - s->checksum_ptr);
560 s->update_checksum= NULL;564 s->update_checksum= NULL;
libavformat/nutdec.c+6−6
@@ -108,7 +108,7 @@ static int get_packetheader(NUTContext *nut, AVIOContext *bc, int calculate_chec · 107 unmodified lines
108 size= ffio_read_varlen(bc);108 size= ffio_read_varlen(bc);
109 if(size > 4096)109 if(size > 4096)
110 avio_rb32(bc);110 avio_rb32(bc);
111 if(get_checksum(bc) && size > 4096)111 if(ffio_get_checksum(bc) && size > 4096)
112 return -1;112 return -1;
113 113
114 ffio_init_checksum(bc, calculate_checksum ? ff_crc04C11DB7_update : NULL, 0);114 ffio_init_checksum(bc, calculate_checksum ? ff_crc04C11DB7_update : NULL, 0);
@@ -285,7 +285,7 @@ static int decode_main_header(NUTContext *nut){ · 170 unmodified lines
285 assert(nut->header_len[0]==0);285 assert(nut->header_len[0]==0);
286 }286 }
287 287
288 if(skip_reserved(bc, end) || get_checksum(bc)){288 if(skip_reserved(bc, end) || ffio_get_checksum(bc)){
289 av_log(s, AV_LOG_ERROR, "main header checksum mismatch\n");289 av_log(s, AV_LOG_ERROR, "main header checksum mismatch\n");
290 return AVERROR_INVALIDDATA;290 return AVERROR_INVALIDDATA;
291 }291 }
@@ -374,7 +374,7 @@ static int decode_stream_header(NUTContext *nut){ · 82 unmodified lines
374 ffio_read_varlen(bc); // samplerate_den374 ffio_read_varlen(bc); // samplerate_den
375 GET_V(st->codec->channels, tmp > 0)375 GET_V(st->codec->channels, tmp > 0)
376 }376 }
377 if(skip_reserved(bc, end) || get_checksum(bc)){377 if(skip_reserved(bc, end) || ffio_get_checksum(bc)){
378 av_log(s, AV_LOG_ERROR, "stream header %d checksum mismatch\n", stream_id);378 av_log(s, AV_LOG_ERROR, "stream header %d checksum mismatch\n", stream_id);
379 return -1;379 return -1;
380 }380 }
@@ -469,7 +469,7 @@ static int decode_info_header(NUTContext *nut){ · 88 unmodified lines
469 }469 }
470 }470 }
471 471
472 if(skip_reserved(bc, end) || get_checksum(bc)){472 if(skip_reserved(bc, end) || ffio_get_checksum(bc)){
473 av_log(s, AV_LOG_ERROR, "info header checksum mismatch\n");473 av_log(s, AV_LOG_ERROR, "info header checksum mismatch\n");
474 return -1;474 return -1;
475 }475 }
@@ -493,7 +493,7 @@ static int decode_syncpoint(NUTContext *nut, int64_t *ts, int64_t *back_ptr){ · 17 unmodified lines
493 493
494 ff_nut_reset_ts(nut, nut->time_base[tmp % nut->time_base_count], tmp / nut->time_base_count);494 ff_nut_reset_ts(nut, nut->time_base[tmp % nut->time_base_count], tmp / nut->time_base_count);
495 495
496 if(skip_reserved(bc, end) || get_checksum(bc)){496 if(skip_reserved(bc, end) || ffio_get_checksum(bc)){
497 av_log(s, AV_LOG_ERROR, "sync point checksum mismatch\n");497 av_log(s, AV_LOG_ERROR, "sync point checksum mismatch\n");
498 return -1;498 return -1;
499 }499 }
@@ -590,7 +590,7 @@ static int find_and_decode_index(NUTContext *nut){ · 90 unmodified lines
590 }590 }
591 }591 }
592 592
593 if(skip_reserved(bc, end) || get_checksum(bc)){593 if(skip_reserved(bc, end) || ffio_get_checksum(bc)){
594 av_log(s, AV_LOG_ERROR, "index checksum mismatch\n");594 av_log(s, AV_LOG_ERROR, "index checksum mismatch\n");
595 goto fail;595 goto fail;
596 }596 }
libavformat/nutenc.c+4−4
@@ -289,13 +289,13 @@ static void put_packet(NUTContext *nut, AVIOContext *bc, AVIOContext *dyn_bc, in · 288 unmodified lines
289 avio_wb64(bc, startcode);289 avio_wb64(bc, startcode);
290 ff_put_v(bc, forw_ptr);290 ff_put_v(bc, forw_ptr);
291 if(forw_ptr > 4096)291 if(forw_ptr > 4096)
292 avio_wl32(bc, get_checksum(bc));292 avio_wl32(bc, ffio_get_checksum(bc));
293 293
294 if(calculate_checksum)294 if(calculate_checksum)
295 ffio_init_checksum(bc, ff_crc04C11DB7_update, 0);295 ffio_init_checksum(bc, ff_crc04C11DB7_update, 0);
296 avio_write(bc, dyn_buf, dyn_size);296 avio_write(bc, dyn_buf, dyn_size);
297 if(calculate_checksum)297 if(calculate_checksum)
298 avio_wl32(bc, get_checksum(bc));298 avio_wl32(bc, ffio_get_checksum(bc));
299 299
300 av_free(dyn_buf);300 av_free(dyn_buf);
301}301}
@@ -818,8 +818,8 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt){ · 516 unmodified lines
818 if(flags & FLAG_SIZE_MSB) ff_put_v(bc, pkt->size / fc->size_mul);818 if(flags & FLAG_SIZE_MSB) ff_put_v(bc, pkt->size / fc->size_mul);
819 if(flags & FLAG_HEADER_IDX) ff_put_v(bc, header_idx= best_header_idx);819 if(flags & FLAG_HEADER_IDX) ff_put_v(bc, header_idx= best_header_idx);
820 820
821 if(flags & FLAG_CHECKSUM) avio_wl32(bc, get_checksum(bc));821 if(flags & FLAG_CHECKSUM) avio_wl32(bc, ffio_get_checksum(bc));
822 else get_checksum(bc);822 else ffio_get_checksum(bc);
823 823
824 avio_write(bc, pkt->data + nut->header_len[header_idx], pkt->size - nut->header_len[header_idx]);824 avio_write(bc, pkt->data + nut->header_len[header_idx], pkt->size - nut->header_len[header_idx]);
825 nus->last_flags= flags;825 nus->last_flags= flags;
libavformat/oggenc.c+1−1
@@ -68,7 +68,7 @@ typedef struct { · 67 unmodified lines
68static void ogg_update_checksum(AVFormatContext *s, AVIOContext *pb, int64_t crc_offset)68static void ogg_update_checksum(AVFormatContext *s, AVIOContext *pb, int64_t crc_offset)
69{69{
70 int64_t pos = avio_tell(pb);70 int64_t pos = avio_tell(pb);
71 uint32_t checksum = get_checksum(pb);71 uint32_t checksum = ffio_get_checksum(pb);
72 avio_seek(pb, crc_offset, SEEK_SET);72 avio_seek(pb, crc_offset, SEEK_SET);
73 avio_wb32(pb, checksum);73 avio_wb32(pb, checksum);
74 avio_seek(pb, pos, SEEK_SET);74 avio_seek(pb, pos, SEEK_SET);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t