]> git.sesse.net Git - vlc/blobdiff - include/vlc_es.h
* modules/demux/live555.cpp: fixed segfault
[vlc] / include / vlc_es.h
index b59b9084b90becf247a109e736b9c9c2f44f2c70..675dcb3f7a759ac24edbf40f8f8d901540c93d67 100644 (file)
@@ -142,6 +142,13 @@ struct subs_format_t
 /**
  * ES definition
  */
+typedef struct extra_languages_t
+{
+        char *psz_language;
+        char *psz_description;
+} extra_languages_t;
+
+
 struct es_format_t
 {
     int             i_cat;
@@ -160,11 +167,8 @@ struct es_format_t
     char            *psz_language;
     char            *psz_description;
     int             i_extra_languages;
-    struct {
-        char *psz_language;
-        char *psz_description;
-    } *p_extra_languages;
-    
+    extra_languages_t *p_extra_languages;
+
     audio_format_t audio;
     video_format_t video;
     subs_format_t  subs;
@@ -241,7 +245,7 @@ static inline void es_format_Copy( es_format_t *dst, es_format_t *src )
     }
 
     dst->i_extra_languages = src->i_extra_languages;
-    dst->p_extra_languages = malloc( dst->i_extra_languages * sizeof(*dst->p_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);
@@ -263,7 +267,8 @@ static inline void es_format_Clean( es_format_t *fmt )
     fmt->psz_description = NULL;
 
     if( fmt->i_extra > 0 ) free( fmt->p_extra );
-    fmt->i_extra = 0; fmt->p_extra = NULL;
+    fmt->i_extra = 0;
+    fmt->p_extra = NULL;
 
     if( fmt->video.p_palette ) free( fmt->video.p_palette );
     fmt->video.p_palette = NULL;
@@ -283,5 +288,4 @@ static inline void es_format_Clean( es_format_t *fmt )
         free(fmt->p_extra_languages);
     }
 }
-
 #endif