    "./encoderd": 37.3,
    "./camerad": 16.5,
    "./locationd": 9.1,
    "selfdrive.controls.plannerd": 11.7,
    "./_ui": 21.0,
    "selfdrive.locationd.paramsd": 9.0,
    "./_sensord": 6.17,
    "selfdrive.controls.radard": 4.5,
    "./_modeld": 4.48,
    "./boardd": 3.63,
 
</s> remove   "./encoderd": 37.3,
 </s> add   "./encoderd": 12.5, </s> remove     if pix_fmt not in ("yuv420p", "rgb24"):
 </s> add     if pix_fmt not in ("nv12", "yuv420p", "rgb24"): </s> remove   "uniform sampler2D uTextureU;\n"
  "uniform sampler2D uTextureV;\n"
 </s> add   "uniform sampler2D uTextureUV;\n" </s> remove         for stream_type, frame_size, state in streams:
          dat = np.empty(int(frame_size[0]*frame_size[1]*3/2), dtype=np.uint8)
 </s> add         for stream_type, frame_spec, state in streams:
          if TICI:
            dat = np.empty(frame_spec[2], dtype=np.uint8)
          else:
            dat = np.empty(int(frame_spec[0]*frame_spec[1]*3/2), dtype=np.uint8) </s> remove     crop_yuv((uint8_t *)stream_buf, width, height, mirror_y, mirror_u, mirror_v, crop_rect);
 </s> add     crop_nv12_to_yuv((uint8_t *)stream_buf, stride, uv_offset, mirror_y, mirror_u, mirror_v, crop_rect);
  "./_ui": 26.4,
    "./encoderd": 37.3,
    "./camerad": 16.5,
    "./locationd": 9.1,
    "selfdrive.controls.plannerd": 11.7,
  "./_ui": 26.4,
    "selfdrive.locationd.paramsd": 9.0,
    "./_sensord": 6.17,
    "selfdrive.controls.radard": 4.5,
    "./_modeld": 4.48,
    "./boardd": 3.63,
keep keep keep keep replace keep keep keep keep keep
 nv12: encoderd avoids a full frame copy (#24519)

* rgb to nv12

* nv12 works (w memcpy)

* correct now

* no copy

* fix nv12 with fast debayer

* reverts of unused stuff

* ui use nv12

* comment out thumbnails for now

* rebase fix

* dm read nv12

* model read nv12

* fix ffmpeg encoder

* thumbnails from nv12

* replay to nv12

* python framereader support nv12

* remove hardcoded frame/buffer sizes

* fix build

* ffmpeg encoder fix buffers

* small cleanup

* reduce power usage test

* fix cpu usage test

* fix snapshot

* fix loggerd test

* bump cereal

Co-authored-by: Comma Device <device@comma.ai>
Co-authored-by: Joost Wooning <jwooning@gmail.com> 
selfdrive/test/test_onroad.py