Linux版午後のこ~だ(petit313)で、
% arecord -f cd -D plug:dsnoop | gogo stdin foo.mp3
として録音し続けようとすると、途中で止まっちゃう。
原因は2つ。
1. arecordは、出力ファイルが2GBで止まる
2. gogoは、入力データのwavのヘッダにあるサイズを見てそこで止まる
まず2の変更。
wavのヘッダにあるサイズを無視するパッチ。
あ、gccのバージョン違いのせいかなんか原因不明ですが、最適化オプションを弱くしないと落ちちゃってたのでそれも含む。
diff -cr petit313/configure petit313p00/configure
*** petit313/configure 2010-08-10 22:03:33.000000000 +0900
--- petit313p00/configure 2010-08-10 22:01:36.000000000 +0900
***************
*** 1346,1353 ****
;;
*)
# default
! OPTIMIZATION="-O3 -fomit-frame-pointer -ffast-math \
! -funroll-loops"
;;
esac
echo "$ac_t""${OPTIMIZATION}" 1>&6
--- 1346,1354 ----
;;
*)
# default
! ## OPTIMIZATION="-O3 -fomit-frame-pointer -ffast-math \
! ## -funroll-loops"
! OPTIMIZATION="-O2"
;;
esac
echo "$ac_t""${OPTIMIZATION}" 1>&6
diff -cr petit313/file_io/gogo_io.c petit313p00/file_io/gogo_io.c
*** petit313/file_io/gogo_io.c 2010-08-10 22:03:33.000000000 +0900
--- petit313p00/file_io/gogo_io.c 2010-08-10 22:01:36.000000000 +0900
***************
*** 430,435 ****
--- 430,438 ----
return ME_WAVETYPE_ERR;
}
+ /* wavヘッダにある長さを無視する */
+ pcm_format->nSize = -1;
+
return ME_NOERR;
}
0 件のコメント:
コメントを投稿