~ubuntu-branches/ubuntu/lucid/brasero/lucid-updates

« back to all changes in this revision

Viewing changes to debian/patches/92_git_audio_cd_recording.patch

  • Committer: Bazaar Package Importer
  • Author(s): Didier Roche
  • Date: 2010-06-24 11:22:46 UTC
  • mfrom: (1.3.7 upstream)
  • Revision ID: james.westby@ubuntu.com-20100624112246-s5ubbf8tafqkir0m
Tags: 2.30.2-0ubuntu1
* New upstream release
  - Lot's of memleak fixes
  - Fixed a runtime warning related to cancelling tracker searches
  - Crash in brasero_data_project_node_removed at
    brasero-data-project.c:1163
  - brasero crashed with SIGSEGV in brasero_data_project_remove_node()
    (LP: #561319)
  - Fix a few runtime warnings with the Cover Editor
  - Text in cover editor does not show up automatically (LP: #469459)
  - Removed use of deprecated flags
  - Use accessor functions instead direct access (use GSEAL GnomeGoal)
  - Fix a bug in the layout on first start (side pane was hidden and
    remained so until the user moved it)
  - Save printer settings for cover printing
  - Write the contents of the GtkTextBuffer displayed line by displayed
    line which should improve the layout
  - "Write to Disc" button sensitivity regression
  - Fix flaw in mask that led libburn plugin not to work (not to be picked
    up actually) in some circumstances
  - Fails to burn ANY audio project
  - Move columns doesn't work (LP: #581759)
  - Brasero does not correctly handle double clicking on column separators
    (LP: #581885)
  - Bad info when burning, high CPU usage and slow burn
  - Change the priority for cdrdao and raised the one of cdda2wav plugin
  - brasero crashed with SIGSEGV in
    brasero_mmc3_get_performa nce_wrt_spd_desc() (LP: #564766)
  - brasero crashed with SIGSEGV in brasero_scsi_command_issue_sync()
    (LP: #444832)
  - Do not check for symlinks on cdda2wav so the plugin can use icedax.
  - Brasero's failure with some file names (LP: #380643)
  - Pressing create audio cd does nothing
  - Empty project not available
  - can't actually save error logs
  - doesn't handle incorrect temp dirs properly
  - Fix multi DND in GtkFileChooser
  - Displays "starting to record" during whole burn process
  - Fix wrong report of speed with both cdrecord and wodim
  - Disk project doesn't save the disk title (LP: #587924)
  - Brasero reports outdated cdrtools on cdrtools-3.00 (LP: #592075)
  - misc bug fixes
  - Updated Translations
* Removed upstream patches:
  - debian/patches/90_git_audio_project_creation.patch,
    debian/patches/91_git_audio_project_creation.patch,
    debian/patches/92_git_audio_cd_recording.patch,
    debian/patches/93_git_new_caps_function_definition.patch
* debian/patches/99_autoconf.patch:
  - refreshed

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
Subject: Fix #617494  - Fails to burn ANY audio project (part 1)
2
 
 
3
 
Make sure the DAO flag will be set as compulsory when the input for a recording plugin is CUE, CLONE or such
4
 
---
5
 
diff --git a/libbrasero-burn/brasero-caps-session.c b/libbrasero-burn/brasero-caps-session.c
6
 
index 14db2e7..5e9740c 100644
7
 
--- a/libbrasero-burn/brasero-caps-session.c
8
 
+++ b/libbrasero-burn/brasero-caps-session.c
9
 
@@ -565,7 +565,7 @@ brasero_caps_find_link (BraseroCaps *caps,
10
 
 {
11
 
        GSList *iter;
12
 
 
13
 
-       BRASERO_BURN_LOG_WITH_TYPE (&caps->type, BRASERO_PLUGIN_IO_NONE, "(Has %i links) Found link", g_slist_length (caps->links));
14
 
+       BRASERO_BURN_LOG_WITH_TYPE (&caps->type, BRASERO_PLUGIN_IO_NONE, "Found link (with %i links):", g_slist_length (caps->links));
15
 
 
16
 
        /* Here we only make sure we have at least one link working. For a link
17
 
         * to be followed it must first:
18
 
@@ -587,17 +587,20 @@ brasero_caps_find_link (BraseroCaps *caps,
19
 
 
20
 
                if (!link->caps)
21
 
                        continue;
22
 
-
23
 
+               
24
 
                /* check that the link has some active plugin */
25
 
                if (!brasero_caps_link_active (link, ctx->ignore_plugin_errors))
26
 
                        continue;
27
 
 
28
 
                /* since this link contains recorders, check that at least one
29
 
                 * of them can handle the record flags */
30
 
-               if (ctx->check_session_flags
31
 
-               &&  brasero_track_type_get_has_medium (&caps->type)
32
 
-               && !brasero_caps_link_check_record_flags (link, ctx->ignore_plugin_errors, ctx->session_flags, ctx->media))
33
 
-                       continue;
34
 
+               if (ctx->check_session_flags && brasero_track_type_get_has_medium (&caps->type)) {
35
 
+                       if (!brasero_caps_link_check_record_flags (link, ctx->ignore_plugin_errors, ctx->session_flags, ctx->media))
36
 
+                               continue;
37
 
+
38
 
+                       if (brasero_caps_link_check_recorder_flags_for_input (link, ctx->session_flags) != BRASERO_BURN_OK)
39
 
+                               continue;
40
 
+               }
41
 
 
42
 
                /* first see if that's the perfect fit:
43
 
                 * - it must have the same caps (type + subtype)
44
 
@@ -1358,6 +1361,39 @@ brasero_burn_session_get_default_output_format (BraseroBurnSession *session)
45
 
        return BRASERO_IMAGE_FORMAT_NONE;
46
 
 }
47
 
 
48
 
+static BraseroBurnResult
49
 
+brasero_caps_set_flags_from_recorder_input (BraseroTrackType *input,
50
 
+                                            BraseroBurnFlag *supported,
51
 
+                                            BraseroBurnFlag *compulsory)
52
 
+{
53
 
+       if (brasero_track_type_get_has_image (input)) {
54
 
+               BraseroImageFormat format;
55
 
+
56
 
+               format = brasero_track_type_get_image_format (input);
57
 
+               if (format == BRASERO_IMAGE_FORMAT_CUE
58
 
+               ||  format == BRASERO_IMAGE_FORMAT_CDRDAO) {
59
 
+                       if ((*supported) & BRASERO_BURN_FLAG_DAO)
60
 
+                               (*compulsory) |= BRASERO_BURN_FLAG_DAO;
61
 
+                       else
62
 
+                               return BRASERO_BURN_NOT_SUPPORTED;
63
 
+               }
64
 
+               else if (format == BRASERO_IMAGE_FORMAT_CLONE) {
65
 
+                       /* RAW write mode should (must) only be used in this case */
66
 
+                       if ((*supported) & BRASERO_BURN_FLAG_RAW) {
67
 
+                               (*supported) &= ~BRASERO_BURN_FLAG_DAO;
68
 
+                               (*compulsory) &= ~BRASERO_BURN_FLAG_DAO;
69
 
+                               (*compulsory) |= BRASERO_BURN_FLAG_RAW;
70
 
+                       }
71
 
+                       else
72
 
+                               return BRASERO_BURN_NOT_SUPPORTED;
73
 
+               }
74
 
+               else
75
 
+                       (*supported) &= ~BRASERO_BURN_FLAG_RAW;
76
 
+       }
77
 
+       
78
 
+       return BRASERO_BURN_OK;
79
 
+}
80
 
+
81
 
 static BraseroPluginIOFlag
82
 
 brasero_caps_get_flags (BraseroCaps *caps,
83
 
                         gboolean ignore_plugin_errors,
84
 
@@ -1392,6 +1428,7 @@ brasero_caps_get_flags (BraseroCaps *caps,
85
 
 
86
 
                if (brasero_track_type_get_has_medium (&caps->type)) {
87
 
                        BraseroBurnFlag tmp;
88
 
+                       BraseroBurnResult result;
89
 
 
90
 
                        brasero_caps_link_get_record_flags (link,
91
 
                                                            ignore_plugin_errors,
92
 
@@ -1405,6 +1442,14 @@ brasero_caps_get_flags (BraseroCaps *caps,
93
 
                        tmp = session_flags & BRASERO_PLUGIN_BURN_FLAG_MASK;
94
 
                        if ((tmp & rec_supported) != tmp)
95
 
                                continue;
96
 
+
97
 
+                       /* This is the recording plugin, check its input as
98
 
+                        * some flags depend on it. */
99
 
+                       result = brasero_caps_set_flags_from_recorder_input (&link->caps->type,
100
 
+                                                                            &rec_supported,
101
 
+                                                                            &rec_compulsory);
102
 
+                       if (result != BRASERO_BURN_OK)
103
 
+                               continue;
104
 
                }
105
 
 
106
 
                if (brasero_track_type_get_has_data (&link->caps->type)) {
107
 
@@ -1460,8 +1505,8 @@ brasero_caps_get_flags (BraseroCaps *caps,
108
 
                if (io_flags == BRASERO_PLUGIN_IO_NONE)
109
 
                        continue;
110
 
 
111
 
-               retval |= (io_flags & flags);
112
 
                (*compulsory) &= rec_compulsory;
113
 
+               retval |= (io_flags & flags);
114
 
                (*supported) |= data_supported|rec_supported;
115
 
        }
116
 
 
117
 
@@ -1579,36 +1624,17 @@ brasero_caps_get_flags_for_disc (BraseroBurnCaps *self,
118
 
                return BRASERO_BURN_NOT_SUPPORTED;
119
 
        }
120
 
 
121
 
-       if (brasero_track_type_get_has_image (input)) {
122
 
-               BraseroImageFormat format;
123
 
+       /* NOTE: DO NOT TEST the input image here. What should be tested is the
124
 
+        * type of the input right before the burner plugin. See:
125
 
+        * brasero_burn_caps_set_flags_from_recorder_input())
126
 
+        * For example in the following situation: AUDIO => CUE => BURNER the
127
 
+        * DAO flag would not be set otherwise. */
128
 
 
129
 
-               format = brasero_track_type_get_image_format (input);
130
 
-               if (format == BRASERO_IMAGE_FORMAT_CUE
131
 
-               ||  format == BRASERO_IMAGE_FORMAT_CDRDAO) {
132
 
-                       if (supported_flags & BRASERO_BURN_FLAG_DAO)
133
 
-                               compulsory_flags |= BRASERO_BURN_FLAG_DAO;
134
 
-                       else
135
 
-                               return BRASERO_BURN_NOT_SUPPORTED;
136
 
-               }
137
 
-               else if (format == BRASERO_IMAGE_FORMAT_CLONE) {
138
 
-                       /* RAW write mode should (must) only be used in this case */
139
 
-                       if (supported_flags & BRASERO_BURN_FLAG_RAW) {
140
 
-                               supported_flags &= ~BRASERO_BURN_FLAG_DAO;
141
 
-                               compulsory_flags &= ~BRASERO_BURN_FLAG_DAO;
142
 
-                               compulsory_flags |= BRASERO_BURN_FLAG_RAW;
143
 
-                       }
144
 
-                       else
145
 
-                               return BRASERO_BURN_NOT_SUPPORTED;
146
 
-               }
147
 
-               else
148
 
-                       supported_flags &= ~BRASERO_BURN_FLAG_RAW;
149
 
-       }
150
 
-       else if (brasero_track_type_get_has_stream (input)) {
151
 
+       if (brasero_track_type_get_has_stream (input)) {
152
 
                BraseroStreamFormat format;
153
 
 
154
 
                format = brasero_track_type_get_stream_format (input);
155
 
-               if (!(format & BRASERO_METADATA_INFO)
156
 
-               &&   BRASERO_STREAM_FORMAT_VIDEO (format)) {
157
 
+               if (format & BRASERO_METADATA_INFO) {
158
 
                        /* In this case, DAO is compulsory if we want to write CD-TEXT */
159
 
                        if (supported_flags & BRASERO_BURN_FLAG_DAO)
160
 
                                compulsory_flags |= BRASERO_BURN_FLAG_DAO;
161
 
@@ -1622,7 +1648,7 @@ brasero_caps_get_flags_for_disc (BraseroBurnCaps *self,
162
 
                compulsory_flags &= ~BRASERO_BURN_FLAG_RAW;
163
 
                supported_flags &= ~BRASERO_BURN_FLAG_RAW;
164
 
        }
165
 
-
166
 
+       
167
 
        if (io_flags & BRASERO_PLUGIN_IO_ACCEPT_PIPE) {
168
 
                supported_flags |= BRASERO_BURN_FLAG_NO_TMP_FILES;
169
 
 
170
 
@@ -1965,7 +1991,7 @@ brasero_burn_caps_get_flags_same_src_dest (BraseroBurnCaps *self,
171
 
         * until the disc is inserted which it is not at the
172
 
         * moment */
173
 
        (*supported_ret) |= (BRASERO_BURN_FLAG_BLANK_BEFORE_WRITE|
174
 
-                                        BRASERO_BURN_FLAG_FAST_BLANK);
175
 
+                            BRASERO_BURN_FLAG_FAST_BLANK);
176
 
 
177
 
        if (brasero_track_type_get_medium_type (&input) & BRASERO_MEDIUM_HAS_AUDIO) {
178
 
                /* This is a special case for audio discs.
179
 
--
180
 
cgit v0.8.3.1
181