format: make helper functions to create formats

Use helper functions to create a fully specified format.
This commit is contained in:
Wim Taymans 2018-08-29 15:53:26 +02:00
parent 80de83f38a
commit 514528f2c7
24 changed files with 158 additions and 430 deletions

View file

@ -379,14 +379,12 @@ static int negotiate_formats(struct data *data)
uint8_t buffer[4096];
spa_pod_builder_init(&b, buffer, sizeof(buffer));
filter = spa_pod_builder_object(&b,
SPA_TYPE_OBJECT_Format, 0,
"I", SPA_MEDIA_TYPE_audio,
"I", SPA_MEDIA_SUBTYPE_raw,
":", SPA_FORMAT_AUDIO_format, "I", SPA_AUDIO_FORMAT_S16,
":", SPA_FORMAT_AUDIO_layout, "I", SPA_AUDIO_LAYOUT_INTERLEAVED,
":", SPA_FORMAT_AUDIO_rate, "i", 44100,
":", SPA_FORMAT_AUDIO_channels, "i", 2);
filter = spa_format_audio_raw_build(&b, 0,
&SPA_AUDIO_INFO_RAW_INIT(
.format = SPA_AUDIO_FORMAT_S16,
.layout = SPA_AUDIO_LAYOUT_INTERLEAVED,
.rate = 44100,
.channels = 2 ));
spa_debug_pod(0, spa_debug_types, filter);

View file

