diff -Naur gnac-0.2.4.1.orig/configure.ac gnac-0.2.4.1/configure.ac --- gnac-0.2.4.1.orig/configure.ac 2012-04-22 14:09:01.000000000 +0200 +++ gnac-0.2.4.1/configure.ac 2015-01-09 23:55:03.296384170 +0100 @@ -93,21 +93,21 @@ dnl Find the GStreamer libraries GSTREAMER_REQUIRED_VERSION=0.10.31 PKG_CHECK_MODULES(GSTREAMER, [ - gstreamer-0.10 >= $GSTREAMER_REQUIRED_VERSION - gstreamer-base-0.10 >= $GSTREAMER_REQUIRED_VERSION - gstreamer-pbutils-0.10 >= $GSTREAMER_REQUIRED_VERSION - gstreamer-plugins-base-0.10 >= $GSTREAMER_REQUIRED_VERSION - gstreamer-tag-0.10 >= $GSTREAMER_REQUIRED_VERSION + gstreamer-1.0 >= $GSTREAMER_REQUIRED_VERSION + gstreamer-base-1.0 >= $GSTREAMER_REQUIRED_VERSION + gstreamer-pbutils-1.0 >= $GSTREAMER_REQUIRED_VERSION + gstreamer-plugins-base-1.0 >= $GSTREAMER_REQUIRED_VERSION + gstreamer-tag-1.0 >= $GSTREAMER_REQUIRED_VERSION ]) AC_SUBST(GSTREAMER_CFLAGS) AC_SUBST(GSTREAMER_LIBS) dnl Find the GStreamer elements we use, and warn if they are not present -AM_GST_ELEMENT_CHECK(faac, , AC_MSG_WARN([The 'faac' element was not found. This will cause encoding to AAC to fail.])) -AM_GST_ELEMENT_CHECK(flacenc, , AC_MSG_WARN([The 'flacenc' element was not found. This will cause encoding to FLAC to fail.])) -AM_GST_ELEMENT_CHECK(lame, , AC_MSG_WARN([The 'lame' element was not found. This will cause encoding to MP3 to fail.])) -AM_GST_ELEMENT_CHECK(wavenc, , AC_MSG_WARN([The 'wavenc' element was not found. This will cause encoding to WAV to fail.])) -AM_GST_ELEMENT_CHECK(wavpackenc, , AC_MSG_WARN([The 'wavpackenc' element was not found. This will cause encoding to WAVPACK to fail.])) +GST_ELEMENT_CHECK(faac, 1.0, , AC_MSG_WARN([The 'faac' element was not found. This will cause encoding to AAC to fail.])) +GST_ELEMENT_CHECK(flacenc, 1.0, , AC_MSG_WARN([The 'flacenc' element was not found. This will cause encoding to FLAC to fail.])) +GST_ELEMENT_CHECK(lamemp3enc, 1.0, , AC_MSG_WARN([The 'lamemp3enc' element was not found. This will cause encoding to MP3 to fail.])) +GST_ELEMENT_CHECK(wavenc, 1.0, , AC_MSG_WARN([The 'wavenc' element was not found. This will cause encoding to WAV to fail.])) +GST_ELEMENT_CHECK(wavpackenc, 1.0, , AC_MSG_WARN([The 'wavpackenc' element was not found. This will cause encoding to WAVPACK to fail.])) dnl Optionnaly enable G* deprecations AC_MSG_CHECKING([Wether to enable deprecation warnings]) diff -Naur gnac-0.2.4.1.orig/data/profiles/aac.xml.in gnac-0.2.4.1/data/profiles/aac.xml.in --- gnac-0.2.4.1.orig/data/profiles/aac.xml.in 2012-01-26 01:28:46.000000000 +0100 +++ gnac-0.2.4.1/data/profiles/aac.xml.in 2015-01-09 23:49:31.329712534 +0100 @@ -11,8 +11,8 @@ faac - ... - + ... + Bitrate bitrate @@ -37,33 +37,12 @@ 320 Kbps - - Profile - <_description>AAC takes a modular approach to encoding. There are four default profiles using different tools: (LC) -> the simplest and most widely used and supported; (MAIN) -> like the LC profile, with the addition of backwards prediction; (SRS) -> a.k.a. Scalable Sample Rate (MPEG-4 AAC-SSR); (LTP) -> an improvement of the MAIN profile using a forward predictor with lower computational complexity. - profile - 1 - - Main (MAIN) - Low complexity (LC) - Scalable sampling rate (SSR) - Long term prediction (LTP) - - - + Temporal noise shaping <_description>Conventional transform coding schemes often encounter problems with signals that vary heavily over time, especially speech signals. Temporal noise shaping can be viewed as a postprocessing step which goal is to overcome this limitation. tns false - - Output format - outputformat - 1 - - <_value value="1">ADTS headers - <_value value="0">Raw AAC - - diff -Naur gnac-0.2.4.1.orig/data/profiles/base.xml.in gnac-0.2.4.1/data/profiles/base.xml.in --- gnac-0.2.4.1.orig/data/profiles/base.xml.in 2012-01-26 01:28:46.000000000 +0100 +++ gnac-0.2.4.1/data/profiles/base.xml.in 2015-01-09 23:49:31.329712534 +0100 @@ -21,7 +21,7 @@ - audio/x-raw-int + audio/x-raw audioconvert diff -Naur gnac-0.2.4.1.orig/data/profiles/default/CD_Quality,_AAC.xml.in gnac-0.2.4.1/data/profiles/default/CD_Quality,_AAC.xml.in --- gnac-0.2.4.1.orig/data/profiles/default/CD_Quality,_AAC.xml.in 2012-01-25 17:27:37.000000000 +0100 +++ gnac-0.2.4.1/data/profiles/default/CD_Quality,_AAC.xml.in 2015-01-10 01:03:29.951986568 +0100 @@ -8,12 +8,10 @@ <_description>Used for converting to CD-quality audio, but with the lossy AAC codec. Use this for preparing files for copying to devices that only support the AAC codec. Note that using this format may be illegal in your jurisdiction; contact your lawyer for advice. 2 44100 - audioconvert ! audio/x-raw-float, rate=44100, channels=2 ! audioconvert ! faac bitrate=128000 outputformat=1 + audioconvert ! audio/x-raw, rate=44100, channels=2 ! audioconvert ! faac bitrate=128000 ! audio/mpeg, mpegversion=4, stream-format=adts ! aacparse 128000 - 1 - 1 false diff -Naur gnac-0.2.4.1.orig/data/profiles/default/CD_Quality,_Lossless.xml.in gnac-0.2.4.1/data/profiles/default/CD_Quality,_Lossless.xml.in --- gnac-0.2.4.1.orig/data/profiles/default/CD_Quality,_Lossless.xml.in 2012-01-25 17:27:37.000000000 +0100 +++ gnac-0.2.4.1/data/profiles/default/CD_Quality,_Lossless.xml.in 2015-01-09 23:49:31.329712534 +0100 @@ -8,7 +8,7 @@ <_description>Used for converting to CD-quality audio, but with a lossless compression codec. Use this if you later want to edit the file or burn it to CD. 2 44100 - audioconvert ! audio/x-raw-float, rate=44100, channels=2 ! audioconvert ! flacenc name=enc quality=5 + audioconvert ! audio/x-raw, rate=44100, channels=2 ! audioconvert ! flacenc name=enc quality=5 5 diff -Naur gnac-0.2.4.1.orig/data/profiles/default/CD_Quality,_Lossy.xml.in gnac-0.2.4.1/data/profiles/default/CD_Quality,_Lossy.xml.in --- gnac-0.2.4.1.orig/data/profiles/default/CD_Quality,_Lossy.xml.in 2012-01-25 17:27:37.000000000 +0100 +++ gnac-0.2.4.1/data/profiles/default/CD_Quality,_Lossy.xml.in 2015-01-09 23:49:31.333045887 +0100 @@ -8,7 +8,7 @@ <_description>Used for converting to CD-quality audio, but with a lossy compression codec. Use this for CD extraction and radio recordings. 2 44100 - audioconvert ! audio/x-raw-float, rate=44100, channels=2 ! audioconvert ! vorbisenc name=enc quality=0.5 ! oggmux + audioconvert ! audio/x-raw, rate=44100, channels=2 ! audioconvert ! vorbisenc name=enc quality=0.5 ! oggmux 0.5 diff -Naur gnac-0.2.4.1.orig/data/profiles/default/CD_Quality,_MP3.xml.in gnac-0.2.4.1/data/profiles/default/CD_Quality,_MP3.xml.in --- gnac-0.2.4.1.orig/data/profiles/default/CD_Quality,_MP3.xml.in 2012-01-25 17:27:37.000000000 +0100 +++ gnac-0.2.4.1/data/profiles/default/CD_Quality,_MP3.xml.in 2015-01-09 23:49:31.333045887 +0100 @@ -8,18 +8,12 @@ <_description>Used for converting to CD-quality audio, but with the lossy MP3 codec. Use this for preparing files for copying to devices that only support the MP3 codec. Note that using this format may be illegal in your jurisdiction; contact your lawyer for advice. 2 44100 - audioconvert ! audio/x-raw-float, rate=44100, channels=2 ! audioconvert ! lame name=enc mode=4 vbr=4 vbr-quality=6 ! xingmux ! id3v2mux + audioconvert ! audio/x-raw, rate=44100, channels=2 ! audioconvert ! lamemp3enc name=enc target=quality quality=4 ! xingmux ! id3v2mux - 4 + quality - 6 - - - - - - - 4 + 4 + diff -Naur gnac-0.2.4.1.orig/data/profiles/default/Voice,_Lossless.xml.in gnac-0.2.4.1/data/profiles/default/Voice,_Lossless.xml.in --- gnac-0.2.4.1.orig/data/profiles/default/Voice,_Lossless.xml.in 2012-01-25 17:27:37.000000000 +0100 +++ gnac-0.2.4.1/data/profiles/default/Voice,_Lossless.xml.in 2015-01-09 23:49:31.333045887 +0100 @@ -8,7 +8,7 @@ <_description>Used for converting to lossless voice-quality audio. Use this for recording and editing speech. 2 44100 - audioconvert ! audio/x-raw-int, rate=44100, channels=2 ! audioconvert ! wavenc name=enc + audioconvert ! audio/x-raw, rate=44100, channels=2 ! audioconvert ! wavenc name=enc diff -Naur gnac-0.2.4.1.orig/data/profiles/default/Voice,_Lossy.xml.in gnac-0.2.4.1/data/profiles/default/Voice,_Lossy.xml.in --- gnac-0.2.4.1.orig/data/profiles/default/Voice,_Lossy.xml.in 2012-01-25 17:27:37.000000000 +0100 +++ gnac-0.2.4.1/data/profiles/default/Voice,_Lossy.xml.in 2015-01-09 23:49:31.333045887 +0100 @@ -8,7 +8,7 @@ <_description>Used for converting to lossy voice-quality audio. Use this for recording speech that doesn't need to be edited. 2 44100 - audioconvert ! audio/x-raw-float, rate=44100, channels=2 ! audioconvert ! speexenc name=enc quality=8 vad=false mode=0 ! oggmux + audioconvert ! audio/x-raw, rate=44100, channels=2 ! audioconvert ! speexenc name=enc quality=8 vad=false mode=0 ! oggmux diff -Naur gnac-0.2.4.1.orig/data/profiles/mp3-lame.xml.in gnac-0.2.4.1/data/profiles/mp3-lame.xml.in --- gnac-0.2.4.1.orig/data/profiles/mp3-lame.xml.in 2012-01-26 01:28:46.000000000 +0100 +++ gnac-0.2.4.1/data/profiles/mp3-lame.xml.in 2015-01-09 23:49:31.333045887 +0100 @@ -13,58 +13,27 @@ application/x-id3 audio/x-mp3 - lame name=enc + lamemp3enc name=enc Add Xing header Add id3v2 header - - Preset - preset - 1006 - - <_value value="1006">Medium - <_value value="1001">Standard - <_value value="1002">Extreme - <_value value="1003">Insane - - - - Bitrate mode - vbr + + Target + target 0 - <_value value="0">Constant bitrate (CBR) - <_value value="3">Average bitrate (ABR) - <_value value="4">Variable bitrate (VBR) - <_value value="5">Presets - <_value value="6">Compression ratio + <_value value="quality">Quality + <_value value="bitrate">Bitrate VBR quality - vbr-quality + quality 0.0 - 9.0 + 10.0 1.0 - 3.0 - - - Compression ratio - <_description>Let lame choose bitrate to achieve selected compression ratio. - compression-ratio - 0.0 - 200 - 1.0 - 0.0 - - - VBR mean bitrate - vbr-mean-bitrate - 0.0 - 330.0 - 1.0 - 192 + 4.0 Bitrate @@ -90,64 +59,13 @@ 320 Kbps - - VBR minimum bitrate - vbr-min-bitrate - 128 - - 8 Kbps - 16 Kbps - 24 Kbps - 32 Kbps - 40 Kbps - 48 Kbps - 56 Kbps - 64 Kbps - 80 Kbps - 96 Kbps - 112 Kbps - 128 Kbps - 160 Kbps - 192 Kbps - 224 Kbps - 256 Kbps - 320 Kbps - - - - VBR maximum bitrate - vbr-max-bitrate - 128 - - 8 Kbps - 16 Kbps - 24 Kbps - 32 Kbps - 40 Kbps - 48 Kbps - 56 Kbps - 64 Kbps - 80 Kbps - 96 Kbps - 112 Kbps - 128 Kbps - 160 Kbps - 192 Kbps - 224 Kbps - 256 Kbps - 320 Kbps - - - + Mode - mode - 4 + mono + 0 - <_value value="0">Stereo - <_value value="1">Joint Stereo - <_value value="2">Dual Channel - <_value value="3">Mono - <_value value="4">Auto + <_value value="0">Auto + <_value value="1">Mono diff -Naur gnac-0.2.4.1.orig/data/profiles/ui/gnac-profiles-aac.xml gnac-0.2.4.1/data/profiles/ui/gnac-profiles-aac.xml --- gnac-0.2.4.1.orig/data/profiles/ui/gnac-profiles-aac.xml 2012-04-22 14:09:01.000000000 +0200 +++ gnac-0.2.4.1/data/profiles/ui/gnac-profiles-aac.xml 2015-01-09 23:49:31.333045887 +0100 @@ -1,6 +1,7 @@ + - + True False @@ -26,84 +27,6 @@ 5 10 - - True - False - 0 - Output format - - - 0 - 3 - 1 - 1 - - - - - True - False - - - True - False - - - - False - False - end - 0 - - - - - 1 - 3 - 1 - 1 - - - - - True - False - 0 - Profile - - - 0 - 1 - 1 - 1 - - - - - True - False - - - True - False - - - - False - False - end - 0 - - - - - 1 - 1 - 1 - 1 - - - Temporal noise shaping False @@ -111,16 +34,14 @@ True False True - False 0 True 0 - 2 + 1 2 - 1 @@ -146,7 +67,6 @@ 0 1 2 - 1 @@ -170,8 +90,6 @@ 1 0 - 1 - 1 @@ -184,8 +102,6 @@ 0 0 - 1 - 1 diff -Naur gnac-0.2.4.1.orig/data/profiles/ui/gnac-profiles-lame.xml gnac-0.2.4.1/data/profiles/ui/gnac-profiles-lame.xml --- gnac-0.2.4.1.orig/data/profiles/ui/gnac-profiles-lame.xml 2012-04-22 14:09:01.000000000 +0200 +++ gnac-0.2.4.1/data/profiles/ui/gnac-profiles-lame.xml 2015-01-09 23:49:31.336379238 +0100 @@ -1,6 +1,7 @@ + - + 100 1 @@ -10,9 +11,6 @@ 1 - - 1 - True False @@ -44,7 +42,7 @@ True False - + True False @@ -60,8 +58,6 @@ 1 1 - 1 - 1 @@ -74,133 +70,6 @@ 0 1 - 1 - 1 - - - - - Mean bitrate - False - True - True - False - False - 0 - True - - - - 0 - 2 - 1 - 1 - - - - - Min bitrate - False - True - True - False - False - 0 - True - - - - 0 - 3 - 1 - 1 - - - - - Max bitrate - False - True - True - False - False - 0 - True - - - - 0 - 4 - 1 - 1 - - - - - True - False - True - adjustment1 - 0 - - - - 1 - 2 - 1 - 1 - - - - - True - False - - - True - False - False - - - - False - False - end - 0 - - - - - 1 - 3 - 1 - 1 - - - - - True - False - - - True - False - False - - - - False - False - end - 0 - - - - - 1 - 4 - 1 - 1 @@ -223,9 +92,8 @@ 0 - 6 + 3 2 - 1 @@ -233,10 +101,10 @@ True False - + True False - + False @@ -249,8 +117,6 @@ 1 0 - 1 - 1 @@ -274,47 +140,6 @@ 1 1 - 1 - 1 - - - - - True - False - - - True - False - - - - False - False - end - 0 - - - - - 1 - 3 - 1 - 1 - - - - - True - False - 0 - Preset - - - 0 - 3 - 1 - 1 @@ -327,8 +152,6 @@ 0 2 - 1 - 1 @@ -336,13 +159,11 @@ True False 0 - Constant bitrate (CBR) + Bitrate 0 1 - 1 - 1 @@ -350,13 +171,11 @@ True False 0 - Encoding mode + Target 0 0 - 1 - 1 @@ -414,69 +233,12 @@ 1 2 - 1 - 1 - - - - - True - False - 0 - Average bitrate (ABR) - - - 0 - 4 - 1 - 1 - - - - - True - True - adjustment1 - 0 - - - - 1 - 4 - 1 - 1 - - - - - True - False - 0 - Compression ratio - - - 0 - 5 - 1 - 1 - - - - - True - True - adjustment3 - 0 - - - - 1 - 5 - 1 - 1 + + 1 + diff -Naur gnac-0.2.4.1.orig/libgnac/libgnac-converter.c gnac-0.2.4.1/libgnac/libgnac-converter.c --- gnac-0.2.4.1.orig/libgnac/libgnac-converter.c 2012-03-22 16:50:45.000000000 +0100 +++ gnac-0.2.4.1/libgnac/libgnac-converter.c 2015-01-09 23:49:31.336379238 +0100 @@ -1000,13 +1000,13 @@ gint64 pos; static GstFormat format = GST_FORMAT_TIME; - if (gst_element_query_position(item->pipeline, &format, &pos)) { + if (gst_element_query_position(item->pipeline, format, &pos)) { if (pos != item->pos) { gint64 len; gfloat result = 0.0f; guint64 time_left = 0; - if (gst_element_query_duration(item->pipeline, &format, &len)) { + if (gst_element_query_duration(item->pipeline, format, &len)) { gfloat processed = priv->elapsed_duration + ((pos - len) / GST_SECOND); result = CLAMP(processed / priv->total_duration, 0.0f, 1.0f); /* XXX this is a workaround to prevent the remaining time diff -Naur gnac-0.2.4.1.orig/libgnac/libgnac-error.c gnac-0.2.4.1/libgnac/libgnac-error.c --- gnac-0.2.4.1.orig/libgnac/libgnac-error.c 2012-01-26 01:28:46.000000000 +0100 +++ gnac-0.2.4.1/libgnac/libgnac-error.c 2015-01-09 23:49:31.336379238 +0100 @@ -52,7 +52,7 @@ gst_message_unref(msg); if (!detail) return; - gchar *details[] = { detail, NULL }; + const gchar *details[] = { detail, NULL }; GstInstallPluginsReturn ret = gst_install_plugins_async(details, NULL, libgnac_converter_missing_plugin_result_cb, item->parent); g_free(detail); diff -Naur gnac-0.2.4.1.orig/libgnac/libgnac-gst.c gnac-0.2.4.1/libgnac/libgnac-gst.c --- gnac-0.2.4.1.orig/libgnac/libgnac-gst.c 2012-02-28 12:26:06.000000000 +0100 +++ gnac-0.2.4.1/libgnac/libgnac-gst.c 2015-01-09 23:49:31.336379238 +0100 @@ -223,7 +223,7 @@ /* decodebin */ GstElement *decodebin = libgnac_gstu_make_pipeline_element(item->pipeline, - "decodebin2", NULL, &err); + "decodebin", NULL, &err); if (err) { g_propagate_error(error, err); return; @@ -382,7 +382,7 @@ gpointer data) { LibgnacMediaItem *item = (LibgnacMediaItem *) data; - GstCaps *caps = gst_pad_get_caps(pad); + GstCaps *caps = gst_pad_query_caps(pad, NULL); if (gst_caps_is_empty(caps) || gst_caps_is_any(caps)) { libgnac_debug("Got a bad caps: %s", gst_caps_to_string(caps)); diff -Naur gnac-0.2.4.1.orig/libgnac/libgnac-metadata.c gnac-0.2.4.1/libgnac/libgnac-metadata.c --- gnac-0.2.4.1.orig/libgnac/libgnac-metadata.c 2012-03-27 15:51:09.000000000 +0200 +++ gnac-0.2.4.1/libgnac/libgnac-metadata.c 2015-01-10 00:34:27.564874078 +0100 @@ -209,11 +209,14 @@ GstBuffer *buffer = gst_value_get_buffer(val); g_return_if_fail(buffer); + GstSample *sample = gst_value_get_sample(val); + g_return_if_fail(sample); + gint image_type = GST_TAG_IMAGE_TYPE_NONE; /* GST_TAG_PREVIEW_IMAGE does not have an "image-type" field */ if (g_str_equal(tag_name, GST_TAG_IMAGE)) { - GstCaps *caps = GST_BUFFER_CAPS(buffer); + GstCaps *caps = gst_sample_get_caps(sample); g_return_if_fail(caps); GstStructure *structure = gst_caps_get_structure(caps, 0); @@ -231,8 +234,11 @@ { GdkPixbufLoader *loader = gdk_pixbuf_loader_new(); GError *error = NULL; - guint8 *data = GST_BUFFER_DATA(buffer); - guint size = GST_BUFFER_SIZE(buffer); + GstMapInfo *info = NULL; + gst_buffer_map(buffer, info, GST_MAP_READ); + guint8 *data = info->data; + guint size = info->size; + gst_buffer_unmap(buffer, info); if (!gdk_pixbuf_loader_write(loader, data, size, &error)) { libgnac_debug("Error writing data to pixbuf: %s", error->message); @@ -297,8 +303,8 @@ if (g_str_equal(tag_name, GST_TAG_DATE)) { - g_return_if_fail(GST_VALUE_HOLDS_DATE(newval)); - const GDate *date = gst_value_get_date(newval); + g_return_if_fail(G_VALUE_HOLDS(newval,G_TYPE_DATE)); + const GDate *date = g_value_get_boxed(newval); if (!date) return; GDateYear year = g_date_get_year(date); g_value_unset(newval); diff -Naur gnac-0.2.4.1.orig/src/gnac-options.c gnac-0.2.4.1/src/gnac-options.c --- gnac-0.2.4.1.orig/src/gnac-options.c 2012-02-28 12:26:06.000000000 +0100 +++ gnac-0.2.4.1/src/gnac-options.c 2015-01-09 23:49:31.339712589 +0100 @@ -27,6 +27,7 @@ #include "config.h" #endif +#include #include #include diff -Naur gnac-0.2.4.1.orig/src/Makefile.am gnac-0.2.4.1/src/Makefile.am --- gnac-0.2.4.1.orig/src/Makefile.am 2012-03-01 00:35:14.000000000 +0100 +++ gnac-0.2.4.1/src/Makefile.am 2015-01-09 23:49:31.339712589 +0100 @@ -73,6 +73,7 @@ $(AM_CFLAGS) \ $(GSTREAMER_CFLAGS) \ $(GTK_CFLAGS) \ + $(LIBXML_CFLAGS) \ $(NOTIFY_CFLAGS) \ $(UNIQUE_CFLAGS) \ $(WARN_CFLAGS) \ @@ -82,6 +83,7 @@ $(top_builddir)/libgnac/libgnac.la \ $(GSTREAMER_LIBS) \ $(GTK_LIBS) \ + $(LIBXML_LIBS) \ $(NOTIFY_LIBS) \ $(UNIQUE_LIBS) diff -Naur gnac-0.2.4.1.orig/src/profiles/formats/gnac-profiles-aac.c gnac-0.2.4.1/src/profiles/formats/gnac-profiles-aac.c --- gnac-0.2.4.1.orig/src/profiles/formats/gnac-profiles-aac.c 2012-02-28 12:26:06.000000000 +0100 +++ gnac-0.2.4.1/src/profiles/formats/gnac-profiles-aac.c 2015-01-10 01:03:33.835412850 +0100 @@ -34,8 +34,6 @@ AudioProfileGeneric *generic; gchar *bitrate; - gchar *outputformat; - gchar *profile; gchar *tns; } AudioProfileAAC; @@ -60,7 +58,6 @@ gnac_profiles_aac_init(void) { GtkWidget *widget; - GtkWidget *widget2; gnac_profiles_default_init(&aac_bfi); @@ -68,23 +65,12 @@ gnac_profiles_utils_init_widget(&aac_bfi, "combo-bitrate", "//variable[@id='bitrate']"); - // Profile - widget = gnac_profiles_utils_init_widget(&aac_bfi, "combo-profile", - "//variable[@id='profile']"); - widget2 = gnac_profiles_utils_get_widget(&aac_bfi, "label-profile"), - gnac_profiles_utils_add_description_tooltip(&aac_bfi, - "//variable[@id='profile']/description", widget, widget2, NULL); - // Tns widget = gnac_profiles_utils_init_widget(&aac_bfi, "checkbutton-tns", "//variable[@id='tns']"); gnac_profiles_utils_add_description_tooltip(&aac_bfi, "//variable[@id='tns']/description", widget, NULL); - // Outputformat - gnac_profiles_utils_init_widget(&aac_bfi, "combo-outputformat", - "//variable[@id='outputformat']"); - gnac_profiles_xml_engine_free_doc_xpath(aac_bfi.doc); aac_bfi.doc = NULL; @@ -97,11 +83,12 @@ { gchar *pipeline = gnac_profiles_default_generate_pipeline(&aac_bfi); pipeline = gnac_profiles_utils_add_properties(pipeline, &aac_bfi, - "combo-bitrate", "combo-outputformat", - "combo-profile", "checkbutton-tns", NULL); + "combo-bitrate", "checkbutton-tns", NULL); gnac_profiles_properties_update_textbuffer(pipeline); + pipeline = gnac_profiles_utils_add_pipe(pipeline, "audio/mpeg, mpegversion=4, stream-format=adts ! aacparse"); + g_free(aac_bfi.pipeline); aac_bfi.pipeline = pipeline; @@ -113,8 +100,7 @@ { gnac_profiles_default_reset_ui(&aac_bfi); gnac_profiles_utils_reset_values(&aac_bfi, - "combo-bitrate", "combo-outputformat", - "combo-profile", "checkbutton-tns", NULL); + "combo-bitrate", "checkbutton-tns", NULL); } @@ -129,8 +115,6 @@ AudioProfileAAC *profile = (AudioProfileAAC *) data; gnac_profiles_utils_set_values(&aac_bfi, "combo-bitrate", profile->bitrate, - "combo-outputformat", profile->outputformat, - "combo-profile", profile->profile, "checkbutton-tns", profile->tns, NULL); } @@ -153,8 +137,6 @@ gnac_profiles_utils_free_audio_profile_generic(profile->generic); g_free(profile->bitrate); - g_free(profile->outputformat); - g_free(profile->profile); g_free(profile->tns); g_free(profile); } @@ -171,8 +153,6 @@ gnac_profiles_utils_get_values_and_set(&aac_bfi, "combo-bitrate", &profile->bitrate, - "combo-outputformat", &profile->outputformat, - "combo-profile", &profile->profile, "checkbutton-tns", &profile->tns, NULL); @@ -196,8 +176,6 @@ XMLDoc *doc = gnac_profiles_default_save_profile(profile->generic, &aac_bfi); gnac_profiles_xml_engine_add_values(doc, "bitrate", profile->bitrate, - "outputformat", profile->outputformat, - "profile", profile->profile, "tns", profile->tns, NULL); gnac_profiles_xml_engine_save_doc(doc, profile->generic->name); @@ -216,8 +194,6 @@ gnac_profiles_utils_load_saved_profile(doc, "/audio-profile/format-specific/", "bitrate", &profile->bitrate, - "outputformat", &profile->outputformat, - "profile", &profile->profile, "tns", &profile->tns, NULL); @@ -230,8 +206,7 @@ { gnac_profiles_default_clean_up(&aac_bfi); gnac_profiles_utils_free_values(&aac_bfi, - "combo-bitrate", "combo-outputformat", - "combo-profile", "checkbutton-tns", NULL); + "combo-bitrate", "checkbutton-tns", NULL); gnac_profiles_utils_free_basic_format_info(&aac_bfi); } diff -Naur gnac-0.2.4.1.orig/src/profiles/formats/gnac-profiles-lame.c gnac-0.2.4.1/src/profiles/formats/gnac-profiles-lame.c --- gnac-0.2.4.1.orig/src/profiles/formats/gnac-profiles-lame.c 2012-02-28 12:26:06.000000000 +0100 +++ gnac-0.2.4.1/src/profiles/formats/gnac-profiles-lame.c 2015-01-09 23:49:31.339712589 +0100 @@ -33,26 +33,17 @@ { AudioProfileGeneric *generic; - gchar *encoding_mode; + gchar *target; gdouble quality; - gdouble compression_ratio; gchar *bitrate; - gchar *preset; - gdouble mean_abr; - gdouble mean_bitrate; - gchar *min_bitrate; - gchar *max_bitrate; - gchar *mode; + gchar *mono; } AudioProfileLame; typedef enum { - CONSTANT_BITRATE, - AVERAGE_BITRATE, - VARIABLE_BITRATE, - PRESETS, - COMPRESSION_RATIO -} EncodingMode; + QUALITY, + BITRATE, +} Target; BasicFormatInfo lame_bfi = { PKGDATADIR "/profiles/gnac-profiles-lame.xml", @@ -78,7 +69,7 @@ void -gnac_profiles_lame_on_encoding_mode_changed(GtkComboBox *widget, +gnac_profiles_lame_on_target_changed(GtkComboBox *widget, gpointer user_data) { gnac_profiles_lame_vbr_on_changed(widget); @@ -90,7 +81,6 @@ gnac_profiles_lame_init(void) { GtkWidget *widget; - GtkWidget *widget2; gnac_profiles_default_init(&lame_bfi); @@ -102,42 +92,13 @@ gnac_profiles_utils_init_widget(&lame_bfi, "slider-vbr-quality", "//variable[@id='quality']"); - // Compression ratio - widget = gnac_profiles_utils_init_widget(&lame_bfi, - "slider-compression-ratio", "//variable[@id='compression-ratio']"); - widget2 = gnac_profiles_utils_get_widget(&lame_bfi, - "label-compression-ratio"); - gnac_profiles_utils_add_description_tooltip(&lame_bfi, - "//variable[@id='compression-ratio']/description", - widget, widget2, NULL); - - // Preset - gnac_profiles_utils_init_widget(&lame_bfi, "combo-preset", - "//variable[@id='preset']"); - - // Abr bitrate - gnac_profiles_utils_init_widget(&lame_bfi, "slider-mean-abr", - "//variable[@id='mean-bitrate']"); - // Mode - gnac_profiles_utils_init_widget(&lame_bfi, "combo-mode", - "//variable[@id='mode']"); - - // Mean bitrate - gnac_profiles_utils_init_widget(&lame_bfi, "slider-mean-vbr", - "//variable[@id='mean-bitrate']"); + gnac_profiles_utils_init_widget(&lame_bfi, "combo-mono", + "//variable[@id='mono']"); - // Min bitrate - gnac_profiles_utils_init_widget(&lame_bfi, "combo-min-vbr", - "//variable[@id='min-bitrate']"); - - // Max bitrate - gnac_profiles_utils_init_widget(&lame_bfi, "combo-max-vbr", - "//variable[@id='max-bitrate']"); - - // Encoding mode - widget = gnac_profiles_utils_init_widget(&lame_bfi, "combo-encoding-mode", - "//variable[@id='encoding-mode']"); + // Target + widget = gnac_profiles_utils_init_widget(&lame_bfi, "combo-target", + "//variable[@id='target']"); gnac_profiles_lame_vbr_on_changed(GTK_COMBO_BOX(widget)); @@ -149,26 +110,6 @@ static void -gnac_profiles_lame_show_abr_widgets(gboolean show) -{ - GtkWidget *abr_widgets[] = { - gnac_profiles_utils_get_widget(&lame_bfi, "label-mean-bitrate"), - gnac_profiles_utils_get_widget(&lame_bfi, "slider-mean-abr"), - gnac_profiles_utils_get_widget(&lame_bfi, "checkbutton-min-bitrate"), - gnac_profiles_utils_get_widget(&lame_bfi, "combo-min-vbr"), - gnac_profiles_utils_get_widget(&lame_bfi, "checkbutton-max-bitrate"), - gnac_profiles_utils_get_widget(&lame_bfi, "combo-max-vbr") - }; - - guint i; - for (i = 0; i < G_N_ELEMENTS(abr_widgets); i++) { - if (show) gtk_widget_show_all(abr_widgets[i]); - else gtk_widget_hide(abr_widgets[i]); - } -} - - -static void gnac_profiles_lame_show_cbr_widgets(gboolean show) { GtkWidget *cbr_widgets[] = { @@ -190,12 +131,6 @@ GtkWidget *vbr_widgets[] = { gnac_profiles_utils_get_widget(&lame_bfi, "label-vbr"), gnac_profiles_utils_get_widget(&lame_bfi, "hbox-vbr"), - gnac_profiles_utils_get_widget(&lame_bfi, "checkbutton-mean-bitrate"), - gnac_profiles_utils_get_widget(&lame_bfi, "slider-mean-vbr"), - gnac_profiles_utils_get_widget(&lame_bfi, "checkbutton-min-bitrate"), - gnac_profiles_utils_get_widget(&lame_bfi, "combo-min-vbr"), - gnac_profiles_utils_get_widget(&lame_bfi, "checkbutton-max-bitrate"), - gnac_profiles_utils_get_widget(&lame_bfi, "combo-max-vbr") }; guint i; @@ -207,48 +142,12 @@ static void -gnac_profiles_lame_show_presets_widgets(gboolean show) -{ - GtkWidget *presets_widgets[] = { - gnac_profiles_utils_get_widget(&lame_bfi, "label-preset"), - gnac_profiles_utils_get_widget(&lame_bfi, "hbox-preset"), - }; - - guint i; - for (i = 0; i < G_N_ELEMENTS(presets_widgets); i++) { - if (show) gtk_widget_show_all(presets_widgets[i]); - else gtk_widget_hide(presets_widgets[i]); - } -} - - -static void -gnac_profiles_lame_show_compression_ratio_widgets(gboolean show) -{ - GtkWidget *compression_ratio_widgets[] = { - gnac_profiles_utils_get_widget(&lame_bfi, "label-compression-ratio"), - gnac_profiles_utils_get_widget(&lame_bfi, "slider-compression-ratio"), - }; - - guint i; - for (i = 0; i < G_N_ELEMENTS(compression_ratio_widgets); i++) { - if (show) gtk_widget_show_all(compression_ratio_widgets[i]); - else gtk_widget_hide(compression_ratio_widgets[i]); - } -} - - -static void gnac_profiles_lame_vbr_on_changed(GtkComboBox *widget) { - EncodingMode encoding_mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widget)); + Target target = gtk_combo_box_get_active(GTK_COMBO_BOX(widget)); - gnac_profiles_lame_show_abr_widgets(encoding_mode == AVERAGE_BITRATE); - gnac_profiles_lame_show_cbr_widgets(encoding_mode == CONSTANT_BITRATE); - gnac_profiles_lame_show_vbr_widgets(encoding_mode == VARIABLE_BITRATE); - gnac_profiles_lame_show_presets_widgets(encoding_mode == PRESETS); - gnac_profiles_lame_show_compression_ratio_widgets( - encoding_mode == COMPRESSION_RATIO); + gnac_profiles_lame_show_cbr_widgets(target == BITRATE); + gnac_profiles_lame_show_vbr_widgets(target == QUALITY); } @@ -257,54 +156,25 @@ { gchar *pipeline = gnac_profiles_default_generate_pipeline(&lame_bfi); GtkWidget *widget = gnac_profiles_utils_get_widget(&lame_bfi, - "combo-encoding-mode"); - EncodingMode encoding_mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widget)); + "combo-target"); + Target target = gtk_combo_box_get_active(GTK_COMBO_BOX(widget)); // Mode pipeline = gnac_profiles_utils_add_properties(pipeline, &lame_bfi, - "combo-mode", NULL); + "combo-mono", NULL); - switch (encoding_mode) + switch (target) { - case CONSTANT_BITRATE: + case BITRATE: pipeline = gnac_profiles_utils_add_properties(pipeline, &lame_bfi, - "combo-encoding-mode", "combo-bitrate", NULL); + "combo-target", "combo-bitrate", NULL); break; - case AVERAGE_BITRATE: + case QUALITY: pipeline = gnac_profiles_utils_add_properties(pipeline, &lame_bfi, - "combo-encoding-mode", NULL); - pipeline = gnac_profiles_utils_add_properties_slider(pipeline, &lame_bfi, - "%.0f", "slider-mean-abr", NULL); - pipeline = gnac_profiles_utils_add_properties_checked_combo(pipeline, - &lame_bfi, - "combo-min-vbr", "checkbutton-min-bitrate", - "combo-max-vbr", "checkbutton-max-bitrate", - NULL); - break; - - case VARIABLE_BITRATE: - pipeline = gnac_profiles_utils_add_properties(pipeline, &lame_bfi, - "combo-encoding-mode", NULL); + "combo-target", NULL); pipeline = gnac_profiles_utils_add_properties_slider(pipeline, &lame_bfi, "%.0f", "slider-vbr-quality", NULL); - pipeline = gnac_profiles_utils_add_properties_checked_slider(pipeline, - &lame_bfi, "slider-mean-vbr", "checkbutton-mean-bitrate", NULL); - pipeline = gnac_profiles_utils_add_properties_checked_combo(pipeline, - &lame_bfi, - "combo-min-vbr", "checkbutton-min-bitrate", - "combo-max-vbr", "checkbutton-max-bitrate", - NULL); - break; - - case PRESETS: - pipeline = gnac_profiles_utils_add_properties(pipeline, &lame_bfi, - "combo-preset", NULL); - break; - - case COMPRESSION_RATIO: - pipeline = gnac_profiles_utils_add_properties_slider(pipeline, &lame_bfi, - "%.0f", "slider-compression-ratio", NULL); break; default: @@ -321,26 +191,12 @@ } -void -gnac_profiles_lame_advanced_bitrate_on_toggle(GtkWidget *widget, - GtkToggleButton *togglebutton) -{ - gnac_profiles_utils_on_toggle_optionnal_property(togglebutton, widget); - gnac_profiles_lame_generate_pipeline(); -} - - static void gnac_profiles_lame_reset_ui(void) { gnac_profiles_utils_reset_values(&lame_bfi, - "combo-mode", "combo-bitrate", "combo-min-vbr", "combo-max-vbr", - "combo-preset", "combo-encoding-mode", "slider-vbr-quality", - "slider-compression-ratio", "slider-mean-vbr", "slider-mean-abr", + "combo-mono", "combo-bitrate", "combo-target", "slider-vbr-quality", NULL); - gnac_profiles_utils_set_active_toggle_button(&lame_bfi, FALSE, - "checkbutton-mean-bitrate", "checkbutton-min-bitrate", - "checkbutton-max-bitrate", NULL); } @@ -354,42 +210,18 @@ AudioProfileLame *profile = (AudioProfileLame *) data; gnac_profiles_utils_set_values(&lame_bfi, - "combo-encoding-mode", profile->encoding_mode, - "combo-mode", profile->mode, NULL); + "combo-target", profile->target, + "combo-mono", profile->mono, NULL); if (profile->bitrate) { gnac_profiles_utils_set_values(&lame_bfi, "combo-bitrate", profile->bitrate, NULL); } - else if (profile->preset) - { - gnac_profiles_utils_set_values(&lame_bfi, - "combo-preset", profile->preset, NULL); - } - else if (profile->mean_abr != -1) - { - gnac_profiles_utils_set_values(&lame_bfi, - "slider-mean-abr", profile->mean_abr, NULL); - gnac_profiles_utils_set_values_checked(&lame_bfi, - "combo-min-vbr", "checkbutton-min-bitrate", profile->min_bitrate, - "combo-max-vbr", "checkbutton-max-bitrate", profile->max_bitrate, - NULL); - } else if (profile->quality != -1) { gnac_profiles_utils_set_values(&lame_bfi, "slider-vbr-quality", profile->quality, NULL); - gnac_profiles_utils_set_values_checked(&lame_bfi, - "combo-min-vbr", "checkbutton-min-bitrate", profile->min_bitrate, - "combo-max-vbr", "checkbutton-max-bitrate", profile->max_bitrate, - "slider-mean-vbr", "checkbutton-mean-bitrate", profile->mean_bitrate, - NULL); - } - else if (profile->compression_ratio != -1) - { - gnac_profiles_utils_set_values(&lame_bfi, - "slider-compression-ratio", profile->compression_ratio, NULL); } } @@ -406,16 +238,10 @@ { AudioProfileLame *profile = g_malloc(sizeof(AudioProfileLame)); - profile->encoding_mode = NULL; - profile->mode = NULL; + profile->target = NULL; + profile->mono = NULL; profile->bitrate = NULL; - profile->preset = NULL; profile->quality = -1; - profile->compression_ratio = -1; - profile->mean_bitrate = -1; - profile->mean_abr = -1; - profile->min_bitrate = NULL; - profile->max_bitrate = NULL; return profile; } @@ -428,12 +254,9 @@ AudioProfileLame *profile = (AudioProfileLame *) data; gnac_profiles_utils_free_audio_profile_generic(profile->generic); - g_free(profile->encoding_mode); - g_free(profile->mode); + g_free(profile->target); + g_free(profile->mono); g_free(profile->bitrate); - g_free(profile->min_bitrate); - g_free(profile->max_bitrate); - g_free(profile->preset); g_free(profile); } @@ -447,49 +270,23 @@ profile->generic = generic; gnac_profiles_utils_get_values_and_set(&lame_bfi, - "combo-encoding-mode", &profile->encoding_mode, - "combo-mode", &profile->mode, + "combo-target", &profile->target, + "combo-mono", &profile->mono, NULL); GtkWidget *widget = gnac_profiles_utils_get_widget(&lame_bfi, - "combo-encoding-mode"); + "combo-target"); switch (gtk_combo_box_get_active(GTK_COMBO_BOX(widget))) { - case CONSTANT_BITRATE: + case BITRATE: gnac_profiles_utils_get_values_and_set(&lame_bfi, "combo-bitrate", &profile->bitrate, NULL); break; - case AVERAGE_BITRATE: - gnac_profiles_utils_get_values_and_set(&lame_bfi, - "slider-mean-abr", &profile->mean_abr, NULL); - gnac_profiles_utils_get_values_checked_combo_and_set(&lame_bfi, - "combo-min-vbr", "checkbutton-min-bitrate", &profile->min_bitrate, - "combo-max-vbr", "checkbutton-max-bitrate", &profile->max_bitrate, - NULL ); - break; - - case VARIABLE_BITRATE: + case QUALITY: gnac_profiles_utils_get_values_and_set(&lame_bfi, "slider-vbr-quality", &profile->quality, NULL); - gnac_profiles_utils_get_values_checked_slider_and_set(&lame_bfi, - "slider-mean-vbr", "checkbutton-mean-bitrate", &profile->mean_bitrate, - NULL); - gnac_profiles_utils_get_values_checked_combo_and_set(&lame_bfi, - "combo-min-vbr", "checkbutton-min-bitrate", &profile->min_bitrate, - "combo-max-vbr", "checkbutton-max-bitrate", &profile->max_bitrate, - NULL ); - break; - - case PRESETS: - gnac_profiles_utils_get_values_and_set(&lame_bfi, - "combo-preset", &profile->preset, NULL); - break; - - case COMPRESSION_RATIO: - gnac_profiles_utils_get_values_and_set(&lame_bfi, - "slider-compression-ratio", &profile->compression_ratio, NULL); break; default: @@ -513,49 +310,25 @@ if (!data) return; gchar *quality = NULL; - gchar *mean_bitrate = NULL; - gchar *mean_abr = NULL; - gchar *compression_ratio = NULL; AudioProfileLame *profile = (AudioProfileLame *) data; if (profile->quality != -1) { quality = gnac_profiles_utils_gdouble_to_gchararray(profile->quality); - - if (profile->mean_bitrate != -1) { - mean_bitrate = gnac_profiles_utils_gdouble_to_gchararray( - profile->mean_bitrate); - } - } - else if (profile->mean_abr != -1) - { - mean_abr = gnac_profiles_utils_gdouble_to_gchararray(profile->mean_abr); - } - else if (profile->compression_ratio != -1) { - compression_ratio = gnac_profiles_utils_gdouble_to_gchararray( - profile->compression_ratio); } XMLDoc *doc = gnac_profiles_default_save_profile(profile->generic, &lame_bfi); gnac_profiles_xml_engine_add_values(doc, - "encoding-mode", profile->encoding_mode, + "target", profile->target, "bitrate", profile->bitrate, "quality", quality, - "compression-ratio", compression_ratio, - "preset", profile->preset, - "mean-abr", mean_abr, - "mean-bitrate", mean_bitrate, - "min-bitrate", profile->min_bitrate, - "max-bitrate", profile->max_bitrate, - "mode", profile->mode, + "mono", profile->mono, NULL); gnac_profiles_xml_engine_save_doc(doc, profile->generic->name); gnac_profiles_xml_engine_free_doc_xpath(doc); g_free(quality); - g_free(mean_bitrate); - g_free(compression_ratio); } @@ -564,42 +337,20 @@ AudioProfileGeneric *generic) { gchar *quality; - gchar *mean_bitrate; - gchar *mean_abr; - gchar *compression_ratio; AudioProfileLame *profile = gnac_profiles_lame_audio_profile_new(); profile->generic = generic; gnac_profiles_utils_load_saved_profile(doc, "/audio-profile/format-specific/", - "encoding-mode", &profile->encoding_mode, + "target", &profile->target, "bitrate", &profile->bitrate, "quality", &quality, - "compression-ratio", &compression_ratio, - "preset", &profile->preset, - "mean-abr", &mean_abr, - "mean-bitrate", &mean_bitrate, - "min-bitrate", &profile->min_bitrate, - "max-bitrate", &profile->max_bitrate, - "mode", &profile->mode, + "mono", &profile->mono, NULL); if (quality) { profile->quality = gnac_profiles_utils_gchararray_to_gdouble(quality); g_free(quality); - - if (mean_bitrate) { - profile->mean_bitrate = gnac_profiles_utils_gchararray_to_gdouble( - mean_bitrate); - g_free(mean_bitrate); - } - } else if (mean_abr) { - profile->mean_abr = gnac_profiles_utils_gchararray_to_gdouble(mean_abr); - g_free(mean_abr); - } else if (compression_ratio) { - profile->compression_ratio = gnac_profiles_utils_gchararray_to_gdouble( - compression_ratio); - g_free(compression_ratio); } return profile; @@ -611,9 +362,7 @@ { gnac_profiles_default_clean_up(&lame_bfi); gnac_profiles_utils_free_values(&lame_bfi, - "combo-mode", "combo-bitrate", "combo-min-vbr", "combo-max-vbr", - "combo-preset", "combo-encoding-mode", "slider-vbr-quality", - "slider-compression-ratio", "slider-mean-vbr", "slider-mean-abr", + "combo-mono", "combo-bitrate", "combo-target", "slider-vbr-quality", NULL); gnac_profiles_utils_free_basic_format_info(&lame_bfi); } diff -Naur gnac-0.2.4.1.orig/src/profiles/formats/gnac-profiles-lame.h gnac-0.2.4.1/src/profiles/formats/gnac-profiles-lame.h --- gnac-0.2.4.1.orig/src/profiles/formats/gnac-profiles-lame.h 2012-01-26 01:28:46.000000000 +0100 +++ gnac-0.2.4.1/src/profiles/formats/gnac-profiles-lame.h 2015-01-09 23:49:31.343045941 +0100 @@ -37,8 +37,8 @@ gnac_profiles_lame_generate_pipeline(void); void -gnac_profiles_lame_on_encoding_mode_changed(GtkComboBox *widget, - gpointer user_data); +gnac_profiles_lame_on_target_changed(GtkComboBox *widget, + gpointer user_data); void gnac_profiles_lame_advanced_bitrate_on_toggle(GtkWidget *widget, diff -Naur gnac-0.2.4.1.orig/src/profiles/formats/gnac-profiles-unknown.c gnac-0.2.4.1/src/profiles/formats/gnac-profiles-unknown.c --- gnac-0.2.4.1.orig/src/profiles/formats/gnac-profiles-unknown.c 2012-02-27 11:27:10.000000000 +0100 +++ gnac-0.2.4.1/src/profiles/formats/gnac-profiles-unknown.c 2015-01-09 23:49:31.343045941 +0100 @@ -49,7 +49,7 @@ }; const gchar *base_pipeline = - "audioconvert ! audio/x-raw-float, rate=44100, channels=2 ! audioconvert !"; + "audioconvert ! audio/x-raw, rate=44100, channels=2 ! audioconvert !"; static GtkTextView *pipeline_text_view; static GtkWidget *pipeline_box; diff -Naur gnac-0.2.4.1.orig/src/profiles/gnac-profiles-default.c gnac-0.2.4.1/src/profiles/gnac-profiles-default.c --- gnac-0.2.4.1.orig/src/profiles/gnac-profiles-default.c 2012-04-22 14:09:01.000000000 +0200 +++ gnac-0.2.4.1/src/profiles/gnac-profiles-default.c 2015-01-09 23:49:31.343045941 +0100 @@ -23,6 +23,7 @@ * Boston, MA 02110-1301 USA */ +#include #include #include "gnac-main.h"