Property: Length is not found - sometimes

Discussion related to "Everything" 1.5 Alpha.
Post Reply
therube
Posts: 4955
Joined: Thu Sep 03, 2009 6:48 pm

Property: Length is not found - sometimes

Post by therube »

Property: Length is not found - sometimes
(That's the short version of it.)

---

(I was looking at video, in particular.)


1317

fails to find (Property) 'Length'
on LFN

path = 38
name = 237
tot: = 275


no, that's not it!
that is not the reason - at least that is not the *FULL* reason

hmmm...
used FFC to copy LFN
> FFC home3412* X\

CD X
egor (open Everything in CWD)

home3412... <displays>

Salamander -> F2 home3412... -> xxx.wmv


looks like it's going to be this:

> USN RENAME_OLD_NAME HOME34~1.WMV
> PIPE READ 8
> USN RENAME_NEW_NAME xxx.wmv
> USN CLOSE RENAME_NEW_NAME xxx.wmv

where HOME34~1.WMV was in fact that said LFN

Code: Select all

	Everything
	Version 1.5.0.1317a (x86)
	Windows NT 6.1
	Processors 4
	IsAdmin 0
	AppData 0
	Service 1
	cmdline .\everything.exe  -instance 15
	SetActiveWindow failed 00000000
	WM_ACTIVATE 00000000 00000000, lastfocus 02951126, current focus 02951126
	PIPE READ 8
	PIPE READ 4
	PIPE READ 3 12
	update m 29 0db0c830
	PIPE READ 8
	update index E:
	PIPE WRITE 34 52
	PIPE READ 8
	PIPE READ 344
	PIPE READ 0 352
	USN DATA_TRUNCATION CONHOST.EXE-E6AFC9F5.pf
	PIPE READ 8
	USN DATA_EXTEND DATA_TRUNCATION CONHOST.EXE-E6AFC9F5.pf
	USN CLOSE DATA_EXTEND DATA_TRUNCATION CONHOST.EXE-E6AFC9F5.pf
	PIPE WRITE 34 52
	PIPE READ 8
	PIPE READ 8
	PIPE READ 0 16
	PIPE READ 8
	read usn journal E: in 0.002671 seconds
	PIPE WRITE 35 20
	PIPE READ 8
	PIPE READ 95
	PIPE READ 0 103
	PIPE WRITE 35 20
	PIPE READ 8
	PIPE READ 65
	PIPE READ 0 73
	PIPE READ 8
	updated E: in 0.001510 seconds
	resume ntfs monitor 29
	PIPE WRITE 33 52
	DB_WAIT: _db_journal_notification_event_proc waiting for _db_monitor_ntfs_proces
	s_fd_update_events_thread_proc...
	processed 1 usn records in 0.000207 seconds
	PIPE READ 8
	PIPE READ 0 8
	DB_WAIT: _db_journal_notification_event_proc waited 0.001000 seconds
	PIPE READ 8
	processed 1 usn records in 0.000062 seconds
	DB_WAIT: _db_monitor_process_fd_update_event_finished_event_proc waiting for _db
	_monitor_ntfs_process_fd_update_events_thread_proc...
	DB_WAIT: _db_monitor_process_fd_update_event_finished_event_proc waited 0.000176
	 seconds
	PIPE READ 8
	PIPE READ 4
	PIPE READ 3 12
	update m 36 0faacbd8
	PIPE READ 8
	update index T:
	PIPE WRITE 34 52
	PIPE READ 8
	PIPE READ 256
	PIPE READ 0 264
	USN RENAME_OLD_NAME HOME34~1.WMV
	PIPE READ 8
	USN RENAME_NEW_NAME xxx.wmv
	USN CLOSE RENAME_NEW_NAME xxx.wmv
	PIPE WRITE 34 52
	PIPE READ 8
	PIPE READ 8
	PIPE READ 0 16
	PIPE READ 8
	read usn journal T: in 0.003039 seconds
	PIPE WRITE 35 20
	PIPE READ 8
	PIPE READ 51
	PIPE READ 0 59
	PIPE WRITE 35 20
	PIPE READ 8
	PIPE READ 63
	PIPE READ 0 71
	PIPE READ 8
	updated T: in 0.001716 seconds
	resume ntfs monitor 36
	PIPE WRITE 33 52
	processed 2 usn records in 0.000250 seconds
	PIPE READ 8
	PIPE READ 0 8
	DB_WAIT: _db_monitor_process_fd_update_event_finished_event_proc waiting for _db
	_monitor_ntfs_process_fd_update_events_thread_proc...
	PIPE READ 8
	DB_WAIT: _db_monitor_process_fd_update_event_finished_event_proc waited 0.000623
	 seconds
	new results 2
	ui->listview_was_focus_in_view 0

if i rename back, from xxx.wmv to LFN...

MoveFile:
T:\X\xxx.wmv
to:
\\?\T:\X\home3412...
PIPE READ 8
PIPE READ 4
PIPE READ 3 12
try rename: 1:
T:\X\xxx.wmv
to:
T:\X\home3412...
update m 36 0faacbd8
PIPE READ 8
update index T:
PIPE WRITE 34 52
PIPE READ 8
PIPE READ 1160
PIPE READ 0 1168
USN RENAME_OLD_NAME xxx.wmv
PIPE READ 8
USN RENAME_NEW_NAME home3412...
USN CLOSE RENAME_NEW_NAME home3412...


(btw, renaming it back "fixes" the deadwood)



*FULL reason
- oh, not sure offhand (yet ?)
but, with /said/ LFN (when named as; home3412...)
Everything does NOT see the (Property) 'Length'
- but, if i rename LFN, home3412... to xxx.wmv
(at that point total len of 45 (a SFN)
the (Property) 'Length" /IS/ seen

now, there are plenty of other LFN
> path:len:>260
where (Property) 'Length' is seen (& then /some/ LFN where 'Length' is not seen)

(Property) 'Length' may not be seen for various reason
"corrupt" file
"partial" file (different from corrupt)
(odd) codec used (where in general the particular /container/ is otherwise fully supported)...

i'm thinking it's going to have to do with a combination of both path + name parts
& where & when the two combined become a "LFN"
(& maybe even, what was that recent relevation where "255" [or whatever that number was] was not an absolute...)

(don't you luv LFN ;-). i think i've said that, b4 heh.)

if i drop name part length down to 226 (so total len of 264), at that point 'Length' does display
- path len of 38, allows for a maximum name len of 226 [total 264] before 'Length' "disappears"
(this is NOT an issue with the particular file - other file can be substituted with same resultes)

if i move same "working" file to its' parent (so sans X\ - a shorter path)
- path len of 36 + name 226, tot 262 - WORKS
- path len of 36 + name 229, tot 265 - FAILS
-- so again, 264 is a "magic" number
- seemingly based on Path (or did i mean /Location/ ;-)) length

& if i copy said file to c:/out/ (path = 7), then i should be able to create a name len of 257
& (Property) 'Length' should be seen
& with a name len of 258, is should "disappear"
?
so much for that idea, cause i then run into the 255 limit
& at 7 + 255, while only 262, 'Length' is not seen
(have to drop down to 7 + 252, tot of 259, for 'Length' to be seen)


(yet a different file...
path 65 + name 224, tot 289 does display 'Length')


(so i didn't bring my flash drive home, saying to myself,
i'm not going to run into anything tonight ;-))



so what... is it going to be...

if name.part <= 254-path.len = OK
if name.part > 254-path.len = FAIL

so if Location (er...) path = 38
that would mean that name.part can be 226 in order for (Property) 'Length' to work

but, it's more then just that, isn't it... ?

260 or 259 ( -path.len ) might also be in play here?
or maybe more yet again?


*HAS* to be more then just that (or something /around/ that),
LFN (or "close to" LFN) conversions (to SFN) also have to be playing in...

*HAS*
Full Path Length helps to point that out
(things like a name.part 255, path.part 172, tot 427, still works, does display 'Length')


suffice to say, at some length, Length doesn't work
(don't worry, you'll get it ;-))
void
Developer
Posts: 16672
Joined: Fri Oct 16, 2009 11:31 pm

Re: Property: Length is not found - sometimes

Post by void »

Thanks for the issue report therube,

Everything doesn't have native support for wmv files yet.

It is on my TODO list.
asf and wmv are similar formats.

When support is added, long paths will be supported.
Currently, Everything is using the system to gather properties from wmv files and the shell extension to do this is most likely has a path limit of 259 characters.
therube
Posts: 4955
Joined: Thu Sep 03, 2009 6:48 pm

Re: Property: Length is not found - sometimes

Post by therube »

Everything doesn't have native support for wmv files yet.
Ah, so that's what it was.

(And by the same token .wma, audio only files, would be affected too.)


---


Though there does look to also be a similar (though different, then) issue with .mpg (.mpeg, MPEG-PS).

For .mpg, it looks to be:
max.name.part = 259-path.part

in order for Length to work...
(with a 255 absolute max name.part, of course)
therube
Posts: 4955
Joined: Thu Sep 03, 2009 6:48 pm

Re: Property: Length is not found - sometimes

Post by therube »

(separately...)

had a (LFN) .mov (Quicktime) Sorenson Media Video 1
& that did not display 'Length' until i "re-copy"'d it

"re-copy"
ffmpeg -i in.mov -c copy out.mov


that simply "copies" from input to output
(losslessly, but most often not bit-identical)
- though output is (almost always) physically different from input
various reasons; headers, tags, "ordering", ... whatever...

another reason is that ffmpeg sees something that is not "right"
& so "fixes" it. when it does that, it typically writes a message about what it saw...

anyhow, this particular .mov, did not show a 'Length'
but after a "re-copy", it did (still a LFN, longer, actually)
though ffmpeg, in this case did not mention anything this file

(so in this case "LFN" was not the issue
- some "other" issue with the file, that "re-copy" fixed, though without mention)

something like this, where "re-copy" fixes things,
i'll most typically see with "partial" .flv files (that most often will not /scroll/)


---


(separately... & without looking at particulars on the files)

i did have some "LFN" .asf (MPEG-4 Visual, MP43)
that DID display 'Length'
so /possibly/ codec too plays into this?
(file extension was correct for the file)


(heh.
oh, also, i've come across "packed" files before; zip, rar... that had a valid video extension
[rather then .zip .rar...]
that some players [transparently] unpack/open/play. expectedly, 'Length' would not display
for something like that. & since the file "plays", one might not realize that it was actually
a zip, so that could be another reason for lack of (Properties).)
void
Developer
Posts: 16672
Joined: Fri Oct 16, 2009 11:31 pm

Re: Property: Length is not found - sometimes

Post by void »

The stock property handler for asf/wmv is definitely limited to 259 characters for full paths.

Having a short path doesn't appear to help.

Maybe the file wasn't really a asf/wmv file?



Try checking the File Signature property in Everything for this file.
It might help detect files that are using the wrong extension.
therube
Posts: 4955
Joined: Thu Sep 03, 2009 6:48 pm

Re: Property: Length is not found - sometimes

Post by therube »

.asf

Code: Select all

name 98
path 164
full 262
another

Code: Select all

name 116
path 176
full 292
& yes, they are asf (wmv...) 0&²

copied that last one to a subdirectory \X\ (so 2 chars longer)
& made the name longer
& the maximum i can make fullpath & have Length display is 313
(anything greater, & Length does not display)

Code: Select all

name 135 (longer)
path 178 (2 greater)
full 313
therube
Posts: 4955
Joined: Thu Sep 03, 2009 6:48 pm

Re: Property: Length is not found - sometimes

Post by therube »

.asx

file extension; .asx

which perhaps isn't "correct"
probably is not correct
(it is, could be, should be; .asf, .wmv or similar)
(maybe it's some sort of intermediary file, that never "finished", so didn't get named from .asx -> .wmv?)

nonetheless... i have some

(& while there are tools around that make it simple to change .asx -> .wmv,
oh, you know, like Everything - why bother?)

heh.

OK, so it's not the bother, nor the right or wrong, it's that i have,
(don't know if it's default or not) .asx defined (in Everything) as a
video: file type - which is fine.
(likewise, my media players know that they can play .asx)

& with that...

as .asx "is" .wmv,
when named as .asx,
Everything (Property) 'Length' does see any Length
(i guess it does not even try at all, given the extension, which you can't really fault Everything)
(for that matter, MediaInfo also does not recognize .asx - for purposes of context menu operations,
though if you drag .asx into MediaInfo, it does know, & shows you, & says, "hey dumy, you've got an
invalid extension there" ;-))

so...

should Everything see .asx & say, oh, that's a .wmv & display Length?
or should i just "bother" & rename them to .wmv & be done with it, heh.


(you /do/ know the outcome to that, don't you.
status quo.
i won't bother & it's not the end of the world.

right or wrong, tradition is tradition.

LOL.)


oh, & of course, should you rename .asx -> .wmv,
at that point Everything then does know its' Length


(i just renamed 1 file from .asx to .wma.asx ;-))

-

oh, guess what,
the same occurs with .qt & .mov,
(Apple QuickTime, Cinepak)
where 'Length' of .qt is not "seen".
rename .qt -> .qt.mov & it shows up.

(oh, & i'm on Win7, of course, so 10/11 [heh], could be different)

now granted, these may be "odd" situations, but i'm thinking it's
going to be a somewhat common situation. also guessing that the
routine/libraries are only looking at the extension rather then
trying to actually read the files header - which i guess doesn't
make sense in situations like this as that would be much slower...

now, if you can simply add extensions...

if qt or mov, goto read quicktime_routine
if wma or wmv or asf or asx or..., goto read wmv_routine


-

dcomzlib
(in a .mov [mov mov])

i'm guessing that is some sort of 'Z' compression
(when ccopy, out.file was 2x the size)

- when dcomzlib is used, 'Length' is not seen
(how is /that/ for an edge case ;-))

Edit: Appears that is almost all cases, dcomzlib is only used to compress the header.
therube
Posts: 4955
Joined: Thu Sep 03, 2009 6:48 pm

Re: Property: Length is not found - sometimes

Post by therube »

.asf.divx
(& here ".divx" isn't really "correct", but...)

some contraption created a LONG time ago - through VLC (no less)
(no clue how i did it at this point in time)

anyhow, file extension .divx,
which opens/plays in my players, just fine

but because the extension "used" is .divx,
'Length' is not displayed

change it from .divx -> .divx.asf (or .divx.wmv)
& "Length" displays just fine
(file /is/ .asf/.wmv)

-

likewise, .divx -> .divx.avi (MPEG-4 in an .avi)

-

so i guess in general, any file extension that is not specifically looked for by the library used, potentially won't display 'Length'.
therube
Posts: 4955
Joined: Thu Sep 03, 2009 6:48 pm

Re: Property: Length is not found - sometimes

Post by therube »

(No big deal, but since I came across it, I'll note it...)


file extension: f4v

Even though "inside" is nothing more then "mp4"
MPEG-4, M4V (M4V /mp42/isom), AVC, AAC
Length is not "seen"
change ext: to f4v.mp4
Length is seen
(not a big deal)

(Windows [7] gives the same results, or not, based on ext:)
void
Developer
Posts: 16672
Joined: Fri Oct 16, 2009 11:31 pm

Re: Property: Length is not found - sometimes

Post by void »

This is by design.

Everything will only look for properties based on the file extension.
eg: Everything will only look for mp4 properties in files with an mp4 file extension.



(There are a few properties that ignore the extension, such as: File Signature)
Post Reply