• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2008 CoreMedia AG, Hamburg
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.coremedia.iso.boxes;
18 
19 import com.coremedia.iso.IsoTypeReader;
20 import com.coremedia.iso.IsoTypeWriter;
21 import com.coremedia.iso.Utf8;
22 import com.googlecode.mp4parser.AbstractFullBox;
23 
24 import java.nio.ByteBuffer;
25 
26 /**
27  * Gives a language dependent description of the media contained in the ISO file.
28  */
29 public class DescriptionBox extends AbstractFullBox {
30     public static final String TYPE = "dscp";
31 
32     private String language;
33     private String description;
34 
DescriptionBox()35     public DescriptionBox() {
36         super(TYPE);
37     }
38 
getLanguage()39     public String getLanguage() {
40         return language;
41     }
42 
getDescription()43     public String getDescription() {
44         return description;
45     }
46 
getContentSize()47     protected long getContentSize() {
48         return 7 + Utf8.utf8StringLengthInBytes(description);
49     }
50 
51     @Override
_parseDetails(ByteBuffer content)52     public void _parseDetails(ByteBuffer content) {
53         parseVersionAndFlags(content);
54         language = IsoTypeReader.readIso639(content);
55         description = IsoTypeReader.readString(content);
56     }
57 
58     @Override
getContent(ByteBuffer byteBuffer)59     protected void getContent(ByteBuffer byteBuffer) {
60         writeVersionAndFlags(byteBuffer);
61         IsoTypeWriter.writeIso639(byteBuffer, language);
62         byteBuffer.put(Utf8.convert(description));
63         byteBuffer.put((byte) 0);
64     }
65 
toString()66     public String toString() {
67         return "DescriptionBox[language=" + getLanguage() + ";description=" + getDescription() + "]";
68     }
69 
setLanguage(String language)70     public void setLanguage(String language) {
71         this.language = language;
72     }
73 
setDescription(String description)74     public void setDescription(String description) {
75         this.description = description;
76     }
77 }
78