bramp / bramp/ffmpeg-cli-wrapper

Make probe result objects more immutable

Ouverte
#384 5 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
enhancement
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.