99import java .util .List ;
1010import java .util .ListIterator ;
1111
12- /**
13- * unsigned int(8) numOfArrays;
14- * <p/>
15- * for (j=0; j < numOfArrays; j++) {
16- * <p/>
17- * bit(1) array_completeness;
18- * unsigned int(1) reserved = 0;
19- * unsigned int(6) NAL_unit_type;
20- * <p/>
21- * unsigned int(16) numNalus;
22- * for (i=0; i< numNalus; i++) {
23- * unsigned int(16) nalUnitLength;
24- * bit(8*nalUnitLength) nalUnit;
25- * }
26- * }
27- */
2812public class HevcDecoderConfigurationRecord {
2913 int configurationVersion ;
3014
@@ -256,60 +240,6 @@ public int hashCode() {
256240 return result ;
257241 }
258242
259- public static class Array {
260-
261- public boolean array_completeness ;
262- public boolean reserved ;
263- public int nal_unit_type ;
264- public List <byte []> nalUnits ;
265-
266-
267- public Array () {
268-
269- }
270-
271- @ Override
272- public boolean equals (Object o ) {
273- if (this == o ) return true ;
274- if (o == null || getClass () != o .getClass ()) return false ;
275-
276- Array array = (Array ) o ;
277-
278- if (array_completeness != array .array_completeness ) return false ;
279- if (nal_unit_type != array .nal_unit_type ) return false ;
280- if (reserved != array .reserved ) return false ;
281- ListIterator <byte []> e1 = nalUnits .listIterator ();
282- ListIterator <byte []> e2 = (array .nalUnits ).listIterator ();
283- while (e1 .hasNext () && e2 .hasNext ()) {
284- byte [] o1 = e1 .next ();
285- byte [] o2 = e2 .next ();
286-
287- if (!(o1 ==null ? o2 ==null : Arrays .equals (o1 , o2 )))
288- return false ;
289- }
290- return !(e1 .hasNext () || e2 .hasNext ());
291- }
292-
293- @ Override
294- public int hashCode () {
295- int result = (array_completeness ? 1 : 0 );
296- result = 31 * result + (reserved ? 1 : 0 );
297- result = 31 * result + nal_unit_type ;
298- result = 31 * result + (nalUnits != null ? nalUnits .hashCode () : 0 );
299- return result ;
300- }
301-
302- @ Override
303- public String toString () {
304- return "Array{" +
305- "nal_unit_type=" + nal_unit_type +
306- ", reserved=" + reserved +
307- ", array_completeness=" + array_completeness +
308- ", num_nals=" + nalUnits .size () +
309- '}' ;
310- }
311- }
312-
313243 @ Override
314244 public String toString () {
315245 return "HEVCDecoderConfigurationRecord{" +
@@ -320,15 +250,15 @@ public String toString() {
320250 ", general_profile_compatibility_flags=" + general_profile_compatibility_flags +
321251 ", general_constraint_indicator_flags=" + general_constraint_indicator_flags +
322252 ", general_level_idc=" + general_level_idc +
323- (reserved1 != 0xf ? (", reserved1=" + reserved1 ): "" ) +
253+ (reserved1 != 0xf ? (", reserved1=" + reserved1 ) : "" ) +
324254 ", min_spatial_segmentation_idc=" + min_spatial_segmentation_idc +
325- (reserved2 != 0x3F ? (", reserved2=" + reserved2 ): "" ) +
255+ (reserved2 != 0x3F ? (", reserved2=" + reserved2 ) : "" ) +
326256 ", parallelismType=" + parallelismType +
327- (reserved3 != 0x3F ? (", reserved3=" + reserved3 ): "" ) +
257+ (reserved3 != 0x3F ? (", reserved3=" + reserved3 ) : "" ) +
328258 ", chromaFormat=" + chromaFormat +
329- (reserved4 != 0x1F ? (", reserved4=" + reserved4 ): "" ) +
259+ (reserved4 != 0x1F ? (", reserved4=" + reserved4 ) : "" ) +
330260 ", bitDepthLumaMinus8=" + bitDepthLumaMinus8 +
331- (reserved5 != 0x1F ? (", reserved5=" + reserved5 ): "" ) +
261+ (reserved5 != 0x1F ? (", reserved5=" + reserved5 ) : "" ) +
332262 ", bitDepthChromaMinus8=" + bitDepthChromaMinus8 +
333263 ", avgFrameRate=" + avgFrameRate +
334264 ", constantFrameRate=" + constantFrameRate +
@@ -482,4 +412,58 @@ public List<Array> getArrays() {
482412 public void setArrays (List <Array > arrays ) {
483413 this .arrays = arrays ;
484414 }
415+
416+ public static class Array {
417+
418+ public boolean array_completeness ;
419+ public boolean reserved ;
420+ public int nal_unit_type ;
421+ public List <byte []> nalUnits ;
422+
423+
424+ public Array () {
425+
426+ }
427+
428+ @ Override
429+ public boolean equals (Object o ) {
430+ if (this == o ) return true ;
431+ if (o == null || getClass () != o .getClass ()) return false ;
432+
433+ Array array = (Array ) o ;
434+
435+ if (array_completeness != array .array_completeness ) return false ;
436+ if (nal_unit_type != array .nal_unit_type ) return false ;
437+ if (reserved != array .reserved ) return false ;
438+ ListIterator <byte []> e1 = nalUnits .listIterator ();
439+ ListIterator <byte []> e2 = (array .nalUnits ).listIterator ();
440+ while (e1 .hasNext () && e2 .hasNext ()) {
441+ byte [] o1 = e1 .next ();
442+ byte [] o2 = e2 .next ();
443+
444+ if (!(o1 == null ? o2 == null : Arrays .equals (o1 , o2 )))
445+ return false ;
446+ }
447+ return !(e1 .hasNext () || e2 .hasNext ());
448+ }
449+
450+ @ Override
451+ public int hashCode () {
452+ int result = (array_completeness ? 1 : 0 );
453+ result = 31 * result + (reserved ? 1 : 0 );
454+ result = 31 * result + nal_unit_type ;
455+ result = 31 * result + (nalUnits != null ? nalUnits .hashCode () : 0 );
456+ return result ;
457+ }
458+
459+ @ Override
460+ public String toString () {
461+ return "Array{" +
462+ "nal_unit_type=" + nal_unit_type +
463+ ", reserved=" + reserved +
464+ ", array_completeness=" + array_completeness +
465+ ", num_nals=" + nalUnits .size () +
466+ '}' ;
467+ }
468+ }
485469}
0 commit comments