Make media type and subtype properties

This is easier to debug and we only want properties in objects
in the future.
This commit is contained in:
Wim Taymans 2018-08-29 18:08:52 +02:00
parent 514528f2c7
commit ff6a244d8f
45 changed files with 151 additions and 124 deletions

View file

@ -182,8 +182,8 @@ static int port_enum_formats(struct spa_node *node,
*param = spa_pod_builder_object(builder,
SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat,
"I", SPA_MEDIA_TYPE_audio,
"I", SPA_MEDIA_SUBTYPE_raw,
":", SPA_FORMAT_mediaType, "I", SPA_MEDIA_TYPE_audio,
":", SPA_FORMAT_mediaSubtype, "I", SPA_MEDIA_SUBTYPE_raw,
":", SPA_FORMAT_AUDIO_format, "Ieu", SPA_AUDIO_FORMAT_S16,
SPA_POD_PROP_ENUM(2, SPA_AUDIO_FORMAT_S16,
SPA_AUDIO_FORMAT_F32),

View file

@ -226,8 +226,13 @@ static int port_enum_formats(struct spa_node *node,
SDL_GetRendererInfo(d->renderer, &info);
spa_pod_builder_push_object(builder, SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat);
spa_pod_builder_push_prop(builder, SPA_FORMAT_mediaType, 0);
spa_pod_builder_enum(builder, SPA_MEDIA_TYPE_video);
spa_pod_builder_pop(builder);
spa_pod_builder_push_prop(builder, SPA_FORMAT_mediaSubtype, 0);
spa_pod_builder_enum(builder, SPA_MEDIA_SUBTYPE_raw);
spa_pod_builder_pop(builder);
spa_pod_builder_push_prop(builder, SPA_FORMAT_VIDEO_format,
SPA_POD_PROP_FLAG_UNSET |

View file

@ -98,8 +98,12 @@ static struct spa_pod *sdl_build_formats(SDL_RendererInfo *info, struct spa_pod_
int i, c;
spa_pod_builder_push_object(b, SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat);
spa_pod_builder_push_prop(b, SPA_FORMAT_mediaType, 0);
spa_pod_builder_enum(b, SPA_MEDIA_TYPE_video);
spa_pod_builder_pop(b);
spa_pod_builder_push_prop(b, SPA_FORMAT_mediaSubtype, 0);
spa_pod_builder_enum(b, SPA_MEDIA_SUBTYPE_raw);
spa_pod_builder_pop(b);
spa_pod_builder_push_prop(b, SPA_FORMAT_VIDEO_format,
SPA_POD_PROP_FLAG_UNSET |

View file

@ -224,8 +224,8 @@ static void on_state_changed(void *_data, enum pw_remote_state old, enum pw_remo
params[0] = spa_pod_builder_object(&b,
SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat,
"I", SPA_MEDIA_TYPE_video,
"I", SPA_MEDIA_SUBTYPE_raw,
":", SPA_FORMAT_mediaType, "I", SPA_MEDIA_TYPE_video,
":", SPA_FORMAT_mediaSubtype, "I", SPA_MEDIA_SUBTYPE_raw,
":", SPA_FORMAT_VIDEO_format, "I", SPA_VIDEO_FORMAT_RGB,
":", SPA_FORMAT_VIDEO_size, "Rru", &SPA_RECTANGLE(320, 240),
SPA_POD_PROP_MIN_MAX(&SPA_RECTANGLE(1, 1),

View file

@ -535,8 +535,14 @@ convert_1 (ConvertData *d)
d->b.write = write_pod;
spa_pod_builder_push_object (&d->b, SPA_TYPE_OBJECT_Format, d->id);
spa_pod_builder_push_prop (&d->b, SPA_FORMAT_mediaType, 0);
spa_pod_builder_enum(&d->b, d->type->media_type);
spa_pod_builder_pop (&d->b);
spa_pod_builder_push_prop (&d->b, SPA_FORMAT_mediaSubtype, 0);
spa_pod_builder_enum(&d->b, d->type->media_subtype);
spa_pod_builder_pop (&d->b);
if (d->type->media_type == SPA_MEDIA_TYPE_video)
handle_video_fields (d);

View file

@ -329,8 +329,8 @@ static int port_enum_formats(struct spa_node *node,
} else {
*param = spa_pod_builder_object(builder,
SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat,
"I", SPA_MEDIA_TYPE_audio,
"I", SPA_MEDIA_SUBTYPE_raw,
":", SPA_FORMAT_mediaType, "I", SPA_MEDIA_TYPE_audio,
":", SPA_FORMAT_mediaSubtype, "I", SPA_MEDIA_SUBTYPE_raw,
":", SPA_FORMAT_AUDIO_format, "I", SPA_AUDIO_FORMAT_F32,
":", SPA_FORMAT_AUDIO_layout, "I", SPA_AUDIO_LAYOUT_NON_INTERLEAVED,
":", SPA_FORMAT_AUDIO_rate, "iru", 44100,

View file

@ -124,7 +124,7 @@ static struct monitor_item *add_item(struct pw_spa_monitor *this,
}
flags = PW_SPA_NODE_FLAG_ACTIVATE;
flags |= (state == SPA_MONITOR_ITEM_STATE_AVAILABLE) ? 0 : PW_SPA_NODE_FLAG_DISABLE;
flags |= (state == SPA_MONITOR_ITEM_STATE_Available) ? 0 : PW_SPA_NODE_FLAG_DISABLE;
mitem = calloc(1, sizeof(struct monitor_item));
mitem->id = strdup(id);
@ -197,13 +197,15 @@ static void change_item(struct pw_spa_monitor *this, struct spa_pod *item, uint6
return;
switch (state) {
case SPA_MONITOR_ITEM_STATE_AVAILABLE:
case SPA_MONITOR_ITEM_STATE_Available:
pw_node_set_enabled(mitem->node, true);
break;
case SPA_MONITOR_ITEM_STATE_DISABLED:
case SPA_MONITOR_ITEM_STATE_UNAVAILABLE:
case SPA_MONITOR_ITEM_STATE_Disabled:
case SPA_MONITOR_ITEM_STATE_Unavailable:
pw_node_set_enabled(mitem->node, false);
break;
default:
break;
}
}

View file

@ -218,9 +218,9 @@ static void print_node(struct proxy_data *data)
printf("%c\tparams:\n", MARK_CHANGE(5));
for (i = 0; i < data->n_params; i++) {
if (spa_pod_is_object_type(data->params[i], SPA_TYPE_OBJECT_Format))
spa_debug_format(2, NULL, data->params[i]);
spa_debug_format(10, NULL, data->params[i]);
else
spa_debug_pod(2, spa_debug_types, data->params[i]);
spa_debug_pod(10, spa_debug_types, data->params[i]);
}
printf("%c\tinput ports: %u/%u\n", MARK_CHANGE(1),
info->n_input_ports, info->max_input_ports);
@ -293,9 +293,9 @@ static void print_port(struct proxy_data *data)
printf("%c\tparams:\n", MARK_CHANGE(2));
for (i = 0; i < data->n_params; i++) {
if (spa_pod_is_object_type(data->params[i], SPA_TYPE_OBJECT_Format))
spa_debug_format(2, NULL, data->params[i]);
spa_debug_format(12, NULL, data->params[i]);
else
spa_debug_pod(2, spa_debug_types, data->params[i]);
spa_debug_pod(12, spa_debug_types, data->params[i]);
}
print_properties(info->props, MARK_CHANGE(1));
}