How yetote/mp4info works
This is an Android MP4 inspection app. A user selects a file, starts parsing, expands the MP4 box tree, and selects boxes to inspect their decoded fields and raw data. The Java parser scans box structure and dispatches box-specific readers; decoded field data is queued for incremental display. The graph reflects documented imports and the shown parser/queue calls. The README is empty, and some activity code is omitted, so uncertain wiring—especially the native C++ reader—is not asserted.
Main entry points: MainActivity.java Main activity · NIOReadInfo.java NIO scanner · bean Box decoders · TreeNodeAdapter.java Box tree adapter
Components 18
Android UI
- Main activity
app/src/main/java/com/yetote/mp4info/MainActivity.java - Box tree adapter
app/src/main/java/com/yetote/mp4info/adapter/TreeNodeAdapter.java - Description view
app/src/main/java/com/yetote/mp4info/fragment/DescribeFragment.java
MP4 Parsing
- File access
app/src/main/java/com/yetote/mp4info/util/AndroidFileUtil.java - Read interface
app/src/main/java/com/yetote/mp4info/util/ReadInfo.java - NIO scanner
app/src/main/java/com/yetote/mp4info/util/NIOReadInfo.java - Box registry
app/src/main/java/com/yetote/mp4info/util/MP4.java
Box Decoding
- Box model
app/src/main/java/com/yetote/mp4info/model/Box.java - Basic box
app/src/main/java/com/yetote/mp4info/model/BasicBox.java - Full box
app/src/main/java/com/yetote/mp4info/model/FullBox.java - Box decoders
app/src/main/java/com/yetote/mp4info/bean - Value conversion
app/src/main/java/com/yetote/mp4info/util/CharUtil.java
Display Data
- Data view
app/src/main/java/com/yetote/mp4info/fragment/DataFragment.java - Data queue
app/src/main/java/com/yetote/mp4info/util/MyHandler.java - Field data
app/src/main/java/com/yetote/mp4info/model/DataModel.java - Field adapter
app/src/main/java/com/yetote/mp4info/adapter/DataRvAdapter.java
Other components
- User
- MP4 file
Connections 24
- User → Main activity: selects file
app/src/main/java/com/yetote/mp4info/MainActivity.java - Main activity → File access: accesses file
app/src/main/java/com/yetote/mp4info/MainActivity.java - MP4 file → File access: read source
- Main activity → Read interface: starts parsing
app/src/main/java/com/yetote/mp4info/MainActivity.java - Read interface → NIO scanner: delegates to
app/src/main/java/com/yetote/mp4info/util/ReadInfo.java - NIO scanner → Box decoders: reflectively invokes
app/src/main/java/com/yetote/mp4info/util/NIOReadInfo.java - NIO scanner → Box model: creates boxes
app/src/main/java/com/yetote/mp4info/util/NIOReadInfo.java - NIO scanner → Data queue: queues fields
app/src/main/java/com/yetote/mp4info/util/NIOReadInfo.java - Data queue → Field data: stores items
app/src/main/java/com/yetote/mp4info/util/MyHandler.java - Main activity → Box registry: uses registry
app/src/main/java/com/yetote/mp4info/MainActivity.java - Box registry → Box decoders: maps box types
app/src/main/java/com/yetote/mp4info/util/MP4.java - Box decoders → Box model: extends or reads
app/src/main/java/com/yetote/mp4info/bean/Sgpd.java - Box decoders → Basic box: uses base
app/src/main/java/com/yetote/mp4info/bean/Avcc.java - Box decoders → Full box: uses base
app/src/main/java/com/yetote/mp4info/bean/Sgpd.java - Basic box → Value conversion: converts values
app/src/main/java/com/yetote/mp4info/model/BasicBox.java - NIO scanner → Value conversion: decodes fields
app/src/main/java/com/yetote/mp4info/util/NIOReadInfo.java - Main activity → Box tree adapter: uses adapter
app/src/main/java/com/yetote/mp4info/MainActivity.java - Box tree adapter → Box model: renders boxes
app/src/main/java/com/yetote/mp4info/adapter/TreeNodeAdapter.java - Box tree adapter → Box registry: queries types
app/src/main/java/com/yetote/mp4info/adapter/TreeNodeAdapter.java - Main activity → Description view: updates description
app/src/main/java/com/yetote/mp4info/MainActivity.java - Main activity → Data view: shows data view
app/src/main/java/com/yetote/mp4info/MainActivity.java - Data view → Data queue: drains items
app/src/main/java/com/yetote/mp4info/fragment/DataFragment.java - Data view → Field adapter: displays fields
app/src/main/java/com/yetote/mp4info/fragment/DataFragment.java - Field adapter → Field data: renders fields
app/src/main/java/com/yetote/mp4info/adapter/DataRvAdapter.java