|
From: Marcus M. <ma...@je...> - 2009-09-09 22:58:52
|
On Thu, Sep 10, 2009 at 12:37:35AM +0200, Linus Walleij wrote:
> 2009/9/9 Nyall Dawson <ny...@zo...>:
>
> > Error 2: PTP Layer error a803: send_file_object_info():Could not send
> > object property list.
> > Error 2: (Look this up in ptp.h for an explanation.)
> > Error 1: LIBMTP_Send_Track_From_File_Descriptor(): subcall to
> > LIBMTP_Send_File_From_File_Descriptor failed.
>
> No, now wait return code 0xa803 is special, this means:
> PTP_RC_MTP_Invalid_ObjectProp_Value 0xA803
>
> So one of the properties we try to set is not applicable for this
> device. One property we began setting in 1.0.0 is modificationdate,
> what happens if you try adding the flag:
> DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED ?
>
> Else we have to drill down and try to see which metadata
> item has an invalid value, we can probably see this from a USB
> debug trace also if you want to make one again, or you
> can selectively comment out different metadata props in
> e.g. LIBMTP_Update_Track_Metadata(), I think that's the
> function where it fails.
It looks as if the object is not created on the device.
There is this strange code in create_new_abstract_list().
One code branch (the one used here) does:
// now send the blank object
ret = ptp_sendobject(params, NULL, 0);
the other one does:
// NOTE: don't destroy new_object objectinfo afterwards - the strings it contains are
// not copies.
/*
* We have to send this one blank data byte.
* If we don't, the handle will not be created and thus there is no playlist.
*/
data[0] = '\0';
data[1] = '\0';
ret = ptp_sendobject(params, data, 1);
if (ret != PTP_RC_OK) {
add_ptp_error_to_errorstack(device, ret, "create_new_abstract_list(): Could not send blank object data.");
return -1;
}
Perhaps the second one should be used in the first case too.
Ciao, Marcus
|