Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Development

Reply
 
Thread Tools Search this Thread Display Modes
Old 24th April 2013, 03:03   #41  |  Link
sl1pkn07
Pajas Mentales...
 
Join Date: Dec 2004
Location: Spanishtán
Posts: 496
one little question (and maybe stupid) about vapoursynth plugin (in linux)

the library vslsmashsource.so call boxdumper/muxer/remuxer/timelineeditor for indexing/open videos? or can self handle without these executables

i want build this plugin with lsmash and ffmpeg form git into library (static linked)
sl1pkn07 is offline   Reply With Quote
Old 24th April 2013, 22:42   #42  |  Link
VFR maniac
Spinner of yarns
 
VFR maniac's Avatar
 
Join Date: May 2009
Posts: 164
Quote:
Originally Posted by sl1pkn07 View Post
one little question (and maybe stupid) about vapoursynth plugin (in linux)

the library vslsmashsource.so call boxdumper/muxer/remuxer/timelineeditor for indexing/open videos? or can self handle without these executables

i want build this plugin with lsmash and ffmpeg form git into library (static linked)
boxdumper, muxer, remuxer and timelineeditor are L-SMASH App.
They have nothing to do with L-SMASH Works.
L-SMASH Works depends on liblsmash, libavutil, libavcodec, libavformat, libswscale and libavresample.
__________________
僕と契約して、L-SMASH developerになってよ!
L-SMASH | L-SMASH Works | Opus-in-ISOBMFF specification and reference software
VFR maniac is offline   Reply With Quote
Old 25th April 2013, 11:27   #43  |  Link
sl1pkn07
Pajas Mentales...
 
Join Date: Dec 2004
Location: Spanishtán
Posts: 496
I thought the vapourshynt pluging (and l-smash lib) working like:

vapoursynth call vslsmashsource -> vslsmashsource call liblsmash -> liblsmash call l-smash aplications to handle videos -> liblsmash collect the info and send to vapoursynth through vslsmashsource

oks, tanks fot the aclaration.
sl1pkn07 is offline   Reply With Quote
Old 29th May 2013, 20:53   #44  |  Link
VFR maniac
Spinner of yarns
 
VFR maniac's Avatar
 
Join Date: May 2009
Posts: 164
Quote:
Originally Posted by Selur View Post
btw. does anyone know if 10 bit precision input support is planned, atm. (r561) High10 content throws
Quote:
Avisynth open failure:
LWLibavVideoSource: yuv420p10le is not supported
I added supporting of a hack of high bit-depth input between rev594 and rev603.
For interleaved format (at default), only little endianness output is supported currently i.e. LSB comes at the first byte and MSB comes at the second.
Stacked format is also available but direct rendering is always not available if used.


By the way, does anyone have a PAFF H.264 sample?
I added supporting of H.264 field coded picture handling for LW-Libav part but I haven't tested on any sample containing both frame coded and field coded yet.
I only tested on samples containing field coded only.
__________________
僕と契約して、L-SMASH developerになってよ!
L-SMASH | L-SMASH Works | Opus-in-ISOBMFF specification and reference software

Last edited by VFR maniac; 29th May 2013 at 21:29.
VFR maniac is offline   Reply With Quote
Old 4th June 2013, 11:04   #45  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,259
using: L-SMASH-Works_r608 (extracted the LSMASHSource.dll and the msvcr100.dll into my test folder)
I called:
Code:
LoadPlugin("G:\Test\LSMASHSource.dll")
LSMASHVideoSource("F:\Testfiles\test2.mkv"))
when trying to open the script with Virtual Dub I get:
Quote:
Avisynth open failure:
LSMASHVideoSource: failed to lsmash_open_movie.
(F:\Testfiles\test2.avs, line 2)
am I missing something? (uploaded the test2.mkv to http://www.embedupload.com/?d=1JUTIYWYCU)

Cu Selur
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Old 4th June 2013, 11:44   #46  |  Link
VFR maniac
Spinner of yarns
 
VFR maniac's Avatar
 
Join Date: May 2009
Posts: 164
Quote:
Originally Posted by Selur View Post
using: L-SMASH-Works_r608 (extracted the LSMASHSource.dll and the msvcr100.dll into my test folder)
I called:
Code:
LoadPlugin("G:\Test\LSMASHSource.dll")
LSMASHVideoSource("F:\Testfiles\test2.mkv"))
when trying to open the script with Virtual Dub I get:

