From b79c7f578e15169a67913bf31ece94df453f36fa Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Sun, 26 Aug 2018 22:45:48 +0200 Subject: [PATCH] Move format types --- spa/include/spa/debug/format.h | 3 +- spa/include/spa/param/audio/format-types.h | 50 ------------------ spa/include/spa/param/audio/format.h | 10 ---- spa/include/spa/param/format-types.h | 53 +++++++++++++------ spa/include/spa/param/format.h | 40 +++++++++++++++ spa/include/spa/param/video/format-types.h | 60 ---------------------- spa/include/spa/param/video/format.h | 46 ----------------- spa/include/spa/utils/type-info.h | 2 +- 8 files changed, 79 insertions(+), 185 deletions(-) delete mode 100644 spa/include/spa/param/audio/format-types.h delete mode 100644 spa/include/spa/param/video/format-types.h diff --git a/spa/include/spa/debug/format.h b/spa/include/spa/debug/format.h index b2187b7bd..437ed241f 100644 --- a/spa/include/spa/debug/format.h +++ b/spa/include/spa/debug/format.h @@ -27,7 +27,6 @@ extern "C" { #include #include #include -#include static inline int spa_debug_format_value(const struct spa_type_info *info, @@ -138,7 +137,7 @@ static inline int spa_debug_format(int indent, media_type ? rindex(media_type, ':') + 1 : "unknown", media_subtype ? rindex(media_subtype, ':') + 1 : "unknown"); - info = spa_type_format_get_ids(mtype, mstype); + info = spa_type_format; SPA_POD_OBJECT_FOREACH((struct spa_pod_object*)format, pod) { struct spa_pod_prop *prop; diff --git a/spa/include/spa/param/audio/format-types.h b/spa/include/spa/param/audio/format-types.h deleted file mode 100644 index a22668a11..000000000 --- a/spa/include/spa/param/audio/format-types.h +++ /dev/null @@ -1,50 +0,0 @@ -/* Simple Plugin API - * Copyright (C) 2016 Wim Taymans - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef __SPA_PARAM_AUDIO_FORMAT_TYPES_H__ -#define __SPA_PARAM_AUDIO_FORMAT_TYPES_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -#define SPA_TYPE__FormatAudio SPA_TYPE_FORMAT_BASE "Audio" -#define SPA_TYPE_FORMAT_AUDIO_BASE SPA_TYPE__FormatAudio ":" - -static const struct spa_type_info spa_type_format_audio_ids[] = { - { SPA_FORMAT_AUDIO_format, SPA_TYPE_FORMAT_AUDIO_BASE "format", SPA_ID_Enum, - spa_type_audio_format }, - { SPA_FORMAT_AUDIO_flags, SPA_TYPE_FORMAT_AUDIO_BASE "flags", SPA_ID_Enum, - spa_type_audio_flags }, - { SPA_FORMAT_AUDIO_layout, SPA_TYPE_FORMAT_AUDIO_BASE "layout", SPA_ID_Enum, - spa_type_audio_layout }, - { SPA_FORMAT_AUDIO_rate, SPA_TYPE_FORMAT_AUDIO_BASE "rate", SPA_ID_Int, }, - { SPA_FORMAT_AUDIO_channels, SPA_TYPE_FORMAT_AUDIO_BASE "channels", SPA_ID_Int, }, - { SPA_FORMAT_AUDIO_channelMask, SPA_TYPE_FORMAT_AUDIO_BASE "channelMask", SPA_ID_Int, }, - { 0, NULL, }, -}; - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* __SPA_PARAM_AUDIO_FORMAT_TYPES_H */ diff --git a/spa/include/spa/param/audio/format.h b/spa/include/spa/param/audio/format.h index 76d105b85..d9b9a8793 100644 --- a/spa/include/spa/param/audio/format.h +++ b/spa/include/spa/param/audio/format.h @@ -27,16 +27,6 @@ extern "C" { #include #include -/** properties for audio SPA_ID_OBJECT_Format */ -enum spa_format_audio { - SPA_FORMAT_AUDIO_format, - SPA_FORMAT_AUDIO_flags, - SPA_FORMAT_AUDIO_layout, - SPA_FORMAT_AUDIO_rate, - SPA_FORMAT_AUDIO_channels, - SPA_FORMAT_AUDIO_channelMask, -}; - struct spa_audio_info { uint32_t media_type; uint32_t media_subtype; diff --git a/spa/include/spa/param/format-types.h b/spa/include/spa/param/format-types.h index 99340e7b5..8036c79c5 100644 --- a/spa/include/spa/param/format-types.h +++ b/spa/include/spa/param/format-types.h @@ -32,8 +32,8 @@ extern "C" { #define SPA_TYPE__MediaType SPA_TYPE_ENUM_BASE "MediaType" #define SPA_TYPE_MEDIA_TYPE_BASE SPA_TYPE__MediaType ":" -#include -#include +#include +#include static const struct spa_type_info spa_type_media_type[] = { { SPA_MEDIA_TYPE_audio, SPA_TYPE_MEDIA_TYPE_BASE "audio", SPA_ID_Int, }, @@ -83,24 +83,45 @@ static const struct spa_type_info spa_type_media_subtype[] = { { 0, NULL, }, }; +#define SPA_TYPE__FormatAudio SPA_TYPE_FORMAT_BASE "Audio" +#define SPA_TYPE_FORMAT_AUDIO_BASE SPA_TYPE__FormatAudio ":" + +#define SPA_TYPE__FormatVideo SPA_TYPE_FORMAT_BASE "Video" +#define SPA_TYPE_FORMAT_VIDEO_BASE SPA_TYPE__FormatVideo ":" + static const struct spa_type_info spa_type_format[] = { - { SPA_ID_OBJECT_Format, SPA_TYPE__Format, SPA_ID_Object, }, + { SPA_FORMAT_AUDIO_format, SPA_TYPE_FORMAT_AUDIO_BASE "format", SPA_ID_Enum, + spa_type_audio_format }, + { SPA_FORMAT_AUDIO_flags, SPA_TYPE_FORMAT_AUDIO_BASE "flags", SPA_ID_Enum, + spa_type_audio_flags }, + { SPA_FORMAT_AUDIO_layout, SPA_TYPE_FORMAT_AUDIO_BASE "layout", SPA_ID_Enum, + spa_type_audio_layout }, + { SPA_FORMAT_AUDIO_rate, SPA_TYPE_FORMAT_AUDIO_BASE "rate", SPA_ID_Int, }, + { SPA_FORMAT_AUDIO_channels, SPA_TYPE_FORMAT_AUDIO_BASE "channels", SPA_ID_Int, }, + { SPA_FORMAT_AUDIO_channelMask, SPA_TYPE_FORMAT_AUDIO_BASE "channelMask", SPA_ID_Int, }, + + { SPA_FORMAT_VIDEO_format, SPA_TYPE_FORMAT_VIDEO_BASE "format", SPA_ID_Enum, + spa_type_video_format, }, + { SPA_FORMAT_VIDEO_size, SPA_TYPE_FORMAT_VIDEO_BASE "size", SPA_ID_Rectangle, }, + { SPA_FORMAT_VIDEO_framerate, SPA_TYPE_FORMAT_VIDEO_BASE "framerate", SPA_ID_Fraction, }, + { SPA_FORMAT_VIDEO_maxFramerate, SPA_TYPE_FORMAT_VIDEO_BASE "maxFramerate", SPA_ID_Fraction, }, + { SPA_FORMAT_VIDEO_views, SPA_TYPE_FORMAT_VIDEO_BASE "views", SPA_ID_Int, }, + { SPA_FORMAT_VIDEO_interlaceMode, SPA_TYPE_FORMAT_VIDEO_BASE "interlaceMode", SPA_ID_Int, }, + { SPA_FORMAT_VIDEO_pixelAspectRatio, SPA_TYPE_FORMAT_VIDEO_BASE "pixelAspectRatio", SPA_ID_Int, }, + { SPA_FORMAT_VIDEO_multiviewMode, SPA_TYPE_FORMAT_VIDEO_BASE "multiviewMode", SPA_ID_Int, }, + { SPA_FORMAT_VIDEO_multiviewFlags, SPA_TYPE_FORMAT_VIDEO_BASE "multiviewFlags", SPA_ID_Int, }, + { SPA_FORMAT_VIDEO_chromaSite, SPA_TYPE_FORMAT_VIDEO_BASE "chromaSite", SPA_ID_Int, }, + { SPA_FORMAT_VIDEO_colorRange, SPA_TYPE_FORMAT_VIDEO_BASE "colorRange", SPA_ID_Int, }, + { SPA_FORMAT_VIDEO_colorMatrix, SPA_TYPE_FORMAT_VIDEO_BASE "colorMatrix", SPA_ID_Int, }, + { SPA_FORMAT_VIDEO_transferFunction, SPA_TYPE_FORMAT_VIDEO_BASE "transferFunction", SPA_ID_Int, }, + { SPA_FORMAT_VIDEO_colorPrimaries, SPA_TYPE_FORMAT_VIDEO_BASE "colorPrimaries", SPA_ID_Int, }, + { SPA_FORMAT_VIDEO_profile, SPA_TYPE_FORMAT_VIDEO_BASE "profile", SPA_ID_Int, }, + { SPA_FORMAT_VIDEO_level, SPA_TYPE_FORMAT_VIDEO_BASE "level", SPA_ID_Int, }, + { SPA_FORMAT_VIDEO_streamFormat, SPA_TYPE_FORMAT_VIDEO_BASE "streamFormat", SPA_ID_Int, }, + { SPA_FORMAT_VIDEO_alignment, SPA_TYPE_FORMAT_VIDEO_BASE "alignment", SPA_ID_Int, }, { 0, NULL, }, }; -static inline const struct spa_type_info * -spa_type_format_get_ids(uint32_t media_type, uint32_t media_subtype) -{ - switch (media_type) { - case SPA_MEDIA_TYPE_audio: - return spa_type_format_audio_ids; - case SPA_MEDIA_TYPE_video: - return spa_type_format_video_ids; - default: - return NULL; - } -} - #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/spa/include/spa/param/format.h b/spa/include/spa/param/format.h index 6abb7e4a9..16105c8d8 100644 --- a/spa/include/spa/param/format.h +++ b/spa/include/spa/param/format.h @@ -78,6 +78,46 @@ enum spa_media_subtype { SPA_MEDIA_SUBTYPE_midi, }; +/** properties for audio SPA_ID_OBJECT_Format */ +enum spa_format { + + /* Audio format keys */ + SPA_FORMAT_BASE_AUDIO = 0, + SPA_FORMAT_AUDIO_format, + SPA_FORMAT_AUDIO_flags, + SPA_FORMAT_AUDIO_layout, + SPA_FORMAT_AUDIO_rate, + SPA_FORMAT_AUDIO_channels, + SPA_FORMAT_AUDIO_channelMask, + + /* Video Format keys */ + SPA_FORMAT_BASE_VIDEO = 0x10000, + SPA_FORMAT_VIDEO_format, + SPA_FORMAT_VIDEO_size, + SPA_FORMAT_VIDEO_framerate, + SPA_FORMAT_VIDEO_maxFramerate, + SPA_FORMAT_VIDEO_views, + SPA_FORMAT_VIDEO_interlaceMode, + SPA_FORMAT_VIDEO_pixelAspectRatio, + SPA_FORMAT_VIDEO_multiviewMode, + SPA_FORMAT_VIDEO_multiviewFlags, + SPA_FORMAT_VIDEO_chromaSite, + SPA_FORMAT_VIDEO_colorRange, + SPA_FORMAT_VIDEO_colorMatrix, + SPA_FORMAT_VIDEO_transferFunction, + SPA_FORMAT_VIDEO_colorPrimaries, + SPA_FORMAT_VIDEO_profile, + SPA_FORMAT_VIDEO_level, + SPA_FORMAT_VIDEO_streamFormat, + SPA_FORMAT_VIDEO_alignment, + + /* Image Format keys */ + SPA_FORMAT_BASE_IMAGE = 0x20000, + /* Binary Format keys */ + SPA_FORMAT_BASE_BINARY = 0x30000, + /* Stream Format keys */ + SPA_FORMAT_BASE_STREAM = 0x40000, +}; #ifdef __cplusplus } /* extern "C" */ diff --git a/spa/include/spa/param/video/format-types.h b/spa/include/spa/param/video/format-types.h deleted file mode 100644 index 3fe63074a..000000000 --- a/spa/include/spa/param/video/format-types.h +++ /dev/null @@ -1,60 +0,0 @@ -/* Simple Plugin API - * Copyright (C) 2016 Wim Taymans - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef __SPA_PARAM_VIDEO_FORMAT_TYPES_H__ -#define __SPA_PARAM_VIDEO_FORMAT_TYPES_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -#define SPA_TYPE__FormatVideo SPA_TYPE_FORMAT_BASE "Video" -#define SPA_TYPE_FORMAT_VIDEO_BASE SPA_TYPE__FormatVideo ":" - -static const struct spa_type_info spa_type_format_video_ids[] = { - { SPA_FORMAT_VIDEO_format, SPA_TYPE_FORMAT_VIDEO_BASE "format", SPA_ID_Enum, - spa_type_video_format, }, - { SPA_FORMAT_VIDEO_size, SPA_TYPE_FORMAT_VIDEO_BASE "size", SPA_ID_Rectangle, }, - { SPA_FORMAT_VIDEO_framerate, SPA_TYPE_FORMAT_VIDEO_BASE "framerate", SPA_ID_Fraction, }, - { SPA_FORMAT_VIDEO_maxFramerate, SPA_TYPE_FORMAT_VIDEO_BASE "maxFramerate", SPA_ID_Fraction, }, - { SPA_FORMAT_VIDEO_views, SPA_TYPE_FORMAT_VIDEO_BASE "views", SPA_ID_Int, }, - { SPA_FORMAT_VIDEO_interlaceMode, SPA_TYPE_FORMAT_VIDEO_BASE "interlaceMode", SPA_ID_Int, }, - { SPA_FORMAT_VIDEO_pixelAspectRatio, SPA_TYPE_FORMAT_VIDEO_BASE "pixelAspectRatio", SPA_ID_Int, }, - { SPA_FORMAT_VIDEO_multiviewMode, SPA_TYPE_FORMAT_VIDEO_BASE "multiviewMode", SPA_ID_Int, }, - { SPA_FORMAT_VIDEO_multiviewFlags, SPA_TYPE_FORMAT_VIDEO_BASE "multiviewFlags", SPA_ID_Int, }, - { SPA_FORMAT_VIDEO_chromaSite, SPA_TYPE_FORMAT_VIDEO_BASE "chromaSite", SPA_ID_Int, }, - { SPA_FORMAT_VIDEO_colorRange, SPA_TYPE_FORMAT_VIDEO_BASE "colorRange", SPA_ID_Int, }, - { SPA_FORMAT_VIDEO_colorMatrix, SPA_TYPE_FORMAT_VIDEO_BASE "colorMatrix", SPA_ID_Int, }, - { SPA_FORMAT_VIDEO_transferFunction, SPA_TYPE_FORMAT_VIDEO_BASE "transferFunction", SPA_ID_Int, }, - { SPA_FORMAT_VIDEO_colorPrimaries, SPA_TYPE_FORMAT_VIDEO_BASE "colorPrimaries", SPA_ID_Int, }, - { SPA_FORMAT_VIDEO_profile, SPA_TYPE_FORMAT_VIDEO_BASE "profile", SPA_ID_Int, }, - { SPA_FORMAT_VIDEO_level, SPA_TYPE_FORMAT_VIDEO_BASE "level", SPA_ID_Int, }, - { SPA_FORMAT_VIDEO_streamFormat, SPA_TYPE_FORMAT_VIDEO_BASE "streamFormat", SPA_ID_Int, }, - { SPA_FORMAT_VIDEO_alignment, SPA_TYPE_FORMAT_VIDEO_BASE "alignment", SPA_ID_Int, }, - { 0, NULL, }, -}; - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* __SPA_PARAM_VIDEO_FORMAT_TYPES_H */ diff --git a/spa/include/spa/param/video/format.h b/spa/include/spa/param/video/format.h index 1f5a79049..925789a7d 100644 --- a/spa/include/spa/param/video/format.h +++ b/spa/include/spa/param/video/format.h @@ -27,52 +27,6 @@ extern "C" { #include #include -/** properties for audio SPA_ID_OBJECT_Format */ -enum spa_format_video { - SPA_FORMAT_VIDEO_format, - SPA_FORMAT_VIDEO_size, - SPA_FORMAT_VIDEO_framerate, - SPA_FORMAT_VIDEO_maxFramerate, - SPA_FORMAT_VIDEO_views, - SPA_FORMAT_VIDEO_interlaceMode, - SPA_FORMAT_VIDEO_pixelAspectRatio, - SPA_FORMAT_VIDEO_multiviewMode, - SPA_FORMAT_VIDEO_multiviewFlags, - SPA_FORMAT_VIDEO_chromaSite, - SPA_FORMAT_VIDEO_colorRange, - SPA_FORMAT_VIDEO_colorMatrix, - SPA_FORMAT_VIDEO_transferFunction, - SPA_FORMAT_VIDEO_colorPrimaries, - SPA_FORMAT_VIDEO_profile, - SPA_FORMAT_VIDEO_level, - SPA_FORMAT_VIDEO_streamFormat, - SPA_FORMAT_VIDEO_alignment, -}; - -#if 0 -#define SPA_TYPE_FORMAT__Video SPA_TYPE_FORMAT_BASE "Video" -#define SPA_TYPE_FORMAT_VIDEO_BASE SPA_TYPE_FORMAT__Video ":" - -#define SPA_TYPE_FORMAT_VIDEO__format SPA_TYPE_FORMAT_VIDEO_BASE "format" -#define SPA_TYPE_FORMAT_VIDEO__size SPA_TYPE_FORMAT_VIDEO_BASE "size" -#define SPA_TYPE_FORMAT_VIDEO__framerate SPA_TYPE_FORMAT_VIDEO_BASE "framerate" -#define SPA_TYPE_FORMAT_VIDEO__maxFramerate SPA_TYPE_FORMAT_VIDEO_BASE "max-framerate" -#define SPA_TYPE_FORMAT_VIDEO__views SPA_TYPE_FORMAT_VIDEO_BASE "views" -#define SPA_TYPE_FORMAT_VIDEO__interlaceMode SPA_TYPE_FORMAT_VIDEO_BASE "interlace-mode" -#define SPA_TYPE_FORMAT_VIDEO__pixelAspectRatio SPA_TYPE_FORMAT_VIDEO_BASE "pixel-aspect-ratio" -#define SPA_TYPE_FORMAT_VIDEO__multiviewMode SPA_TYPE_FORMAT_VIDEO_BASE "multiview-mode" -#define SPA_TYPE_FORMAT_VIDEO__multiviewFlags SPA_TYPE_FORMAT_VIDEO_BASE "multiview-flags" -#define SPA_TYPE_FORMAT_VIDEO__chromaSite SPA_TYPE_FORMAT_VIDEO_BASE "chroma-site" -#define SPA_TYPE_FORMAT_VIDEO__colorRange SPA_TYPE_FORMAT_VIDEO_BASE "color-range" -#define SPA_TYPE_FORMAT_VIDEO__colorMatrix SPA_TYPE_FORMAT_VIDEO_BASE "color-matrix" -#define SPA_TYPE_FORMAT_VIDEO__transferFunction SPA_TYPE_FORMAT_VIDEO_BASE "transfer-function" -#define SPA_TYPE_FORMAT_VIDEO__colorPrimaries SPA_TYPE_FORMAT_VIDEO_BASE "color-primaries" -#define SPA_TYPE_FORMAT_VIDEO__profile SPA_TYPE_FORMAT_VIDEO_BASE "profile" -#define SPA_TYPE_FORMAT_VIDEO__level SPA_TYPE_FORMAT_VIDEO_BASE "level" -#define SPA_TYPE_FORMAT_VIDEO__streamFormat SPA_TYPE_FORMAT_VIDEO_BASE "stream-format" -#define SPA_TYPE_FORMAT_VIDEO__alignment SPA_TYPE_FORMAT_VIDEO_BASE "alignment" -#endif - struct spa_video_info { uint32_t media_type; uint32_t media_subtype; diff --git a/spa/include/spa/utils/type-info.h b/spa/include/spa/utils/type-info.h index 5f5014387..2b6beb09b 100644 --- a/spa/include/spa/utils/type-info.h +++ b/spa/include/spa/utils/type-info.h @@ -128,7 +128,7 @@ static const struct spa_type_info spa_types[] = { { SPA_ID_OBJECT_ParamList, SPA_TYPE_PARAM__List, SPA_ID_Object, spa_type_param_list, }, { SPA_ID_OBJECT_PropInfo, SPA_TYPE__PropInfo, SPA_ID_Object, spa_type_prop_info, }, { SPA_ID_OBJECT_Props, SPA_TYPE__Props, SPA_ID_Object, spa_type_props }, - { SPA_ID_OBJECT_Format, SPA_TYPE__Format, SPA_ID_Object, }, + { SPA_ID_OBJECT_Format, SPA_TYPE__Format, SPA_ID_Object, spa_type_format }, { SPA_ID_OBJECT_ParamBuffers, SPA_TYPE_PARAM__Buffers, SPA_ID_Object, spa_type_param_buffers, }, { SPA_ID_OBJECT_ParamMeta, SPA_TYPE_PARAM__Meta, SPA_ID_Object, spa_type_param_meta }, { SPA_ID_OBJECT_ParamIO, SPA_TYPE_PARAM__IO, SPA_ID_Object, spa_type_param_io },