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 5th June 2012, 05:46   #1541  |  Link
Mug Funky
interlace this!
 
Mug Funky's Avatar
 
Join Date: Jun 2003
Location: i'm in ur transfers, addin noise
Posts: 4,555
roger: unless i'm misunderstanding your needs, you could use avisynth in ffdshow if you needed to work off something live.

this works rather well for realtime waveform and vectorscopes on a geurilla filmmaker setup.
__________________
sucking the life out of your videos since 2004
Mug Funky is offline   Reply With Quote
Old 5th June 2012, 14:14   #1542  |  Link
rogerdpack
Registered User
 
Join Date: Jun 2011
Posts: 35
Quote:
Originally Posted by Mug Funky View Post
roger: unless i'm misunderstanding your needs, you could use avisynth in ffdshow if you needed to work off something live.

this works rather well for realtime waveform and vectorscopes on a geurilla filmmaker setup.
I assume you just use graphedit files for your input to avisynth then? Or, rather, how do you get live input to your avisynth per se?
Thanks1
-roger-
rogerdpack is offline   Reply With Quote
Old 5th June 2012, 17:05   #1543  |  Link
hello_hello
Registered User
 
Join Date: Mar 2011
Posts: 4,829
Quote:
Originally Posted by rogerdpack View Post
I assume you just use graphedit files for your input to avisynth then? Or, rather, how do you get live input to your avisynth per se?
Thanks1
-roger-
ffdshow has an AVISynth filter. Enable it and copy and paste your AVISynth script into the filter's text area. Also make sure the "Add ffdshow video source" checkbox is ticked.

If memory serves me correctly, ffdshow installs optional AVISynth plugins in order for it's AVISynth filter to work. If they're not in the AVISynth plugins folder (ffavisynth.avsi and ffavisynth.dll) then re-installing ffdshow while selecting the option to install them should fix that.

From there as long as you're decoding via DirectShow when encoding, and as long as ffdshow is doing the decoding, the script you added to ffdshow's AVISynth filter should run.
hello_hello is offline   Reply With Quote
Old 5th June 2012, 17:12   #1544  |  Link
rogerdpack
Registered User
 
Join Date: Jun 2011
Posts: 35
Oh wow thanks hello_hello that is fascinating news. The question kind of still remains as to how to get "live" input into your avisynth script, but I have a kludgey work around in the form of the graphedit files...
rogerdpack is offline   Reply With Quote
Old 5th June 2012, 17:58   #1545  |  Link
TheFluff
Excessively jovial fellow
 
Join Date: Jun 2004
Location: rude
Posts: 1,100
Avisynth isn't really suited to processing streaming inputs, since it requires the length of the input to be known when the script is opened.
TheFluff is offline   Reply With Quote
Old 5th June 2012, 18:00   #1546  |  Link
rogerdpack
Registered User
 
Join Date: Jun 2011
Posts: 35
I've had "reasonably good luck" by using it to play an incoming graphedit file source, and just specifying frames as 1 million. Obviously this is non optimal but hey, at least it tries.
rogerdpack is offline   Reply With Quote
Old 5th June 2012, 18:43   #1547  |  Link
Gavino
Avisynth language lover
 
Join Date: Dec 2007
Location: Spain
Posts: 3,431
Quote:
Originally Posted by hello_hello View Post
If memory serves me correctly, ffdshow installs optional AVISynth plugins in order for it's AVISynth filter to work. If they're not in the AVISynth plugins folder (ffavisynth.avsi and ffavisynth.dll) then re-installing ffdshow while selecting the option to install them should fix that.
ffavisynth.avsi and ffavisynth.dll are not required in order to use the Avisynth filter inside ffdshow.
They are for a different purpose, allowing you to use ffdshow's own filters inside Avisynth.

http://forum.doom9.org/showthread.php?t=85447
__________________
GScript and GRunT - complex Avisynth scripting made easier
Gavino is offline   Reply With Quote
Old 11th June 2012, 21:35   #1548  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,420
Seems that r686 breaks C-plugin compilation. r684 compiles without a hitch.

Code:
gcc -Wall -march=pentium3 -mtune=pentium3 -std=gnu99 -s -fomit-frame-pointer -I/home/Stephen/win32_build/include  -I. -Iinclude -D_FILE_OFFSET_BITS=64 -DFFMS_USE_FFMPEG_COMPAT  -c -o src/avisynth_c/avisynth.o src/avisynth_c/avisynth.c
In file included from src/avisynth_c/avisynth.c:21:0:
include/ffms.h:333:1: warning: type defaults to 'int' in declaration of 'FFMS_IndexErrorHandling' [enabled by default]
include/ffms.h:333:1: warning: '__stdcall__' attribute only applies to function types [-Wattributes]
include/ffms.h:333:35: error: expected ',' or ';' before 'FFMS_GetErrorHandling'

make: *** [src/avisynth_c/avisynth.o] Error 1
Full build log on pastebin


or the slightly more verbose output from gcc 4.8.0:
Code:
i686-w64-mingw32-gcc -Wall -march=pentium3 -mtune=pentium3 -std=gnu99 -s -fomit-frame-pointer -I/home/qyot27/win32_build/include  -I. -Iinclude -D_FILE_OFFSET_BITS=64 -DFFMS_USE_FFMPEG_COMPAT  -c -o src/avisynth_c/avisynth.o src/avisynth_c/avisynth.c
In file included from src/avisynth_c/avisynth.c:21:0:
include/ffms.h:333:10: warning: type defaults to 'int' in declaration of 'FFMS_IndexErrorHandling' [enabled by default]
 FFMS_API(FFMS_IndexErrorHandling) FFMS_GetErrorHandling(FFMS_Index *Index);
          ^
include/ffms.h:78:77: note: in definition of macro 'FFMS_API'
 # define FFMS_API(ret) FFMS_EXTERN_C __attribute__((visibility("default"))) ret FFMS_CC
                                                                             ^
In file included from src/avisynth_c/avisynth.c:21:0:
include/ffms.h:333:1: warning: '__stdcall__' attribute only applies to function types [-Wattributes]
 FFMS_API(FFMS_IndexErrorHandling) FFMS_GetErrorHandling(FFMS_Index *Index);
 ^
include/ffms.h:333:35: error: expected ',' or ';' before 'FFMS_GetErrorHandling'
 FFMS_API(FFMS_IndexErrorHandling) FFMS_GetErrorHandling(FFMS_Index *Index);
                                   ^
make: *** [src/avisynth_c/avisynth.o] Error 1
Full build log on pastebin
qyot27 is offline   Reply With Quote
Old 11th June 2012, 21:49   #1549  |  Link
sl1pkn07
Pajas Mentales...
 
Join Date: Dec 2004
Location: Spanishtán
Posts: 496
try gcc 4.7. on my linux build fine
sl1pkn07 is offline   Reply With Quote
Old 11th June 2012, 22:59   #1550  |  Link
Plorkyeran
Registered User
 
Join Date: Mar 2008
Posts: 26
r688 should fix compilation in C stuff.
Plorkyeran is offline   Reply With Quote
Old 12th June 2012, 01:06   #1551  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,420
Quote:
Originally Posted by Plorkyeran View Post
r688 should fix compilation in C stuff.
Confirmed. It compiles without issues again now.

Quote:
Originally Posted by sl1pkn07
try gcc 4.7. on my linux build fine
It wasn't tied to the version of GCC. And beyond that, I'm guessing that either:
A) That's the trunk, not the C branch. The trunk doesn't exhibit the problem.
B) If it was the C branch, you didn't do a HEAD catchup. An un-caught-up C branch is still back at like, r643.
qyot27 is offline   Reply With Quote
Old 13th June 2012, 04:28   #1552  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,420
Due to request,

FFMS2 C-plugin r688

FFmpeg r41540 (git-2a622c2)
Both FFmpeg and FFMS2 optimized for Pentium III
MinGW-w64 GCC 4.8.0 20120610 (experimental)

EDIT: Updated, here

Last edited by qyot27; 15th June 2012 at 08:45.
qyot27 is offline   Reply With Quote
Old 13th June 2012, 10:20   #1553  |  Link
burfadel
Registered User
 
Join Date: Aug 2006
Posts: 2,229
Quote:
Originally Posted by qyot27 View Post
Due to request,

FFMS2 C-plugin r688

FFmpeg r41540 (git-2a622c2)
Both FFmpeg and FFMS2 optimized for Pentium III
MinGW-w64 GCC 4.8.0 20120610 (experimental)
Wouldn't compiling for such an old processor be detrimental for newer processors?

What about SSEx etc instruction sets?
burfadel is offline   Reply With Quote
Old 13th June 2012, 12:06   #1554  |  Link
sl1pkn07
Pajas Mentales...
 
Join Date: Dec 2004
Location: Spanishtán
Posts: 496
qyot27:

http://pastebin.com/pjj0XfHN

c-branch r.686 with gcc 4.7

gcc 4.8 is extreme experimental
sl1pkn07 is offline   Reply With Quote
Old 13th June 2012, 19:58   #1555  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,420
Quote:
Originally Posted by sl1pkn07 View Post
qyot27:

http://pastebin.com/pjj0XfHN

c-branch r.686 with gcc 4.7

gcc 4.8 is extreme experimental
I know that gcc 4.8 is experimental, and that pastebin isn't working so I can't see the result. But it doesn't change the point that something that 4.6.2 and 4.8.0 both error out on leaves little room for 4.7 to fix. Not that it matters now, since r688 resolves the problem.

It's also not being compiled natively for Linux, if that's what was happening. It's very specifically a MinGW-w64 build, because IMO there's very little point in compiling the C plugin on Linux. It has to have the AviSynth module enabled (as it's meant as the AviSynth plugin .dll, hence MinGW), since it's avisynth_c.o where the error is tripped.

Quote:
Originally Posted by burfadel
Wouldn't compiling for such an old processor be detrimental for newer processors?

What about SSEx etc instruction sets?
I don't know, and without trying to sound callous, I'm not concerned about it. I optimize for the processor I actually have and use 99% of the time. I've never run a definitive test of whether - or how much - it affects the performance of newer processors.
qyot27 is offline   Reply With Quote
Old 14th June 2012, 01:00   #1556  |  Link
sl1pkn07
Pajas Mentales...
 
Join Date: Dec 2004
Location: Spanishtán
Posts: 496
oks. thanks
sl1pkn07 is offline   Reply With Quote
Old 14th June 2012, 13:32   #1557  |  Link
LigH
German doom9/Gleitz SuMo
 
LigH's Avatar
 
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 6,780
Probably as mentioned before for the ffdshow decoders: Most of their optimization is already done in Assembler. The little bit of C++ compiler optimization potential left to the sources is only related to the API.
__________________

New German Gleitz board
MediaFire: x264 | x265 | VPx | AOM | Xvid
LigH is offline   Reply With Quote
Old 15th June 2012, 08:44   #1558  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,420
Slightly updated version since there were two more commits made while I was busy compiling everything the other day, and stupidly did not save the FFmpeg dev files.

FFMS2 C-plugin r690

FFmpeg r41586 (git-ddece75)
Still PIII and MinGW-w64 GCC 4.8.0



EDIT: New build here.

Last edited by qyot27; 11th July 2012 at 23:13.
qyot27 is offline   Reply With Quote
Old 17th June 2012, 14:34   #1559  |  Link
Abs62
Registered User
 
Join Date: Jul 2010
Posts: 14
r694 don't compile.
Quote:
..\src\core\haalivideo.cpp(157): error C2094: label 'Error' was undefined
Abs62 is offline   Reply With Quote
Old 18th June 2012, 13:01   #1560  |  Link
JEEB
もこたんインしたお!
 
JEEB's Avatar
 
Join Date: Jan 2008
Location: Finland / Japan
Posts: 512
Quote:
Originally Posted by sneaker_ger View Post
The following interlaced H.264 sample will not work correctly in ffms2 (tested 2.17, r644, r666):
http://www.mediafire.com/?ubxfydr4owr2rmo

Multi-threaded: insanity, decoder delivers empty frame after first(?) frame
1 thread: jumping back and forth
This sample seems to have mostly been fixed with the recent multithreading-fixing commits

After a brief test with Aegisub the only problem I was getting was that every frame came out twice, which could be sample-related (I would like to have someone with more knowledge on the matter comment on how broken this matroska remux is, as most things seem to fail to mux or deal with the H.264 stream included to begin with). Otherwise it seems like frame order was correct, and all frames seem to be output correctly. With Avisynth I did also try with threads=1 and that for some reason brought back the jerkiness in a bit different way.

A build is available for testing here.
Quote:
ffms2: r695, libav: git-d77f4af

libav configuration:
--prefix=/ffms --disable-network --disable-encoders --disable-muxers --disable-hwaccels --disable-indevs --disable-outdevs --extra-cflags='-U__STRICT_ANSI__ -D_SYSCRT' --disable-debug --enable-runtime-cpudetect
__________________
[I'm human, no debug]
JEEB 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 00:03.


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