DirectShowと戦うスレ ..
308:デフォルトの名無しさん
07/03/12 18:47:41
何度も書かれているけど、接続状態がその倍のレートでないと、レンダラはそのfpsで処理してくれないと思うよ。つまり余計に送られてきたサンプルは捨てる。
出力メディアタイプと違うサンプルを出力しても、期待した通りに動かないよね。
あと処理が間に合わない時も、どこかのフィルタが捨てると思う。
一度CPU負荷がほとんど発生しないプロトタイプを作って実験して、処理遅れなのかそれとも別の問題なのか調べて見ては?接続の問題も解決を。
リアルタイムで処理したいんだよね?
それとDirectShowで「サンプル」といえば、IMediaSample2などのデータの事をしめします。
>>287 は、一度ダウンストリームに送信したサンプルをまた再利用するなよってこと。
309:デフォルトの名無しさん
07/03/12 21:53:42
ビデオレンダラからの品質メッセージをNotifyで受け取ってQuality::Lateを見てみると良いよ。
これがマイナスだとレンダラに間に合って届いている。
プラスだと間に合ってないので到着したとたんにレンダリングされたりして
動きがギクシャクしたり捨てられてカクついたりする
310:デフォルトの名無しさん
07/03/12 22:14:45
休日の夜中になっても頑張ってるから応援したくなるよ あんまり教えすぎはよくないんだけど
>303 サンプルの流れについて
まず上流(キャプチャデバイス)の出力ピンが、変換フィルタの入力ピンCTransformInputPin::Recieveにサンプルを渡す。
入力ピンRecieveはCTranscormFilter::Receiveを呼ぶ。んでTransformメソッドでサンプルを変換した後、
出力ピンから下流(色変換フィルタ)のRecieveを呼び出す(サンプルを渡す) という流れ
>289で「Deliverしてる」って表現したのはマズかったかな。要は下流にサンプルを渡すってことなんだ。
下流の入力ピンのReceiveを呼び出す(サンプルを渡す)。コレがDeliverの正体。
CBaseOutputPin::Deliverメソッドのソースを見てみるといいよ(Baseclassesのamfilter.cppな)
んでTransformフィルタなんだけど、出力ピンのDeliverメソッドは呼んでいないんだ
どうやって送信してるかというと、CTransformFilter::Receiveの中に次のコードがある
hr = m_pOutput->m_pInputPin->Receive(pOutSample);
これ。ここで送信してる。直訳(?)すると、自分の出力ピンに繋がってる入力ピンのReceiveに
Transoformメソッドで変更を加えたサンプルを渡す ってこと。
長いので続く
311:デフォルトの名無しさん
07/03/12 22:48:26
303のカキコミについて説明していくよ
> CTransformFilter::InitializeOutputSample (新しいサンプルを[キャプチャフィルタ]の出力ピンから取得する)
InitializeOutputSampleは出力するサンプルの準備をするメソッドなんだ。
ここでは送信するサンプルのバッファをサンプルと結びつける(バッファ自体は出力ピンが確保してる)
HRESULT hr = m_pOutput->m_pAllocator->GetBuffer(
その後で、上流から受け取ったサンプルのプロパティ(各種フラグと言ったほうがわかりやすいか)や時間情報を
出力するサンプルに設定していく。これがInitializeOutputSampleの役割。
このことから、上流から受けたサンプルと、自分で送るサンプルは全くの別物であるということがわかる。
送信が済んだら、このサンプルをリリースすることでバッファの開放などが行われる
(CTransformFilter::Receiveの最後の方 pOutSample->Release(); )
ちなみに上流から受けたサンプルをダイレクトにそのまま下流に出力するのはCTransInPlaceFilterだ
つづく
312:デフォルトの名無しさん
07/03/12 23:10:36
早い話、君は2回送ってるつもりでも、3回送っていると思われる
しかも3回目のサンプルの時間情報は上流から受けた時間そのもの
313:デフォルトの名無しさん
07/03/12 23:13:13
Transformメソッドはサンプルの内容を変更するだけじゃないと ブー
そういう設計なんでこざいます だからここから送信したら ブーブー
TransformInputPin::Receiveをオーバーライドしないとアカンねん
314:デフォルトの名無しさん
07/03/12 23:23:29
まちがえた TransformFilter::Receiveな 酒のんでるからすまんの
サンプルのタイムスタンプ見てレンダラが表示のタイミングを待ったり、時には捨てたりするアルよ
サンプルの不連続性(Discontinuity)とか同期ポイント(SyncPoint)を示すフラグの扱いとか
注意してくれよ キレイなフィルタを作りましょう。んじゃ頑張れ
315:265
07/03/12 23:33:31
>>308
了解です。
>それとDirectShowで「サンプル」といえば、IMediaSample2などのデータの事をしめします。
そういうことでしたか・・・
失礼しました。
>>309
ありがとうございます。
調べてみます。
>>310-314
とても丁寧にありがとうございます。
がんばります。
316:デフォルトの名無しさん
07/03/14 22:52:01
>>306
dvsdなんかではCreateDIBSectionに失敗しそうな気がするけど、それはないの?
あと、フィルタいじれるなら入力ピンのCheckMediaTypeでMEDIASUBTYPEの
RGB24かRGB32以外を弾くようにすれば、その辺不問にできるような気がするけど・・・。
317:デフォルトの名無しさん
07/03/15 01:14:32
すみません。
DVDをAVIにして保存したいんですが、YUYをRGBに変換するフィルタとAVIを書くフィルタは自前で作るのですか?
色々やってみてダメだったらヒントください。
ちょっと頑張ってくる。
318:268
07/03/15 14:03:14
>>316
はい、失敗します。orz
他の方法でやらなきゃいけないんでしょうか?
319:デフォルトの名無しさん
07/03/15 14:11:19
>>318
(1) 普通のDIBを用意して、そこにDrawDibDrawで描く
(2) 入力ピンのフォーマットをRGB24/RGB32に限定して、フィルタグラフ側で変換してもらう
(3) 自分でDVをでコードする
1,2は実質的にはaviのというかvfwのdvコーデックが使われる。
「やらなきゃいけない」かどうかは自分で決めればいい。
やりたくないならやらなくていいんじゃない?
320:268
07/03/15 16:40:18
>>319
うお、ありがとうございます!
ちょっくら試してみます!
321:268
07/03/15 18:38:43
とりあえず(1)はDrawDibOpenの時点で落ちるので保留。
(2)を試してみます。
URLリンク(webcamxtra.sourceforge.net)
これを活用すればいけそうな気もしてるんですけどね・・・。
今までウェブカメラは自力で処理できていたのでどうにかしたいもんです。orz
322:268
07/03/15 18:52:30
ん、DrawDibOpen動いた。
あとはDrawDibDrawの引数だけだと思うので、ちょっくら追ってみます。
323:デフォルトの名無しさん
07/03/15 23:07:58
ICaptureGraphBuilderを利用してSetOutputFileNameやって、
DVD Navigaterのフィルタを取ってRenderStreamすればAVIにできると思ったのにダメでした。
DVDをAVIにして保存する方法って何かあるんでしょうか。
サンプルグラバつなげられれば保存できる気もするんだけどPINをつなげられない。
324:デフォルトの名無しさん
07/03/16 00:54:44
ビデオ形式
ビデオ タイプについては、サンプル グラバは VIDEOINFOHEADER 形式を必要とします。VIDEOINFOHEADER2 や DVINFO などの
他の形式タイプを必要とするフィルタに接続することはできません。
このため、MPEG-2 や DV ビデオ、またはフィールド ベースの (インターレース)
ビデオとの互換性はありません。
URLリンク(www.microsoft.com)
うぉー、絶望的なことかいてあった。orz....
サンプルグラバに繋がらないわけだ。
Overlay Mixer −> サンプルグラバ −>AVIMUX という流れができるか明日ためしてみる。
325:268
07/03/16 16:53:10
DrawDibBeginがfalseを返す・・・。orz
というわけで他の方法試してみます。
326:デフォルトの名無しさん
07/03/16 16:55:37
BeginとEndは実は要らない。
327:268
07/03/16 17:12:04
>>319
> (3) 自分でDVをでコードする
って、サンプルとかないですよね・・・。orz
328:326
07/03/16 17:19:30
>>326
ま、マジですか。
ちょっくら試してみます。
329:368
07/03/16 17:20:05
あせって名前間違えた。orz
>>328は自分です。
330:268
07/03/16 17:24:46
うーん、DrawDibDrawがやっぱりfalse。
何か記述が足りない気がしてきた。
サンプル探してるんですけど全然見つからないんですよね。orz
331:デフォルトの名無しさん
07/03/16 21:58:23
>>330
サンプルグラバ使ってるんですよね?
SetMediaTypeでMEDIASUBTYPE_RGB24指定して
dvsdで流れてこないようにしたらどうですか?
あなたのレスをすべて追っかけてるわけじゃないんで、外してるかもしれませんが。
332:デフォルトの名無しさん
07/03/16 23:26:24
散文だし小出しだし追いかける気になれない。
333:デフォルトの名無しさん
07/03/17 01:06:17
OverlayMixerの後ろにサンプルグラバはつながらないと思うよ。
OverlayMixerはレンダラとつながる。そしてオーバーレイで自分が描画している。
後ろにつながっているビデオレンダラはメディアサンプルを受け取っておらず、
ウインドマネージャを提供しているに過ぎない。
つまりたとえつながってもサンプルを取ることはできない。
はず。
334:デフォルトの名無しさん
07/03/17 01:23:46
>>333
はい。そうでした。全く繋がらなくて1日無駄にしました。
DVDをAVIにしなきゃ行けないんで作り方を模索中。
やるならOverlayの上流にあるDVD用デコーダフィルタですかね。
GraphEditでRendererとサウンドをぶった切ってASFライタを入れると
DVDをWMVにできたりします。
この方式で画質設定と開始位置と終了位置を設定して保存できればいいのかもしれない。
最後にWMVをAVIに変換して終了させるという最低の方法を選ぶ。
AVIMUXにつなぐ方法ありましたらヒントください。
最近のライブラリから外れたBaseClassのCtransなんたらで自作フィルタを作るしかないんですかねぇ。
それでYUYをRGB24とかに変換。
DVD Navigater -> 何かフィルタ -> Video Commplessor -> AVI MUX -> File Writer
という形で保存できればいいんですが。
335:268
07/03/17 21:42:01
動きますた!(・∀・)
原因は>>316や>>331あたりが正解だったようです。
ボスに言われてイチから書き直したらうまく動きました。
というわけで、本当にありがとうございました。
DirectShowと戦うことができたのはこのスレのおかげです。
336:デフォルトの名無しさん
07/03/17 22:04:51
>>335
おめっとさん、その二つはいずれも私ですがw
実はDirectorのXtraに興味があってちょっと追いかけてました。
Xtraの描画周りって何を参考にしました?
キャプチャした画像を直接Director上で表示するのでしょうか?
ちょいスレ違いスマソ
337:268
07/03/18 22:28:43
>>336
自分はDirector上での描画はやってないですね。
CreateDIBSectionで取得したピクセル毎のBGR値の差分を比較して使っています。
今回DVカメラを扱う上で参考にしたのは↓ですね。
URLリンク(wwwdoi.elec.nara-k.ac.jp)
処理部分コピペでもとりあえず動きます。
# コンソールも出せるみたいです。
Xtra開発者は海外の人ばっかりなので、日本人も増えてほしいもんです。
338:336
07/03/19 21:42:14
>>337
なるほどどうもっす。
DirectShowのフィルタ書いてお茶を濁そうと思っていたのですが、
クライアントの意向によりXtraを直接弄る必要があり、
ちょいとハマってたところでした。
DirectShowも情報ない方だけど、Xtraはもっと険しい道だなこりゃ・・・。
339:デフォルトの名無しさん
07/03/21 10:49:02
asfを再生しようとすると
DirectShow フィルタ グラフに存在しないピンに操作を実行しようとしました。
になって再生できません、対策はありませんか?
340:デフォルトの名無しさん
07/03/21 20:05:39
どうやって再生しようとしてんの?それじゃ意味わからんよ。
341:デフォルトの名無しさん
07/03/21 20:42:03
若いの オラが村では派遣労働の問題を口にしちゃなんねーだ
お前さんはまだわけぇから言いたいこともあるべぇ
だべな、派遣問題を口にするとバカにされたと思ってムキになって怒る者がおるでよぉ
てめぇでの責任で派遣やってる癖に派遣問題に触れると逆ギレするバカなんだけどよぉ
そんでもこの問題の指摘は駄目だっぺぇ
派遣のことは口にしちゃなんねぇ
この村みたいな民度ゼロの会社で現実忘れるためにはよ
北朝鮮とか宗教団体と一緒でよ、駄目なものを駄目と言ってはなんねえだべさ
タブーを口にしちゃいけねぇだ
342:デフォルトの名無しさん
07/03/25 16:03:45
変換フィルタを作っているんですが、そのフィルタのコンストラクタでmallocを使って
メモリを確保し、デコンストラクタでfree()で解放するようにしているのですが、
アプリ側でRemoveFilter()をしても、デコンストラクタが起こらないのかメモリが解放されません。
どうすればデコンストラクタを起こすことができるでしょうか?
343:342
07/03/25 16:05:53
↑すみません、デコンストラクタじゃなくてデストラクタです。
344:デフォルトの名無しさん
07/03/25 16:30:43
RemoveFilterってグラフからフィルタを切り離すだけだろ
そりゃデストラクタは呼ばないんじゃねーの?
345:342
07/03/25 18:09:19
>>344
そうみたいですね。
いろいろ考えたんですが、完全に削除できないのなら、そのまま残しておいて再利用しよう、という
方針で組んだところ、望む動作を実現できました。
いちいち削除する必要がなかっただけの話でした・・・。
ありがとうございました。
346:デフォルトの名無しさん
07/03/25 21:29:18
Releaseが完全に行われていないだけだろ。参照のチェック汁。
347:342
07/03/25 23:33:06
>>346
なるほど。
調べてみます。
348:デフォルトの名無しさん
07/03/26 09:07:56
新規質問です。
ピン接続時のメディアタイプを調べたいのですが簡単に調べる方法がないため今回「メディアタイプチェックフィルタ」を作る事にしました。
質問1.調べるフィルタを誰か作ってませんか?
時間をかけず作りたい為、「TranceForm」をベースにしているのですが、このフィルタで入力ピンのみの構成のフィルタはできますか?(テンプレートのピン数を1本にしても2本になってしまいました何故…?)
349:デフォルトの名無しさん
07/03/26 10:16:35
いくら出す?
350:デフォルトの名無しさん
07/03/26 10:17:19
20円
351:デフォルトの名無しさん
07/03/26 12:14:35
>>349
自分なら作るのに3〜4時間位かかってしまいそうなので、
時給1000円×4hまでならなんとか。。
でも誰か作っていそうなんでそれを使いたいです。
352:デフォルトの名無しさん
07/03/26 12:53:47
>>348
Dumpフィルタベースじゃダメなんかいね?
あれは入力ピン1コだけど。
353:デフォルトの名無しさん
07/03/26 13:07:03
IBaseFilter::EnumPins
IPin::ConnectionMediaType
それともこっちか
IPin::EnumMediaTypes
簡単だろ?
とりあえず、リファレンスくらい読め。
354:デフォルトの名無しさん
07/03/26 22:49:48
TransformFilterならそのまんまCheckMediaTypeで全部拾えばよかばってん
355:デフォルトの名無しさん
07/03/26 23:39:39
>>354
考え同じ。せっかくだから上位フィルタに優先接続して欲しいタイプも入れられるようにしようかなと検討しとるですばい。
IBaseFilter::EnumPins
これはピンごとに管理したい時につかうメソッドだよ。ピン1つでは実装いらないよ
IPin::ConnectionMediaType
これは再生途中にタイプ変更したい時に実装したほがよさそ
356:デフォルトの名無しさん
07/03/27 00:10:35
突然思い出したんだけどsampleの中にnullnullフィルタだかなんだか
プロパティページで接続タイプ一式が表示されるやつがあったような ないよーな
357:デフォルトの名無しさん
07/03/27 00:40:51
何か違うと思って調べてみたらNullInPlaceだったわ ごめんな
nullprop.cppのNullIPProperties::OnApplyChangesみるといいアルよ
358:デフォルトの名無しさん
07/03/27 00:56:20
なるほどなるほど。
NullIPPropertiesはなかなか難しいことやってますねぇ。。。
理解しずらいや。。
取り敢えず。
上位フィルタとの接続された
フォーマットタイプ、
メディアタイプ、
メディアサブタイプ
をプロパティページで表示できる変換フィルタを作成できました。
フォーマットタイプが「VIDEO」だったら解像度とかフレームレートとか付加情報を
表示できるようにしてみるか。。
このフィルタ欲しい人いる?
まぁきっとだれかもっといいものを作っている人がいるかとは思うのですが
359:デフォルトの名無しさん
07/03/27 01:23:35
ノシ
360:デフォルトの名無しさん
07/03/27 01:30:21
了解。じゃあ
人に使ってもらうには汚すぎなんで
(改造しながら他のフィルタのデバッグしてるんで・・・)
週末にでも機能を絞り込んで
見やすくしてみます。
終わったら、
h URLリンク(ragesakai.web.fc2.com)
にWebpageもってるんであげてみます。
361:デフォルトの名無しさん
07/03/27 11:29:14
ありがたいっす。マタリ待ちます。
362:デフォルトの名無しさん
07/03/28 07:41:45
自分が知らないメディアタイプが結構あるね。
メディアタイプ一覧がわかるサイトさがさなきゃ
接続メディアタイプチェックフィルタでは、最悪知らないGUIDが出てきたら
そのまま貼っとくか…
363:デフォルトの名無しさん
07/03/28 21:21:39
uuids.hでよかばってん
364:デフォルトの名無しさん
07/03/28 21:41:53
九州男児さんありがとう
365:デフォルトの名無しさん
07/03/30 01:03:46
AVIファイルの一部を切り出して 拡大縮小したAVIつくりたいんだけど
元AVI(640,480)でRECT(120,120,440,320)の範囲だけきりだして320x240のAVIにしたり
範囲を拡大して640x480にしたいんですが、サンプルグラバのコールバックつくって
中で処理しなきゃダメですかね?
366:デフォルトの名無しさん
07/03/30 08:24:20
「中」ってどこを指してる?
自分なら映像切り抜きフィルタを作って解決するけどフィルタグラフ側でもできるよ。
フィルタグラフ側でAVIの切り抜きを行った時のサンプルグラバの制御は凄く大変そう…ってか自分には無理なレベル
367:デフォルトの名無しさん
07/03/30 08:30:25
あ、切り抜きの手段としてグラバを使うのか。
グラバで取得した画像は元AVIと同じサイズなんね。なら出来…るかな?
だけどやっぱり、「切り抜き拡大縮小フィルタ」作るほうが簡単なのは間違いない。
368:デフォルトの名無しさん
07/03/30 20:49:08
>>367 TransformFilterで切り抜けばよかばってん。
んで後ろにAviMux、FileWritterとつなげればよかよ。
369:365
07/03/30 21:25:10
サンプルグラバのコールバック=「中」です。
TransformFilterって、ベースクラスのライブラリから自分で作るフィルタですか?
最初から用意されててAddFilterで追加できるなら使ってみたいかも。
370:デフォルトの名無しさん
07/03/30 21:38:03
> TransformFilterって、ベースクラスのライブラリから自分で作るフィルタですか?
んだよ自分で作るんだよ Transformメソッドで好きにいじってよし
んで後ろにAviMuxが繋がる時にね、ビデオの縦横サイズはオリジナルサイズじゃなくて
自分が変更するサイズを提示するったい Muxは提示されたサイズをヘッダ情報に
書いてた気がするばってん
371:デフォルトの名無しさん
07/03/30 22:23:31
IRenderEngine2とかで何とかなるんでしょうか。
DirectShowの編集サービスっての使えますか?
372:デフォルトの名無しさん
07/03/30 22:37:06
質問に答えてくれた皆様ありがとうございました。
ちょっくらトランスフォームフィルタつくってみます。
コンプレッサの前にトランスフォームでサイズ変える処理いれてみます。
CreateDIBSectionでHBITMAPつくってストレッチビルドして試してみます。
373:デフォルトの名無しさん
07/03/31 00:03:12
>>372
作り方は大正解◎。
コツを少々・・・
流す映像のサイズをかえちゃうと
設計が大変になるから
「切り出し」→「拡大」でもとのBMPサイズに合わせるようにすると
いいよ。
それとストレッチベルトを「CTransform::Transform」内でつかうんだけど
ストレッチベルトの関数1つで全体のCPU負荷が15%ぐらい上がってしまう。
もし気になるなら、画像処理ライブラリで置き換えするとよいよ
俺ここんとこ九州男児さんと考え方が似てる。。同じような職種&年齢なんだろうな。
374:デフォルトの名無しさん
07/03/31 00:27:00
おいどんは昔printfをプリンテフと読んで笑われた苦い経験があるばってん
一応つっこんでおくけど、「ブリット」ですたい。
StretchBlt ストレッチブリット BitBlt ビットブリット
375:デフォルトの名無しさん
07/03/31 00:37:23
>>374
ほへ〜。初めて知りました。
呼び方は「Blt」⇒「ベルト」と呼んでました。。
言い訳しまくると、自分組み込み系出身でwinアプリ作るの今年から初めた門で。
WinAPIを知らなさすぎる。。この機会に他の呼び方も覚えよう
今後直しますありり^^
そして、メディアタイプチェッカーも明日だらだらし終わったら修正に取り掛かるっす
376:デフォルトの名無しさん
07/03/31 00:42:28
関数の呼び方議論↓
URLリンク(rararahp.cool.ne.jp)
377:デフォルトの名無しさん
07/03/31 00:46:01
>>373
なんか、映像のサイズ変えて保存したいって突然いわれたんで
変更しなきゃいかんのです。
切り出して切り出したサイズで保存なんですよ。
切り出して元の再隋拡大だったらサンプルグラバでおわったのに。
サンプルグラバでCreateDIBSectionかけてmediasampleからバッファとって
データ加工して代入。ここまでは出来てOKだった・・・
ストレッチビルトして正しく終わったのに・・orz...
378:デフォルトの名無しさん
07/03/31 01:09:59
ぶりっとっていう呼び方なんかアレだよね。アレ。
DirectX8からPresent()になったのはホント良かったと思うよ。
379:デフォルトの名無しさん
07/03/31 01:26:56
>>377
ごめん。。
内容的には以前自分が作った「解像度リサイズフィルタ」
これの仕組みがまんまメインになってくるんだが
教えてあげられない。。
自分で調べてくれ。
380:デフォルトの名無しさん
07/03/31 01:57:15
>>379
できたから問題無し。
381:デフォルトの名無しさん
07/03/31 02:28:31
TransformFilterを使わずにビデオソースの拡大縮小と切り出しする方法って無いのかな。
切り出しと拡大縮小ぐらい用意されてるような気がして探し回ってた時期があった。
382:デフォルトの名無しさん
07/03/31 16:37:52
一口にビデオソースといってもRGBやらYUVやら色々あるけんね
拡大、縮小にも色々なアルゴリズムがあるったい 自分の好きなようにつくるのが一番よかよ
どうせつくるならそのへんプロパティページで色々指定できるとうれしいね
383:デフォルトの名無しさん
07/03/31 22:24:58
ここもネガティブさんが沸いてるよ。
自分で調べれって話なら書く必要ないじゃん。
教えて上げられないレス増えるからネガティブさん消えてくれwwwwwwwwwww
384:デフォルトの名無しさん
07/03/31 23:03:57
>>383
DirectShowやってる人の総人口が少ない。
そしてそれが理由なのかここのスレの回答側に立つ人も少ない。
このスレで役に立てばと思って結構回答をしているが、
何が難しいかわかるけど教えてあげられない状況だったので、
放置されるよりはいいと思って書き込みました。
(本スレ後半でageてるやつはほとんど自分)
>>383さんもそんなこと書き込んでないで回答側に回ってくれ
385:デフォルトの名無しさん
07/04/01 00:08:34
まあ内容はともかく、少しでも盛り上がってくれるのは嬉しいわな。
その昔サンプルグラバを知らなかった自分は自前のフィルタ作っちゃったし、
話の流れで知ることもそれなりに多い・・・。かな?
386:デフォルトの名無しさん
07/04/01 03:12:34
>>363
uuid.hではすべてのメディアタイプは乗ってない。
「MEDIASUBTYPE_I420」
が入っていなかった。
387:C++
07/04/01 08:46:54
C++は今最も優れているプログラミング言語だ。C++さえあればなんでも出来る。CGI一つにしたって、今はPerlなんて使わなくても全部C++で出来る。そんなC++を使わないでどうする。
388:デフォルトの名無しさん
07/04/01 13:44:39
「全て」のメディアタイプって概念をどう捉えるかだな
まずはDirectX SDKのindlude、DirectShowのBaseclasses ここのソースで定義されてるものを
押さえておけば良いんじゃないの?
極端な話、guidgen使って自分で独自のMediaType作れちゃうわけだし。
389:デフォルトの名無しさん
07/04/01 22:43:15
MEDIASUBTYPE_I420ってGUIDとしては存在するかもしれないけどどっかのメーカーが勝手に作っただけじゃないの?
DirectShowのオフィシャルな定義としてはMEDIASUBTYPE_IYUVじゃないのか。
390:デフォルトの名無しさん
07/04/01 23:22:10
そういや自分もmplayerの公開されているソースを見て
普通にMEDIASUBTYPE_I420という定義があるものと思い込み、
いざ実装してみたらものの見事に未定義だった、ということがあったなあ。
IYUVとI420は同じフォーマットのようなので、
私もMEDIASUBTYPE_IYUVを使ってますが・・・。
391:デフォルトの名無しさん
07/04/02 09:52:04
拡張可能なばっかりにかえって不毛になってるのか
やれやれ
392:デフォルトの名無しさん
07/04/02 11:49:43
ホントにDirectShowって資料少ないのね。VfW勉強した時も思ったけど
こういう動画処理インターフェースってプログラムとして人気ないのかな?
393:デフォルトの名無しさん
07/04/02 13:56:56
資料は少ないなりに充実してると思うけど・・・
漏れにはACLの方がワケワカメだよ。
394:デフォルトの名無しさん
07/04/02 14:27:52
動画処理に興味をもつほど自由に弄れる動画素材を持ってる人が少ない、
という事情もあるのではないか。
後は仕事になるかどうかとか。
395:デフォルトの名無しさん
07/04/03 20:48:20
+ 三ミヽ、⊂⊃
+ 三ミ |∧η∧
/⌒\ (,,・Д・)<ただいまんこ〜オレも便乗して質問だぞ。
+ 川川 l l/つ つ━☆ トランスフォーマーとかいうのをつかって
〜( / CTransformFilter::DecideBufferSizeここでメモリを確保する所までたどり着いたぞ。
(/"U 俺も拡大縮小をやりたくて書き込みするぞ。オマンコクロスだぞ。
C言語は7年目だぞ。切実だぞ。
396:デフォルトの名無しさん
07/04/03 22:27:40
>>395
俺は3年目だけど苦労したができたぞ。
で、何がしりたいんだぼけぇ
397:デフォルトの名無しさん
07/04/03 22:32:34
・質問のただしいしかた悪いしかた
【いい例】
ぽまえら!おしえやがれぃい。
QVGAをVGAにリサイズしようと思うんだがDecideBufferSizeというめそで
115200byteしかとれねええんじゃUZEEEEEE!!
これを230400byteとれるようにする方法を教えやがれ
【悪い例】
いつも大変このスレッドを読ませていただき参考にさせてもらっております。
今回拡大縮小をやりたいのですがどのようにしたらいいかわかりません。
C++、MFCはできます。
また自分は過去XXXということをやっておりました。
大変恐縮ですがなにとぞご指導をよろしくお願いいたします
398:デフォルトの名無しさん
07/04/03 22:37:54
まちがえた〜
×115200
○230400
×230400
○460800
用は質問の観点を絞り込んでくるかどうかの差だからな
399:デフォルトの名無しさん
07/04/03 23:59:22
⊂⊃
★ ∧η∧
\_(,,・Д・)<>>396 ポンドルウォーリアを特殊召喚する方法がしりたいぞ。
ヽ |フ ナニがしたいのか忘れたぞ!
/_ _| AVIを半分の解像度にして保存したいんだぞ!これが目的だぞ。
逆もあるぞ。オパンツ丸見え!
>>397 うんこちんこまんこ?キョカカカ!あばーあばばー!
参考にさせてもらったぞ。面倒だから、ゴゾブログで質問に答えてくれればそれでいいぞ。
オマンコクロッサー!
400:デフォルトの名無しさん
07/04/04 00:59:12
・・・>>397で極端に書いたのに意味を理解しとらんのでヌルーする
401:デフォルトの名無しさん
07/04/04 01:28:29
メディアタイプチェックフィルタ
作ったぞ
実は裏で機能をいろいろ盛り込んでみたが、
普通の使い方だけしてくれ。
URLリンク(zetubou.mine.nu)
っ【 [zetubou6474.bin] メディアチェックフィルタ 96 application/octet-stream 2007年04/04(水)01:25
これをリネーム
⇒0Mediachk.ax
それをregsvr32で登録
402:デフォルトの名無しさん
07/04/04 01:52:35
ここはム板だ
403:デフォルトの名無しさん
07/04/04 08:59:19
ゴゾブログのプロフ欄の写真の子カワイイ。
写真と引き換えならオニーサンがAVI半分にするフィルタ作ろう。(ただしソースはやれないがな)
404:デフォルトの名無しさん
07/04/04 14:50:04
URLリンク(www.free-codecs.net)
405:デフォルトの名無しさん
07/04/04 16:48:36
>>404
このムーンライトフィルタってさ、カメラがI420の時は接続すらしてくれないんだね。
解像度もメディアタイプも変更してくれるいいフィルタだと思ったんだけど残念
406:359
07/04/04 17:35:35
>>401(>>360の人?)
ありがとう、ダウンロードしてみました。
個人的には結構重宝しそうな感じです。
407:デフォルトの名無しさん
07/04/04 18:23:20
>>360=>>401
です。
ちゃんと動きましたか?
バグを見つけたら速やかに報告よろ。
時間見つけ次第ちゃんとウェブページに反映しとくです。
感謝されるのに生き甲斐を感じた。ありり
408:デフォルトの名無しさん
07/04/04 19:27:31
CBaseVideoRendererでフィルタを作っていて、一時停止中に画面の再描画を
行うためGetCurrentSample()でサンプルを得ています。
サンプルの取得は成功しているのですが、このあとに再生するとDoRenderSample()が
呼ばれなくなって固まってしまいます。
どうしてでしょうか?
409:デフォルトの名無しさん
07/04/04 20:04:25
>>408
Releaseし忘れっぽい
410:デフォルトの名無しさん
07/04/04 21:07:23
⊂⊃
★ ∧η∧
\_(,,・Д・)<ただいまんこ〜拡大縮小できたぞ。BokkingFilterの完成だぞ。
ヽ |フ ビデオのサイズが変わらなかったのはフィルタ接続後にサイズ変えてたからだぞ。
/_ _|
CheckTransformでサイズを変更したぞ。
変更したサイズからRGB24で必要なバッファサイズを計算して保存だぞ。
ストレエッチDIBitmapだぞ。それに対してソースからストレッチDIBitsして
完成したぞ。
そして完成した後に次の問題が出たぞ。
時間指定して3分の動画で1分目から2分目を抽出したいんだが
ControlStreamにS_OK帰ってきてもダメポだぞ。
AVI再圧縮で時間指定して抜き出すテクを知ってたら教えて欲しいぞ。オマンコクロスだぞ。切実だぞ。
411:デフォルトの名無しさん
07/04/04 21:12:04
⊂⊃
★ ∧η∧
\_(,,・Д・)<あと、AVI MuxフィルタをキャプチャグラバからFindInterフェラして
ヽ |フ IAMStreamControlを生み出してStartAtとStopAtする方法を作ったんだが
/_ _| ム圧縮AVIなら何とか成功してWMVとかコーデック使うと画像が表示されんぞ。
あと、保存してない間も無駄に待たされて酷い目にあったぞ。
誰かオレがナニをすべきか教えて欲しいぞ。
412:デフォルトの名無しさん
07/04/04 21:36:48
ControlStream(&PIN_CATEGORY_CAPTURE,ぬるぽ,ぬるぽ,開始時間,終了時間、0,0);
⊂⊃
★ ∧η∧
\_(,,・Д・)<キャプチャビルダのコントロールストリームはこんな具合になってるぞ。
ヽ |フ オマンコクロスだぞ。ソースを持って変えれないので具体的に説明できんぞ。
/_ _|
413:408
07/04/04 22:46:10
ありがとうございます。
まさにそれでした。SDKのヘルプに書いてありましたね
414:デフォルトの名無しさん
07/04/04 23:23:04
>>410
素直にこれ使えば?
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
415:414
07/04/04 23:23:49
貼り忘れた
URLリンク(msdn.microsoft.com)
416:デフォルトの名無しさん
07/04/04 23:35:12
⊂⊃
★ ∧η∧
\_(,,・Д・)<>>415 それも考えたんだぞ。大人の都合ってヤツでダメなんだぞ。
ヽ |フ くやしいぞ。オマンコクロスファイヤーハリケーンだぞ。
/_ _| 明日、ためしに作ってみるぞ。
417:デフォルトの名無しさん
07/04/04 23:45:11
いいから↑はほっといてやれ。
418:359
07/04/04 23:57:28
>>407
今のところ問題なさそうですよ。
ただ、スレの流れを見ると私以外で使ってみた人いないのかな?w
もう少し使ってみて気がついたことがあったら報告しますね。
419:デフォルトの名無しさん
07/04/05 00:03:51
>>418
>私以外使ってる人いない…
(´・ω・`)ショボーン
420:デフォルトの名無しさん
07/04/05 21:34:17
おまえら便利なフィルタの一覧サイト作ろうぜ!
あと、××の製品かうと着いてくるフィルタは…とか語ろう
421:デフォルトの名無しさん
07/04/06 11:53:29
つスレリンク(avi板)
・・・とはいえ、思いっきり過疎ってるスレだし>>419のニーズには合わんかな。
ところで質問です。
AddSourceFilterで追加したファイルソースの
出力ピンのメディアタイプを指定する方法はないでしょうか?
あるファイルを指定したとき、ただRender()しただけでは期待しているフィルタに
繋がらない(ファイルソースのメディアタイプがGUID_NULLになっている)ので
強制的に指定してみたいのですが・・・。
422:デフォルトの名無しさん
07/04/06 12:41:37
>>421=>>359さん??
質問は>>419に聞いてるのかな?
だったら応えます。
上流フィルタがカメラとかの入力デバイスの場合は「フィルタのピンプロパティ」から出力タイプを変更できるものがほとんどです。
仮に「動画」などのファイルであれば変換フィルタを噛ます事で変更は出来ますが新たに付けてやることは出来ません。
新規にフィルタを作成すればメディアタイプを付加しる物を作れるよ。
他の方法はわかりません
423:デフォルトの名無しさん
07/04/06 13:13:09
>>422
> >>421=>>359さん??
うわー、なんで分かるの?w
> 新規にフィルタを作成すればメディアタイプを付加しる物を作れるよ。
> 他の方法はわかりません
やっぱりそれしかなさそうですね。
AsyncRdrサンプル辺りをベースに1つ作ってみます。
424:デフォルトの名無しさん
07/04/07 01:07:30
⊂⊃
★ ∧η∧
\_(,,・Д・)<無圧縮タイプのAVIなら時間切り出しできたぞ。
ヽ |フ ただ、無駄に時間がかかるぞ。切り出すまでフィルタにデータが流れて処理してるんだぞ。
/_ _| ポンドルウォーリア特殊召喚だぞ!ゴルァ!
425:デフォルトの名無しさん
07/04/08 10:32:36
>レンダラは知らないけど、画面の上側にプレーヤを持っていくと少し(体感しないけど)
>速くなるらしい。なんかPresent(?)の戻りが早くなるとか言ってた。
これ本当?
426:デフォルトの名無しさん
07/04/08 11:42:57
>>425
画面描写しないぶんタイムスタンプに忠実になるだけかと。。
>>424の話とは全然違う話
427:デフォルトの名無しさん
07/04/08 17:03:02
Presentの戻りって何?
プリロールかな?としても意味通じないし…
予測ツカナス
428:デフォルトの名無しさん
07/04/08 17:45:38
IDirect3DDevice9::Present()の話だな。
429:デフォルトの名無しさん
07/04/09 21:41:47
初心者です。SDKサンプルで分からない点があるのですが、お教え頂けないでしょうか。
プログラム動作としては、3つのmp3ファイルをタイマーで順繰りに再生するだけです。※1
この中でソースフィルタを変更してグラフを再構成する部分で分からない点があります。
流れ
1.新しいソースフィルタをグラフに追加する。
2.古いソースフィルタをグラフから削除する。
3.新しいソースフィルタの出力ピンからRenderする。
2の部分の詳細は以下のようになっています。
A.グラフ内のフィルタを列挙する。
B.列挙された全フィルタについて
a.一旦グラフから削除する
b.古いソースフィルタでなければグラフに追加する
疑問点
b.の部分がある意味がわかりません。自分としては、グラフ内の全フィルタを削除して、新しい
ソースフィルタを追加して、Renderすれば簡単に思えるんですが...
どうかよろしくお願いします。
※1 ソースはSDK_Path\Samples\C++\DirectShow\Players\BGMusicです。
430:デフォルトの名無しさん
07/04/09 22:16:14
SwapSourceFilterのメソッドのこと?
431:デフォルトの名無しさん
07/04/09 23:29:52
>>429
Render は重いから。
432:デフォルトの名無しさん
07/04/10 00:46:05
⊂⊃
★ ∧η∧
\_(,,・Д・)<>>429 サウンドってのは、レンドルァすると全部のcodecを試すんだぞ。
ヽ |フ だから、全て消して再構築すると連続再生とかできんぞ。
/_ _| アイマスの魔法をかけて!から、とかちつくちての連続技の間に途切れるって事だぞ。
433:デフォルトの名無しさん
07/04/10 01:13:25
>>432
やべぇ見直した。。
434:デフォルトの名無しさん
07/04/10 01:55:46
ありがとうございます。
なるほど、それで以前使ったフィルタは残してたんですねφ
ところでその時、つながっていないフィルタがグラフ上に散在している状態ですよね。
その状態でRenderしたら、全Codecを試さず、散在しているフィルタを繋げてくれるんですか?
それともRenderを使わず、ピンを繋ぐ方法が別にあるのでしょうか?
この板のレベルに達するまで勉強して、出直してきます。(時間かかりそう...)
435:デフォルトの名無しさん
07/04/10 07:21:49
⊂⊃
★ ∧η∧
\_(,,・Д・)<>>434 朝勃ち中だが答えるぞ。
ヽ |フ レンダーすっと、フィルタが追加されている物から試すんだぞ。
/_ _| そのため、レンダーする前にvmr9のフィルタとかを入れておくとただのビデオレンダーじゃなくなったりするぞ。
だから、先に自分で作ったフィルタを入れておくと正しく繋がったりするぞ。
もちろん、Renderを使わずにグラフビルダのほうでConnectすることができるぞ。
IPinってのをフィルタから抜き出して接続できるみたいなんだぞ。
使った事無いからうまんちんまんだぞ。
436:デフォルトの名無しさん
07/04/10 07:39:07
⊂⊃
★ ∧η∧
\_(,,・Д・)<なんか、間違ってるかもしれんが許してほしいマンコ!んじゃ為替予想書いてくるぞ。
ヽ |フ
/_ _|
437:デフォルトの名無しさん
07/04/10 12:02:08
すみません、質問いいですか?
今、DirectShowでUSBカメラからサンプルグラバでBMPをキャプチャするプログラムを作っています。
コールバックを使用してキャプチャをしようとしているのですが、
SetOneShotを使って1フレームだけキャプチャすることは出来ないのでしょうか?
ためしにSetOneShot(TRUE)としてみても、コールバックされ続けてしまいます。
438:デフォルトの名無しさん
07/04/10 17:56:39
出力ピンがオーディオとビデオの2つある、Splitterフィルタを作成しています。
フィルタのGetMediaTypeでは、ピンによって2通りの設定が必要と思っています。
(オーディオの方の出力ピンからGetMediaTypeが呼ばれた場合はオーディオの値をセット、
ビデオの出力ピンからGetMediaTypeが呼ばれた場合はビデオの値をセットというように。)
しかし、GetMediaTypeでは、現在どちらの出力ピンから呼ばれているのか判別できないのですが、
どうしたら良いでしょうか。
出力ピンのクラスは同じものを使っているのですが、オーディオ用のピンクラス、ビデオ用の
ピンクラスと別に作成しなければならないのでしょうか?
439:デフォルトの名無しさん
07/04/10 19:30:13
>>438
自分がどっちのピンかを区別して処理を変えればいいじゃん。
440:デフォルトの名無しさん
07/04/10 21:10:34
⊂⊃
★ ∧η∧
\_(,,・Д・)<>>437 ただいまんこー!ドピュンコしたあとに、コールバックを外せばOKだぞ。
ヽ |フ コールバックをセットしたままだと永遠にデータが流れるぞ。
/_ _| オレだったらSampleCBのあるクラスに BOOL m_Ochinpoいれて
データを流したくない時はfalseいれて SampleCBのなかでreturn S_OKしちゃうぞ。
オマンコクロッサー!
441:デフォルトの名無しさん
07/04/10 21:13:06
⊂⊃
★ ∧η∧
\_(,,・Д・)<>>438 IPin淫乱フェラにあるQueryPinInfoで解決できる気もするぞ。
ヽ |フ 俺も調べないと分らんぞ。スマソだぞ。力になれんぞ。
/_ _|
442:デフォルトの名無しさん
07/04/10 22:06:54
VBプログラマにVisual C++を教えるスレ★ Part25
443:デフォルトの名無しさん
07/04/11 00:10:36
>>441タソ
フィルタ内部の話だからQueryはちがうとおもうぞ。
自分も>>439の意見に賛成です。
@純粋仮想メソッドGetPinを実装してピン番号を取得
AGetMediaTypeにてまず@を呼び出す。
Bピン番号が「1」ならビデオだから・・・メディアタイプ「Video」を要求
Cピン番号が「2」ならAudioだから・・・・メディアタイプ「PCMAudio」を要求
iPositionにて要求するものをそれぞれ数個書いてやればいいかな。。
444:デフォルトの名無しさん
07/04/11 00:49:17
⊂⊃
★ ∧η∧
\_(,,・Д・)<>>443 オレはトランスフォーマーフィルタで1対1の戦いしかやったこと無かったぞ。
ヽ |フ これでピンが複数あるフィルタも手だせそうだぞ。
/_ _|
445:デフォルトの名無しさん
07/04/11 00:50:19
>>444
コンボイの謎を2週くらいクリアしとけ
446:438
07/04/11 14:38:35
返事ありがとうございます。
>>439
僕はどっちのピンか区別できなくてコマッてます…
>>443
GetPinはピン番号を指定して、その番号のピンを取得するのだと思うのですが。
それだとピンの区別はできなくないですか?
実際には、フィルタはm_pOutputAudioとm_pOutputVideoの二つの出力ピンを持ってます。GetMediaTypeの中で、CBasePin::Name()でピンIDを取得して、判断しようかと思いましたが、結局ピンの指定によって取得値が変わってしまいます。
m_pOutputAudio->Name() とすればAudioが返るし、
m_pOutputVideo->Name() とすればVideoが返るので、
結局どちらのピンかわかりません。(両方が存在するので当たり前ですが)
※m_pOutputAudio,m_pOutputVideoはフィルタ作成時に作られます。
どうしたらよいですかね…
447:デフォルトの名無しさん
07/04/11 14:59:29
>>446
if (pOutputAudio == this) {
//オーディオピンの処理
} else {
//それ以外
}
448:448
07/04/11 17:09:38
>>447
参考にします。
フィルタのGetMediaTypeでピンを判別するから良くなかったみたいです。
フィルタのGetMediaTypeは、出力ピンのGetMediaTypeからコールされるので、
出力ピンのGetMediaTypeでどっちのピンか判断し、それを記憶しておくことにしました。
CSplitterOutputPin::GetMediaType()
{
if(0==lstrcmpW(this->m_pName, L"Audio")){
//フィルタのメンバ変数にオーディオだと記憶させる。
m_pSplitterFilter->m_bOutputPinAudio=true;
}
else{
//フィルタのメンバ変数にビデオだと記憶させる。
m_pSplitterFilter->m_bOutputPinAudio=false;
}
return m_pSplitterFilter->GetMediaType();
}
↑のようにして、フィルタのGetMediaTypeでは、m_bOutputPinAudioを見て、
オーディオ、ビデオの設定をするようにしました。
一応接続はこれで上手くいきました。何かとても簡単な質問をしてしまった気がしますが…
449:デフォルトの名無しさん
07/04/18 22:36:27
1500円の2割引はいくら?
時速80km/hで走る車が1時間何キロ走る?
・・・ポカーン
450:デフォルトの名無しさん
07/04/19 00:29:28
⊂⊃
★ ∧η∧
\_(,,・Д・)<1500円の2割引きは計算不能だぞ。俺の脳が再起不能(リタイア)したぞ。
ヽ |フ 時速80kmでオレは走れないので1時間も車を見張れないぞ!
/_ _| 果てしなく遠くが答えだぞ。
451:デフォルトの名無しさん
07/04/19 06:23:08
都合でDirectshowを使い始めることになりました初心者です。
Webカメラで取った映像を扱いたいので、SDKにあるAMCapを参考に機能を探しているのですが
キャプチャした動画をaviではなくmpeg1等で圧縮して吐き出したいのですが
フィルタを何処の関数で挟めばよいのでしょう。
あと、映像のガンマや彩度等がプロパティで調整できてしまいますが、これはなんのフィルタを使用しているのでしょうか?
初心者質問すいません。
452:デフォルトの名無しさん
07/04/19 07:35:23
>>451
プロパティはソース見りゃわかるんじゃない。
以下推測
色調節のフィルタが存在するのではなくて
キャプチャデバイスやそのピンのプロパティじゃないのか。
Webカメラのデバイスドライバが変わればその機能も変わる。
MPEG-1エンコーダって標準装備か?
俺持ってない。存在しないフィルターは使えんよな。
453:デフォルトの名無しさん
07/04/19 07:54:41
沖縄県の方へ(命に関わる注意事項です)
沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。
民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄」等で検索をお願いします。
この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから…
※一国二制度
簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。
(つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。)
さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。
3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。
そして中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。
今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。
自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。
発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。
454:451
07/04/19 14:09:38
>>452
えっと、回答ありがとうございます。
トライ&エラーしながら死んでおります。
>色調節のフィルタが存在するのではなくて
>キャプチャデバイスやそのピンのプロパティじゃないのか。
...確かに、自宅で違うWebカメラで試したときは、設定ダイアログの内容がぜんぜん違っていましたね。
>MPEG-1エンコーダって標準装備か?
もう一度探しなおしたデコーダーだけで、エンコーダーはありませんでした。死んできます。
aviだと保存するにも重いから、実用的なサイズに直して自動保存しておいてって言われたんですが、asfかモーションJPEGかDVか、しか使えないのかな?
まぁ、いくらか頑張ってみます。
455:デフォルトの名無しさん
07/04/19 21:04:09
TMPEGEnc買っちゃいなYO!
456:デフォルトの名無しさん
07/04/19 23:22:24
>>455
GRAPHEDTがあれば買わなくてもいいな俺は。
>>454
MPEG4のコーディック2なら標準装備であるよ。
GraphEdtで↓な構成を書いてみるよろし
「WebCam」→「MPG4Codec2」→「AUXMix」→「FileWriter」
んで「WebCam」のPinプロパティを開いてみる
自分の思った通りに出来る場合
⇒そのままコーディング
自分の思った通り出来ない場合
⇒出来る方法を模索
をやっといた方がはやい
457:454
07/04/20 10:39:55
どうもです、回答ありがとうございます。
一応あの後がんばった結果、DV形式とモーションjpegでは圧縮に成功しました
「うーん、なんかサイズ大きいね。asfで圧縮できない?」
といわれたわけで、メディアフォーマットSDKを読んで泣いています。
小さければ文句言われないのでmpeg4の方が楽かもしれません。
なんか進歩日記みたいになってすいませんが...。
458:デフォルトの名無しさん
07/04/20 20:55:50
>>457
御礼を言うのは大変素晴らしいが、どこまで書いたことを理解できたのか
解るように(回答が的外れでなかったか知りたい)
内容についても一言触れて欲しかったな
と、会社では立場が最下層回答者の愚痴。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4277日前に更新/216 KB
担当:undef