]> git.sesse.net Git - vlc/blobdiff - lib/vlm.c
mediacodec: process input buffers in only one place
[vlc] / lib / vlm.c
index ed3d7e4a7434ce8c39a4305c841cbef31f691626..4f808c8158252d683a3523e5c8acec8a2c1e96ef 100644 (file)
--- a/lib/vlm.c
+++ b/lib/vlm.c
@@ -263,11 +263,16 @@ static char* recurse_answer( vlm_message_t *p_answer, const char* psz_delim,
              * inside a list), create a property of its name as if it
              * had a name value node
              */
+            free( psz_nametag );
             if( i_list )
             {
                 i_success = asprintf( &psz_nametag, "\"name\": \"%s\",%s",
                               aw_child->psz_name, psz_childdelim );
-                if( i_success == -1 ) break;
+                if( i_success == -1 )
+                {
+                    psz_nametag = NULL;
+                    break;
+                }
             }
             else
             {
@@ -281,7 +286,7 @@ static char* recurse_answer( vlm_message_t *p_answer, const char* psz_delim,
                 strcmp( aw_child->psz_name, "inputs" ) == 0 ||
                 strcmp( aw_child->psz_name, "options" ) == 0 )
             {
-                char *psz_recurse = recurse_answer( aw_child, psz_childdelim, 1 ),
+                char *psz_recurse = recurse_answer( aw_child, psz_childdelim, 1 );
                 i_success = asprintf( &psz_tmp, "%s[%s%s%s]%c%s",
                                       psz_response, psz_childdelim, psz_recurse,
                                       psz_delim, c_comma, psz_delim );
@@ -295,7 +300,7 @@ static char* recurse_answer( vlm_message_t *p_answer, const char* psz_delim,
              */
             else
             {
-                char *psz_recurse = recurse_answer( aw_child, psz_childdelim, 0 ),
+                char *psz_recurse = recurse_answer( aw_child, psz_childdelim, 0 );
                 i_success = asprintf( &psz_tmp, "%s{%s%s%s%s}%c%s",
                                       psz_response, psz_childdelim, psz_nametag,
                                       psz_recurse, psz_delim, c_comma, psz_delim );
@@ -763,7 +768,7 @@ int libvlc_vlm_get_media_instance_seekable( libvlc_instance_t *p_instance,
 libvlc_event_manager_t *
 libvlc_vlm_get_event_manager( libvlc_instance_t *p_instance )
 {
-    vlm_t *p_vlm;
-    VLM_RET( p_vlm, NULL);
+    if( libvlc_vlm_init( p_instance ) )
+        return NULL;
     return p_instance->libvlc_vlm.p_event_manager;
 }