summaryrefslogtreecommitdiff
path: root/modules/gst/dump.c
blob: 685d8f6c685343fadf5dd0c06781e49c0ca58dda (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/**
 * @file dump.c  Gstreamer playbin pipeline - dump utilities
 *
 * Copyright (C) 2010 Creytiv.com
 */
#include <re.h>
#include <baresip.h>
#include <gst/gst.h>
#include "gst.h"


void gst_dump_props(GstElement *g)
{
	uint64_t u64;
	gchar *strval;
	double volume;
	int n;

	debug("Gst properties:\n");

	g_object_get(g, "delay", &u64, NULL);
	debug(" delay:           %lu ns\n", u64);

	g_object_get(g, "uri", &strval, NULL);
	debug(" uri:             %s\n", strval);
	g_free(strval);

	g_object_get(g, "suburi", &strval, NULL);
	debug(" suburi:          %s\n", strval);
	g_free(strval);

	g_object_get(g, "queue-size", &u64, NULL);
	debug(" queue-size:      %lu ns\n", u64);

	g_object_get(g, "queue-threshold", &u64, NULL);
	debug(" queue-threshold: %lu ns\n", u64);

	g_object_get(g, "nstreams", &n, NULL);
	debug(" nstreams:        %d\n", n);

	g_object_get(g, "volume", &volume, NULL);
	debug(" Volume:          %f\n", volume);
}


void gst_dump_caps(const GstCaps *caps)
{
	GstStructure *s;
	int rate, channels, width;

	if (!caps)
		return;

	if (!gst_caps_get_size(caps))
		return;

	s = gst_caps_get_structure(caps, 0);

	gst_structure_get_int(s, "rate",     &rate);
	gst_structure_get_int(s, "channels", &channels);
	gst_structure_get_int(s, "width",    &width);

	info("gst: caps dump: %d Hz, %d channels, width=%d\n",
	     rate, channels, width);
}