]> git.sesse.net Git - vlc/blobdiff - include/vlc_es.h
Add video_format_{Copy,Init,Clean} inline functions and bump ABI.
[vlc] / include / vlc_es.h
index ad45797bfa591d6a4f77f7d33900f7dabdde1bc1..b65e5ac3f448921f6d269ac2837b653a0ef1b55c 100644 (file)
@@ -136,6 +136,34 @@ struct video_format_t
     video_palette_t *p_palette;              /**< video palette from demuxer */
 };
 
+static inline void video_format_Init( video_format_t *p_src, vlc_fourcc_t i_chroma )
+{
+    memset( p_src, 0, sizeof( video_format_t ) );
+    p_src->i_chroma = i_chroma;
+    p_src->i_sar_num = p_src->i_sar_den = 1;
+    p_src->p_palette = NULL;
+}
+
+static inline int video_format_Copy( video_format_t *p_dst, video_format_t *p_src )
+{
+    memcpy( p_dst, p_src, sizeof( video_format_t ) );
+    if( p_src->p_palette )
+    {
+        p_dst->p_palette = (video_palette_t *) malloc( sizeof( video_palette_t ) );
+        if( !p_dst->p_palette )
+            return VLC_ENOMEM;
+        memcpy( p_dst->p_palette, p_src->p_palette, sizeof( video_palette_t ) );
+    }
+    return VLC_SUCCESS;
+};
+
+static inline void video_format_Clean( video_format_t *p_src )
+{
+    free( p_src->p_palette );
+    memset( p_src, 0, sizeof( video_format_t ) );
+    p_src->p_palette = NULL;
+}
+
 /**
  * subtitles format description
  */