Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/drivers/media/platform/qcom/venus/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  hfi_parser.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright (C) 2018 Linaro Ltd. */
#ifndef __VENUS_HFI_PARSER_H__
#define __VENUS_HFI_PARSER_H__

#include "core.h"

u32 hfi_parser(struct venus_core *core, struct venus_inst *inst,
        void *buf, u32 size);

#define WHICH_CAP_MIN 0
#define WHICH_CAP_MAX 1
#define WHICH_CAP_STEP 2

static inline u32 get_cap(struct venus_inst *inst, u32 type, u32 which)
{
 struct venus_core *core = inst->core;
 struct hfi_capability *cap = NULL;
 struct hfi_plat_caps *caps;
 unsigned int i;

 caps = venus_caps_by_codec(core, inst->hfi_codec, inst->session_type);
 if (!caps)
  return 0;

 for (i = 0; i < caps->num_caps; i++) {
  if (caps->caps[i].capability_type == type) {
   cap = &caps->caps[i];
   break;
  }
 }

 if (!cap)
  return 0;

 switch (which) {
 case WHICH_CAP_MIN:
  return cap->min;
 case WHICH_CAP_MAX:
  return cap->max;
 case WHICH_CAP_STEP:
  return cap->step_size;
 default:
  break;
 }

 return 0;
}

static inline u32 cap_min(struct venus_inst *inst, u32 type)
{
 return get_cap(inst, type, WHICH_CAP_MIN);
}

static inline u32 cap_max(struct venus_inst *inst, u32 type)
{
 return get_cap(inst, type, WHICH_CAP_MAX);
}

static inline u32 cap_step(struct venus_inst *inst, u32 type)
{
 return get_cap(inst, type, WHICH_CAP_STEP);
}

static inline u32 frame_width_min(struct venus_inst *inst)
{
 return cap_min(inst, HFI_CAPABILITY_FRAME_WIDTH);
}

static inline u32 frame_width_max(struct venus_inst *inst)
{
 return cap_max(inst, HFI_CAPABILITY_FRAME_WIDTH);
}

static inline u32 frame_width_step(struct venus_inst *inst)
{
 return cap_step(inst, HFI_CAPABILITY_FRAME_WIDTH);
}

static inline u32 frame_height_min(struct venus_inst *inst)
{
 return cap_min(inst, HFI_CAPABILITY_FRAME_HEIGHT);
}

static inline u32 frame_height_max(struct venus_inst *inst)
{
 return cap_max(inst, HFI_CAPABILITY_FRAME_HEIGHT);
}

static inline u32 frame_height_step(struct venus_inst *inst)
{
 return cap_step(inst, HFI_CAPABILITY_FRAME_HEIGHT);
}

static inline u32 frate_min(struct venus_inst *inst)
{
 return cap_min(inst, HFI_CAPABILITY_FRAMERATE);
}

static inline u32 frate_max(struct venus_inst *inst)
{
 return cap_max(inst, HFI_CAPABILITY_FRAMERATE);
}

static inline u32 frate_step(struct venus_inst *inst)
{
 return cap_step(inst, HFI_CAPABILITY_FRAMERATE);
}

static inline u32 core_num_max(struct venus_inst *inst)
{
 return cap_max(inst, HFI_CAPABILITY_MAX_VIDEOCORES);
}

static inline u32 mbs_per_frame_max(struct venus_inst *inst)
{
 return cap_max(inst, HFI_CAPABILITY_MBS_PER_FRAME);
}

#endif

Messung V0.5
C=84 H=96 G=90

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.