+
+ if( src->subs.psz_encoding )
+ dst->subs.psz_encoding = strdup( src->subs.psz_encoding );
+
+ if( src->video.p_palette )
+ {
+ dst->video.p_palette =
+ (video_palette_t*)malloc( sizeof( video_palette_t ) );
+ memcpy( dst->video.p_palette, src->video.p_palette,
+ sizeof( video_palette_t ) );
+ }
+
+ dst->i_extra_languages = src->i_extra_languages;
+ if( dst->i_extra_languages )
+ dst->p_extra_languages = (extra_languages_t*)
+ malloc(dst->i_extra_languages * sizeof(*dst->p_extra_languages ));
+ for( i = 0; i < dst->i_extra_languages; i++ ) {
+ if( src->p_extra_languages[i].psz_language )
+ dst->p_extra_languages[i].psz_language = strdup( src->p_extra_languages[i].psz_language );
+ else
+ dst->p_extra_languages[i].psz_language = NULL;
+ if( src->p_extra_languages[i].psz_description )
+ dst->p_extra_languages[i].psz_description = strdup( src->p_extra_languages[i].psz_description );
+ else
+ dst->p_extra_languages[i].psz_description = NULL;
+ }
+ return VLC_SUCCESS;