Commit c43d77c1 authored by Måns Rullgård's avatar Måns Rullgård

tiny_psnr: skip wav headers on input files

The byte count printed excludes the header, and offsets are applied
after the the headers are skipped.

Reference files updated to reflect new output.  Some stddev/psnr values
have changed slightly due to headers no longer being compared.

Originally committed as revision 24143 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 080ce907
3c06fd2f7831e3e8735b936e23ca220c *./tests/data/acodec/adpcm_qt.aiff 3c06fd2f7831e3e8735b936e23ca220c *./tests/data/acodec/adpcm_qt.aiff
281252 ./tests/data/acodec/adpcm_qt.aiff 281252 ./tests/data/acodec/adpcm_qt.aiff
9580492803ba1c1a3746367b24b751c8 *./tests/data/adpcm_ima_qt.acodec.out.wav 9580492803ba1c1a3746367b24b751c8 *./tests/data/adpcm_ima_qt.acodec.out.wav
stddev: 914.63 PSNR: 37.10 MAXDIFF:34026 bytes: 1058604/ 1058444 stddev: 914.65 PSNR: 37.10 MAXDIFF:34026 bytes: 1058560/ 1058400
56b75c3a6dacedcf2ce7b0586aa33594 *./tests/data/acodec/adpcm_ima.wav 56b75c3a6dacedcf2ce7b0586aa33594 *./tests/data/acodec/adpcm_ima.wav
267324 ./tests/data/acodec/adpcm_ima.wav 267324 ./tests/data/acodec/adpcm_ima.wav
78a2af1c895792d0c221d127bdd48ece *./tests/data/adpcm_ima_wav.acodec.out.wav 78a2af1c895792d0c221d127bdd48ece *./tests/data/adpcm_ima_wav.acodec.out.wav
stddev: 903.51 PSNR: 37.21 MAXDIFF:34026 bytes: 1061792/ 1058444 stddev: 903.51 PSNR: 37.21 MAXDIFF:34026 bytes: 1061748/ 1058400
a407b87daeef5b25dfb6c5b3f519e9c1 *./tests/data/acodec/adpcm_ms.wav a407b87daeef5b25dfb6c5b3f519e9c1 *./tests/data/acodec/adpcm_ms.wav
268378 ./tests/data/acodec/adpcm_ms.wav 268378 ./tests/data/acodec/adpcm_ms.wav
7be370f937c51e8a967e6a3d08d5156a *./tests/data/adpcm_ms.acodec.out.wav 7be370f937c51e8a967e6a3d08d5156a *./tests/data/adpcm_ms.acodec.out.wav
stddev: 1050.00 PSNR: 35.91 MAXDIFF:29806 bytes: 1060620/ 1058444 stddev: 1050.01 PSNR: 35.91 MAXDIFF:29806 bytes: 1060576/ 1058400
42d4639866ed4d692eaf126228a4fa2a *./tests/data/acodec/adpcm_swf.flv 42d4639866ed4d692eaf126228a4fa2a *./tests/data/acodec/adpcm_swf.flv
269166 ./tests/data/acodec/adpcm_swf.flv 269166 ./tests/data/acodec/adpcm_swf.flv
628089745a7059ae4055c2515b6d668b *./tests/data/adpcm_swf.acodec.out.wav 628089745a7059ae4055c2515b6d668b *./tests/data/adpcm_swf.acodec.out.wav
stddev: 933.65 PSNR: 36.93 MAXDIFF:51119 bytes: 1065004/ 1058444 stddev: 933.58 PSNR: 36.93 MAXDIFF:51119 bytes: 1064960/ 1058400
2546d72df736b5ffa1557e8c9c9ef788 *./tests/data/acodec/adpcm_yam.wav 2546d72df736b5ffa1557e8c9c9ef788 *./tests/data/acodec/adpcm_yam.wav
266296 ./tests/data/acodec/adpcm_yam.wav 266296 ./tests/data/acodec/adpcm_yam.wav
c80c847a53a0fee17a88fa889ec34a4e *./tests/data/adpcm_yam.acodec.out.wav c80c847a53a0fee17a88fa889ec34a4e *./tests/data/adpcm_yam.acodec.out.wav
stddev: 1247.64 PSNR: 34.41 MAXDIFF:39895 bytes: 1065004/ 1058444 stddev: 1247.60 PSNR: 34.41 MAXDIFF:39895 bytes: 1064960/ 1058400
c68f649777ab8e7c9a0f1f221451d3ad *./tests/data/acodec/alac.m4a c68f649777ab8e7c9a0f1f221451d3ad *./tests/data/acodec/alac.m4a
389386 ./tests/data/acodec/alac.m4a 389386 ./tests/data/acodec/alac.m4a
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/alac.acodec.out.wav 95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/alac.acodec.out.wav
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058444/ 1058444 stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400
151eef9097f944726968bec48649f00a *./tests/data/acodec/flac.flac 151eef9097f944726968bec48649f00a *./tests/data/acodec/flac.flac
361582 ./tests/data/acodec/flac.flac 361582 ./tests/data/acodec/flac.flac
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/flac.acodec.out.wav 95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/flac.acodec.out.wav
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058444/ 1058444 stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400
5d8cce28f83dd33c3c7eaf43a5db5294 *./tests/data/acodec/g726.wav 5d8cce28f83dd33c3c7eaf43a5db5294 *./tests/data/acodec/g726.wav
24082 ./tests/data/acodec/g726.wav 24082 ./tests/data/acodec/g726.wav
4f1ba1af75dee64625a1c852e6cd01d3 *./tests/data/g726.acodec.out.wav 4f1ba1af75dee64625a1c852e6cd01d3 *./tests/data/g726.acodec.out.wav
stddev: 8506.46 PSNR: 17.73 MAXDIFF:36208 bytes: 96148/ 1058444 stddev: 8504.69 PSNR: 17.74 MAXDIFF:31645 bytes: 96104/ 1058400
f6eb0a205350bbd7fb1028a01c7ae8aa *./tests/data/acodec/mp2.mp2 f6eb0a205350bbd7fb1028a01c7ae8aa *./tests/data/acodec/mp2.mp2
96130 ./tests/data/acodec/mp2.mp2 96130 ./tests/data/acodec/mp2.mp2
74c7b6b15a001add199619fafe4059a1 *./tests/data/mp2.acodec.out.wav 74c7b6b15a001add199619fafe4059a1 *./tests/data/mp2.acodec.out.wav
stddev: 9315.80 PSNR: 16.94 MAXDIFF:65388 bytes: 1059884/ 1058444 stddev: 9315.99 PSNR: 16.94 MAXDIFF:65388 bytes: 1059840/ 1058400
stddev: 4385.25 PSNR: 23.49 MAXDIFF:52631 bytes: 1057960/ 1058444 stddev: 4384.33 PSNR: 23.49 MAXDIFF:52631 bytes: 1057916/ 1058400
89f5b8dd97e0dddbe59af0d44fd229f3 *./tests/data/acodec/pcm_alaw.wav 89f5b8dd97e0dddbe59af0d44fd229f3 *./tests/data/acodec/pcm_alaw.wav
529256 ./tests/data/acodec/pcm_alaw.wav 529256 ./tests/data/acodec/pcm_alaw.wav
0568b0b9a72e31559e150e7e09d301cd *./tests/data/pcm.acodec.out.wav 0568b0b9a72e31559e150e7e09d301cd *./tests/data/pcm.acodec.out.wav
stddev: 101.67 PSNR: 56.19 MAXDIFF: 515 bytes: 1058444/ 1058444 stddev: 101.67 PSNR: 56.19 MAXDIFF: 515 bytes: 1058400/ 1058400
f443a8eeb1647ec1eeb8370c939e52d4 *./tests/data/acodec/pcm_mulaw.wav f443a8eeb1647ec1eeb8370c939e52d4 *./tests/data/acodec/pcm_mulaw.wav
529256 ./tests/data/acodec/pcm_mulaw.wav 529256 ./tests/data/acodec/pcm_mulaw.wav
1c3eeaa8814ebd4916780dff80ed6dc5 *./tests/data/pcm.acodec.out.wav 1c3eeaa8814ebd4916780dff80ed6dc5 *./tests/data/pcm.acodec.out.wav
stddev: 103.38 PSNR: 56.04 MAXDIFF: 644 bytes: 1058444/ 1058444 stddev: 103.38 PSNR: 56.04 MAXDIFF: 644 bytes: 1058400/ 1058400
b7936d7170e0efefb379349d81aed360 *./tests/data/acodec/pcm_s8.mov b7936d7170e0efefb379349d81aed360 *./tests/data/acodec/pcm_s8.mov
530837 ./tests/data/acodec/pcm_s8.mov 530837 ./tests/data/acodec/pcm_s8.mov
652edf30f35ad89bf27bcc9d2f9c7b53 *./tests/data/pcm.acodec.out.wav 652edf30f35ad89bf27bcc9d2f9c7b53 *./tests/data/pcm.acodec.out.wav
stddev: 147.89 PSNR: 52.93 MAXDIFF: 255 bytes: 1058444/ 1058444 stddev: 147.89 PSNR: 52.93 MAXDIFF: 255 bytes: 1058400/ 1058400
98cadb3502dbdc99e6e077c28b1a036c *./tests/data/acodec/pcm_u8.wav 98cadb3502dbdc99e6e077c28b1a036c *./tests/data/acodec/pcm_u8.wav
529244 ./tests/data/acodec/pcm_u8.wav 529244 ./tests/data/acodec/pcm_u8.wav
652edf30f35ad89bf27bcc9d2f9c7b53 *./tests/data/pcm.acodec.out.wav 652edf30f35ad89bf27bcc9d2f9c7b53 *./tests/data/pcm.acodec.out.wav
stddev: 147.89 PSNR: 52.93 MAXDIFF: 255 bytes: 1058444/ 1058444 stddev: 147.89 PSNR: 52.93 MAXDIFF: 255 bytes: 1058400/ 1058400
c42b9c04305455250366c84e17c1023f *./tests/data/acodec/pcm_s16be.mov c42b9c04305455250366c84e17c1023f *./tests/data/acodec/pcm_s16be.mov
1060037 ./tests/data/acodec/pcm_s16be.mov 1060037 ./tests/data/acodec/pcm_s16be.mov
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav 95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058444/ 1058444 stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/acodec/pcm_s16le.wav 95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/acodec/pcm_s16le.wav
1058444 ./tests/data/acodec/pcm_s16le.wav 1058444 ./tests/data/acodec/pcm_s16le.wav
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav 95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058444/ 1058444 stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400
352a6bcf51d0f3ca4bf27c423a3d4d14 *./tests/data/acodec/pcm_s16be.mkv 352a6bcf51d0f3ca4bf27c423a3d4d14 *./tests/data/acodec/pcm_s16be.mkv
1060650 ./tests/data/acodec/pcm_s16be.mkv 1060650 ./tests/data/acodec/pcm_s16be.mkv
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav 95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058444/ 1058444 stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400
2c089d83b2699c02c9358415e00a9707 *./tests/data/acodec/pcm_s16le.mkv 2c089d83b2699c02c9358415e00a9707 *./tests/data/acodec/pcm_s16le.mkv
1060650 ./tests/data/acodec/pcm_s16le.mkv 1060650 ./tests/data/acodec/pcm_s16le.mkv
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav 95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058444/ 1058444 stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400
07ffe7ffb78f3648b6524debdde5aec1 *./tests/data/acodec/pcm_s24be.mov 07ffe7ffb78f3648b6524debdde5aec1 *./tests/data/acodec/pcm_s24be.mov
1589237 ./tests/data/acodec/pcm_s24be.mov 1589237 ./tests/data/acodec/pcm_s24be.mov
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav 95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058444/ 1058444 stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400
a85380fb79b0d4fff38e24ac1e34bb94 *./tests/data/acodec/pcm_s24le.wav a85380fb79b0d4fff38e24ac1e34bb94 *./tests/data/acodec/pcm_s24le.wav
1587668 ./tests/data/acodec/pcm_s24le.wav 1587668 ./tests/data/acodec/pcm_s24le.wav
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav 95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058444/ 1058444 stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400
d7792f0343cd66fda8b50b569e2bcc48 *./tests/data/acodec/pcm_s32be.mov d7792f0343cd66fda8b50b569e2bcc48 *./tests/data/acodec/pcm_s32be.mov
2118437 ./tests/data/acodec/pcm_s32be.mov 2118437 ./tests/data/acodec/pcm_s32be.mov
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav 95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058444/ 1058444 stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400
da6ed80f4f40f0082577dea80827e014 *./tests/data/acodec/pcm_s32le.wav da6ed80f4f40f0082577dea80827e014 *./tests/data/acodec/pcm_s32le.wav
2116868 ./tests/data/acodec/pcm_s32le.wav 2116868 ./tests/data/acodec/pcm_s32le.wav
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav 95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058444/ 1058444 stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400
118ff3dc83c62ce9ce669eef57e55bb2 *./tests/data/acodec/pcm_f32be.au 118ff3dc83c62ce9ce669eef57e55bb2 *./tests/data/acodec/pcm_f32be.au
2116824 ./tests/data/acodec/pcm_f32be.au 2116824 ./tests/data/acodec/pcm_f32be.au
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav 95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058444/ 1058444 stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400
46f44f86a18984a832206ab9e29a79f2 *./tests/data/acodec/pcm_f32le.wav 46f44f86a18984a832206ab9e29a79f2 *./tests/data/acodec/pcm_f32le.wav
2116880 ./tests/data/acodec/pcm_f32le.wav 2116880 ./tests/data/acodec/pcm_f32le.wav
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav 95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058444/ 1058444 stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400
8112296b1ed94f72f20d04b1a54850a7 *./tests/data/acodec/pcm_f64be.au 8112296b1ed94f72f20d04b1a54850a7 *./tests/data/acodec/pcm_f64be.au
4233624 ./tests/data/acodec/pcm_f64be.au 4233624 ./tests/data/acodec/pcm_f64be.au
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav 95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058444/ 1058444 stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400
ba17c6d1a270e1333e981f239bf7eb45 *./tests/data/acodec/pcm_f64le.wav ba17c6d1a270e1333e981f239bf7eb45 *./tests/data/acodec/pcm_f64le.wav
4233680 ./tests/data/acodec/pcm_f64le.wav 4233680 ./tests/data/acodec/pcm_f64le.wav
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav 95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058444/ 1058444 stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400
8c74234928ed425b1171211a89f67ead *./tests/data/acodec/pcm_zork.wav 8c74234928ed425b1171211a89f67ead *./tests/data/acodec/pcm_zork.wav
529256 ./tests/data/acodec/pcm_zork.wav 529256 ./tests/data/acodec/pcm_zork.wav
864c8c866ac25642c29a13b122c70709 *./tests/data/pcm.acodec.out.wav 864c8c866ac25642c29a13b122c70709 *./tests/data/pcm.acodec.out.wav
stddev: 633.10 PSNR: 40.30 MAXDIFF:32768 bytes: 1058444/ 1058444 stddev: 633.11 PSNR: 40.30 MAXDIFF:32768 bytes: 1058400/ 1058400
8168a5c1343553ef027541830f2cb879 *./tests/data/acodec/pcm_s24daud.302 8168a5c1343553ef027541830f2cb879 *./tests/data/acodec/pcm_s24daud.302
10368730 ./tests/data/acodec/pcm_s24daud.302 10368730 ./tests/data/acodec/pcm_s24daud.302
f552afadfdfcd6348a07095da6382de5 *./tests/data/pcm.acodec.out.wav f552afadfdfcd6348a07095da6382de5 *./tests/data/pcm.acodec.out.wav
stddev: 9415.16 PSNR: 16.85 MAXDIFF:51900 bytes: 6911864/ 1058444 stddev: 9416.28 PSNR: 16.85 MAXDIFF:42744 bytes: 6911796/ 1058400
26a7f6b0f0b7181df8df3fa589f6bf81 *./tests/data/acodec/wmav1.asf 26a7f6b0f0b7181df8df3fa589f6bf81 *./tests/data/acodec/wmav1.asf
106004 ./tests/data/acodec/wmav1.asf 106004 ./tests/data/acodec/wmav1.asf
stddev:12245.27 PSNR: 14.57 MAXDIFF:65521 bytes: 1065004/ 1058444 stddev:12245.52 PSNR: 14.57 MAXDIFF:65521 bytes: 1064960/ 1058400
stddev: 2097.78 PSNR: 29.89 MAXDIFF:27658 bytes: 1056812/ 1058444 stddev: 2095.89 PSNR: 29.90 MAXDIFF:27658 bytes: 1056768/ 1058400
7c6c0cb692af01b312ae345723674b5f *./tests/data/acodec/wmav2.asf 7c6c0cb692af01b312ae345723674b5f *./tests/data/acodec/wmav2.asf
106044 ./tests/data/acodec/wmav2.asf 106044 ./tests/data/acodec/wmav2.asf
stddev:12249.69 PSNR: 14.57 MAXDIFF:65521 bytes: 1065004/ 1058444 stddev:12249.93 PSNR: 14.57 MAXDIFF:65521 bytes: 1064960/ 1058400
stddev: 2091.12 PSNR: 29.92 MAXDIFF:27650 bytes: 1056812/ 1058444 stddev: 2089.21 PSNR: 29.93 MAXDIFF:27650 bytes: 1056768/ 1058400
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h>
#include <inttypes.h> #include <inttypes.h>
#include <assert.h> #include <assert.h>
...@@ -117,8 +118,7 @@ int main(int argc,char* argv[]){ ...@@ -117,8 +118,7 @@ int main(int argc,char* argv[]){
if(argc<3){ if(argc<3){
printf("tiny_psnr <file1> <file2> [<elem size> [<shift> [<skip bytes>]]]\n"); printf("tiny_psnr <file1> <file2> [<elem size> [<shift> [<skip bytes>]]]\n");
printf("For WAV files use the following:\n"); printf("WAV headers are skipped automatically.\n");
printf("./tiny_psnr file1.wav file2.wav 2 0 44 to skip the header.\n");
return -1; return -1;
} }
...@@ -128,7 +128,24 @@ int main(int argc,char* argv[]){ ...@@ -128,7 +128,24 @@ int main(int argc,char* argv[]){
fprintf(stderr, "Could not open input files.\n"); fprintf(stderr, "Could not open input files.\n");
return -1; return -1;
} }
fseek(f[shift<0], shift < 0 ? -shift : shift, SEEK_SET);
for (i = 0; i < 2; i++) {
uint8_t *p = buf[i];
fread(p, 1, 12, f[i]);
if (!memcmp(p, "RIFF", 4) &&
!memcmp(p+8, "WAVE", 4)) {
fread(p, 1, 8, f[i]);
while (memcmp(p, "data", 4)) {
int s = p[4] | p[5]<<8 | p[6]<<16 | p[7]<<24;
fseek(f[i], s, SEEK_CUR);
fread(p, 1, 8, f[i]);
}
} else {
fseek(f[i], -12, SEEK_CUR);
}
}
fseek(f[shift<0], shift < 0 ? -shift : shift, SEEK_CUR);
fseek(f[0],skip_bytes,SEEK_CUR); fseek(f[0],skip_bytes,SEEK_CUR);
fseek(f[1],skip_bytes,SEEK_CUR); fseek(f[1],skip_bytes,SEEK_CUR);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment