• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2011 castLabs, Berlin
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.googlecode.mp4parser.boxes.mp4.objectdescriptors;
18 
19 import com.coremedia.iso.Hex;
20 
21 import java.io.IOException;
22 import java.nio.ByteBuffer;
23 import java.util.Arrays;
24 
25 /**
26  * abstract class DecoderSpecificInfo extends BaseDescriptor : bit(8)
27  * tag=DecSpecificInfoTag
28  * {
29  * // empty. To be filled by classes extending this class.
30  * }
31  */
32 @Descriptor(tags = 0x05)
33 public class DecoderSpecificInfo extends BaseDescriptor {
34     byte[] bytes;
35 
36     @Override
parseDetail(ByteBuffer bb)37     public void parseDetail(ByteBuffer bb) throws IOException {
38         if (sizeOfInstance > 0) {
39             bytes = new byte[sizeOfInstance];
40             bb.get(bytes);
41         }
42     }
43 
serializedSize()44     public int serializedSize() {
45         return bytes.length;
46     }
47 
serialize()48     public ByteBuffer serialize() {
49         ByteBuffer out = ByteBuffer.wrap(bytes);
50 
51         return out;
52     }
53 
54     @Override
toString()55     public String toString() {
56         final StringBuilder sb = new StringBuilder();
57         sb.append("DecoderSpecificInfo");
58         sb.append("{bytes=").append(bytes == null ? "null" : Hex.encodeHex(bytes));
59         sb.append('}');
60         return sb.toString();
61     }
62 
63     @Override
equals(Object o)64     public boolean equals(Object o) {
65         if (this == o) {
66             return true;
67         }
68         if (o == null || getClass() != o.getClass()) {
69             return false;
70         }
71 
72         DecoderSpecificInfo that = (DecoderSpecificInfo) o;
73 
74         if (!Arrays.equals(bytes, that.bytes)) {
75             return false;
76         }
77 
78         return true;
79     }
80 
81     @Override
hashCode()82     public int hashCode() {
83         return bytes != null ? Arrays.hashCode(bytes) : 0;
84     }
85 }
86