vp9_job_queue.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. * Copyright (c) 2017 The WebM project authors. All Rights Reserved.
  3. *
  4. * Use of this source code is governed by a BSD-style license
  5. * that can be found in the LICENSE file in the root of the source
  6. * tree. An additional intellectual property rights grant can be found
  7. * in the file PATENTS. All contributing project authors may
  8. * be found in the AUTHORS file in the root of the source tree.
  9. */
  10. #ifndef VPX_VP9_ENCODER_VP9_JOB_QUEUE_H_
  11. #define VPX_VP9_ENCODER_VP9_JOB_QUEUE_H_
  12. typedef enum {
  13. FIRST_PASS_JOB,
  14. ENCODE_JOB,
  15. ARNR_JOB,
  16. NUM_JOB_TYPES,
  17. } JOB_TYPE;
  18. // Encode job parameters
  19. typedef struct {
  20. int vert_unit_row_num; // Index of the vertical unit row
  21. int tile_col_id; // tile col id within a tile
  22. int tile_row_id; // tile col id within a tile
  23. } JobNode;
  24. // Job queue element parameters
  25. typedef struct {
  26. // Pointer to the next link in the job queue
  27. void *next;
  28. // Job information context of the module
  29. JobNode job_info;
  30. } JobQueue;
  31. // Job queue handle
  32. typedef struct {
  33. // Pointer to the next link in the job queue
  34. void *next;
  35. // Counter to store the number of jobs picked up for processing
  36. int num_jobs_acquired;
  37. } JobQueueHandle;
  38. #endif // VPX_VP9_ENCODER_VP9_JOB_QUEUE_H_