Quote:
Avisynth open failure:
LSMASHVideoSource: failed to lsmash_open_movie.
(F:\Testfiles\test2.avs, line 2)
am I missing something? (uploaded the test2.mkv to http://www.embedupload.com/?d=1JUTIYWYCU)

Cu Selur
Why do you use LSMASHVideoSource() for mkv?
LSMASH*Source() is for MOV, ISO Base Media and its derived file formats.
LSMASH*Source() uses libavformat only for the first decoder initialization, and demuxes streams by using L-SMASH demuxer API.
Use LWLibavVideoSource() instead.
__________________
僕と契約して、L-SMASH developerになってよ!
L-SMASH | L-SMASH Works | Opus-in-ISOBMFF specification and reference software
VFR maniac is offline   Reply With Quote
Old 4th June 2013, 14:17   #47  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,259
DOH, just realized it myself and wanted to report my mistake.
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Old 14th June 2013, 15:31   #48  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,259
Are there any plans to include .mpls (Blu-ray playlist) support as input in LWLibavVideoSource? (would be a 'nice to have' feature)
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Old 14th June 2013, 16:00   #49  |  Link
LigH
German doom9/Gleitz SuMo
 
LigH's Avatar
 
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 6,753
LSS has an impressive speed advantage in relation to FFMS2 (almost *150% in a quick test decoding AVC 1080p CRF6); it appears to use one more thread than FFMS2, but this won't be the only reason?
__________________

New German Gleitz board
MediaFire: x264 | x265 | VPx | AOM | Xvid
LigH is offline   Reply With Quote
Old 14th June 2013, 16:29   #50  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
Quote:
Originally Posted by LigH View Post
it appears to use one more thread than FFMS2, but this won't be the only reason?
That additional thread could simply be an OS module that is being used by the decoder. Process Explorer would show details about the threads.

Edit:
Just checked - LSS invokes 5 decoding threads on my (quad) i5 2500K without specifying "threads=x". It's marginally faster than specifying 4 threads.

Last edited by Groucho2004; 14th June 2013 at 22:11.
Groucho2004 is offline   Reply With Quote
Old 17th June 2013, 03:59   #51  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,419
A few patches that might be useful:

AvxSynth support
https://gist.github.com/qyot27/5794294
(this one is currently broken because it's not creating the function exports correctly under g++ or AvxSynth, or both; it compiles, but that's about it)

Installation rules for the VapourSynth plugin
https://gist.github.com/qyot27/5794299


The third patch is for the case where L-SMASH itself has been patched to install its headers in $(includedir)/lsmash rather than just $(includedir)
https://gist.github.com/qyot27/5794312

Adjusted header search paths
https://gist.github.com/qyot27/5794300
(it does assume that the AvxSynth patch has been applied already)

Last edited by qyot27; 17th June 2013 at 20:40.
qyot27 is offline   Reply With Quote
Old 17th June 2013, 20:41   #52  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,419
I've updated the AvxSynth and VapourSynth install patches slightly (AvxSynth plugin is still broken); the URLs are still the same.
qyot27 is offline   Reply With Quote
Old 25th June 2013, 13:46   #53  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,259
'small' feature request: would be nice if could call LWLibavVideoSource with a list of sources and not just with a single source, since one it a bit of a pain when trying to open a blu-ray that uses a mpls file which links to multiple m2ts files.
Code:
LoadPlugin("G:\Hybrid\avisynthPlugins\LSMASHSource.dll")
LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00004.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00109.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00111.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00113.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00115.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00117.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00119.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00121.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00123.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00125.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00127.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00129.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00131.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00133.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00137.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00139.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00141.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00143.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00145.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00147.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00149.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00151.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00153.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00155.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00157.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00159.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00161.m2ts",repeat=true)
return last
(using cache=false on this one will crash Avisynth since more than 3.5GB RAM get consumed)
__________________
Hybrid here in the forum, homepage

Last edited by Selur; 25th June 2013 at 14:15.
Selur is offline   Reply With Quote
Old 26th June 2013, 11:47   #54  |  Link
Music Fan
Registered User
 
Join Date: May 2009
Location: Belgium
Posts: 1,743
I have a strange problem with LWLibavVideoSource (L-SMASH-Works_r629) : when I open a ts file including interlaced h264 (recorded on tv) in 1920.1080 25i, the fields are blended (until there that's normal because I didn't de-interlace video) and the resulting frames are doubled, so the video is seen as 50 fps instead of 25 in Virtual Dub and there is movement only all 2 images.
The video is considered as interlaced TFF by MediaInfo.
There is only one line in my script ;
LWLibavVideoSource("F:\myvideo.ts")
Sorry if it has been explained earlier, I didn't read all pages.
Music Fan is offline   Reply With Quote
Old 26th June 2013, 14:35   #55  |  Link
Reel.Deel
Registered User
 
Join Date: Mar 2012
Location: Texas
Posts: 1,664
@Music Fan

For an explanation read VFR maniac's post in this thread.

For a solution try remuxing to MKV and set repeat=true.
Like so:
Code:
LWLibavVideoSource("Video.mkv", repeat=true)
Reel.Deel is offline   Reply With Quote
Old 27th June 2013, 08:38   #56  |  Link
Music Fan
Registered User
 
Join Date: May 2009
Location: Belgium
Posts: 1,743
Thanks a lot, repeat=true works with my ts
But I'm astonished to note that my ts files are in bff and not tff (I see it clearly by adding separatefields in my script), while I believed tv streams were always in tff.
Is it possible that LWLibavVideoSource does a field inversion ?
Or could it be a difficulty to handle TS container ?
I still had to put these files in MKV container to see if the result is the same.
Music Fan is offline   Reply With Quote
Old 27th June 2013, 08:51   #57  |  Link
LigH
German doom9/Gleitz SuMo
 
LigH's Avatar
 
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 6,753
The field dominance is an attribute of the video stream, not of the container.

If AssumeBFF().Bob() doubtlessly returns smooth motion, whereas AssumeTFF().Bob() returns a forth-and-back jitter, then it is correct, and the material was recorded using a camera with a dominant bottom field.
__________________

New German Gleitz board
MediaFire: x264 | x265 | VPx | AOM | Xvid

Last edited by LigH; 27th June 2013 at 08:54.
LigH is offline   Reply With Quote
Old 27th June 2013, 10:11   #58  |  Link
VFR maniac
Spinner of yarns
 
VFR maniac's Avatar
 
Join Date: May 2009
Posts: 164
Quote:
Originally Posted by Selur View Post
'small' feature request: would be nice if could call LWLibavVideoSource with a list of sources and not just with a single source, since one it a bit of a pain when trying to open a blu-ray that uses a mpls file which links to multiple m2ts files.
Code:
LoadPlugin("G:\Hybrid\avisynthPlugins\LSMASHSource.dll")
LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00004.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00109.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00111.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00113.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00115.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00117.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00119.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00121.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00123.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00125.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00127.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00129.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00131.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00133.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00137.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00139.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00141.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00143.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00145.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00147.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00149.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00151.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00153.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00155.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00157.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00159.m2ts",repeat=true)\ 
+LWLibavVideoSource("H:\TestClips&Co\BluRay\BDMV\STREAM\00161.m2ts",repeat=true)
return last
(using cache=false on this one will crash Avisynth since more than 3.5GB RAM get consumed)
I don't have enough time.
I say again and again "patches welcome".

Quote:
Originally Posted by Music Fan View Post
Thanks a lot, repeat=true works with my ts
But I'm astonished to note that my ts files are in bff and not tff (I see it clearly by adding separatefields in my script), while I believed tv streams were always in tff.
Is it possible that LWLibavVideoSource does a field inversion ?
Or could it be a difficulty to handle TS container ?
I still had to put these files in MKV container to see if the result is the same.
Inversion can be done by 'dominance'.

Quote:
+ dominance : (default : 0)
Which field, top or bottom, is displayed first.
- 0 : Obey source flags
- 1 : TFF i.e. Top -> Bottom
- 2 : BFF i.e. Bottom -> Top
This option is enabled only if 'repeat' is set to true.
Even if a source file is TFF, If the first frame consists of two PAFF field coded pictures and the first field is missing, it should be treated as BFF.
Libavcodec returns frames by pair of two field coded picture.
You can see the source is TFF but the recorded and decoded stream is BFF.

source: ... T0 B1 T2 B3 T4 B5 T6 B7 T8 B9 ...
recorded: B1 T2 B3 T4 B5 T6 B7 T8 B9 ... (the first field dropped)
decoded: [B1 T2] [B3 T4] [B5 T6] [B7 T8] [B9 X] ...

For PAFF field coded pictures, there is no concept of field order or field dominance.
They only play role being coded as top field or bottom field.
__________________
僕と契約して、L-SMASH developerになってよ!
L-SMASH | L-SMASH Works | Opus-in-ISOBMFF specification and reference software

Last edited by VFR maniac; 27th June 2013 at 10:28.
VFR maniac is offline   Reply With Quote
Old 27th June 2013, 11:44   #59  |  Link
LigH
German doom9/Gleitz SuMo
 
LigH's Avatar
 
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 6,753
Quote:
Originally Posted by VFR maniac View Post
I say again and again "patches welcome".
Believe it or not ... there are people in this world who are not C++ programmers.
__________________

New German Gleitz board
MediaFire: x264 | x265 | VPx | AOM | Xvid
LigH is offline   Reply With Quote
Old 27th June 2013, 12:28   #60  |  Link
VFR maniac
Spinner of yarns
 
VFR maniac's Avatar
 
Join Date: May 2009
Posts: 164
Quote:
Originally Posted by LigH View Post
Believe it or not ... there are people in this world who are not C++ programmers.
I'm not a C++ programmer.
Though LSMASHSource is written in C++, most features of C++ is not used :P
And the part of shared codes between AviSynth, VapurSynth and AviUtl is compilable with both C99 and C++.
So, basically it requires knowledge about only C.
__________________
僕と契約して、L-SMASH developerになってよ!
L-SMASH | L-SMASH Works | Opus-in-ISOBMFF specification and reference software
VFR maniac is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 14:15.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.