今の時点のManual.mdの一番下にも書いてるんだけど、出力ゲインを編集したら表題のことをしないといけないというのはRFC 7845 § 5.2.1に書いてある。
If a tool modifies the ID header's 'output gain' field, it MUST also update or remove the R128_TRACK_GAIN and R128_ALBUM_GAIN comment tags if present. A muxer SHOULD place the gain it wants other tools to use by default into the 'output gain' field, and not the comment tag.
「MUST」です。opuscommentはこの規定に基いた動作をするべきだろうか? 確かにこの規定のような配慮が無ければ、音量均一化のつもりで設定していた再生ゲインが出力ゲインの編集で変わってしまうのは当然の事。
だけどopuscommentは出来れば中のメタデータをありのまま扱えるようにしたくて、出力ゲインの編集を行ったら音量均一化用のタグ編集を更新させるのは利用者の方が仕様を把握した上で責任を持つべきだと考えていて、自分で使う時もそうしているわけです。
それで、音量均一化タグ編集をopuscommentで受け持つことになった場合、結構考える事が多い。
- もしトラックとアルバムの片方しかタグが無かった場合、もう片方はタグを設定するのか? 設定するとしたら値は?
- もしそのタグが複数回指定されていたとか値のパースに失敗したとかで編集を続行できなくなった時に、そのフィールドはどうなる? 残すのか捨てるのか?
- もしそのタグがOpus内に存在していて更に編集入力にそれらタグがあったらどちらを適用するのか? 入力側を受け入れる場合、その値は出力ゲインの差を当てるのか?
opuscommentは他スクリプトとの連携をすることが前提のユーティリティーでプレイヤーじゃないから、エラー回復でデータを予想外に変化させるなんて事は出来ればしたくはないんですね。自分自身では直すというか対応することは考えてないけど、そういう仕様もあるんだよーってのを広報したいのでIssueとして立てておきます。
今の時点のManual.mdの一番下にも書いてるんだけど、出力ゲインを編集したら表題のことをしないといけないというのはRFC 7845 § 5.2.1に書いてある。
「MUST」です。opuscommentはこの規定に基いた動作をするべきだろうか? 確かにこの規定のような配慮が無ければ、音量均一化のつもりで設定していた再生ゲインが出力ゲインの編集で変わってしまうのは当然の事。
だけどopuscommentは出来れば中のメタデータをありのまま扱えるようにしたくて、出力ゲインの編集を行ったら音量均一化用のタグ編集を更新させるのは利用者の方が仕様を把握した上で責任を持つべきだと考えていて、自分で使う時もそうしているわけです。
それで、音量均一化タグ編集をopuscommentで受け持つことになった場合、結構考える事が多い。
opuscommentは他スクリプトとの連携をすることが前提のユーティリティーでプレイヤーじゃないから、エラー回復でデータを予想外に変化させるなんて事は出来ればしたくはないんですね。自分自身では直すというか対応することは考えてないけど、そういう仕様もあるんだよーってのを広報したいのでIssueとして立てておきます。