v4l2-ctlのオプション、音声多重の部分見落としてた。
同じ機能だと思うんだけど、オプションがふたつあって、
v4l2-ctl -c audio_stereo_mode 1〜3
で最初試してたんだけど、
v4l2-ctl -t mono, stereo, lang2, lang1, bilingual
ってのがあった。試してみるとこちらはきちんと機能する。
amixerでの疑似対応とは違って、モノラルでも両方から音声が出る。大文字の -T オプションではきちんと表示されないけど、音声はきちんと切り替わっている模様。
-s オプションではtunerのntsc-m とかntsc-m-jの切り替えも出来るっぽいんだけど、GV-MVP/RX2Wも追加してテストしようとしたら、rmmod ivtvでフリーズするし、saa711x.cにパッチ当てなきゃならないっぽいし、ぱ研さんのサイト雑然としててわけ分かんないし、そのうちなんとかなるだろうということで、すぐに外してしまった。(汗
rmmod フリーズは正直きつい。
その点、CX23416...の方は例のちらちらノイズ出たらもう一回読み直せば直るから、svnの方を入れたり、0.8.1にしたりと試行錯誤が容易で助かる。
一応、TVswの音声切り替え部分のコードだけど、タブとか削られるんだよな。気にしない気にしない。
// 音声多重切替
void Form1::Sap_Mode_clicked()
{
stringstream strstr;
string sap_command = "v4l2-ctl -d /dev/video";
strstr << sap_command ;
switch (sap_flag)
{
case 0:
strstr << sap_command << dev_no << " -t stereo"<< endl;
sapstat = "Stereo";
sap_flag = 1;
break;
case 1:
strstr << sap_command << dev_no << " -t mono"<< endl;
sapstat = "Main";
sap_flag = 2;
break;
case 2:
strstr << sap_command << dev_no << " -t lang2"<< endl;
sapstat = "Sub";
sap_flag = 0;
break;
default:
strstr << sap_command << dev_no << " -t stereo"<< endl;
sapstat = "Stereo";
sap_flag = 1;
break;
}
sap_command = strstr.str();
system(sap_command.c_str());
SAP_text->setText(sapstat);
}
同じ機能だと思うんだけど、オプションがふたつあって、
v4l2-ctl -c audio_stereo_mode 1〜3
で最初試してたんだけど、
v4l2-ctl -t mono, stereo, lang2, lang1, bilingual
ってのがあった。試してみるとこちらはきちんと機能する。
amixerでの疑似対応とは違って、モノラルでも両方から音声が出る。大文字の -T オプションではきちんと表示されないけど、音声はきちんと切り替わっている模様。
-s オプションではtunerのntsc-m とかntsc-m-jの切り替えも出来るっぽいんだけど、GV-MVP/RX2Wも追加してテストしようとしたら、rmmod ivtvでフリーズするし、saa711x.cにパッチ当てなきゃならないっぽいし、ぱ研さんのサイト雑然としててわけ分かんないし、そのうちなんとかなるだろうということで、すぐに外してしまった。(汗
rmmod フリーズは正直きつい。
その点、CX23416...の方は例のちらちらノイズ出たらもう一回読み直せば直るから、svnの方を入れたり、0.8.1にしたりと試行錯誤が容易で助かる。
一応、TVswの音声切り替え部分のコードだけど、タブとか削られるんだよな。気にしない気にしない。
// 音声多重切替
void Form1::Sap_Mode_clicked()
{
stringstream strstr;
string sap_command = "v4l2-ctl -d /dev/video";
strstr << sap_command ;
switch (sap_flag)
{
case 0:
strstr << sap_command << dev_no << " -t stereo"<< endl;
sapstat = "Stereo";
sap_flag = 1;
break;
case 1:
strstr << sap_command << dev_no << " -t mono"<< endl;
sapstat = "Main";
sap_flag = 2;
break;
case 2:
strstr << sap_command << dev_no << " -t lang2"<< endl;
sapstat = "Sub";
sap_flag = 0;
break;
default:
strstr << sap_command << dev_no << " -t stereo"<< endl;
sapstat = "Stereo";
sap_flag = 1;
break;
}
sap_command = strstr.str();
system(sap_command.c_str());
SAP_text->setText(sapstat);
}