View Full Version : LAV Filters - DirectShow Media Splitter and Decoders
nevcairiel
29th June 2011, 15:53
The ArcSoft decoder offers downmixing functionality, however it is unknow if it does it "properly", that is using the 6 channel downmix matrix in the HD stream (if present), or just does a stupid downmix like ffdshow would. In any case, its currently not possible to use it.
adam777
29th June 2011, 16:01
Well, you got me on "stupid", I'll stay on good old DTS core for the time being, most likely my equipment (both electronic and ears) isn't enough to really tell the difference anyway...
Andy o
29th June 2011, 17:42
Thanks again, it all makes sense now.
Oh, forgot to ask, what is the "correct" way of downmixing? extracting the core from the original stream or decoding at full resolution and let FFDShow handle the downmixing?
Is your receiver 7.1 capable? Some receivers (Pioneers for instance) have some sort of virtual downmixing, in which the 5.1 surrounds will try to virtualize the rears. This can work pretty well, it would be my preferred method. You would have to run your PC as if you had 7.1 speakers though, and let the receiver downmix everything. I'm not sure how ffdshow does it, though, or the Arcsoft decoder for that matter.
SamuriHL
29th June 2011, 18:05
Is your receiver 7.1 capable? Some receivers (Pioneers for instance) have some sort of virtual downmixing, in which the 5.1 surrounds will try to virtualize the rears. This can work pretty well, it would be my preferred method. You would have to run your PC as if you had 7.1 speakers though, and let the receiver downmix everything. I'm not sure how ffdshow does it, though, or the Arcsoft decoder for that matter.
That's what I do on my HTPC.
adam777
29th June 2011, 18:28
Well, that is where "most likely my equipment (both electronic and ears) isn't enough to really tell the difference anyway" comes into play.
At the moment it's just a standard notebook audio card connected to a fairly simple Logitech X-530, hence I doubt I'll be able to tell the quality difference anyway.
Will possible get an HTPC "soon", so it was mostly out of curiosity...
dbone1026
30th June 2011, 22:07
Finally posted a quick writeup on LAV Filters just talking about basic setup. Thought I would post here if anyone found this helpful or if there were any comments/suggestions on something I missed or should have added:
http://www.mediasmartserver.net/2011/06/30/guide-setting-up-lav-filters-mpc-hc-for-all-your-splitter-and-audio-needs/
Dogway
2nd July 2011, 10:14
Besides .mov containers stated in this post (http://forum.doom9.org/showthread.php?p=1491545#post1491545) I also couldn't split a transport stream container, .ts file with mpeg2+mp2 streams. I could hand you a sample if I knew how to split these kind of files.
TheLion
2nd July 2011, 12:39
I have a question regarding the auto A/V sync feature of LAVAudio. I recently switched from madFlac (using eac3to to rip all my Blu-Rays to mkv, encoding all audio to flac) to using LAVaudio for all streams - especially DTS MA tracks with Arcsoft 1.1.0.8 as decoder.
I avoid using reclock and/or the "video clock" feature of JRiver MC because I don't want my audio to be resampled - not even so very slightly. In general those algorithms use the video clock as master - and resample audio accordingly.
I want bit perfect audio decoding with as little jitter as possible (I am using a FIR convolution VST plugin which is very sensible to jitter in the decoded stream). I don't want the audio stream to be resampled in any way.
How is the LAVAudio auto A/V sync working in that regard? (My display works at pretty exactly 23.976, madVR shows a few dropped frames every hour or so)
I ask because switching auto A/V on off results in slightly different sound "quality". I am not sure if the signal gets resampled (=degraded) or if jitter gets reduced (=better quality).
Thank you!
nevcairiel
2nd July 2011, 12:47
LAV Audio always trys to create smooth timestamps of all audio data being send to the renderer, basically by completely recalculating all audio timestamps based on the duration of the decoded PCM samples.
The A/V sync options whole purpose is to compare the calculated timestamps to the timestamps coming from the source filter, and making sure that there are no constant differences between them (ignoring jitter and other sorts of things).
Most of the time, this is only an issue if your file is broken and has gaps in the audio. On "normal" files, this option should not do anything.
More importantly, it does not do anything to the audio itself, it just corrects possible timing calculation mistakes (which really shouldn't happen), or compensates for gaps in the audio stream.
It does not do anything based on the FPS of the movie, or the refresh rate, or any other external factors. On a "good" file, it does not do anything - its just a safety net for broken files (and live streams, i suppose)
TheLion
2nd July 2011, 13:54
Thank ypu very much for this reply. It gives me comfort to just leave it enabled.
I understand that with LAV you do anything to deliver an audio stream with as little Jitter as possible to the audio engine (in my case JRiver's 64bit)?! Is thee anything you can think of that would improve it even further?
What happens if your auto sync algorithm detects a sync problem? How does it get the streams back to in-sync playback? By repeating/skipping audio samples?
I hope you are aware that you and Mathias are the greatest assets in the HTPC community atm ;-)
Thank you!
TheLion
2nd July 2011, 14:05
One more question: One of the great features of my previous eac3to/madFlac setup was to be able to remove all dialog normalization/DRC annoyances from audio streams before re-encoding them.
There are quite many audio tracks with DN/DRC enabled by default. A pretty infamous one is the Blu-Ray TrueHD track of Iron Man. It defaults to DRC enabled. When played back and the decoder has no means to manually override the DRC setting all dynamics are gone...
When I don't "enable" DRC in the LAV audio decoder - does that mean that all tracks all cleansed from Dialog Normalization/DRC? (Just like eac3to does it)
nevcairiel
2nd July 2011, 14:06
What happens if your auto sync algorithm detects a sync problem? How does it get the streams back to in-sync playback? By repeating/skipping audio samples?
It just adapts the timestamps to match, which will cause in a short gap in the audio, or a drop of a few samples. Nothing will be repeated.
When I don't "enable" DRC in the LAV audio decoder - does that mean that all tracks all cleansed from Dialog Normalization/DRC? (Just like eac3to does it)
That depends on the decoder in ffmpeg, i just tell it to not apply DRC, but i'm not sure if the TrueHD decoder acts on that info. eac3to might be doing something special.
Mercury_22
2nd July 2011, 14:43
Can't build latest (Nevcairiel-LAVFSplitter-f06c75b libbluray-3fa955d ffmpeg-177f36c) lav = it's taking forever to compile and I've stopped it here Setting environment for using Microsoft Visual Studio 2010 x86 tools.
Makefile:2: config.mak: No such file or directory
Makefile:42: /common.mak: No such file or directory
Makefile:75: /libavutil/Makefile: No such file or directory
Makefile:153: /doc/Makefile: No such file or directory
Makefile:154: /tests/Makefile: No such file or directory
make: *** No rule to make target `/tests/Makefile'. Stop.
install prefix /usr/local
source path .
C compiler gcc
ARCH x86 (generic)
big-endian no
runtime cpu detection yes
yasm yes
MMX enabled yes
MMX2 enabled yes
3DNow! enabled yes
3DNow! extended enabled yes
SSE enabled yes
SSSE3 enabled yes
AVX enabled yes
CMOV enabled no
CMOV is fast no
EBX available yes
EBP available no
debug symbols no
strip symbols yes
optimize for size no
optimizations yes
static no
shared yes
postprocessing support no
new filter support no
network support no
threading support w32threads
SDL support no
Sun medialib support no
libdxva2 enabled no
libva enabled no
libvdpau enabled no
AVISynth enabled no
libcelt enabled no
frei0r enabled no
libdc1394 support no
libdirac enabled no
libfaac enabled no
libgsm enabled no
libmp3lame enabled no
libnut enabled no
libopencore-amrnb support no
libopencore-amrwb support no
libopencv support no
libopenjpeg enabled no
librtmp enabled no
libschroedinger enabled no
libspeex enabled no
libtheora enabled no
libvo-aacenc support no
libvo-amrwbenc support no
libvorbis enabled no
libvpx enabled no
libx264 enabled no
libxavs enabled no
libxvid enabled no
openal enabled no
zlib enabled yes
bzlib enabled yes
Enabled decoders:
aac mp3adufloat
aac_latm mp3floatdio
aasc mp3on4 dsicinvideo
ac3 mp3on4float
adpcm_4xm dvdsub mpc7
adpcm_adx dvvideo mpc8
adpcm_ct dxa mpeg1video
adpcm_ea eac3 mpeg2video
adpcm_eaeacmvs_xa mpeg4
adpcm_ea_r1 eamad mpegvideo
adpcm_ea_r2 eatgq msmpeg4v1
adpcm_ea_r3 eatgv msmpeg4v2
adpcm_ea_xas eatqi msmpeg4v3
adpcm_g722 msrlebps
adpcm_g726 msvideo1_exp
adpcm_ima_amv mszhtsvx_fib
adpcm_ima_dk3 mxpegsvx_raw
adpcm_ima_dk4 nellymoser
adpcm_imffv1_eacs nuv
adpcm_imffvhuffad pam
adpcm_ima_iss flac pbm
adpcm_ima_qt flashsv pcm_alaw
adpcm_imflicjpeg pcm_bluray
adpcm_ima_wav flv pcm_dvd
adpcm_ima_ws fourxm pcm_f32be
adpcm_ms fraps pcm_f32le
adpcm_sbpro_2 frwu pcm_f64be
adpcm_sbpro_3 gif pcm_f64le
adpcm_sbpro_4 gsm pcm_lxf
adpcm_swf gsm_ms pcm_mulaw
adpcm_thp h261 pcm_s16be
adpcm_xa h263 pcm_s16le
adpcm_yamaha h263i pcm_s16le_planar
alac pcm_s24be
als pcm_s24daud
amrnb pcm_s24le
amrwb pcm_s32beff_byterun1
amv pcm_s32leff_ilbm
anm pcm_s8
ansi pcm_u16be
ape pcm_u16le
ass pcm_u24be
asv1 pcm_u24lenterplay_dpcm
asv2 pcm_u32benterplay_video
atrac1 pcm_u32lepeg2000
atrac3 pcm_u8
aura pcm_zork
aura2 pcx1
avs pgmc
bethsoftvid pgmyuvth
bfi pgssub
bink pictor
binkaudio_dct mace6 png
binkaudio_rdft mdec ppm
bmp ptxic
c93 qcelp
cavs qdm2gb
cdgraphics mlp qdraw
cinepak qpegdeo
cljr qtrle motionpixels
cook r10k
cscd r210 mp1float
cyuv ra_144
dca ra_288 mp2float
dfa rawvideo
dnxhd rl2adu
roq vp6
roq_dpcm vp6atexseqvideo
rpza vp6f
rv10 vp8
rv20 vqaehd
rv30 wavpack truemotion1
rv40 wmapro truemotion2
s302m wmav1 truespeech
sgi wmav2
shorten wmavoice
sipr wmv1vq
smackaud txd wmv2
smacker wmv3
smc wnv1
snow ws_snd1
sol_dpcm vb xan_dpcm
sonic xan_wc3
sp5x xan_wc4
srt xl vmdaudio
sunrast xsub vmdvideo
svq1 yopc
svq3 zlibis
targa zmbv
theora vp5
Enabled encoders:
Enabled hwaccels:
Enabled parsers:
aac mpeg4video
aac_latm flac mpegaudio
ac3 mpegvideo
cavsvideo h263 pnm
dca vc14
dirac vp3eg
dnxhd vp8
dvbsub
Enabled demuxers:
aac pcm_u24bengenient
ac3 pcm_u24le
aea pcm_u32be
aiff pcm_u32le
amr pcm_u8
anm pmp
apc pvam4
ape qcp
applehttp m4v r3d
asf rawvideomatroska
ass rl2 microdvd
au rmpeg
avi roq
avs rpl
bethsoftvid mmf rso
bfi segafilm
bink shorten
c93 siff
caf smacker
cavsvideo mpegps sol
cdg soxgts
daud spdif mpegtsraw
dfa srt mpegvideo
dirac str msnwc_tcp
dnxhd swf
dsicin thp
dts tiertexseq
dv tmv
dxa truehd
ea tta
ea_cdata nut tty
eac3 txd
ffm vc1
ffmetadata oma vc1t
filmstrip vmd_alaw
flac voc pcm_f32be
flic vqf pcm_f32le
flv w64 pcm_f64be
fourxm wav pcm_f64le
g722 wc3 pcm_mulaw
gsm wsaud pcm_s16be
gxf wsvqa pcm_s16le
h261 wtv pcm_s24be
h263 wv pcm_s24le
h264 xa pcm_s32be
idcin xwma pcm_s32le
iff yop_s8
image2 yuv4mpegpipeu16be
image2pipe pcm_u16le
Enabled muxers:
spdif
Enabled protocols:
file
Enabled filters:
Enabled bsfs:
Enabled indevs:
Enabled outdevs:
License: GPL version 2 or later
Creating config.mak and config.h...
Makefile:157: warning: overriding commands for target `libavcodec/'
subdir.mak:27: warning: ignoring old commands for target `libavcodec/'
Makefile:157: warning: overriding commands for target `libavformat/'
subdir.mak:27: warning: ignoring old commands for target `libavformat/'
Makefile:157: warning: overriding commands for target `libavutil/'
subdir.mak:27: warning: ignoring old commands for target `libavutil/'
Makefile:157: warning: overriding commands for target `libavcodec/'
subdir.mak:27: warning: ignoring old commands for target `libavcodec/'
Makefile:157: warning: overriding commands for target `libavformat/'
subdir.mak:27: warning: ignoring old commands for target `libavformat/'
Makefile:157: warning: overriding commands for target `libavutil/'
subdir.mak:27: warning: ignoring old commands for target `libavutil/'
Makefile:157: warning: overriding commands for target `libavcodec/'
subdir.mak:27: warning: ignoring old commands for target `libavcodec/'
Makefile:157: warning: overriding commands for target `libavformat/'
subdir.mak:27: warning: ignoring old commands for target `libavformat/'
Makefile:157: warning: overriding commands for target `libavutil/'
subdir.mak:27: warning: ignoring old commands for target `libavutil/'
Makefile:157: warning: overriding commands for target `libavcodec/'
subdir.mak:27: warning: ignoring old commands for target `libavcodec/'
Makefile:157: warning: overriding commands for target `libavformat/'
subdir.mak:27: warning: ignoring old commands for target `libavformat/'
Makefile:157: warning: overriding commands for target `libavutil/'
subdir.mak:27: warning: ignoring old commands for target `libavutil/'
Makefile:157: warning: overriding commands for target `libavcodec/'
subdir.mak:27: warning: ignoring old commands for target `libavcodec/'
Makefile:157: warning: overriding commands for target `libavformat/'
subdir.mak:27: warning: ignoring old commands for target `libavformat/'
Makefile:157: warning: overriding commands for target `libavutil/'
subdir.mak:27: warning: ignoring old commands for target `libavutil/'
Makefile:157: warning: overriding commands for target `libavcodec/'
subdir.mak:27: warning: ignoring old commands for target `libavcodec/'
Makefile:157: warning: overriding commands for target `libavformat/'
subdir.mak:27: warning: ignoring old commands for target `libavformat/'
Makefile:157: warning: overriding commands for target `libavutil/'
subdir.mak:27: warning: ignoring old commands for target `libavutil/'
Makefile:157: warning: overriding commands for target `libavcodec/'
subdir.mak:27: warning: ignoring old commands for target `libavcodec/'
Makefile:157: warning: overriding commands for target `libavformat/'
subdir.mak:27: warning: ignoring old commands for target `libavformat/'
Makefile:157: warning: overriding commands for target `libavutil/'
subdir.mak:27: warning: ignoring old commands for target `libavutil/'
Makefile:157: warning: overriding commands for target `libavcodec/'
subdir.mak:27: warning: ignoring old commands for target `libavcodec/'
Makefile:157: warning: overriding commands for target `libavformat/'
subdir.mak:27: warning: ignoring old commands for target `libavformat/'
Makefile:157: warning: overriding commands for target `libavutil/'
subdir.mak:27: warning: ignoring old commands for target `libavutil/'
Makefile:157: warning: overriding commands for target `libavcodec/'
subdir.mak:27: warning: ignoring old commands for target `libavcodec/'
Makefile:157: warning: overriding commands for target `libavformat/'
subdir.mak:27: warning: ignoring old commands for target `libavformat/'
Makefile:157: warning: overriding commands for target `libavutil/'
subdir.mak:27: warning: ignoring old commands for target `libavutil/'
I'm using your build.bat
nevcairiel
2nd July 2011, 14:46
Thats a bug in ffmpeg, it usually finishes when you give it some time - at least did for me.
Mercury_22
2nd July 2011, 14:51
Strange until now it took like 5 min to build entire LAV now it's already like (~) 1/2 H and I'm still at this point
EDIT The only difference from the last time now I'm using GCC 4.6.1 Stable Release and before I was using GCC 4.6.1 Pre Release
P.S. MPC-HC it's building as usual (faster then LAV)
nevcairiel
2nd July 2011, 14:57
Like i said, its a bug in ffmpegs build thingy, and i cba to track it down. Complain to them. :)
nevcairiel
2nd July 2011, 15:16
Trying to play a mp4 with multiple test subtitles (http://www.multiupload.com/4VDVDSAZ5B) in MPC-HC using LAV Filters, LAV CUVID and EVR CP.
Video works fine, but the subs don't. (they work fine if I use MPC-HC internal mp4 splitter)
-> is it a bug or just me overlooking something?
Cu Selur
Basic support for MPEG-4 Timed Text subtitles (also known as MOV Text or tx3g) was added just now, and will be in 0.30.
Note that it only works for pure text subtitles and style information may be lost.
nevcairiel
2nd July 2011, 15:37
Strange until now it took like 5 min to build entire LAV now it's already like (~) 1/2 H and I'm still at this point
I found the commit in ffmpeg that caused it and reverted it, it should build fine again now.
Mercury_22
2nd July 2011, 15:49
I found the commit in ffmpeg that caused it and reverted it, it should build fine again now.
:thanks: working now (under 5 min :) )
Edit : spoke too soon X64 version won't start building ! e.g. using your build.bat I get stuck after building x86 version (successfully)
2>C:\LAV\libbluray\src\util/bits.h(281): warning C4244: '=' : conversion from 'i
nt64_t' to 'int', possible loss of data
2>c:\lav\libbluray\src\libbluray\bdnav\sound_parse.h(38): warning C4200: nonstan
dard extension used : zero-sized array in struct/union
1> arithutil.cpp
2> Cannot generate copy-ctor or copy-assignment operator when UDT conta
ins a zero-sized array
2> bluray.c
2>src\libbluray\bluray.c(345): warning C4244: '=' : conversion from 'int64_t' to
'int', possible loss of data
2>src\libbluray\bluray.c(429): warning C4244: 'argument' : conversion from 'uint
64_t' to 'size_t', possible loss of data
2>src\libbluray\bluray.c(844): warning C4244: 'argument' : conversion from 'uint
64_t' to 'uint32_t', possible loss of data
2>src\libbluray\bluray.c(863): warning C4244: 'argument' : conversion from 'uint
64_t' to 'uint32_t', possible loss of data
2>src\libbluray\bluray.c(876): warning C4244: 'argument' : conversion from 'uint
64_t' to 'uint32_t', possible loss of data
2>src\libbluray\bluray.c(919): warning C4244: 'argument' : conversion from 'uint
64_t' to 'uint32_t', possible loss of data
2>src\libbluray\bluray.c(972): warning C4244: '=' : conversion from 'uint64_t' t
o 'uint32_t', possible loss of data
2>src\libbluray\bluray.c(1009): warning C4244: 'argument' : conversion from 'uin
t64_t' to 'uint32_t', possible loss of data
2>src\libbluray\bluray.c(1031): warning C4244: '=' : conversion from 'uint64_t'
to 'uint32_t', possible loss of data
2>src\libbluray\bluray.c(1051): warning C4244: '=' : conversion from 'uint64_t'
to 'unsigned int', possible loss of data
2>src\libbluray\bluray.c(1195): warning C4244: 'argument' : conversion from 'uin
t64_t' to 'unsigned int', possible loss of data
2>src\libbluray\bluray.c(1350): warning C4244: '=' : conversion from 'uint64_t'
to 'uint32_t', possible loss of data
2>src\libbluray\bluray.c(2211): warning C4018: '>' : signed/unsigned mismatch
2> graphics_controller.c
1> combase.cpp
2>src\libbluray\decoders\graphics_controller.c(945): warning C4018: '>=' : signe
d/unsigned mismatch
2>src\libbluray\decoders\graphics_controller.c(945): warning C4018: '>=' : signe
d/unsigned mismatch
2> graphics_processor.c
2>C:\LAV\libbluray\src\util/bits.h(73): warning C4244: '=' : conversion from 'in
t64_t' to 'off_t', possible loss of data
2>C:\LAV\libbluray\src\util/bits.h(75): warning C4244: '=' : conversion from 'in
t64_t' to 'int', possible loss of data
2>C:\LAV\libbluray\src\util/bits.h(151): warning C4244: '=' : conversion from 'i
nt64_t' to 'int', possible loss of data
2>C:\LAV\libbluray\src\util/bits.h(157): warning C4244: '=' : conversion from 'i
nt64_t' to 'int', possible loss of data
2>C:\LAV\libbluray\src\util/bits.h(229): warning C4244: '=' : conversion from 'i
nt64_t' to 'int', possible loss of data
2>C:\LAV\libbluray\src\util/bits.h(281): warning C4244: '=' : conversion from 'i
nt64_t' to 'int', possible loss of data
2> ig_decode.c
2>C:\LAV\libbluray\src\util/bits.h(73): warning C4244: '=' : conversion from 'in
t64_t' to 'off_t', possible loss of data
2>C:\LAV\libbluray\src\util/bits.h(75): warning C4244: '=' : conversion from 'in
t64_t' to 'int', possible loss of data
2>C:\LAV\libbluray\src\util/bits.h(151): warning C4244: '=' : conversion from 'i
nt64_t' to 'int', possible loss of data
2>C:\LAV\libbluray\src\util/bits.h(157): warning C4244: '=' : conversion from 'i
nt64_t' to 'int', possible loss of data
2>C:\LAV\libbluray\src\util/bits.h(229): warning C4244: '=' : conversion from 'i
nt64_t' to 'int', possible loss of data
2>C:\LAV\libbluray\src\util/bits.h(281): warning C4244: '=' : conversion from 'i
nt64_t' to 'int', possible loss of data
2>c:\lav\libbluray\src\libbluray\decoders\../hdmv/mobj_parse.h(61): warning C420
0: nonstandard extension used : zero-sized array in struct/union
2> Cannot generate copy-ctor or copy-assignment operator when UDT conta
ins a zero-sized array
2> m2ts_demux.c
2> pes_buffer.c
2> pg_decode.c
2>C:\LAV\libbluray\src\util/bits.h(73): warning C4244: '=' : conversion from 'in
t64_t' to 'off_t', possible loss of data
2>C:\LAV\libbluray\src\util/bits.h(75): warning C4244: '=' : conversion from 'in
t64_t' to 'int', possible loss of data
2>C:\LAV\libbluray\src\util/bits.h(151): warning C4244: '=' : conversion from 'i
nt64_t' to 'int', possible loss of data
2>C:\LAV\libbluray\src\util/bits.h(157): warning C4244: '=' : conversion from 'i
nt64_t' to 'int', possible loss of data
2>C:\LAV\libbluray\src\util/bits.h(229): warning C4244: '=' : conversion from 'i
nt64_t' to 'int', possible loss of data
2>C:\LAV\libbluray\src\util/bits.h(281): warning C4244: '=' : conversion from 'i
nt64_t' to 'int', possible loss of data
2> hdmv_vm.c
1> cprop.cpp
2>c:\lav\libbluray\src\libbluray\hdmv\mobj_parse.h(61): warning C4200: nonstanda
rd extension used : zero-sized array in struct/union
2> Cannot generate copy-ctor or copy-assignment operator when UDT conta
ins a zero-sized array
1> ctlutil.cpp
2>src\libbluray\hdmv\hdmv_vm.c(875): warning C4244: 'return' : conversion from '
uint64_t' to 'uint32_t', possible loss of data
2>src\libbluray\hdmv\hdmv_vm.c(882): warning C4244: 'return' : conversion from '
uint64_t' to 'uint32_t', possible loss of data
2> mobj_parse.c
2>C:\LAV\libbluray\src\util/bits.h(73): warning C4244: '=' : conversion from 'in
t64_t' to 'off_t', possible loss of data
2>C:\LAV\libbluray\src\util/bits.h(75): warning C4244: '=' : conversion from 'in
t64_t' to 'int', possible loss of data
2>C:\LAV\libbluray\src\util/bits.h(151): warning C4244: '=' : conversion from 'i
nt64_t' to 'int', possible loss of data
2>C:\LAV\libbluray\src\util/bits.h(157): warning C4244: '=' : conversion from 'i
nt64_t' to 'int', possible loss of data
2>C:\LAV\libbluray\src\util/bits.h(229): warning C4244: '=' : conversion from 'i
nt64_t' to 'int', possible loss of data
2>C:\LAV\libbluray\src\util/bits.h(281): warning C4244: '=' : conversion from 'i
nt64_t' to 'int', possible loss of data
2>c:\lav\libbluray\src\libbluray\hdmv\mobj_parse.h(61): warning C4200: nonstanda
rd extension used : zero-sized array in struct/union
2> Cannot generate copy-ctor or copy-assignment operator when UDT conta
ins a zero-sized array
2> mobj_print.c
2>c:\lav\libbluray\src\libbluray\hdmv\mobj_parse.h(61): warning C4200: nonstanda
rd extension used : zero-sized array in struct/union
2> Cannot generate copy-ctor or copy-assignment operator when UDT conta
ins a zero-sized array
2> Compiling...
2> register.c
1> ddmm.cpp
1> dllentry.cpp
2> logging.c
2> strutl.c
1> dllsetup.cpp
2>Link:
2> Creating library C:\LAV\bin_Win32\libbluray\libbluray.lib and object C:\L
AV\bin_Win32\libbluray\libbluray.exp
2> Generating code
1> mtype.cpp
1> outputq.cpp
1> perflog.cpp
2> Finished generating code
2> libbluray.vcxproj -> C:\LAV\bin_Win32\libbluray\libbluray.dll
1> pstream.cpp
1> pullpin.cpp
2>PostBuildEvent:
2> Description: Copy .dll/.lib into library path
1> refclock.cpp
1> renbase.cpp
2> 1 file(s) copied.
2> 1 file(s) copied.
2>FinalizeBuildStatus:
2> Deleting file "C:\LAV\bin_Win32\libbluray\libbluray.unsuccessfulbuild".
2> Touching "C:\LAV\bin_Win32\libbluray\libbluray.lastbuildstate".
2>
2>Build succeeded.
2>
2>Time Elapsed 00:00:08.64
1> schedule.cpp
1> seekpt.cpp
1> source.cpp
1> strmctl.cpp
1> sysclock.cpp
1> transfrm.cpp
1> transip.cpp
1> videoctl.cpp
1> vtrans.cpp
1> winctrl.cpp
1> winutil.cpp
1> wxdebug.cpp
1> wxlist.cpp
1> wxutil.cpp
1>Lib:
1> baseclasses.vcxproj -> C:\LAV\bin_Win32\lib\strmbase.lib
1>FinalizeBuildStatus:
1> Deleting file "C:\LAV\bin_Win32\baseclasses\baseclasses.unsuccessfulbuild".
1> Touching "C:\LAV\bin_Win32\baseclasses\baseclasses.lastbuildstate".
1>
1>Build succeeded.
1>
1>Time Elapsed 00:00:13.57
3>------ Rebuild All started: Project: DSUtilLite, Configuration: Release Win32
------
3>Build started 07/02/2011 11:29:25.
3>InitializeBuildStatus:
3> Creating "C:\LAV\bin_Win32\DSUtilLite\DSUtilLite.unsuccessfulbuild" because
"AlwaysCreate" was specified.
3>ClCompile:
3> stdafx.cpp
3> BaseDSPropPage.cpp
3> CSSauth.cpp
3> CSSscramble.cpp
3> DeCSSInputPin.cpp
3> DShowUtil.cpp
3> filterreg.cpp
3> FontInstaller.cpp
3> H264Nalu.cpp
3> locale.cpp
3> registry.cpp
3>Lib:
3> DSUtilLite.vcxproj -> C:\LAV\bin_Win32\lib\dsutil.lib
3>FinalizeBuildStatus:
3> Deleting file "C:\LAV\bin_Win32\DSUtilLite\DSUtilLite.unsuccessfulbuild".
3> Touching "C:\LAV\bin_Win32\DSUtilLite\DSUtilLite.lastbuildstate".
3>
3>Build succeeded.
3>
3>Time Elapsed 00:00:02.97
4>------ Rebuild All started: Project: Demuxers, Configuration: Release Win32 --
----
5>------ Rebuild All started: Project: LAVAudio, Configuration: Release Win32 --
----
4>Build started 07/02/2011 11:29:28.
5>Build started 07/02/2011 11:29:28.
4>InitializeBuildStatus:
4> Creating "C:\LAV\bin_Win32\Demuxers\Demuxers.unsuccessfulbuild" because "Alw
aysCreate" was specified.
5>InitializeBuildStatus:
5> Creating "C:\LAV\bin_Win32\LAVAudio\LAVAudio.unsuccessfulbuild" because "Alw
aysCreate" was specified.
5>ClCompile:
5> stdafx.cpp
4>ClCompile:
4> stdafx.cpp
5>c:\lav\ffmpeg\libavutil\common.h(172): warning C4244: 'return' : conversion fr
om 'int64_t' to 'int32_t', possible loss of data
4>c:\lav\ffmpeg\libavutil\common.h(172): warning C4244: 'return' : conversion fr
om 'int64_t' to 'int32_t', possible loss of data
5> Bitstream.cpp
5> BitstreamParser.cpp
4> BaseDemuxer.cpp
4> BDDemuxer.cpp
5> dllmain.cpp
5> DTSDecoder.cpp
5> LAVAudio.cpp
4> ByteParser.cpp
4> ExtradataParser.cpp
4> LAVFAudioHelper.cpp
4> LAVFDemuxer.cpp
5> AudioSettingsProp.cpp
5> Media.cpp
5> PostProcessor.cpp
4> LAVFInputFormats.cpp
4> LAVFVideoHelper.cpp
4> LAVFStreamInfo.cpp
5> dts.cpp
4> LAVFUtils.cpp
4> StreamInfo.cpp
5>c:\lav\ffmpeg\libavutil\common.h(172): warning C4244: 'return' : conversion fr
om 'int64_t' to 'int32_t', possible loss of data
4>Lib:
4> Demuxers.vcxproj -> C:\LAV\bin_Win32\lib\demuxers.lib
4>FinalizeBuildStatus:
4> Deleting file "C:\LAV\bin_Win32\Demuxers\Demuxers.unsuccessfulbuild".
4> Touching "C:\LAV\bin_Win32\Demuxers\Demuxers.lastbuildstate".
4>
4>Build succeeded.
4>
4>Time Elapsed 00:00:02.66
5>Link:
5> Creating library C:\LAV\bin_Win32\LAVAudio\LAVAudio.lib and object C:\LAV
\bin_Win32\LAVAudio\LAVAudio.exp
5> Generating code
6>------ Rebuild All started: Project: LAVSplitter, Configuration: Release Win32
------
6>Build started 07/02/2011 11:29:32.
6>InitializeBuildStatus:
6> Creating "C:\LAV\bin_Win32\LAVSplitter\LAVSplitter.unsuccessfulbuild" becaus
e "AlwaysCreate" was specified.
5> Finished generating code
6>ClCompile:
6> stdafx.cpp
6>c:\lav\ffmpeg\libavutil\common.h(172): warning C4244: 'return' : conversion fr
om 'int64_t' to 'int32_t', possible loss of data
5> LAVAudio.vcxproj -> C:\LAV\bin_Win32\LAVAudio\LAVAudio.ax
5>FinalizeBuildStatus:
5> Deleting file "C:\LAV\bin_Win32\LAVAudio\LAVAudio.unsuccessfulbuild".
5> Touching "C:\LAV\bin_Win32\LAVAudio\LAVAudio.lastbuildstate".
5>CustomBuildStep:
5> Description: Performing Custom Build Step
5> 1 file(s) copied.
5>
5>Build succeeded.
5>
5>Time Elapsed 00:00:04.29
6> dllmain.cpp
6> InputPin.cpp
6> SettingsProp.cpp
6> PacketQueue.cpp
6> OutputPin.cpp
6> LAVSplitter.cpp
6> StreamParser.cpp
6>Link:
6> Creating library C:\LAV\bin_Win32\LAVSplitter\LAVSplitter.lib and object
C:\LAV\bin_Win32\LAVSplitter\LAVSplitter.exp
6> Generating code
6> Finished generating code
6> LAVSplitter.vcxproj -> C:\LAV\bin_Win32\LAVSplitter\LAVSplitter.ax
6>FinalizeBuildStatus:
6> Deleting file "C:\LAV\bin_Win32\LAVSplitter\LAVSplitter.unsuccessfulbuild".
6> Touching "C:\LAV\bin_Win32\LAVSplitter\LAVSplitter.lastbuildstate".
6>CustomBuildStep:
6> Description: Performing Custom Build Step
6> 1 file(s) copied.
6>
6>Build succeeded.
6>
6>Time Elapsed 00:00:04.96
========== Rebuild All: 6 succeeded, 0 failed, 0 skipped ==========
nevcairiel
2nd July 2011, 16:53
I just finished building x64, and all is fine. I'm using the full 4.6.0 MSYS package from XhmikosR, and it works just fine without any changes.
Mercury_22
2nd July 2011, 16:56
I just finished building x64, and all is fine. I'm using the full 4.6.0 MSYS package from XhmikosR, and it works just fine without any changes.
That's strange I'm using the MSYS_MinGW_GCC_461_x86-x64_Full.7z (http://xhmikosr.1f0.de/index.php?folder=dG9vbHM=) from XhmikosR
And again MPC-HC both x64 and x86 are building fine and LAV x64 used too too :) with 4.6.0 MSYS full and 4.6.1 pre from ALEXIN (http://www.xvidvideo.ru/component/docman/cat_view/28-cross-mingwgcc-x86x64.html)
Yep, x64 is also fine for me, upgraded to MSYS_MinGW_GCC_461_x86-x64_Full.7z from XhmikosR today as well.
EDIT, it seems AAC audio decoding when in MKV or MP4 no longer works on both x86 and x64 (MPC AAC loaded as low merit). This doesn't seem to be MinGW related.
nevcairiel
2nd July 2011, 17:38
Fixed AAC decoding
Fixed AAC decoding
Thanks
Mercury_22
2nd July 2011, 19:11
I'm going mad please help!!!:helpful:
I've re download everything and I'm using the MSYS_MinGW_GCC_460_x86-x64_Fulll now but the x64 still won't build
So is it possible that the zip files I'm downloading directly from https://github.com/Nevcairiel/LAVFSplitter and http://git.1f0.de/gitweb?p=ffmpeg.git;a=summary and http://git.1f0.de/gitweb?p=libbluray.git;a=summary are different ?
P.S. I've just reinstall everything today (windows7 VS2010....) so maybe I've forgot some settings (variable, path or....?:confused:
Again both MPC-HC x64 and x86 are building fine !
Please help:mad:
EDIT:
This has become ridiculous
I've just build a clean VM with just Windows 7 x64 SP1 & C++ (VS 2010) nothing else not even updates
I've download Nevcairiel-LAVFSplitter-0.29-12-g74976d4.zip, ffmpeg-261528c.zip, libbluray-3fa955d.zip and extracted all in C:\LAV
I've download MSYS_MinGW_GCC_460_x86-x64_Full.7z extracted to C:\MSYS and edited "fstab" file in C:\MSYS\etc\ added "C:\MSYS\mingw \mingw"
I've added the following environment variables:
Variable Value
MSYS C:\MSYS
MINGW32 C:\MSYS\mingw
MINGW64 C:\MSYS\mingw
and modified the "Path" environment variable by adding at the end: ;%MINGW32%\bin;%MINGW64%\bin;%MSYS%\bin
Then I've run the build.bat from c:\Lav and ....
Nothing is changed !!!
The x86 it's building successfully but when to start building x64 it's "hanging"
At this moment 20 minutes have past and the building of x64 still hasn't start
What am I doing wrong ? :mad::confused::helpful:
Gleb Egorych
2nd July 2011, 20:49
About A/V sync: some time ago I reported (http://forum.doom9.org/showthread.php?p=1503907#post1503907) that AVI crash bug and Zoom Player hang bug (http://forum.doom9.org/showthread.php?p=1501013#post1501013) were fixed by the same commits. Since about 7 weeks of usage I can say that the ZP hang is fixed only when A/V sync is disabled (I usually use LAV Audio this way). If A/V sync is enabled then ZP hang occurs sometimes. It's hard to reproduce reliably but it definately relates to the option.
nevcairiel
2nd July 2011, 21:10
Thats unlikely. The A/V sync option will not do *anything* at all on 99% of all files. Only broken files with a gap in audio (or an overlap) will actually trigger it. And even if its triggered, all it does is slightly adjust the audio timestamps, it doesn't do anything fancy that would cause a hang, unless the audio renderer you're using is completely insane in the membrane
@ Mercury
Try going for separate MinGW enviroment, http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/rubenvb/x86_64-w64-mingw32-gcc-4.6.1-2_rubenvb.zip/download and http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/rubenvb/i686-w64-mingw32-gcc-4.6.1-2_rubenvb.zip/download
I used that for a short while when ffdshow broke on my old MinGW env, but I have since moved back to the combined builds from xvidvideo.ru which work for LAV/ffdshow and MPC perfectly for me.
Mercury_22
2nd July 2011, 21:23
@ Mercury
Try going for separate MinGW enviroment, http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/rubenvb/x86_64-w64-mingw32-gcc-4.6.1-2_rubenvb.zip/download and http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/rubenvb/i686-w64-mingw32-gcc-4.6.1-2_rubenvb.zip/download
I used that for a short while when ffdshow broke on my old MinGW env, but I have since moved back to the combined builds from xvidvideo.ru which work for LAV/ffdshow and MPC perfectly for me.
I've used a clean "everything" on the VM and since is working for you but not for me....
Do you rebuild everything (are you using the build.bat) ?
Do you download the source from the server or are you using git (TortoiseGit)?
I've used a clean "everything" on the VM and since is working for you ....
Do you rebuild everything (are you using the build.bat) ?
Do you download the source from the server or are you using git (TortoiseGit)?
For LAV, Nev has made it very simple for us :)
I have pretty much refreshed my environment today.
I download via TortoiseGit, did a fresh download today when I 1st encountered the delayed building, tho it still built within 5-7min or so.
I have also deleted my whole old MSYS folder today and used MSYS_MinGW_GCC_461_x86-x64_Full.7z (I don't bother editing any files even if its mentioned to do so)
I have got my env var's set to how you mentioned.
To build, i just run build.bat and wait around 3min for both x86 and x64 to compile.
If you have issues, you can try one more thing I have found cause build issues with ffdshow when I was playing around with my build scripts, edit build_ff_x64.sh and change the line "make -j8 &&" to "make -j4 &&"
Mercury_22
2nd July 2011, 22:04
For LAV, Nev has made it very simple for us :)
I have pretty much refreshed my environment today.
I download via TortoiseGit, did a fresh download today when I 1st encountered the delayed building, tho it still built within 5-7min or so.
I have also deleted my whole old MSYS folder today and used MSYS_MinGW_GCC_461_x86-x64_Full.7z (I don't bother editing any files even if its mentioned to do so)
I have got my env var's set to how you mentioned.
To build, i just run build.bat and wait around 3min for both x86 and x64 to compile.
If you have issues, you can try one more thing I have found cause build issues with ffdshow when I was playing around with my build scripts, edit build_ff_x64.sh and change the line "make -j8 &&" to "make -j4 &&"
It didn't work :thanks: anyway
I'm just puzzled cause I can build MPC-HC x64 (and x86 and lav x86) without any problems ! and LAV x64 it's just hanging there without any error or something
It didn't work :thanks: anyway
I'm just puzzled cause I can build MPC-HC x64 (and x86 and lav x86) without any problems ! and LAV x64 it's just hanging there without any error or something
I find compiling mpc isn't a very good test, what about ffdshow x64?
Gleb Egorych
2nd July 2011, 23:11
Thats unlikely. The A/V sync option will not do *anything* at all on 99% of all files. Only broken files with a gap in audio (or an overlap) will actually trigger it. And even if its triggered, all it does is slightly adjust the audio timestamps, it doesn't do anything fancy that would cause a hang, unless the audio renderer you're using is completely insane in the membrane
Actually I experienced hangs on DVB files (untouched and remuxed to mkv). I'm not sure whether all of them were broken.
I use DirectShow Audio renderer, "DirectSoud: Speakers (Audigy 2 ZS (WDM))" to be exact.
Mercury_22
2nd July 2011, 23:13
OK I've build the LAV x64 too !!! (using MSYS_MinGW_GCC_461_x86-x64_Full.7z) but wtf ? I had to install TortoiseGit and get the code that way !
So it seems that I was right ?! = the zip files I've downloaded before are not the same as the code I get with TortoiseGit ?!!
jmone
3rd July 2011, 00:13
There seems to be an issue connecting LAVSplitter to FFDSHOW for VC-1 streams in an EVO container - http://yabb.jriver.com/interact/index.php?topic=64716.0
nevcairiel
3rd July 2011, 00:16
Sucks to have jumped onto the HD-DVD bandwagon before it burned, eh!
EVO is a dead format, ffdshow a broken decoder, and my time is limited.
For the record, i already know that ffdshow fails to honor pulldown flags commonly present on VC-1 EVOs, so even if it would try to decode, it would not play properly.
jmone
3rd July 2011, 00:46
But where would the fun be if we didn't jump on the various bandwagons early! It is not a big issue for me as I don't personally play EVO content directly and will be remuxing what I want (prob to Blu) anyway. I'll copy your response over at MC and see if they want (or could be bothered) to use Haali for EVO as it is fine in the filter chain with ffdshow for this stuff.
jmone
3rd July 2011, 00:58
...... "ffdshow a broken decoder, and my time is limited" :) One can only hope to read stuff into what future projects you may be considering!
adam777
3rd July 2011, 08:10
Hello all,
I came across a file with the following MediaInfo properties:
General
Unique ID :
Complete name :
Format : Matroska
File size : 19.9 GiB
Duration : 3h 48mn
Overall bit rate : 12.5 Mbps
Encoded date : UTC 2011-06-28 08:33:46
Writing application : mkvmerge v4.8.0 ('I Got The...') built on May 24 2011 03:12:58
Writing library : libebml v1.2.0 + libmatroska v1.1.0
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 5 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 3h 48mn
Bit rate : 10.8 Mbps
Width : 1 920 pixels
Height : 800 pixels
Display aspect ratio : 2.40:1
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.292
Stream size : 16.7 GiB (84%)
Title : x264
Writing library : x264 core 115 r1995 c1e60b9
Encoding settings : cabac=1 / ref=5 / deblock=1:-3:-3 / analyse=0x3:0x113 / me=umh / subme=10 /
psy=1 / psy_rd=1.10:0.00 / mixed_ref=1 / me_range=64 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 /
deadzone=21,11 / fast_pskip=0 / chroma_qp_offset=-2 / threads=12 / sliced_threads=0 / nr=0 / decimate=1 /
interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=6 / b_pyramid=2 / b_adapt=2 / b_bias=0 /
direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=23 / scenecut=40 / intra_refresh=0 /
rc_lookahead=250 / rc=2pass / mbtree=1 / bitrate=10765 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 /
qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / aq=1:0.90
Language : English
Audio #1
ID : 2
Format : DTS
Format/Info : Digital Theater Systems
Format profile : ES
Codec ID : A_DTS
Duration : 3h 48mn
Bit rate mode : Constant
Bit rate : 1 510 Kbps
Channel(s) : 7 channels / 6 channels
Channel positions : Front: L C R, Side: L R, Back: C, LFE / Front: L C R, Side: L R, LFE
Sampling rate : 48.0 KHz
Bit depth : 24 bits
Compression mode : Lossy
Stream size : 2.41 GiB (12%)
Title : DTS-ES 6.1
Language : English
Now, I have a 5.1 speaker setup and managed to apply the needed matrix in FFDShow in order to convert the 6.1 output of LAV Audio to 5.1 (splitting back center to play equally on side left, side right)
However, it seems that a built-in 5.1 track is also available, is there a way to use it instead of the 6.1 track, or is it some sort of MediaInfo error?
Thanks, Adam.
nevcairiel
3rd July 2011, 09:04
The 5.1 track is just the DTS core, which will simply not contain any of the info added by the extra back center channel.
adam777
3rd July 2011, 09:08
OK, what I thought.
On a practical view - is there any way to let LAV Audio decode the DTS core, rather than sending the 6.1 signal through FFDShow for downmixing?
nevcairiel
3rd July 2011, 09:09
No. "Features" that purposely degrade quality are not my targets.
adam777
3rd July 2011, 09:14
Fair enough :)
:thanks:
Sebastiii
3rd July 2011, 09:46
Hi :)
Sometimes when i seek in the movie, i lost center channel, a little seek and it's back, it happen rarely lol.
I didn't have log and it's really hard to reproduce.
Thanks :)
Seb.
Midzuki
4th July 2011, 12:15
Well, I've just tested LAV Audio again, and I'm glad it deals with Arcsoft's DTS decoder correctly :cool:
:thanks: :thanks: :thanks:
Notwithstanding, it cannot decode MLP in .mkv (not through Haali splitter at least) :confused:
nevcairiel
4th July 2011, 12:31
Do you have a sample of a MLP file? I've only ever seen TrueHD, and not MLP. Also, try with LAV Splitter.
Midzuki
4th July 2011, 14:09
That's weird :confused: LAV Splitter refuses connecting to ffdshow's audio decoder :confused: however LAV Audio works fine at decoding MLP in Matroska with LAV Splitter, and ffdshow's MLP decoder works only with Haali splitter :confused:
Do you have a sample of a MLP file?
Yes, but I will share them only if you promise :devil: there will be ZERO issues with:
a) channel count ;
b) channel order ;
c) channel groups with half samplerates ;
:)
nevcairiel
4th July 2011, 14:10
I promise you one thing: Without a sample, nothing will change! :)
Midzuki
4th July 2011, 14:13
I promise you one thing: Without a sample, nothing will change! :)
Fair enough :D
robpdotcom
4th July 2011, 19:12
Here's an mlp sample - it contains a 2.0 44.1kHz 24bit track, and 5.1 48kHz 24bit track inside mka:
http://www.megaupload.com/?d=B83YD2L9
It's the same for me as Midzuki - ffdshow will connect to Haali, LAVaudio will connect to LAVsplitter. With MPC-HC's internal Matroska splitter, ffdshow is fine, LAVaudio thinks it's AC3.
Something you might find interesting: If TrueHD bitstreaming is enabled in ffdshow, it will bitstream it as TrueHD. I get the blue light on my AVR with either track - the 5.1 track bitstreams fine, but the 2.0 track plays at what seems like 2x speed (I'm guessing it confuses my AVR because the 2.0 track is 44.1kHz).
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.