mirror of
				https://github.com/TeamNewPipe/NewPipe
				synced 2025-10-29 22:32:59 +00:00 
			
		
		
		
	Drop "writing/muxed by" metadata
* All muxers (mp4, webm and ogg) are affected * solve some checkstyle's errors (building was blocked) Mp4FromDashWriter: * drop "writing application" * drop "handler name" OggFromWebMWriter: * drop "writing application" for OPUS and VORBIS header WebMWriter: * Drop "Muxing application" * Drop "Writing application"
This commit is contained in:
		| @@ -717,18 +717,6 @@ public class Mp4FromDashWriter { | |||||||
|             makeTrak(i, durations[i], defaultMediaTime[i], tablesInfo[i], is64); |             makeTrak(i, durations[i], defaultMediaTime[i], tablesInfo[i], is64); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         // udta/meta/ilst/©too |  | ||||||
|         auxWrite(new byte[]{ |  | ||||||
|                 0x00, 0x00, 0x00, 0x5C, 0x75, 0x64, 0x74, 0x61, 0x00, 0x00, 0x00, 0x54, 0x6D, 0x65, |  | ||||||
|                 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x68, 0x64, 0x6C, 0x72, |  | ||||||
|                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x64, 0x69, 0x72, 0x61, 0x70, |  | ||||||
|                 0x70, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |  | ||||||
|                 0x27, 0x69, 0x6C, 0x73, 0x74, 0x00, 0x00, 0x00, |  | ||||||
|                 0x1F, (byte) 0xA9, 0x74, 0x6F, 0x6F, 0x00, 0x00, 0x00, 0x17, 0x64, 0x61, 0x74, 0x61, |  | ||||||
|                 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, |  | ||||||
|                 0x4E, 0x65, 0x77, 0x50, 0x69, 0x70, 0x65 // "NewPipe" binary string |  | ||||||
|         }); |  | ||||||
|  |  | ||||||
|         return lengthFor(start); |         return lengthFor(start); | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -850,20 +838,10 @@ public class Mp4FromDashWriter { | |||||||
|  |  | ||||||
|     private byte[] makeHdlr(final Hdlr hdlr) { |     private byte[] makeHdlr(final Hdlr hdlr) { | ||||||
|         ByteBuffer buffer = ByteBuffer.wrap(new byte[]{ |         ByteBuffer buffer = ByteBuffer.wrap(new byte[]{ | ||||||
|                 0x00, 0x00, 0x00, 0x77, 0x68, 0x64, 0x6C, 0x72, // hdlr |                 0x00, 0x00, 0x00, 0x21, 0x68, 0x64, 0x6C, 0x72, // hdlr | ||||||
|                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||||
|                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||||||
|                 // binary string |                 0x00// null string character | ||||||
|                 // "ISO Media file created in NewPipe ( |  | ||||||
|                 // A libre lightweight streaming frontend for Android)." |  | ||||||
|                 0x49, 0x53, 0x4F, 0x20, 0x4D, 0x65, 0x64, 0x69, 0x61, 0x20, 0x66, 0x69, 0x6C, 0x65, |  | ||||||
|                 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6E, 0x20, 0x4E, 0x65, |  | ||||||
|                 0x77, 0x50, 0x69, 0x70, 0x65, 0x20, 0x28, 0x41, 0x20, 0x6C, 0x69, 0x62, 0x72, 0x65, |  | ||||||
|                 0x20, 0x6C, 0x69, 0x67, 0x68, 0x74, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x73, |  | ||||||
|                 0x74, 0x72, 0x65, 0x61, 0x6D, 0x69, 0x6E, 0x67, |  | ||||||
|                 0x20, 0x66, 0x72, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x64, 0x20, 0x66, 0x6F, 0x72, 0x20, |  | ||||||
|                 0x41, 0x6E, |  | ||||||
|                 0x64, 0x72, 0x6F, 0x69, 0x64, 0x29, 0x2E |  | ||||||
|         }); |         }); | ||||||
|  |  | ||||||
|         buffer.position(12); |         buffer.position(12); | ||||||
| @@ -899,7 +877,7 @@ public class Mp4FromDashWriter { | |||||||
|          * characteristics of sample groups. The descriptive information is any other |          * characteristics of sample groups. The descriptive information is any other | ||||||
|          * information needed to define or characterize the sample group. |          * information needed to define or characterize the sample group. | ||||||
|          * |          * | ||||||
|          * ¿is replicabled this box? |          * ¿is replicable this box? | ||||||
|          * NO due lacks of documentation about this box but... |          * NO due lacks of documentation about this box but... | ||||||
|          * most of m4a encoders and ffmpeg uses this box with dummy values (same values) |          * most of m4a encoders and ffmpeg uses this box with dummy values (same values) | ||||||
|          */ |          */ | ||||||
|   | |||||||
| @@ -274,30 +274,15 @@ public class OggFromWebMWriter implements Closeable { | |||||||
|         if ("A_OPUS".equals(webmTrack.codecId)) { |         if ("A_OPUS".equals(webmTrack.codecId)) { | ||||||
|             return new byte[]{ |             return new byte[]{ | ||||||
|                     0x4F, 0x70, 0x75, 0x73, 0x54, 0x61, 0x67, 0x73, // "OpusTags" binary string |                     0x4F, 0x70, 0x75, 0x73, 0x54, 0x61, 0x67, 0x73, // "OpusTags" binary string | ||||||
|                     0x07, 0x00, 0x00, 0x00, // writing application string size |                     0x00, 0x00, 0x00, 0x00, // writing application string size (not present) | ||||||
|                     0x4E, 0x65, 0x77, 0x50, 0x69, 0x70, 0x65, // "NewPipe" binary string |  | ||||||
|                     0x00, 0x00, 0x00, 0x00 // additional tags count (zero means no tags) |                     0x00, 0x00, 0x00, 0x00 // additional tags count (zero means no tags) | ||||||
|             }; |             }; | ||||||
|         } else if ("A_VORBIS".equals(webmTrack.codecId)) { |         } else if ("A_VORBIS".equals(webmTrack.codecId)) { | ||||||
|             return new byte[]{ |             return new byte[]{ | ||||||
|                     0x03, // ???????? |                     0x03, // ¿¿¿??? | ||||||
|                     0x76, 0x6f, 0x72, 0x62, 0x69, 0x73, // "vorbis" binary string |                     0x76, 0x6f, 0x72, 0x62, 0x69, 0x73, // "vorbis" binary string | ||||||
|                     0x07, 0x00, 0x00, 0x00, // writting application string size |                     0x00, 0x00, 0x00, 0x00, // writing application string size (not present) | ||||||
|                     0x4E, 0x65, 0x77, 0x50, 0x69, 0x70, 0x65, // "NewPipe" binary string |                     0x00, 0x00, 0x00, 0x00, // additional tags count (zero means no tags) | ||||||
|                     0x01, 0x00, 0x00, 0x00, // additional tags count (zero means no tags) |  | ||||||
|  |  | ||||||
|                     /* |  | ||||||
|                         // whole file duration (not implemented) |  | ||||||
|                         0x44,// tag string size |  | ||||||
|                         0x55, 0x52, 0x41, 0x54, 0x49, 0x4F, 0x4E, 0x3D, 0x30, |  | ||||||
|                         0x30, 0x3A, 0x30, 0x30, 0x3A, 0x30, 0x30, 0x2E, 0x30, |  | ||||||
|                         0x30, 0x30, 0x30, 0x30, 0x30, 0x30 |  | ||||||
|                      */ |  | ||||||
|                     0x0F, // tag string size |  | ||||||
|                     0x00, 0x00, 0x00, 0x45, 0x4E, 0x43, 0x4F, |  | ||||||
|                     0x44, 0x45, 0x52, 0x3D, // "ENCODER=" binary string |  | ||||||
|                     0x4E, 0x65, 0x77, 0x50, 0x69, 0x70, 0x65, // "NewPipe" binary string |  | ||||||
|                     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ???????? |  | ||||||
|             }; |             }; | ||||||
|         } |         } | ||||||
|  |  | ||||||
| @@ -377,7 +362,7 @@ public class OggFromWebMWriter implements Closeable { | |||||||
|         return addPacketSegment(block.dataSize); |         return addPacketSegment(block.dataSize); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private boolean addPacketSegment(int size) { |     private boolean addPacketSegment(final int size) { | ||||||
|         if (size > 65025) { |         if (size > 65025) { | ||||||
|             throw new UnsupportedOperationException("page size cannot be larger than 65025"); |             throw new UnsupportedOperationException("page size cannot be larger than 65025"); | ||||||
|         } |         } | ||||||
| @@ -396,8 +381,8 @@ public class OggFromWebMWriter implements Closeable { | |||||||
|             return false; // not enough space on the page |             return false; // not enough space on the page | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         for (; size > 0; size -= 255) { |         for (int seg = size; seg > 0; seg -= 255) { | ||||||
|             segmentTable[segmentTableSize++] = (byte) Math.min(size, 255); |             segmentTable[segmentTableSize++] = (byte) Math.min(seg, 255); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         if (extra) { |         if (extra) { | ||||||
| @@ -419,12 +404,13 @@ public class OggFromWebMWriter implements Closeable { | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private int calcCrc32(int initialCrc, final byte[] buffer, final int size) { |     private int calcCrc32(final int initialCrc, final byte[] buffer, final int size) { | ||||||
|  |         int crc = initialCrc; | ||||||
|         for (int i = 0; i < size; i++) { |         for (int i = 0; i < size; i++) { | ||||||
|             int reg = (initialCrc >>> 24) & 0xff; |             int reg = (crc >>> 24) & 0xff; | ||||||
|             initialCrc = (initialCrc << 8) ^ crc32Table[reg ^ (buffer[i] & 0xff)]; |             crc = (crc << 8) ^ crc32Table[reg ^ (buffer[i] & 0xff)]; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         return initialCrc; |         return crc; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -151,7 +151,7 @@ public class WebMWriter implements Closeable { | |||||||
|                 (byte) 0xac, (byte) 0x81, /*info offset*/ 0x43, |                 (byte) 0xac, (byte) 0x81, /*info offset*/ 0x43, | ||||||
|                 0x4d, (byte) 0xbb, (byte) 0x8b, 0x53, (byte) 0xab, |                 0x4d, (byte) 0xbb, (byte) 0x8b, 0x53, (byte) 0xab, | ||||||
|                 (byte) 0x84, 0x16, 0x54, (byte) 0xae, 0x6b, 0x53, (byte) 0xac, (byte) 0x81, |                 (byte) 0x84, 0x16, 0x54, (byte) 0xae, 0x6b, 0x53, (byte) 0xac, (byte) 0x81, | ||||||
|                 /*tracks offset*/ 0x6a, |                 /*tracks offset*/ 0x56, | ||||||
|                 0x4d, (byte) 0xbb, (byte) 0x8e, 0x53, (byte) 0xab, (byte) 0x84, 0x1f, |                 0x4d, (byte) 0xbb, (byte) 0x8e, 0x53, (byte) 0xab, (byte) 0x84, 0x1f, | ||||||
|                 0x43, (byte) 0xb6, 0x75, 0x53, (byte) 0xac, (byte) 0x84, /*cluster offset [2]*/ 0x00, 0x00, 0x00, 0x00, |                 0x43, (byte) 0xb6, 0x75, 0x53, (byte) 0xac, (byte) 0x84, /*cluster offset [2]*/ 0x00, 0x00, 0x00, 0x00, | ||||||
|                 0x4d, (byte) 0xbb, (byte) 0x8e, 0x53, (byte) 0xab, (byte) 0x84, 0x1c, 0x53, |                 0x4d, (byte) 0xbb, (byte) 0x8e, 0x53, (byte) 0xab, (byte) 0x84, 0x1c, 0x53, | ||||||
| @@ -160,19 +160,11 @@ public class WebMWriter implements Closeable { | |||||||
|  |  | ||||||
|         /* info */ |         /* info */ | ||||||
|         listBuffer.add(new byte[]{ |         listBuffer.add(new byte[]{ | ||||||
|                 0x15, 0x49, (byte) 0xa9, 0x66, (byte) 0xa2, 0x2a, (byte) 0xd7, (byte) 0xb1 |                 0x15, 0x49, (byte) 0xa9, 0x66, (byte) 0x8e, 0x2a, (byte) 0xd7, (byte) 0xb1 | ||||||
|         }); |         }); | ||||||
|         listBuffer.add(encode(DEFAULT_TIMECODE_SCALE, true)); // this value MUST NOT exceed 4 bytes |         listBuffer.add(encode(DEFAULT_TIMECODE_SCALE, true)); // this value MUST NOT exceed 4 bytes | ||||||
|         listBuffer.add(new byte[]{0x44, (byte) 0x89, (byte) 0x84, |         listBuffer.add(new byte[]{0x44, (byte) 0x89, (byte) 0x84, | ||||||
|                 0x00, 0x00, 0x00, 0x00, // info.duration |                 0x00, 0x00, 0x00, 0x00, // info.duration | ||||||
|  |  | ||||||
|                 /* MuxingApp */ |  | ||||||
|                 0x4d, (byte) 0x80, (byte) 0x87, 0x4E, |  | ||||||
|                 0x65, 0x77, 0x50, 0x69, 0x70, 0x65, // "NewPipe" binary string |  | ||||||
|  |  | ||||||
|                 /* WritingApp */ |  | ||||||
|                 0x57, 0x41, (byte) 0x87, 0x4E, |  | ||||||
|                 0x65, 0x77, 0x50, 0x69, 0x70, 0x65// "NewPipe" binary string |  | ||||||
|         }); |         }); | ||||||
|  |  | ||||||
|         /* tracks */ |         /* tracks */ | ||||||
| @@ -416,7 +408,7 @@ public class WebMWriter implements Closeable { | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private long makeCluster(final SharpStream stream, final long timecode, long offset, |     private long makeCluster(final SharpStream stream, final long timecode, final long offset, | ||||||
|                              final boolean create) throws IOException { |                              final boolean create) throws IOException { | ||||||
|         ClusterInfo cluster; |         ClusterInfo cluster; | ||||||
|  |  | ||||||
| @@ -426,8 +418,6 @@ public class WebMWriter implements Closeable { | |||||||
|             cluster.size = (int) (written - offset - CLUSTER_HEADER_SIZE); |             cluster.size = (int) (written - offset - CLUSTER_HEADER_SIZE); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         offset = written; |  | ||||||
|  |  | ||||||
|         if (create) { |         if (create) { | ||||||
|             /* cluster */ |             /* cluster */ | ||||||
|             dump(new byte[]{0x1f, 0x43, (byte) 0xb6, 0x75}, stream); |             dump(new byte[]{0x1f, 0x43, (byte) 0xb6, 0x75}, stream); | ||||||
| @@ -445,7 +435,7 @@ public class WebMWriter implements Closeable { | |||||||
|             dump(encode(timecode, true), stream); |             dump(encode(timecode, true), stream); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         return offset; |         return written; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private void makeEBML(final SharpStream stream) throws IOException { |     private void makeEBML(final SharpStream stream) throws IOException { | ||||||
| @@ -588,8 +578,10 @@ public class WebMWriter implements Closeable { | |||||||
|         return lengthFor(buffer); |         return lengthFor(buffer); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private void makeEbmlVoid(final SharpStream out, int size, final boolean wipe) |     private void makeEbmlVoid(final SharpStream out, final int amount, final boolean wipe) | ||||||
|             throws IOException { |             throws IOException { | ||||||
|  |         int size = amount; | ||||||
|  |  | ||||||
|         /* ebml void */ |         /* ebml void */ | ||||||
|         outByteBuffer.putShort(0, (short) 0xec20); |         outByteBuffer.putShort(0, (short) 0xec20); | ||||||
|         outByteBuffer.putShort(2, (short) (size - 4)); |         outByteBuffer.putShort(2, (short) (size - 4)); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 kapodamy
					kapodamy