blob: 98c7cf46cdf56055543660f4d9202510f0382c7a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
#include <AS_DCP.h>
#include <FileIO.h>
#include <JP2K.h>
using namespace ASDCP;
using namespace ASDCP::JP2K;
//
int
main(int argc, const char** argv)
{
ASDCP::JP2K::FrameBuffer FB;
Marker MyMarker;
if ( argc < 2 )
return 1;
FB.Capacity(1024*1024*2);
CodestreamParser Parser;
Result_t result = Parser.OpenReadFrame(argv[1], FB);
if ( result != RESULT_OK )
{
fputs("Program stopped on error.\n", stderr);
if ( result != RESULT_FAIL )
{
fputs(GetResultString(result), stderr);
fputc('\n', stderr);
}
return 1;
}
const byte_t* p = FB.RoData();
const byte_t* end_p = p + FB.Size();
hexdump(p, 256, stderr);
while ( p < end_p && ASDCP_SUCCESS(GetNextMarker(&p, MyMarker)) )
{
MyMarker.Dump();
switch ( MyMarker.m_Type )
{
case MRK_SOD:
p = end_p;
break;
case MRK_SIZ:
{
Accessor::SIZ SIZ_(MyMarker);
hexdump(MyMarker.m_Data - 2, MyMarker.m_DataSize + 2, stderr);
SIZ_.Dump();
}
break;
case MRK_COM:
{
Accessor::COM COM_(MyMarker);
COM_.Dump();
}
break;
}
}
return 0;
}
//
// end jp2k-test.cpp
//
|