🐼
Zigで簡単なビデオフォーマットのコンバータを作った。(ChatGPT4とペアプログラミング)
Zigで簡単なビデオフォーマットのコンバータを作りました。
Chat GPT4に作ってもらおうといろいろ指示したのですが、あんまりすんなりいきませんでした。
- Zig言語の最新の文法に対応できていないのでコンパイルエラーになるものが生成される。
- ビデオフォーマットの仕様を勘違いしている。
実際の指示はこんな感じ。
NV12のフォーマットに画像データをI420のフォーマットに変換する関数をZig言語で書いてください。その関数は以下のようなものです。
pub fn nv12ToI420(nv12_data: []const u8, yuv420_data: []u8, width: u32, height: u32) void
ソースコード内のコメントは英語で書いてください。またmain()は不要です。
この関数をfrom_nv12.zig のファイルに書きました。この関数を呼んでテストするプログラムをfrom_nv12_test.zig として書いてください。これは zig test で実行できる形式にしてください。ソースコード内のコメントは英語で書いてください
テストデータの中の数値が全て0x42になっています。これを以下のように変更してください。
Yプレーンのデータは0x80からインクリメントした値。Uプレーンのデータは0x40からインクリメントした値。Vプレーンのデータは0xa0からインクリメントした値。このように全ての数値は異なるものを使用してください。
nv_dataのデータの中のUプレーンとVプレーンの並びが間違っていると思いますがどうですか?
先ほど書いてもらったnv12ToI420の関数もNV12のUVのデータの並びが間違っているようなので書き直してください。
どうもありがとう。あとはこちらでチューニングします。
まるで新人くんとペアプログラミングしているようです。w
関連
Discussion