blob: 089d97b81f57a92631fc059cadb78c428099a517 (
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
package com.coremedia.iso.boxes.threegpp26244;
import com.coremedia.iso.IsoTypeReader;
import com.coremedia.iso.IsoTypeWriter;
import com.coremedia.iso.Utf8;
import com.googlecode.mp4parser.AbstractFullBox;
import java.nio.ByteBuffer;
/**
* Location Information Box as specified in TS 26.244.
*/
public class LocationInformationBox extends AbstractFullBox {
public static final String TYPE = "loci";
private String language;
private String name = "";
private int role;
private double longitude;
private double latitude;
private double altitude;
private String astronomicalBody = "";
private String additionalNotes = "";
public LocationInformationBox() {
super(TYPE);
}
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getRole() {
return role;
}
public void setRole(int role) {
this.role = role;
}
public double getLongitude() {
return longitude;
}
public void setLongitude(double longitude) {
this.longitude = longitude;
}
public double getLatitude() {
return latitude;
}
public void setLatitude(double latitude) {
this.latitude = latitude;
}
public double getAltitude() {
return altitude;
}
public void setAltitude(double altitude) {
this.altitude = altitude;
}
public String getAstronomicalBody() {
return astronomicalBody;
}
public void setAstronomicalBody(String astronomicalBody) {
this.astronomicalBody = astronomicalBody;
}
public String getAdditionalNotes() {
return additionalNotes;
}
public void setAdditionalNotes(String additionalNotes) {
this.additionalNotes = additionalNotes;
}
protected long getContentSize() {
return 22 + Utf8.convert(name).length + Utf8.convert(astronomicalBody).length + Utf8.convert(additionalNotes).length;
}
@Override
public void _parseDetails(ByteBuffer content) {
parseVersionAndFlags(content);
language = IsoTypeReader.readIso639(content);
name = IsoTypeReader.readString(content);
role = IsoTypeReader.readUInt8(content);
longitude = IsoTypeReader.readFixedPoint1616(content);
latitude = IsoTypeReader.readFixedPoint1616(content);
altitude = IsoTypeReader.readFixedPoint1616(content);
astronomicalBody = IsoTypeReader.readString(content);
additionalNotes = IsoTypeReader.readString(content);
}
@Override
protected void getContent(ByteBuffer byteBuffer) {
writeVersionAndFlags(byteBuffer);
IsoTypeWriter.writeIso639(byteBuffer, language);
byteBuffer.put(Utf8.convert(name));
byteBuffer.put((byte) 0);
IsoTypeWriter.writeUInt8(byteBuffer, role);
IsoTypeWriter.writeFixedPont1616(byteBuffer, longitude);
IsoTypeWriter.writeFixedPont1616(byteBuffer, latitude);
IsoTypeWriter.writeFixedPont1616(byteBuffer, altitude);
byteBuffer.put(Utf8.convert(astronomicalBody));
byteBuffer.put((byte) 0);
byteBuffer.put(Utf8.convert(additionalNotes));
byteBuffer.put((byte) 0);
}
}
|