]> granicus.if.org Git - handbrake/commitdiff
libhb: allow removal of tags
authorJohn Stebbins <jstebbins.hb@gmail.com>
Mon, 2 Jan 2017 18:06:36 +0000 (11:06 -0700)
committerJohn Stebbins <jstebbins.hb@gmail.com>
Wed, 4 Jan 2017 00:03:56 +0000 (17:03 -0700)
Setting an empty string tag allows removal of existing tags.
Note that setting a NULL string does not remove an existing tag but
instead results in the tag getting passed through from the source.

gtk/src/callbacks.c
libhb/hb_json.c

index 28ac08f9a6a06e88341c38f7414904073fb15700..a83e5495ec46c3f1dadf2f8c9851057bd04f990f 100644 (file)
@@ -1827,7 +1827,7 @@ static void update_meta(GhbValue *settings, const char *name, const char *val)
 {
     GhbValue *metadata = ghb_get_job_metadata_settings(settings);
 
-    if (val == NULL || val[0] == 0)
+    if (val == NULL)
         ghb_dict_remove(metadata, name);
     else
         ghb_dict_set_string(metadata, name, val);
index efc64fa977ffe8e20188a19dd34d430ddf406080..263999f1afa4916cb2fdaef75ffbd061e9e836b0 100644 (file)
@@ -1007,41 +1007,104 @@ hb_job_t* hb_dict_to_job( hb_handle_t * h, hb_dict_t *dict )
 
     job->select_subtitle_config.dest = subtitle_search_burn ?
                                             RENDERSUB : PASSTHRUSUB;
-    if (meta_name != NULL && meta_name[0] != 0)
+    if (meta_name != NULL)
     {
-        hb_metadata_set_name(job->metadata, meta_name);
+        if (meta_name[0] != 0)
+        {
+            hb_metadata_set_name(job->metadata, meta_name);
+        }
+        else
+        {
+            hb_metadata_set_name(job->metadata, NULL);
+        }
     }
-    if (meta_artist != NULL && meta_artist[0] != 0)
+    if (meta_artist != NULL)
     {
-        hb_metadata_set_artist(job->metadata, meta_artist);
+        if (meta_artist[0] != 0)
+        {
+            hb_metadata_set_artist(job->metadata, meta_artist);
+        }
+        else
+        {
+            hb_metadata_set_artist(job->metadata, NULL);
+        }
     }
-    if (meta_composer != NULL && meta_composer[0] != 0)
+    if (meta_composer != NULL)
     {
-        hb_metadata_set_composer(job->metadata, meta_composer);
+        if (meta_composer[0] != 0)
+        {
+            hb_metadata_set_composer(job->metadata, meta_composer);
+        }
+        else
+        {
+            hb_metadata_set_composer(job->metadata, NULL);
+        }
     }
-    if (meta_album_artist != NULL && meta_album_artist[0] != 0)
+    if (meta_album_artist != NULL)
     {
-        hb_metadata_set_album_artist(job->metadata, meta_album_artist);
+        if (meta_album_artist[0] != 0)
+        {
+            hb_metadata_set_album_artist(job->metadata, meta_album_artist);
+        }
+        else
+        {
+            hb_metadata_set_album_artist(job->metadata, NULL);
+        }
     }
-    if (meta_release != NULL && meta_release[0] != 0)
+    if (meta_release != NULL)
     {
-        hb_metadata_set_release_date(job->metadata, meta_release);
+        if (meta_release[0] != 0)
+        {
+            hb_metadata_set_release_date(job->metadata, meta_release);
+        }
+        else
+        {
+            hb_metadata_set_release_date(job->metadata, NULL);
+        }
     }
-    if (meta_comment != NULL && meta_comment[0] != 0)
+    if (meta_comment != NULL)
     {
-        hb_metadata_set_comment(job->metadata, meta_comment);
+        if (meta_comment[0] != 0)
+        {
+            hb_metadata_set_comment(job->metadata, meta_comment);
+        }
+        else
+        {
+            hb_metadata_set_comment(job->metadata, NULL);
+        }
     }
-    if (meta_genre != NULL && meta_genre[0] != 0)
+    if (meta_genre != NULL)
     {
-        hb_metadata_set_genre(job->metadata, meta_genre);
+        if (meta_genre[0] != 0)
+        {
+            hb_metadata_set_genre(job->metadata, meta_genre);
+        }
+        else
+        {
+            hb_metadata_set_genre(job->metadata, NULL);
+        }
     }
-    if (meta_desc != NULL && meta_desc[0] != 0)
+    if (meta_desc != NULL)
     {
-        hb_metadata_set_description(job->metadata, meta_desc);
+        if (meta_desc[0] != 0)
+        {
+            hb_metadata_set_description(job->metadata, meta_desc);
+        }
+        else
+        {
+            hb_metadata_set_description(job->metadata, NULL);
+        }
     }
-    if (meta_long_desc != NULL && meta_long_desc[0] != 0)
+    if (meta_long_desc != NULL)
     {
-        hb_metadata_set_long_description(job->metadata, meta_long_desc);
+        if (meta_long_desc[0] != 0)
+        {
+            hb_metadata_set_long_description(job->metadata, meta_long_desc);
+        }
+        else
+        {
+            hb_metadata_set_long_description(job->metadata, NULL);
+        }
     }
 
     // process chapter list