Mercurial > mplayer.hg
annotate libmpdemux/aviprint.c @ 15978:c8dc500e078e
memcpy and memmove both copy memory, but when using memcpy the source and destination must not overlap, but here, they did overlap.
Committed with the kind blessing of Richard, patch by uau
author | gpoirier |
---|---|
date | Fri, 15 Jul 2005 22:09:30 +0000 |
parents | 0db4a3a5b01d |
children | 0a31740dd5e6 |
rev | line source |
---|---|
587
8511095c5283
stage#1 completed: c files no more included from mplayer.c
arpi_esp
parents:
353
diff
changeset
|
1 |
8511095c5283
stage#1 completed: c files no more included from mplayer.c
arpi_esp
parents:
353
diff
changeset
|
2 #include <stdio.h> |
8511095c5283
stage#1 completed: c files no more included from mplayer.c
arpi_esp
parents:
353
diff
changeset
|
3 #include <stdlib.h> |
1430 | 4 #include <unistd.h> |
587
8511095c5283
stage#1 completed: c files no more included from mplayer.c
arpi_esp
parents:
353
diff
changeset
|
5 |
2555
66837325b929
config.h cleanup, few things added to steram/demuxer headers
arpi
parents:
2314
diff
changeset
|
6 #include "config.h" |
66837325b929
config.h cleanup, few things added to steram/demuxer headers
arpi
parents:
2314
diff
changeset
|
7 |
7471 | 8 // for avi_stream_id(): |
587
8511095c5283
stage#1 completed: c files no more included from mplayer.c
arpi_esp
parents:
353
diff
changeset
|
9 #include "stream.h" |
8511095c5283
stage#1 completed: c files no more included from mplayer.c
arpi_esp
parents:
353
diff
changeset
|
10 #include "demuxer.h" |
8511095c5283
stage#1 completed: c files no more included from mplayer.c
arpi_esp
parents:
353
diff
changeset
|
11 |
12036 | 12 #include "aviheader.h" |
12341
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
12036
diff
changeset
|
13 #include "ms_hdr.h" |
12036 | 14 |
587
8511095c5283
stage#1 completed: c files no more included from mplayer.c
arpi_esp
parents:
353
diff
changeset
|
15 //#include "codec-cfg.h" |
8511095c5283
stage#1 completed: c files no more included from mplayer.c
arpi_esp
parents:
353
diff
changeset
|
16 //#include "stheader.h" |
8511095c5283
stage#1 completed: c files no more included from mplayer.c
arpi_esp
parents:
353
diff
changeset
|
17 |
1456
8c57a5a3c645
printfs cleanup - moved to higher -v level or moved to stderr
arpi
parents:
1430
diff
changeset
|
18 void print_avih_flags(MainAVIHeader *h){ |
8c57a5a3c645
printfs cleanup - moved to higher -v level or moved to stderr
arpi
parents:
1430
diff
changeset
|
19 printf("MainAVIHeader.dwFlags: (%ld)%s%s%s%s%s%s\n",h->dwFlags, |
1 | 20 (h->dwFlags&AVIF_HASINDEX)?" HAS_INDEX":"", |
21 (h->dwFlags&AVIF_MUSTUSEINDEX)?" MUST_USE_INDEX":"", | |
22 (h->dwFlags&AVIF_ISINTERLEAVED)?" IS_INTERLEAVED":"", | |
23 (h->dwFlags&AVIF_TRUSTCKTYPE)?" TRUST_CKTYPE":"", | |
24 (h->dwFlags&AVIF_WASCAPTUREFILE)?" WAS_CAPTUREFILE":"", | |
25 (h->dwFlags&AVIF_COPYRIGHTED)?" COPYRIGHTED":"" | |
26 ); | |
1456
8c57a5a3c645
printfs cleanup - moved to higher -v level or moved to stderr
arpi
parents:
1430
diff
changeset
|
27 } |
8c57a5a3c645
printfs cleanup - moved to higher -v level or moved to stderr
arpi
parents:
1430
diff
changeset
|
28 |
8c57a5a3c645
printfs cleanup - moved to higher -v level or moved to stderr
arpi
parents:
1430
diff
changeset
|
29 void print_avih(MainAVIHeader *h){ |
8c57a5a3c645
printfs cleanup - moved to higher -v level or moved to stderr
arpi
parents:
1430
diff
changeset
|
30 printf("======= AVI Header =======\n"); |
8c57a5a3c645
printfs cleanup - moved to higher -v level or moved to stderr
arpi
parents:
1430
diff
changeset
|
31 printf("us/frame: %ld (fps=%5.3f)\n",h->dwMicroSecPerFrame,1000000.0f/(float)h->dwMicroSecPerFrame); |
8c57a5a3c645
printfs cleanup - moved to higher -v level or moved to stderr
arpi
parents:
1430
diff
changeset
|
32 printf("max bytes/sec: %ld\n",h->dwMaxBytesPerSec); |
8c57a5a3c645
printfs cleanup - moved to higher -v level or moved to stderr
arpi
parents:
1430
diff
changeset
|
33 printf("padding: %ld\n",h->dwPaddingGranularity); |
8c57a5a3c645
printfs cleanup - moved to higher -v level or moved to stderr
arpi
parents:
1430
diff
changeset
|
34 print_avih_flags(h); |
602 | 35 printf("frames total: %ld initial: %ld\n",h->dwTotalFrames,h->dwInitialFrames); |
36 printf("streams: %ld\n",h->dwStreams); | |
37 printf("Suggested BufferSize: %ld\n",h->dwSuggestedBufferSize); | |
38 printf("Size: %ld x %ld\n",h->dwWidth,h->dwHeight); | |
10484
105077598ef3
dump extra bytes of bitmapinfoheader in verbose mode and make outputs consistent
alex
parents:
8123
diff
changeset
|
39 printf("==========================\n"); |
1 | 40 } |
41 | |
42 void print_strh(AVIStreamHeader *h){ | |
10484
105077598ef3
dump extra bytes of bitmapinfoheader in verbose mode and make outputs consistent
alex
parents:
8123
diff
changeset
|
43 printf("====== STREAM Header =====\n"); |
602 | 44 printf("Type: %.4s FCC: %.4s (%X)\n",(char *)&h->fccType,(char *)&h->fccHandler,(unsigned int)h->fccHandler); |
45 printf("Flags: %ld\n",h->dwFlags); | |
1 | 46 printf("Priority: %d Language: %d\n",h->wPriority,h->wLanguage); |
602 | 47 printf("InitialFrames: %ld\n",h->dwInitialFrames); |
48 printf("Rate: %ld/%ld = %5.3f\n",h->dwRate,h->dwScale,(float)h->dwRate/(float)h->dwScale); | |
49 printf("Start: %ld Len: %ld\n",h->dwStart,h->dwLength); | |
50 printf("Suggested BufferSize: %ld\n",h->dwSuggestedBufferSize); | |
51 printf("Quality %ld\n",h->dwQuality); | |
52 printf("Sample size: %ld\n",h->dwSampleSize); | |
10484
105077598ef3
dump extra bytes of bitmapinfoheader in verbose mode and make outputs consistent
alex
parents:
8123
diff
changeset
|
53 printf("==========================\n"); |
1 | 54 } |
55 | |
56 void print_wave_header(WAVEFORMATEX *h){ | |
57 printf("======= WAVE Format =======\n"); | |
58 printf("Format Tag: %d (0x%X)\n",h->wFormatTag,h->wFormatTag); | |
59 printf("Channels: %d\n",h->nChannels); | |
602 | 60 printf("Samplerate: %ld\n",h->nSamplesPerSec); |
61 printf("avg byte/sec: %ld\n",h->nAvgBytesPerSec); | |
1 | 62 printf("Block align: %d\n",h->nBlockAlign); |
63 printf("bits/sample: %d\n",h->wBitsPerSample); | |
64 printf("cbSize: %d\n",h->cbSize); | |
5711 | 65 if(h->wFormatTag==0x55 && h->cbSize>=12){ |
7127 | 66 MPEGLAYER3WAVEFORMAT* h2=(MPEGLAYER3WAVEFORMAT *)h; |
5688 | 67 printf("mp3.wID=%d\n",h2->wID); |
8123
9fc45fe0d444
*HUGE* set of compiler warning fixes, unused variables removal
arpi
parents:
7471
diff
changeset
|
68 printf("mp3.fdwFlags=0x%lX\n",h2->fdwFlags); |
5688 | 69 printf("mp3.nBlockSize=%d\n",h2->nBlockSize); |
70 printf("mp3.nFramesPerBlock=%d\n",h2->nFramesPerBlock); | |
71 printf("mp3.nCodecDelay=%d\n",h2->nCodecDelay); | |
72 } | |
5758 | 73 else if (h->cbSize > 0) |
74 { | |
75 int i; | |
5896 | 76 uint8_t* p = ((uint8_t*)h) + sizeof(WAVEFORMATEX); |
5758 | 77 printf("Unknown extra header dump: "); |
78 for (i = 0; i < h->cbSize; i++) | |
12341
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
12036
diff
changeset
|
79 printf("[%x] ", p[i]); |
5758 | 80 printf("\n"); |
81 } | |
10484
105077598ef3
dump extra bytes of bitmapinfoheader in verbose mode and make outputs consistent
alex
parents:
8123
diff
changeset
|
82 printf("===========================\n"); |
1 | 83 } |
84 | |
85 | |
86 void print_video_header(BITMAPINFOHEADER *h){ | |
87 printf("======= VIDEO Format ======\n"); | |
8123
9fc45fe0d444
*HUGE* set of compiler warning fixes, unused variables removal
arpi
parents:
7471
diff
changeset
|
88 printf(" biSize %d\n", h->biSize); |
9fc45fe0d444
*HUGE* set of compiler warning fixes, unused variables removal
arpi
parents:
7471
diff
changeset
|
89 printf(" biWidth %d\n", h->biWidth); |
9fc45fe0d444
*HUGE* set of compiler warning fixes, unused variables removal
arpi
parents:
7471
diff
changeset
|
90 printf(" biHeight %d\n", h->biHeight); |
1 | 91 printf(" biPlanes %d\n", h->biPlanes); |
92 printf(" biBitCount %d\n", h->biBitCount); | |
8123
9fc45fe0d444
*HUGE* set of compiler warning fixes, unused variables removal
arpi
parents:
7471
diff
changeset
|
93 printf(" biCompression %d='%.4s'\n", h->biCompression, (char *)&h->biCompression); |
9fc45fe0d444
*HUGE* set of compiler warning fixes, unused variables removal
arpi
parents:
7471
diff
changeset
|
94 printf(" biSizeImage %d\n", h->biSizeImage); |
10484
105077598ef3
dump extra bytes of bitmapinfoheader in verbose mode and make outputs consistent
alex
parents:
8123
diff
changeset
|
95 if (h->biSize > sizeof(BITMAPINFOHEADER)) |
105077598ef3
dump extra bytes of bitmapinfoheader in verbose mode and make outputs consistent
alex
parents:
8123
diff
changeset
|
96 { |
105077598ef3
dump extra bytes of bitmapinfoheader in verbose mode and make outputs consistent
alex
parents:
8123
diff
changeset
|
97 int i; |
105077598ef3
dump extra bytes of bitmapinfoheader in verbose mode and make outputs consistent
alex
parents:
8123
diff
changeset
|
98 uint8_t* p = ((uint8_t*)h) + sizeof(BITMAPINFOHEADER); |
105077598ef3
dump extra bytes of bitmapinfoheader in verbose mode and make outputs consistent
alex
parents:
8123
diff
changeset
|
99 printf("Unknown extra header dump: "); |
105077598ef3
dump extra bytes of bitmapinfoheader in verbose mode and make outputs consistent
alex
parents:
8123
diff
changeset
|
100 for (i = 0; i < h->biSize-sizeof(BITMAPINFOHEADER); i++) |
105077598ef3
dump extra bytes of bitmapinfoheader in verbose mode and make outputs consistent
alex
parents:
8123
diff
changeset
|
101 printf("[%x] ", *(p+i)); |
105077598ef3
dump extra bytes of bitmapinfoheader in verbose mode and make outputs consistent
alex
parents:
8123
diff
changeset
|
102 printf("\n"); |
105077598ef3
dump extra bytes of bitmapinfoheader in verbose mode and make outputs consistent
alex
parents:
8123
diff
changeset
|
103 } |
1 | 104 printf("===========================\n"); |
105 } | |
106 | |
12036 | 107 void print_vprp(VideoPropHeader *vprp){ |
108 int i; | |
109 printf("======= Video Properties Header =======\n"); | |
110 printf("Format: %d VideoStandard: %d\n", | |
111 vprp->VideoFormatToken,vprp->VideoStandard); | |
112 printf("VRefresh: %d HTotal: %d VTotal: %d\n", | |
113 vprp->dwVerticalRefreshRate, vprp->dwHTotalInT, vprp->dwVTotalInLines); | |
114 printf("FrameAspect: %d:%d Framewidth: %d Frameheight: %d\n", | |
115 vprp->dwFrameAspectRatio >> 16, vprp->dwFrameAspectRatio & 0xffff, | |
116 vprp->dwFrameWidthInPixels, vprp->dwFrameHeightInLines); | |
117 printf("Fields: %d\n", vprp->nbFieldPerFrame); | |
118 for (i=0; i<vprp->nbFieldPerFrame; i++) { | |
119 VIDEO_FIELD_DESC *vfd = &vprp->FieldInfo[i]; | |
120 printf(" == Field %d description ==\n", i); | |
121 printf(" CompressedBMHeight: %d CompressedBMWidth: %d\n", | |
122 vfd->CompressedBMHeight, vfd->CompressedBMWidth); | |
123 printf(" ValidBMHeight: %d ValidBMWidth: %d\n", | |
124 vfd->ValidBMHeight, vfd->ValidBMWidth); | |
125 printf(" ValidBMXOffset: %d ValidBMYOffset: %d\n", | |
126 vfd->ValidBMXOffset, vfd->ValidBMYOffset); | |
127 printf(" VideoXOffsetInT: %d VideoYValidStartLine: %d\n", | |
128 vfd->VideoXOffsetInT, vfd->VideoYValidStartLine); | |
129 } | |
130 printf("=======================================\n"); | |
131 } | |
1 | 132 |
587
8511095c5283
stage#1 completed: c files no more included from mplayer.c
arpi_esp
parents:
353
diff
changeset
|
133 void print_index(AVIINDEXENTRY *idx,int idx_size){ |
1 | 134 int i; |
1485
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1456
diff
changeset
|
135 unsigned int pos[256]; |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1456
diff
changeset
|
136 unsigned int num[256]; |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1456
diff
changeset
|
137 for(i=0;i<256;i++) num[i]=pos[i]=0; |
587
8511095c5283
stage#1 completed: c files no more included from mplayer.c
arpi_esp
parents:
353
diff
changeset
|
138 for(i=0;i<idx_size;i++){ |
1485
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1456
diff
changeset
|
139 int id=avi_stream_id(idx[i].ckid); |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1456
diff
changeset
|
140 if(id<0 || id>255) id=255; |
12036 | 141 printf("%5d: %.4s %4X %016llX len:%6ld pos:%7d->%7.3f %7d->%7.3f\n",i, |
602 | 142 (char *)&idx[i].ckid, |
12036 | 143 (unsigned int)idx[i].dwFlags&0xffff, |
144 (uint64_t)AVI_IDX_OFFSET(&idx[i]), | |
587
8511095c5283
stage#1 completed: c files no more included from mplayer.c
arpi_esp
parents:
353
diff
changeset
|
145 // idx[i].dwChunkOffset+demuxer->movi_start, |
1485
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1456
diff
changeset
|
146 idx[i].dwChunkLength, |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1456
diff
changeset
|
147 pos[id],(float)pos[id]/18747.0f, |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1456
diff
changeset
|
148 num[id],(float)num[id]/23.976f |
1 | 149 ); |
1485
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1456
diff
changeset
|
150 pos[id]+=idx[i].dwChunkLength; |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1456
diff
changeset
|
151 ++num[id]; |
1 | 152 } |
153 } | |
154 | |
12036 | 155 void print_avistdindex_chunk(avistdindex_chunk *h){ |
156 mp_msg (MSGT_HEADER, MSGL_V, "====== AVI Standard Index Header ========\n"); | |
157 mp_msg (MSGT_HEADER, MSGL_V, " FCC (%.4s) dwSize (%d) wLongsPerEntry(%d)\n", h->fcc, h->dwSize, h->wLongsPerEntry); | |
158 mp_msg (MSGT_HEADER, MSGL_V, " bIndexSubType (%d) bIndexType (%d)\n", h->bIndexSubType, h->bIndexType); | |
159 mp_msg (MSGT_HEADER, MSGL_V, " nEntriesInUse (%d) dwChunkId (%.4s)\n", h->nEntriesInUse, h->dwChunkId); | |
160 mp_msg (MSGT_HEADER, MSGL_V, " qwBaseOffset (0x%llX) dwReserved3 (%d)\n", h->qwBaseOffset, h->dwReserved3); | |
161 mp_msg (MSGT_HEADER, MSGL_V, "===========================\n"); | |
162 } | |
163 void print_avisuperindex_chunk(avisuperindex_chunk *h){ | |
164 mp_msg (MSGT_HEADER, MSGL_V, "====== AVI Super Index Header ========\n"); | |
165 mp_msg (MSGT_HEADER, MSGL_V, " FCC (%.4s) dwSize (%d) wLongsPerEntry(%d)\n", h->fcc, h->dwSize, h->wLongsPerEntry); | |
166 mp_msg (MSGT_HEADER, MSGL_V, " bIndexSubType (%d) bIndexType (%d)\n", h->bIndexSubType, h->bIndexType); | |
167 mp_msg (MSGT_HEADER, MSGL_V, " nEntriesInUse (%d) dwChunkId (%.4s)\n", h->nEntriesInUse, h->dwChunkId); | |
168 mp_msg (MSGT_HEADER, MSGL_V, " dwReserved[0] (%d) dwReserved[1] (%d) dwReserved[2] (%d)\n", | |
169 h->dwReserved[0], h->dwReserved[1], h->dwReserved[2]); | |
170 mp_msg (MSGT_HEADER, MSGL_V, "===========================\n"); | |
171 } | |
1 | 172 |