mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-02 09:01:46 -05:00
tagstruct: Get rid of pa_tagstruct_free_data()
pa_tagstruct_free_data() is used in only one place to pass data from a tagstruct to a packet this patch is a temporary solution which introduces an extra malloc(); will be resolved shortly... Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
This commit is contained in:
parent
b96971941b
commit
ab948629d3
3 changed files with 6 additions and 17 deletions
|
|
@ -23,19 +23,22 @@
|
||||||
|
|
||||||
#include <pulsecore/native-common.h>
|
#include <pulsecore/native-common.h>
|
||||||
#include <pulsecore/macro.h>
|
#include <pulsecore/macro.h>
|
||||||
|
#include <pulse/xmalloc.h>
|
||||||
|
|
||||||
#include "pstream-util.h"
|
#include "pstream-util.h"
|
||||||
|
|
||||||
static void pa_pstream_send_tagstruct_with_ancil_data(pa_pstream *p, pa_tagstruct *t, const pa_cmsg_ancil_data *ancil_data) {
|
static void pa_pstream_send_tagstruct_with_ancil_data(pa_pstream *p, pa_tagstruct *t, const pa_cmsg_ancil_data *ancil_data) {
|
||||||
size_t length;
|
size_t length;
|
||||||
uint8_t *data;
|
const uint8_t *data;
|
||||||
pa_packet *packet;
|
pa_packet *packet;
|
||||||
|
|
||||||
pa_assert(p);
|
pa_assert(p);
|
||||||
pa_assert(t);
|
pa_assert(t);
|
||||||
|
|
||||||
pa_assert_se(data = pa_tagstruct_free_data(t, &length));
|
pa_assert_se(data = pa_tagstruct_data(t, &length));
|
||||||
pa_assert_se(packet = pa_packet_new_dynamic(data, length));
|
pa_assert_se(packet = pa_packet_new_dynamic(pa_xmemdup(data, length), length));
|
||||||
|
pa_tagstruct_free(t);
|
||||||
|
|
||||||
pa_pstream_send_packet(p, packet, ancil_data);
|
pa_pstream_send_packet(p, packet, ancil_data);
|
||||||
pa_packet_unref(packet);
|
pa_packet_unref(packet);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -85,19 +85,6 @@ void pa_tagstruct_free(pa_tagstruct*t) {
|
||||||
pa_xfree(t);
|
pa_xfree(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t* pa_tagstruct_free_data(pa_tagstruct*t, size_t *l) {
|
|
||||||
uint8_t *p;
|
|
||||||
|
|
||||||
pa_assert(t);
|
|
||||||
pa_assert(t->type == PA_TAGSTRUCT_DYNAMIC);
|
|
||||||
pa_assert(l);
|
|
||||||
|
|
||||||
p = t->data;
|
|
||||||
*l = t->length;
|
|
||||||
pa_xfree(t);
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void extend(pa_tagstruct*t, size_t l) {
|
static inline void extend(pa_tagstruct*t, size_t l) {
|
||||||
pa_assert(t);
|
pa_assert(t);
|
||||||
pa_assert(t->type != PA_TAGSTRUCT_FIXED);
|
pa_assert(t->type != PA_TAGSTRUCT_FIXED);
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,6 @@ enum {
|
||||||
pa_tagstruct *pa_tagstruct_new(void);
|
pa_tagstruct *pa_tagstruct_new(void);
|
||||||
pa_tagstruct *pa_tagstruct_new_fixed(const uint8_t* data, size_t length);
|
pa_tagstruct *pa_tagstruct_new_fixed(const uint8_t* data, size_t length);
|
||||||
void pa_tagstruct_free(pa_tagstruct*t);
|
void pa_tagstruct_free(pa_tagstruct*t);
|
||||||
uint8_t* pa_tagstruct_free_data(pa_tagstruct*t, size_t *l);
|
|
||||||
|
|
||||||
int pa_tagstruct_eof(pa_tagstruct*t);
|
int pa_tagstruct_eof(pa_tagstruct*t);
|
||||||
const uint8_t* pa_tagstruct_data(pa_tagstruct*t, size_t *l);
|
const uint8_t* pa_tagstruct_data(pa_tagstruct*t, size_t *l);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue