Summary: | CD Burn Error in ubuntu 5.10 + k3b. | ||
---|---|---|---|
Product: | [Applications] k3b | Reporter: | A G <subscrive> |
Component: | general | Assignee: | Sebastian Trueg <trueg> |
Status: | RESOLVED FIXED | ||
Severity: | wishlist | ||
Priority: | NOR | ||
Version: | 0.12.x | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
nerolinux burn speed
k3b-doesnt-burn-even-with-same-speed-as-nerolinux.png |
Description
A G
2005-10-25 10:49:23 UTC
Your CD is not empty. This is not a bug and bugs.kde.org is not a help forum -> closing. Point 1. My CD was empty. It is a re-recordable CD whose contents were erased. konquorer didnt show anything on it - with show hidden files option enabled. Point 2. If what you say is correct, then the bug is as follows: "The user should be given a proper error message telling what the exact problem is. "Cannot set priority using setpriority()" and such error are a definite no-no." Point 3. k3b can give the option to completely erase the cd before buring if such was the case - something similar to nero. Point 4. There are lots of forums that I checked before posting this problem. No one seem to give correct answer. A simple implementation of point 2 would save everyone's time and energy. Point 5. Perhaps you can setup a proper search engine, something like google, which will be actually helpful, so that people neednt waste their time and energy loggin the bugs. Points 2 and 3 are implemented. But, for whatever reason, cdrecord can't record, giving the "cannot setpriority()" warning and no other useful data. I concluded that the disk wasn't empty because of the numbers shown, but apparently I was wrong too. I can't explain any better than that. It looks like cdrecord is the guilty party here. Sebastian, can you understand the cdrecord output better? I didnt see any bugs database on the k3b site. But I hope that Sebastian you are talking of and "Sebastian Trueg Maintainer and Lead Developer" on k3b site are the same. This is not INVALID. please request that ubuntu/debian change the way they package cdrecord if you don't want to see the setpriority errors in the output that k3b will show you from cdrecord. From what I can tell, there is no error in k3b here and the operation performed on your media was successful. Unfortunately, the operation failed. When I tried to check the cd contents in konquorer, it didnt show me anything. I have opened a bug with ubuntu. I hope that this problem gets solved, ir-respective of whether the root cause lies with k3b or kde or ubuntu. I have started using nerolinux and have also recommended it to quite a few friends. I hope not that k3b loses to nero. But currently nerolinux does the job i need. At which speed does nero burn the cd? Did you use the exact same medium and writer with nero? Nerolinux burns at 4X (600 KB/s). Created attachment 13631 [details]
nerolinux burn speed
Created attachment 13632 [details]
k3b-doesnt-burn-even-with-same-speed-as-nerolinux.png
write method = auto.
check this person's comment --> http://www.zdnet.co.uk/talkback/?PROCESS=show&ID=20052357&AT=39237495-39024180t-30000029c My experience with Mandriva (Mandrake) is that it is very reluctant to write to removable media. I managed once to burn a CD with Mandriva2006 but subsequent attempts failed. K3b occasionally announced that it had completed the burn but in every case the disk proved to be blank Writing to a floppy with Konqueror is impossible but mtools and tar work from the command line. What is the status of this? Can it be closed? A G, do you still have this problem? I donno. Did you try reproducing? steps are as follows: 1. use re recordable CD and burn something in windows using nero. 2. Boot to kubuntu drapper and try to burn something on the cd using k3b. Expected result: - user should be told that the cd contains data. Proceed further? - on yes, erase the previous containt and record on the cd. - on no, abort the operation. anyway, cdrecord refuses to burn a high speed medium n a low speed writer. it is not a k3b problem. what is the meaning of "high speed medium n a low speed writer"? how did you get to know that its "high speed medium n a low speed writer"? if nerolinux can burn as expected, so should k3b. what's with such statement/attitude that "it is not a k3b problem"? On Monday 09 October 2006 12:49, A G wrote: > how did you get to know that its "high speed medium n a low speed writer"? cdrecord output. > if nerolinux can burn as expected, so should k3b. well, I could add an option to force continuing in such situations. Do you think that would be a good idea? I don't think that it would be good to have this a a default, though. If you want to allow forcing, then probably k3b needs to detect the error of cdrecord (not sure if cdrecord has a unique return value for that case), since forcing only makes sense on some situations. I think that if you allow forcing, then there needs to be some explanation what went wrong (i.e. that the writer does not support the medium, the cdrecord error seems unclear) and that forcing the process could possibly not lead to a success. I believe that forcing is a good idea particularly for those people that already have the medium and could not use it anyways, so a wrong burn will not be too bad. Agreed. So this is what I will do: 1. Add an advanced force option that has a whatsthis info telling something about non.compatible media and such 2. Add a suggesstion to enale the force option in bad medium situations 3. Maybe add a warning when forcing is enabled (depends on cdrecord's output) Set this to be a wish, since it is not really a bug. The reason for this is that k3b correctly reflects what the underlying burn program (cdrecord) is reporting and thus refuses to burn. An option to force burning on a Medium which is not suitable for the burner installed is a wish for an additional feature (and also conditioned on cdrecord supporting such a forced operation). Marking as NEW, because Sebastian has stated in comment 19 what he will do. As a side note, regarding comment 16, you do not even need to read the cdrecord output from the log, just look at the screenshot you posted. SVN commit 605299 by trueg: Added a "force" setting which makes K3b use the -force paramter with cdrecord and cdrdao. This allows to for example write to high speed media on low speed writers. BUG: 115049 M +4 -1 libk3b/core/k3bglobalsettings.cpp M +10 -0 libk3b/core/k3bglobalsettings.h M +5 -0 libk3b/projects/k3bcdrdaowriter.cpp M +7 -0 libk3b/projects/k3bcdrecordwriter.cpp M +16 -4 src/option/k3bburningoptiontab.cpp M +1 -0 src/option/k3bburningoptiontab.h --- trunk/extragear/multimedia/k3b/libk3b/core/k3bglobalsettings.cpp #605298:605299 @@ -23,7 +23,8 @@ m_burnfree(true), m_overburn(false), m_useManualBufferSize(false), - m_bufferSize(4) + m_bufferSize(4), + m_force(false) { } @@ -38,6 +39,7 @@ m_overburn = c->readBoolEntry( "Allow overburning", false ); m_useManualBufferSize = c->readBoolEntry( "Manual buffer size", false ); m_bufferSize = c->readNumEntry( "Fifo buffer", 4 ); + m_force = c->readBoolEntry( "Force unsafe operations", false ); c->setGroup( lastG ); } @@ -53,6 +55,7 @@ c->writeEntry( "Allow overburning", m_overburn ); c->writeEntry( "Manual buffer size", m_useManualBufferSize ); c->writeEntry( "Fifo buffer", m_bufferSize ); + c->writeEntry( "Force unsafe operations", m_force ); c->setGroup( lastG ); } --- trunk/extragear/multimedia/k3b/libk3b/core/k3bglobalsettings.h #605298:605299 @@ -42,11 +42,20 @@ bool useManualBufferSize() const { return m_useManualBufferSize; } int bufferSize() const { return m_bufferSize; } + /** + * If force is set to true K3b will continue in certain "unsafe" situations. + * The most common being a medium not suitable for the writer in terms of + * writing speed. + * Compare cdrecord's parameter -force + */ + bool force() const { return m_force; } + void setEjectMedia( bool b ) { m_eject = b; } void setBurnfree( bool b ) { m_burnfree = b; } void setOverburn( bool b ) { m_overburn = b; } void setUseManualBufferSize( bool b ) { m_useManualBufferSize = b; } void setBufferSize( int size ) { m_bufferSize = size; } + void setForce( bool b ) { m_force = b; } private: bool m_eject; @@ -54,6 +63,7 @@ bool m_overburn; bool m_useManualBufferSize; int m_bufferSize; + bool m_force; }; --- trunk/extragear/multimedia/k3b/libk3b/projects/k3bcdrdaowriter.cpp #605298:605299 @@ -289,6 +289,11 @@ emit infoMessage( i18n("Cdrdao %1 does not support disabling burnfree.").arg(m_cdrdaoBinObject->version), WARNING ); } + if( k3bcore->globalSettings()->force() ) { + *m_process << "--force"; + emit infoMessage( i18n("'Force unsafe operations' enabled."), WARNING ); + } + bool manualBufferSize = k3bcore->globalSettings()->useManualBufferSize(); if( manualBufferSize ) { --- trunk/extragear/multimedia/k3b/libk3b/projects/k3bcdrecordwriter.cpp #605298:605299 @@ -222,6 +222,11 @@ else emit infoMessage( i18n("Writer does not support buffer underrun free recording (Burnfree)"), WARNING ); } + + if( k3bcore->globalSettings()->force() ) { + *m_process << "-force"; + emit infoMessage( i18n("'Force unsafe operations' enabled."), WARNING ); + } if( m_cue ) { m_process->setWorkingDirectory(QUrl(m_cueFile).dirPath()); @@ -725,9 +730,11 @@ break; case HIGH_SPEED_MEDIUM: emit infoMessage( i18n("Found a high-speed medium not suitable for the writer being used."), ERROR ); + emit infoMessage( i18n("Use the 'force unsafe operations' option to ignore this."), ERROR ); break; case LOW_SPEED_MEDIUM: emit infoMessage( i18n("Found a low-speed medium not suitable for the writer being used."), ERROR ); + emit infoMessage( i18n("Use the 'force unsafe operations' option to ignore this."), ERROR ); break; case MEDIUM_ERROR: emit infoMessage( i18n("Most likely the burning failed due to low-quality media."), ERROR ); --- trunk/extragear/multimedia/k3b/src/option/k3bburningoptiontab.cpp #605298:605299 @@ -66,16 +66,18 @@ bufferLayout->setSpacing( KDialog::spacingHint() ); m_checkBurnfree = K3bStdGuiItems::burnproofCheckbox( groupWritingApp ); - m_checkOverburn = new QCheckBox( i18n("Allow &overburning (not supported by cdrecord <= 1.10)"), groupWritingApp ); + m_checkOverburn = new QCheckBox( i18n("Allow overburning (¬ supported by cdrecord <= 1.10)"), groupWritingApp ); + m_checkForceUnsafeOperations = new QCheckBox( i18n("Force unsafe operations"), groupWritingApp ); m_checkManualWritingBufferSize = new QCheckBox( i18n("&Manual writing buffer size") + ":", groupWritingApp ); m_editWritingBufferSize = new KIntNumInput( 4, groupWritingApp ); m_editWritingBufferSize->setSuffix( " " + i18n("MB") ); m_checkAllowWritingAppSelection = new QCheckBox( i18n("Manual writing application &selection"), groupWritingApp ); bufferLayout->addMultiCellWidget( m_checkBurnfree, 0, 0, 0, 2 ); bufferLayout->addMultiCellWidget( m_checkOverburn, 1, 1, 0, 2 ); - bufferLayout->addWidget( m_checkManualWritingBufferSize, 2, 0 ); - bufferLayout->addWidget( m_editWritingBufferSize, 2, 1 ); - bufferLayout->addMultiCellWidget( m_checkAllowWritingAppSelection, 3, 3, 0, 2 ); + bufferLayout->addMultiCellWidget( m_checkForceUnsafeOperations, 2, 2, 0, 2 ); + bufferLayout->addWidget( m_checkManualWritingBufferSize, 3, 0 ); + bufferLayout->addWidget( m_editWritingBufferSize, 3, 1 ); + bufferLayout->addMultiCellWidget( m_checkAllowWritingAppSelection, 4, 4, 0, 2 ); bufferLayout->setColStretch( 2, 1 ); QGroupBox* groupMisc = new QGroupBox( 2, Qt::Vertical, i18n("Miscellaneous"), this ); @@ -101,6 +103,7 @@ QToolTip::add( m_checkAllowWritingAppSelection, i18n("Allow to choose between cdrecord and cdrdao") ); QToolTip::add( m_checkAutoErasingRewritable, i18n("Automatically erase CD-RWs and DVD-RWs without asking") ); QToolTip::add( m_checkEject, i18n("Do not eject the burn medium after a completed burn process") ); + QToolTip::add( m_checkForceUnsafeOperations, i18n("Force K3b to continue some operations otherwise deemed as unsafe") ); QWhatsThis::add( m_checkAllowWritingAppSelection, i18n("<p>If this option is checked K3b gives " "the possibility to choose between cdrecord " @@ -136,6 +139,13 @@ "burning and does not want the tray to be open all the time." "<p>However, on Linux systems a freshly burned medium has to be reloaded. Otherwise " "the system will not detect the changes and still treat it as an empty medium.") ); + + QWhatsThis::add( m_checkForceUnsafeOperations, i18n("<p>If this option is checked K3b will continue in some situations " + "which would otherwise be deemed as unsafe." + "<p>This setting for example disables the check for medium speed " + "verification. Thus, one can force K3b to burn a high speed medium on " + "a low speed writer." + "<p><b>Caution:</b> Enabling this option may result in damaged media.") ); } @@ -150,6 +160,7 @@ m_checkBurnfree->setChecked( k3bcore->globalSettings()->burnfree() ); m_checkEject->setChecked( !k3bcore->globalSettings()->ejectMedia() ); m_checkOverburn->setChecked( k3bcore->globalSettings()->overburn() ); + m_checkForceUnsafeOperations->setChecked( k3bcore->globalSettings()->force() ); m_checkManualWritingBufferSize->setChecked( k3bcore->globalSettings()->useManualBufferSize() ); if( k3bcore->globalSettings()->useManualBufferSize() ) m_editWritingBufferSize->setValue( k3bcore->globalSettings()->bufferSize() ); @@ -169,6 +180,7 @@ k3bcore->globalSettings()->setBurnfree( m_checkBurnfree->isChecked() ); k3bcore->globalSettings()->setUseManualBufferSize( m_checkManualWritingBufferSize->isChecked() ); k3bcore->globalSettings()->setBufferSize( m_editWritingBufferSize->value() ); + k3bcore->globalSettings()->setForce( m_checkForceUnsafeOperations->isChecked() ); // FIXME: remove this once libk3b does not use KConfig anymore for these values k3bcore->globalSettings()->saveSettings( c ); --- trunk/extragear/multimedia/k3b/src/option/k3bburningoptiontab.h #605298:605299 @@ -54,6 +54,7 @@ QCheckBox* m_checkManualWritingBufferSize; KIntNumInput* m_editWritingBufferSize; QCheckBox* m_checkAllowWritingAppSelection; + QCheckBox* m_checkForceUnsafeOperations; }; |