Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  buffer.h

  Sprache: C
 

/* Simple Plugin API */
/* SPDX-FileCopyrightText: Copyright © 2018 Wim Taymans */
/* SPDX-License-Identifier: MIT */

#ifndef SPA_DEBUG_BUFFER_H
#define SPA_DEBUG_BUFFER_H

#ifdef __cplusplus
extern "C" {
#endif

/** \defgroup spa_debug Debug
 * Debugging utilities
 */


/**
 * \addtogroup spa_debug
 * \{
 */


#include <spa/debug/context.h>
#include <spa/debug/mem.h>
#include <spa/debug/types.h>
#include <spa/buffer/type-info.h>

#ifndef SPA_API_DEBUG_BUFFER
 #ifdef SPA_API_IMPL
  #define SPA_API_DEBUG_BUFFER SPA_API_IMPL
 #else
  #define SPA_API_DEBUG_BUFFER static inline
 #endif
#endif

SPA_API_DEBUG_BUFFER int spa_debugc_buffer(struct spa_debug_context *ctx, int indent, const struct spa_buffer *buffer)
{
 uint32_t i;

 spa_debugc(ctx, "%*s" "struct spa_buffer %p:", indent, "", buffer);
 spa_debugc(ctx, "%*s" " n_metas: %u (at %p)", indent, "", buffer->n_metas, buffer->metas);
 for (i = 0; i < buffer->n_metas; i++) {
  struct spa_meta *m = &buffer->metas[i];
  const char *type_name;

  type_name = spa_debug_type_find_name(spa_type_meta_type, m->type);
  spa_debugc(ctx, "%*s" "  meta %d: type %d (%s), data %p, size %d:", indent, "", i, m->type,
   type_name, m->data, m->size);

  switch (m->type) {
  case SPA_META_Header:
  {
   struct spa_meta_header *h = (struct spa_meta_header*)m->data;
   spa_debugc(ctx, "%*s" "    struct spa_meta_header:", indent, "");
   spa_debugc(ctx, "%*s" "      flags:      %08x", indent, "", h->flags);
   spa_debugc(ctx, "%*s" "      offset:     %u", indent, "", h->offset);
   spa_debugc(ctx, "%*s" "      seq:        %" PRIu64, indent, "", h->seq);
   spa_debugc(ctx, "%*s" "      pts:        %" PRIi64, indent, "", h->pts);
   spa_debugc(ctx, "%*s" "      dts_offset: %" PRIi64, indent, "", h->dts_offset);
   break;
  }
  case SPA_META_VideoCrop:
  {
   struct spa_meta_region *h = (struct spa_meta_region*)m->data;
   spa_debugc(ctx, "%*s" "    struct spa_meta_region:", indent, "");
   spa_debugc(ctx, "%*s" "      x:      %d", indent, "", h->region.position.x);
   spa_debugc(ctx, "%*s" "      y:      %d", indent, "", h->region.position.y);
   spa_debugc(ctx, "%*s" "      width:  %d", indent, "", h->region.size.width);
   spa_debugc(ctx, "%*s" "      height: %d", indent, "", h->region.size.height);
   break;
  }
  case SPA_META_VideoDamage:
  {
   struct spa_meta_region *h;
   spa_meta_for_each(h, m) {
    spa_debugc(ctx, "%*s" "    struct spa_meta_region:", indent, "");
    spa_debugc(ctx, "%*s" "      x:      %d", indent, "", h->region.position.x);
    spa_debugc(ctx, "%*s" "      y:      %d", indent, "", h->region.position.y);
    spa_debugc(ctx, "%*s" "      width:  %d", indent, "", h->region.size.width);
    spa_debugc(ctx, "%*s" "      height: %d", indent, "", h->region.size.height);
   }
   break;
  }
  case SPA_META_Bitmap:
   break;
  case SPA_META_Cursor:
   break;
  default:
   spa_debugc(ctx, "%*s" "    Unknown:", indent, "");
   spa_debugc_mem(ctx, 5, m->data, m->size);
  }
 }
 spa_debugc(ctx, "%*s" " n_datas: \t%u (at %p)", indent, "", buffer->n_datas, buffer->datas);
 for (i = 0; i < buffer->n_datas; i++) {
  struct spa_data *d = &buffer->datas[i];
  spa_debugc(ctx, "%*s" "   type:    %d (%s)", indent, "", d->type,
   spa_debug_type_find_name(spa_type_data_type, d->type));
  spa_debugc(ctx, "%*s" "   flags:   %d", indent, "", d->flags);
  spa_debugc(ctx, "%*s" "   data:    %p", indent, "", d->data);
  spa_debugc(ctx, "%*s" "   fd:      %" PRIi64, indent, "", d->fd);
  spa_debugc(ctx, "%*s" "   offset:  %d", indent, "", d->mapoffset);
  spa_debugc(ctx, "%*s" "   maxsize: %u", indent, "", d->maxsize);
  spa_debugc(ctx, "%*s" "   chunk:   %p", indent, "", d->chunk);
  spa_debugc(ctx, "%*s" "    offset: %d", indent, "", d->chunk->offset);
  spa_debugc(ctx, "%*s" "    size:   %u", indent, "", d->chunk->size);
  spa_debugc(ctx, "%*s" "    stride: %d", indent, "", d->chunk->stride);
 }
 return 0;
}

SPA_API_DEBUG_BUFFER int spa_debug_buffer(int indent, const struct spa_buffer *buffer)
{
 return spa_debugc_buffer(NULL, indent, buffer);
}
/**
 * \}
 */


#ifdef __cplusplus
}  /* extern "C" */
#endif

#endif /* SPA_DEBUG_BUFFER_H */

Messung V0.5 in Prozent
C=87 H=100 G=93

¤ Dauer der Verarbeitung: 0.5 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Statistik
#Sources=434850
#Domains=655579