bramp / bramp/ffmpeg-cli-wrapper
Make probe result objects more immutable
- Langage dominant
- Java
- Étoiles
- 1.9k
- Forks
- 424
- Merge moyen
- 5 h 35 min
- PR mergées (30 j)
- 2
Description
Probe result objects (`FFmpegProbeResult`, `FFmpegStream`, `FFmpegFormat`, etc.) are currently mutable — fields are public and collections (e.g., streams list, tags map) are modifiable after construction.
We should make these objects more immutable to prevent accidental modification and improve thread safety.
This is part of the API modernization discussed in #316.
**Scope:**
- Return unmodifiable collections from getter methods (e.g., `Collections.unmodifiableList()` for streams)
- Consider making fields final where possible
- Ensure Gson deserialization still works (may need custom deserializers or builder pattern)
Depends on: #382, #383
Related: #316
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Commencez par localiser les classes de résultats de probe, notamment FFmpegProbeResult, FFmpegStream et FFmpegFormat, puis examinez leurs champs publics et leurs getters de collections. Vérifiez le chemin de désérialisation de Gson ainsi que le travail effectué dans les dépendances #382 et #383. C’est terminé lorsque les objets de résultat empêchent la mutation des collections et utilisent des champs final lorsque cela est possible, sans casser la désérialisation de Gson.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- tooling
- Type d'issue
- Refactorisation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100