- pic.img.i_csp = X264_CSP_NV12;
- pic.img.i_plane = 2;
- pic.img.plane[0] = qf.data;
- pic.img.i_stride[0] = WIDTH;
- pic.img.plane[1] = qf.data + WIDTH * HEIGHT;
- pic.img.i_stride[1] = WIDTH / 2 * sizeof(uint16_t);
+ if (global_flags.x264_bit_depth > 8) {
+ pic.img.i_csp = X264_CSP_NV12 | X264_CSP_HIGH_DEPTH;
+ pic.img.i_plane = 2;
+ pic.img.plane[0] = qf.data;
+ pic.img.i_stride[0] = global_flags.width * sizeof(uint16_t);
+ pic.img.plane[1] = qf.data + global_flags.width * global_flags.height * sizeof(uint16_t);
+ pic.img.i_stride[1] = global_flags.width / 2 * sizeof(uint32_t);
+ } else {
+ pic.img.i_csp = X264_CSP_NV12;
+ pic.img.i_plane = 2;
+ pic.img.plane[0] = qf.data;
+ pic.img.i_stride[0] = global_flags.width;
+ pic.img.plane[1] = qf.data + global_flags.width * global_flags.height;
+ pic.img.i_stride[1] = global_flags.width / 2 * sizeof(uint16_t);
+ }