mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-31 22:25:38 -04:00
format: make helper functions to create formats
Use helper functions to create a fully specified format.
This commit is contained in:
parent
80de83f38a
commit
514528f2c7
24 changed files with 158 additions and 430 deletions
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue