* hb_audio_copy ********************************************************************** * *********************************************************************/
| 5714 | * |
| 5715 | *********************************************************************/ |
| 5716 | hb_audio_t *hb_audio_copy(const hb_audio_t *src) |
| 5717 | { |
| 5718 | hb_audio_t *audio = NULL; |
| 5719 | |
| 5720 | if( src ) |
| 5721 | { |
| 5722 | audio = calloc(1, sizeof(*audio)); |
| 5723 | memcpy(audio, src, sizeof(*audio)); |
| 5724 | AVChannelLayout *ch_layout = calloc(1, sizeof(*ch_layout)); |
| 5725 | av_channel_layout_copy(ch_layout, src->config.in.ch_layout); |
| 5726 | audio->config.in.ch_layout = ch_layout; |
| 5727 | if ( src->config.out.name ) |
| 5728 | { |
| 5729 | audio->config.out.name = strdup(src->config.out.name); |
| 5730 | } |
| 5731 | if ( src->config.in.name ) |
| 5732 | { |
| 5733 | audio->config.in.name = strdup(src->config.in.name); |
| 5734 | } |
| 5735 | if ( src->config.list_linked_index != NULL ) |
| 5736 | { |
| 5737 | int ii; |
| 5738 | int count = hb_list_count(src->config.list_linked_index); |
| 5739 | audio->config.list_linked_index = hb_list_init(); |
| 5740 | for (ii = 0; ii < count; ii++) |
| 5741 | { |
| 5742 | hb_list_add_dup(audio->config.list_linked_index, |
| 5743 | hb_list_item(src->config.list_linked_index, ii), |
| 5744 | sizeof(int)); |
| 5745 | } |
| 5746 | } |
| 5747 | audio->priv.extradata = hb_data_dup(src->priv.extradata); |
| 5748 | } |
| 5749 | return audio; |
| 5750 | } |
| 5751 | |
| 5752 | /********************************************************************** |
| 5753 | * hb_audio_list_copy |
no test coverage detected