Add streaming_start_copy() and streaming_start_component_find_by_index()
This commit is contained in:
parent
d025fbf028
commit
78832faacd
2 changed files with 52 additions and 0 deletions
|
@ -358,3 +358,47 @@ streaming_code2txt(int code)
|
|||
return "Unknown reason";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
streaming_start_t *
|
||||
streaming_start_copy(const streaming_start_t *src)
|
||||
{
|
||||
int i;
|
||||
size_t siz = sizeof(streaming_start_t) +
|
||||
sizeof(streaming_start_component_t) * src->ss_num_components;
|
||||
|
||||
streaming_start_t *dst = malloc(siz);
|
||||
|
||||
memcpy(dst, src, siz);
|
||||
transport_source_info_copy(&dst->ss_si, &src->ss_si);
|
||||
|
||||
for(i = 0; i < dst->ss_num_components; i++) {
|
||||
streaming_start_component_t *ssc = &dst->ss_components[i];
|
||||
if(ssc->ssc_global_header != NULL)
|
||||
ssc->ssc_global_header = memcpy(malloc(ssc->ssc_global_header_len),
|
||||
ssc->ssc_global_header,
|
||||
ssc->ssc_global_header_len);
|
||||
}
|
||||
|
||||
dst->ss_refcount = 1;
|
||||
return dst;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
streaming_start_component_t *
|
||||
streaming_start_component_find_by_index(streaming_start_t *ss, int idx)
|
||||
{
|
||||
int i;
|
||||
for(i = 0; i < ss->ss_num_components; i++) {
|
||||
streaming_start_component_t *ssc = &ss->ss_components[i];
|
||||
if(ssc->ssc_index == idx)
|
||||
return ssc;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -36,6 +36,8 @@ typedef struct streaming_start_component {
|
|||
uint8_t *ssc_global_header;
|
||||
int ssc_global_header_len;
|
||||
|
||||
int ssc_frameduration;
|
||||
|
||||
} streaming_start_component_t;
|
||||
|
||||
|
||||
|
@ -91,9 +93,15 @@ void streaming_target_deliver2(streaming_target_t *st, streaming_message_t *sm);
|
|||
|
||||
void streaming_start_unref(streaming_start_t *ss);
|
||||
|
||||
streaming_start_t *streaming_start_copy(const streaming_start_t *src);
|
||||
|
||||
int streaming_pad_probe_type(streaming_pad_t *sp,
|
||||
streaming_message_type_t smt);
|
||||
|
||||
const char *streaming_code2txt(int code);
|
||||
|
||||
streaming_start_component_t *streaming_start_component_find_by_index(streaming_start_t *ss, int idx);
|
||||
|
||||
|
||||
|
||||
#endif /* STREAMING_H_ */
|
||||
|
|
Loading…
Add table
Reference in a new issue