Sleep Away.mp3 に無効なビットストリームが含まれる件

こちらは最近MP3デコーダ開発者のお客様からご指摘をいただいた件です。Windows7 に同梱されている Sleep Away.mp3 にはヘッダに無意味なビットストリーム(いわゆるゴミ)が入っています。 そのようなファイルであっても、MP3 の規格 ISO/IEC 11172-3 には準拠しています。しかしMP3 デコーダの実装によってはこのことが問題となる場合があります。具体的には、ファイルが壊れていると表示されたり、ノイズが発生するなど、が考えられます。 影響を受けるデコーダの実装の例は以下のとおりです: ヘッダの Size フィールドに書かれている値を見てタグサイズを調べ、そのタグサイズ分だけ読み飛ばしたところから開始して最初の同期ワードを以ってフレームとする。 そのような実装になっているデコーダでは、Sleep Away.mp3 のオフセット 0x6ec1 からの同期ワード(と解釈できるワード:赤い枠の部分)から始まる部分をフレームであると認識します。そしてその部分をフレームとして読み出すと複数のフィールドに無効な値が入っているため、エラー状態になります。 問題の部分は、ISO/IEC 11172-3 にてらして考えますと、フレームとは解釈できませんので、単純に読み飛ばすことが期待されます。ここを読み飛ばして同期ワードを探していくと、0x6f54 (青い枠の部分)から始まる部分が候補として見つかります。こちらは仕様に準拠したフレームとなっていますので、この場所からデコードを開始すれば問題は起こりません。 デコーダ開発者の皆様にはご迷惑をおかけしますが、MP3エンコーダの実装によってはこのようなビットストリームが生成されることも一般にありますので、フレームと解釈できないビットストリームは単純に読み飛ばすように実装いただけますよう、よろしくお願い申し上げます。

0

楽しいハック講座 (4) Windows7 オーディオアーキテクチャの概要

こんにちは。日本マイクロソフトの我孫子です。今日は Windows7 のオーディオ再生・録音の仕組みについて、ハック講座らしくディープに解説していきます。 Win7 時代に ASIOは必要なのか、いわゆる「ビットパーフェクト」な再生に最適な環境は何か、などなどについて考えていく材料になればと思います。 ■Windows7 のオーディオアーキテクチャ まずは百聞は一見にしかず、ということで、図をご覧下さい。この図は、Win7 におけるオーディオの再生処理の内部動作を示しています。紙面の都合上、ここでは、「理想的な」ドライバが使われている場合のみが描かれており、「理想的でない」場合の内部動作は割愛しています。また、録音処理については大部分の矢印が逆方向になるだけですのでこちらも割愛しています。さらに、ユーザモードが詳細になっている反面、カーネルモードやハードウェアの詳細は割愛されています。それらについてはまた日を改めて取り上げる予定です。 ■理想的なドライバ 「理想的な」ドライバとは、以下のいずれかです。 UAA 準拠 (UAA: Unified Audio Architecture)  USB 接続で Microsoft のドライバ (usbaudio.sys) を使用する場合 IEEE 1394 接続で Microsoft のドライバ (avcaudio.sys) を使用する場合 PCI バス接続でデバイスベンダー提供の HDAudio ドライバを使用し、かつ、そのドライバが Windows7 Certified ロゴを取得している場合 デバイスベンダー提供のWaveRT ミニポートドライバを使用し、かつ、そのドライバが Windows7 Certified ロゴを取得している場合 「理想的でない」ドライバとは、以下のいずれかです。 UAA 準拠 PCI バス接続でデバイスベンダー提供の HDAudio ドライバを使用し、かつ、そのドライバが Windows7 Certified ロゴを取得していない場合 デバイスベンダー提供のWaveRT ミニポートドライバを使用し、かつ、そのドライバが…

0

KB解説: 2010年4月版

今月もマルチメディア関連の修正モジュール(Hot Fix) およびサポート技術情報(KB)が公開されました。6件のうち5件が日本(当チーム)にて解析を実施した案件でした。   概要は以下の通りです。 ■971235 WMS がクラッシュする件 (Server 2003, Server 2008) Windows Media Services (WMS) 9.1/9.5 を長期運用した場合にクラッシュする問題を修正します。先日リリースされた WMS 2008 R2 では修正済みです。 ■979280 WMS で Kerberos 認証に失敗する件 (Server 2003) WMS 9.1 で多数のグループに所属するユーザーの Kerberos 認証に失敗する問題を修正します。環境により若干異なりますが、例としては 200以上のグループに所属する場合に該当します。先日リリースされた WMS 2008 R2 では修正済みです。WMS 2008 (Server 2008) の修正は現在作業中です。 ■980169 MF で再生できない ASF がある件 (Vista) 特定の ASF (WMV/WMA) ファイルを Vista の…

0