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. |
|
|
#62 | Link | |
|
Registered User
Join Date: Oct 2001
Posts: 800
|
Quote:
|
|
|
|
|
|
|
#63 | Link |
|
Banned
Join Date: Aug 2002
Location: Germany
Posts: 1,737
|
(1) the beginning of a stream should not be a fracted frame, otherwise the fracted beginning cannot be replayed anyway
(2) the chunk size must be a multiple of the AC3 frame size (1)+(2) => no fracted frames at all |
|
|
|
|
|
#64 | Link | |
|
Registered User
Join Date: Oct 2001
Posts: 800
|
Quote:
(2) In case of 96ms in Nandub chunk size is a multiple of ac3 frame size. But why do you say it must be that way? Where does that come from? Well, obviously only then the files replay fine (although with fracted frames -> Nandub 96/96) What I wanted to know, why you chose to make AviMuxGUI so that it does not create fracted frames, as the 96/96 Nandub files play fine with fracted frames... |
|
|
|
|
|
|
#65 | Link | ||
|
Banned
Join Date: Aug 2002
Location: Germany
Posts: 1,737
|
Quote:
Theoretically, this limit of non-fracted AC3 frames, in connection with a nGranularity=1, is against AVI specs. If they can't make better filters, then we have to make files which their filters can replay ![]() Quote:
|
||
|
|
|
|
|
#66 | Link | |
|
Registered User
Join Date: Oct 2001
Posts: 800
|
Quote:
The fact that files only play, if chunk-size is a multiple of ac3 frame size, is due to crappy drivers or filters. Right? And AVI-Specs actually allow fracted ac3-frames (I have to admit I don't understand this nGranularity thing)? Well, they actually play fine (if chunk size = multiple of ac3framesize)... And what about (1)? The fracted frame at the beginning...does it cause a delay in playback? Then it would have its purpose...or can it just as well be discarded? Sorry for questioning that much, but you seem to have worked with this a lot and I (and probably many others) would be happy to understand... Last edited by Chibi Jasmin; 15th January 2003 at 15:46. |
|
|
|
|
|
|
#67 | Link |
|
Banned
Join Date: Aug 2002
Location: Germany
Posts: 1,737
|
Every audio stream has this nGranularity value in its header. This defines the number which each chunk size must be a multiple of.
For AC3, this value is set to 1 => each chunk must have a size which is a multiple of 1. Setting other values (which make more sense, such as the ac3 frame size) results in unplayable files. I don't know how fracted frames at the beginning are handled. The AVI file format does not define the behaviour, so I guess than any filter does what it wants. |
|
|
|
|
|
#68 | Link | ||
|
Registered User
Join Date: Oct 2001
Posts: 800
|
Quote:
![]() So may I assume, these files with nGranularity=1 are spec-compliant, even if they have fracted ac3-frames throughout the whole file? Not that being compliant means too much, though... Now, that you explained what nGranularity is, what did you exactly mean with Quote:
|
||
|
|
|
|
|
#69 | Link | |||
|
Banned
Join Date: Aug 2002
Location: Germany
Posts: 1,737
|
Quote:
Quote:
Filters which require anything else should be considered broken |
|||
|
|
|
|
|
#70 | Link | |
|
Registered User
Join Date: Oct 2001
Posts: 800
|
Quote:
The Nandub-files with fracted frames are always spec-compliant..but only the ones muxed with interleaving multiple of 32 ms (in this case chunk size is a multiple of ac3 frame size) play flawlessly (even, if the stream is full of fracted frames), probably due to crappy filters/drivers. AviMuxGUI does not create streams with fracted frames for safety reasons, not because it is proven to be necessary for anything. A fracted frame at the beginning of a stream cannot be replayed. Its influence on playback filters is unknown or may vary; it might cause a delay. <- would it be possible to find out, if it actually causes a delay in playback or not? Please correct me, if anything of the above is wrong and/or let me know, if you have an idea how to find out, if a fracted frame at the beginning could actually serve as introducing a delay in audio playback, making setting a delay not multiple of 32 ms possible. Thanx in advance! Last edited by Chibi Jasmin; 15th January 2003 at 19:48. |
|
|
|
|
|
|
#71 | Link |
|
Banned
Join Date: Aug 2002
Location: Germany
Posts: 1,737
|
You've summerized correctly.
It will be hard to find out what happenes with the fracted frame at the beginning...I do not know how to determine whether a delay of <32ms is present or not. You could try inserting more "half" frames to get an audible delay (or not). BUT: If it is causing no delay, then the file would replay fine at the beginning, but would run off sync as soon as you seek (seeking in the audio stream of an AVI file is only based on "time / bitrate") Last edited by alexnoe; 15th January 2003 at 20:02. |
|
|
|
|
|
#72 | Link | |||
|
Registered User
Join Date: Oct 2001
Posts: 800
|
Quote:
Quote:
![]() Quote:
Last edited by Chibi Jasmin; 15th January 2003 at 20:07. |
|||
|
|
|
|
|
#73 | Link |
|
Banned
Join Date: Aug 2002
Location: Germany
Posts: 1,737
|
=> you confuse frames and frames!
One AC3 frame lasts 32ms, one video frame lasts 40 frames. => 3 AC3 frames last 96 ms, which is about 2,5 video frames. => of course you get 2/3/2/3...00dc chunks. But these are video frames, not AC3 frames ![]() Seeking in an AVI files work like this for audio: Lets say, you want to seek to the position "1 hour" => 448 kBit audio => you can calculate the byte position at which you have "1 hour" If you have crap data at the beginning, which is not replayed, it would tell the wrong position |
|
|
|
|
|
#74 | Link | |
|
Registered User
Join Date: Oct 2001
Posts: 800
|
Quote:
Yeah, I saw I confused it... but for 96/96 muxed files it's still 3 ac3 frames/chunk, right? |
|
|
|
|
|
|
#76 | Link | |
|
Registered User
Join Date: Oct 2001
Posts: 800
|
Quote:
|
|
|
|
|
|
|
#77 | Link |
|
Banned
Join Date: Aug 2002
Location: Germany
Posts: 1,737
|
It doesn't go progressively out of sync.
Still assuming that crap data at the beginning is ignored if you start the replay. It would start playing fine, but as soon as you seek, it would run out of sync (yes, only a very little bit), and would then keep that off-sync at a constant value, regardless of what you do later. |
|
|
|
|
|
#78 | Link | ||
|
Registered User
Join Date: Oct 2001
Posts: 800
|
Quote:
Quote:
BTW: How could I insert more than one fracted frame at the beginning for testing? Any idea? |
||
|
|
|
|
|
#79 | Link | |
|
Registered User
Join Date: Oct 2001
Posts: 800
|
Quote:
|
|
|
|
|
|
|
#80 | Link | |
|
Banned
Join Date: Aug 2002
Location: Germany
Posts: 1,737
|
Quote:
But if you don't care about 32ms, then there is no need to implement AC3 silence when encountering broken AC3 data... |
|
|
|
|
![]() |
|
|