@ -206,14 +206,13 @@ static int negotiate_formats(struct data *data)
uint8_t buffer[4096];
spa_pod_builder_init(&b, buffer, sizeof(buffer));
format = spa_pod_builder_object(&b,
SPA_TYPE_OBJECT_Format, 0,
"I", SPA_MEDIA_TYPE_audio,
"I", SPA_MEDIA_SUBTYPE_raw,
":", SPA_FORMAT_AUDIO_format, "I", SPA_AUDIO_FORMAT_S16,
":", SPA_FORMAT_AUDIO_layout, "I", SPA_AUDIO_LAYOUT_INTERLEAVED,
":", SPA_FORMAT_AUDIO_rate, "i", 44100,
":", SPA_FORMAT_AUDIO_channels, "i", 2);
format = spa_format_audio_raw_build(&b, 0,
&SPA_AUDIO_INFO_RAW_INIT(
.format = SPA_AUDIO_FORMAT_S16,
.layout = SPA_AUDIO_LAYOUT_INTERLEAVED,
.rate = 44100,
.channels = 2 ));
if ((res = spa_node_port_set_param(data->conv,
SPA_DIRECTION_INPUT, 0,
@ -235,15 +234,12 @@ static int negotiate_formats(struct data *data)
spa_pod_builder_init(&b, buffer, sizeof(buffer));
format = spa_pod_builder_object(&b,
SPA_TYPE_OBJECT_Format, 0,
"I", SPA_MEDIA_TYPE_audio,
"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, "i", 44100,
":", SPA_FORMAT_AUDIO_channels, "i", 2);
format = spa_format_audio_raw_build(&b, 0,
&SPA_AUDIO_INFO_RAW_INIT(
.format = SPA_AUDIO_FORMAT_F32,
.layout = SPA_AUDIO_LAYOUT_NON_INTERLEAVED,
.rate = 44100,
.channels = 2 ));
if ((res = spa_node_port_set_param(data->conv,
SPA_DIRECTION_OUTPUT, 0,

View file

@ -257,27 +257,23 @@ static int negotiate_formats(struct data *data)
uint8_t buffer[4096];
spa_pod_builder_init(&b, buffer, sizeof(buffer));
format = spa_pod_builder_object(&b,
SPA_TYPE_OBJECT_Format, 0,
"I", SPA_MEDIA_TYPE_audio,
"I", SPA_MEDIA_SUBTYPE_raw,
":", SPA_FORMAT_AUDIO_format, "I", SPA_AUDIO_FORMAT_S16,
":", SPA_FORMAT_AUDIO_layout, "I", SPA_AUDIO_LAYOUT_INTERLEAVED,
":", SPA_FORMAT_AUDIO_rate, "i", 44100,
":", SPA_FORMAT_AUDIO_channels, "i", 2);
format = spa_format_audio_raw_build(&b, 0,
&SPA_AUDIO_INFO_RAW_INIT(
.format = SPA_AUDIO_FORMAT_S16,
.layout = SPA_AUDIO_LAYOUT_INTERLEAVED,
.rate = 44100,
.channels = 2 ));
if ((res = negotiate_link_format(data, &data->links[0], format)) < 0)
return res;
spa_pod_builder_init(&b, buffer, sizeof(buffer));
format = spa_pod_builder_object(&b,
SPA_TYPE_OBJECT_Format, 0,
"I", SPA_MEDIA_TYPE_audio,
"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, "i", 48000,
":", SPA_FORMAT_AUDIO_channels, "i", 1);
format = spa_format_audio_raw_build(&b, 0,
&SPA_AUDIO_INFO_RAW_INIT(
.format = SPA_AUDIO_FORMAT_S16,
.layout = SPA_AUDIO_LAYOUT_NON_INTERLEAVED,
.rate = 48000,
.channels = 1 ));
if ((res = negotiate_link_format(data, &data->links[4], format)) < 0)
return res;

View file

@ -346,14 +346,12 @@ static int negotiate_formats(struct data *data)
uint8_t buffer[4096];
spa_pod_builder_init(&b, buffer, sizeof(buffer));
filter = spa_pod_builder_object(&b,
SPA_TYPE_OBJECT_Format, 0,
"I", SPA_MEDIA_TYPE_audio,
"I", SPA_MEDIA_SUBTYPE_raw,
":", SPA_FORMAT_AUDIO_format, "I", SPA_AUDIO_FORMAT_S16,
":", SPA_FORMAT_AUDIO_layout, "I", SPA_AUDIO_LAYOUT_INTERLEAVED,
":", SPA_FORMAT_AUDIO_rate, "i", 44100,
":", SPA_FORMAT_AUDIO_channels, "i", 2);
filter = spa_format_audio_raw_build(&b, 0,
&SPA_AUDIO_INFO_RAW_INIT(
.format = SPA_AUDIO_FORMAT_S16,
.layout = SPA_AUDIO_LAYOUT_INTERLEAVED,
.rate = 44100,
.channels = 2 ));
spa_debug_pod(0, spa_debug_types, filter);

View file

@ -472,14 +472,12 @@ static int negotiate_formats(struct data *data)
uint8_t buffer[2048];
spa_pod_builder_init(&b, buffer, sizeof(buffer));
filter = spa_pod_builder_object(&b,
SPA_TYPE_OBJECT_Format, 0,
"I", SPA_MEDIA_TYPE_audio,
"I", SPA_MEDIA_SUBTYPE_raw,
":", SPA_FORMAT_AUDIO_format, "I", SPA_AUDIO_FORMAT_S16,
":", SPA_FORMAT_AUDIO_layout, "I", SPA_AUDIO_LAYOUT_INTERLEAVED,
":", SPA_FORMAT_AUDIO_rate, "i", 44100,
":", SPA_FORMAT_AUDIO_channels, "i", 2);
filter = spa_format_audio_raw_build(&b, 0,
&SPA_AUDIO_INFO_RAW_INIT(
.format = SPA_AUDIO_FORMAT_S16,
.layout = SPA_AUDIO_LAYOUT_INTERLEAVED,
.rate = 44100,
.channels = 2 ));
if ((res =
spa_node_port_enum_params(data->sink,

View file

@ -270,14 +270,12 @@ static int negotiate_formats(struct data *data)
spa_pod_builder_init(&b, buffer, sizeof(buffer));
filter = spa_pod_builder_object(&b,
SPA_TYPE_OBJECT_Format, 0,
"I", SPA_MEDIA_TYPE_audio,
"I", SPA_MEDIA_SUBTYPE_raw,
":", SPA_FORMAT_AUDIO_format, "I", SPA_AUDIO_FORMAT_S16,
":", SPA_FORMAT_AUDIO_layout, "I", SPA_AUDIO_LAYOUT_INTERLEAVED,
":", SPA_FORMAT_AUDIO_rate, "i", 44100,
":", SPA_FORMAT_AUDIO_channels, "i", 2);
filter = spa_format_audio_raw_build(&b, 0,
&SPA_AUDIO_INFO_RAW_INIT(
.format = SPA_AUDIO_FORMAT_S16,
.layout = SPA_AUDIO_LAYOUT_INTERLEAVED,
.rate = 44100,
.channels = 2 ));
if ((res = spa_node_port_enum_params(data->sink,
SPA_DIRECTION_INPUT, 0,

View file

@ -387,13 +387,11 @@ static int negotiate_formats(struct data *data)
&data->source_output[0], sizeof(data->source_output[0]))) < 0)
return res;
format = spa_pod_builder_object(&b,
SPA_TYPE_OBJECT_Format, 0,
"I", SPA_MEDIA_TYPE_video,
"I", SPA_MEDIA_SUBTYPE_raw,
":", SPA_FORMAT_VIDEO_format, "I", SPA_VIDEO_FORMAT_YUY2,
":", SPA_FORMAT_VIDEO_size, "R", &SPA_RECTANGLE(320, 240),
":", SPA_FORMAT_VIDEO_framerate, "F", &SPA_FRACTION(25,1));
format = spa_format_video_raw_build(&b, 0,
&SPA_VIDEO_INFO_RAW_INIT(
.format = SPA_VIDEO_FORMAT_YUY2,
.size = SPA_RECTANGLE(320, 240),
.framerate = SPA_FRACTION(25,1)));
if ((res = spa_node_port_set_param(data->source,
SPA_DIRECTION_OUTPUT, 0,