mirror of
				https://github.com/TeamNewPipe/NewPipe
				synced 2025-10-31 15:23:00 +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); | ||||
|         } | ||||
|  | ||||
|         // 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); | ||||
|     } | ||||
|  | ||||
| @@ -850,20 +838,10 @@ public class Mp4FromDashWriter { | ||||
|  | ||||
|     private byte[] makeHdlr(final Hdlr hdlr) { | ||||
|         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, | ||||
|                 // binary string | ||||
|                 // "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 | ||||
|                 0x00// null string character | ||||
|         }); | ||||
|  | ||||
|         buffer.position(12); | ||||
| @@ -899,7 +877,7 @@ public class Mp4FromDashWriter { | ||||
|          * characteristics of sample groups. The descriptive information is any other | ||||
|          * 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... | ||||
|          * 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)) { | ||||
|             return new byte[]{ | ||||
|                     0x4F, 0x70, 0x75, 0x73, 0x54, 0x61, 0x67, 0x73, // "OpusTags" binary string | ||||
|                     0x07, 0x00, 0x00, 0x00, // writing application string size | ||||
|                     0x4E, 0x65, 0x77, 0x50, 0x69, 0x70, 0x65, // "NewPipe" binary string | ||||
|                     0x00, 0x00, 0x00, 0x00, // writing application string size (not present) | ||||
|                     0x00, 0x00, 0x00, 0x00 // additional tags count (zero means no tags) | ||||
|             }; | ||||
|         } else if ("A_VORBIS".equals(webmTrack.codecId)) { | ||||
|             return new byte[]{ | ||||
|                     0x03, // ???????? | ||||
|                     0x03, // ¿¿¿??? | ||||
|                     0x76, 0x6f, 0x72, 0x62, 0x69, 0x73, // "vorbis" binary string | ||||
|                     0x07, 0x00, 0x00, 0x00, // writting application string size | ||||
|                     0x4E, 0x65, 0x77, 0x50, 0x69, 0x70, 0x65, // "NewPipe" binary string | ||||
|                     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 // ???????? | ||||
|                     0x00, 0x00, 0x00, 0x00, // writing application string size (not present) | ||||
|                     0x00, 0x00, 0x00, 0x00, // additional tags count (zero means no tags) | ||||
|             }; | ||||
|         } | ||||
|  | ||||
| @@ -377,7 +362,7 @@ public class OggFromWebMWriter implements Closeable { | ||||
|         return addPacketSegment(block.dataSize); | ||||
|     } | ||||
|  | ||||
|     private boolean addPacketSegment(int size) { | ||||
|     private boolean addPacketSegment(final int size) { | ||||
|         if (size > 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 | ||||
|         } | ||||
|  | ||||
|         for (; size > 0; size -= 255) { | ||||
|             segmentTable[segmentTableSize++] = (byte) Math.min(size, 255); | ||||
|         for (int seg = size; seg > 0; seg -= 255) { | ||||
|             segmentTable[segmentTableSize++] = (byte) Math.min(seg, 255); | ||||
|         } | ||||
|  | ||||
|         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++) { | ||||
|             int reg = (initialCrc >>> 24) & 0xff; | ||||
|             initialCrc = (initialCrc << 8) ^ crc32Table[reg ^ (buffer[i] & 0xff)]; | ||||
|             int reg = (crc >>> 24) & 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, | ||||
|                 0x4d, (byte) 0xbb, (byte) 0x8b, 0x53, (byte) 0xab, | ||||
|                 (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, | ||||
|                 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, | ||||
| @@ -160,19 +160,11 @@ public class WebMWriter implements Closeable { | ||||
|  | ||||
|         /* info */ | ||||
|         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(new byte[]{0x44, (byte) 0x89, (byte) 0x84, | ||||
|                 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 */ | ||||
| @@ -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 { | ||||
|         ClusterInfo cluster; | ||||
|  | ||||
| @@ -426,8 +418,6 @@ public class WebMWriter implements Closeable { | ||||
|             cluster.size = (int) (written - offset - CLUSTER_HEADER_SIZE); | ||||
|         } | ||||
|  | ||||
|         offset = written; | ||||
|  | ||||
|         if (create) { | ||||
|             /* cluster */ | ||||
|             dump(new byte[]{0x1f, 0x43, (byte) 0xb6, 0x75}, stream); | ||||
| @@ -445,7 +435,7 @@ public class WebMWriter implements Closeable { | ||||
|             dump(encode(timecode, true), stream); | ||||
|         } | ||||
|  | ||||
|         return offset; | ||||
|         return written; | ||||
|     } | ||||
|  | ||||
|     private void makeEBML(final SharpStream stream) throws IOException { | ||||
| @@ -588,8 +578,10 @@ public class WebMWriter implements Closeable { | ||||
|         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 { | ||||
|         int size = amount; | ||||
|  | ||||
|         /* ebml void */ | ||||
|         outByteBuffer.putShort(0, (short) 0xec20); | ||||
|         outByteBuffer.putShort(2, (short) (size - 4)); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 kapodamy
					kapodamy