[k3b] [Bug 381074] [MATSHITA BD-MLT UJ240AS] Does not write image "debian-8.8.0-amd64-BD-1.iso"

Thomas Schmitt bugzilla_noreply at kde.org
Mon Aug 21 09:56:15 UTC 2017


https://bugs.kde.org/show_bug.cgi?id=381074

--- Comment #14 from Thomas Schmitt <scdbackup at gmx.net> ---
Hi,

Leslie Zhai wrote:
> QEventLoop http://doc.qt.io/qt-5/qeventloop.html

This does not help much with understanding under which circumstances
the particular medium waiting loop shall end.

I searched for "waitingDone = true" which i find in
  https://cgit.kde.org/k3b.git/tree/src/k3bemptydiscwaiter.cpp#n710
  K3b::EmptyDiscWaiter::finishWaiting()

This is called in
  https://cgit.kde.org/k3b.git/tree/src/k3bemptydiscwaiter.cpp#n210
  K3b::EmptyDiscWaiter::slotMediumChanged()
which is also called before the loop.
So the beef must be in there.

Most of the finishWaiting() calls are in if-cases which apply to
non-BD-R media only.
Two calls remain. One is unlikely because of this comment
  https://cgit.kde.org/k3b.git/tree/src/k3bemptydiscwaiter.cpp#n641

    // this is for CD drives that are not able to determine the state of a disk

-----------------------------------------------------------------------------
So ours must be in

  https://cgit.kde.org/k3b.git/tree/src/k3bemptydiscwaiter.cpp#n634

    else if( (d->wantedMediaType & medium.diskInfo().mediaType()) &&
             (d->wantedMediaState & medium.diskInfo().diskState()) &&
             (d->wantedMinMediaSize <= medium.actuallyRemainingSize() ||
              IsOverburnAllowed( d->wantedMinMediaSize,
medium.diskInfo().capacity(), medium.actuallyUsedCapacity() )) ) {
        finishWaiting( medium.diskInfo().mediaType() );

One can see how the criteria are set up in waitForDisc():
  https://cgit.kde.org/k3b.git/tree/src/k3bemptydiscwaiter.cpp#n158

    d->wantedMediaState = mediaState;
    d->wantedMediaType = mediaType;
    d->wantedMinMediaSize = minMediaSize;

Currently i fail to see the spot where this is called. So it would be
interesting to see by what values the loop gets programmed.

A print statement at that position would be of help.

In general we have three possible reasons for not accepting the BD-R
in the drive:

- A type is requested which does not match BD-R.
  The text snippet "empty medium of size" indicates that K3B does not
  look for MEDIA_WRITABLE_BD, because then it would say "Blu-ray medium".

- The BD-R is not in the desired state. (This is unlikely because we have
   the statement in the screenshot that it is an empty BD-R and that the
   waiter wants to see an empty medium.)

- The actuallyRemainingSize() is less than the required size.

So we are back at the question how much size is offered by the BD-R.


Have a nice day :)

Thomas

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the k3b mailing list