View Full Version : DGMPGDec 1.2.0 beta 6
neuron2
27th January 2005, 04:36
Here is the beta:
http://neuron2.net/fixd2v/dgmpgdec120b5.zip
Let's just say it fixes a lot of things and adds some cosmetic things.
This MPEG stuff is hard! I remember why I took a sabbatical now. :)
The starting codebase for DVD2AVI was a spaghetti bowl. I keep saying it needs a total rewrite, but Nic already tried that, I think.
Cyberia
27th January 2005, 04:58
Originally posted by neuron2
I remember why I took a sabbatical now. :)Don't even think about it. :eek:
The starting codebase for DVD2AVI was a spaghetti bowl. I keep saying it needs a total rewrite, but Nic already tried that, I think.
Is it any better now?
Still have the issue with the seek bar where it doesn't display the right frame if you move the bar too fast.
Load a vob. Grab the bar and snap it to the right all the way, fast. Repeat.
Pretty soon, you'll have a situation where the bar is at the endpoint, but the displayed frame is from much earlier. If you click 'Next GOP' it advances from the displayed frame.
neuron2
27th January 2005, 05:11
It's not worth fixing that. I'd rather rewrite the entire navigation system.
What I'm interested in now are what people have real practical problems with. Obviously audio sync is a biggie, and now I am realizing that crappy transport streams are causing people a lot of headaches. I'm thinking we need DGTransportFix. It would recover the PCR and then with that stable timebase, it would expect a video frame at regular intervals of PTS corresponding to the frame rate. If one is missing, we either insert one or cut audio to match. Similarly for missing audio. Of course the hard part is the inserting of video and audio. You'd need to reencode the MPEG locally, but that is not terribly difficult.
That's what I'm thinking about.
zeus163
27th January 2005, 08:36
First off, thanks for continuing to work on this great program. It is one of my most used programs.
I seem to have a slight problem in regards to .ts streams. I capture my streams via the firewire out of my Motorola box onto my computer. When I record off Discovery HD I can run into problems with the streams in Project X, but that's not too big of a deal as I just edit out commercials with HDTV2MPEG. Well, in HDTV2MPEG it is reporting the streams as video 22 and audio as 20. When I input these into DGMPEG it states that it can't find anything. When I have DGMPEG try and find the pids it finds 11 and 14. It seems to work fine until the very end of creating a project when it brings up an error that states that it can't find audio or video data and that I need to recheck my pids. An AC3 file is still created however. I just ran it again and it created an ac3 file with a different offset then the first time I ran it through with the same erro at the end. Now I'm confused. I just ran it a third time with the same error, but now two of the ac3 files have the same offset. I'm going to try and encode this overnight and see if it all works out.
Whew...I hope that makes sense.
neuron2
27th January 2005, 14:03
@zeus163
I can help with it only if you put a failing source stream on my ftp site and then tell me it is there:
ftp.neuron2.net
user: guest@neuron2.net (enter it just like that)
password: guest
zeus163
27th January 2005, 15:35
Thanks Neuron2
I have to head out to work now. I'll up a piece of it when I get back. I'll edit out a small clip with HDTV2MPEG2 and start it later.
thanks!
Nic
27th January 2005, 15:54
Mine turned into a spaghetti bowl too...You start writing things modular, and then realise you need to do them all together....
Maybe you and me should start from scratch one day...one day ;)
Keep it up,
-Nic
SoulSmasher
27th January 2005, 18:35
thanks neuron 2,
hope this should solve some of my encoding problems (on my thread)
Cyberia
27th January 2005, 21:59
I can't find any real-world issues with this build.
The trackbar has MUCH better resolution and it looks like Preview mode is about 5-10% faster. Project time remains the same though.
Nice job!!!
TEB
28th January 2005, 10:06
@Neuron2: Great build but...
1. Sometimes when u add a TS file and the "cant find pids" popup comes along after a few seconds.. But if u are to fast and click on detect pids BEFORE this popup comes it hangs the application.. I was able to do this with random TS yesterday...
2. Some HDV file (like the one u got from me) says cant find PMT/PAT, so no pids are selectable..
@teb
neuron2
28th January 2005, 14:25
@TEB
1. It shouldn't hang. I'll try to duplicate it.
2. If DGIndex says there is no usable PAT/PMT, then there isn't. You can always use Raw PID Detection to set the PIDs.
loni_blues
28th January 2005, 15:04
Hi neuron2,
First, thanks for your great work!
There is a problem when saving a d2v file with beta 3. The file is left unfinished with the last couple of lines missing (checked with 1.1.0).
A doubt: I thought timestamp stood for the part of the movie being analysed, but at around half of the movie I am processing it starts from 0 again and ends with a value of 53 minutes for a 2 hour movie. Does that have to with the number of audio tracks?
Regards
neuron2
28th January 2005, 15:22
I have an idea about the unfinished business. I'll look at it tonight. Can you tell me if it was a VOB, a transport stream, or an elementary stream?
I don't know anything about the timestamps. I'll have a look at that too.
loni_blues
28th January 2005, 16:34
It was a VOB. I noticed the timestamp thing in 1.1.0 as well.
Thanks, neuron2.
CruNcher
28th January 2005, 19:53
neuron2 i have the same problem only that it ends in an unrecognized exception error on load of the d2v via dgdecode also a vob file, it was created via the latest dgindex the new dgdecode works fine with old dgindex created d2vs
Edit: Dgindex.exe from beta2 works
neuron2
28th January 2005, 21:12
OK, I got too clever for myself, apparently. I'll sort it out this weekend. Thanks for the feedback.
zeus163
29th January 2005, 07:17
@neuron2
I cut a piece of the .ts file that gave me that error message. I ran dgmpgdec on it and I could not recreate the error. Strange. So, I elected not to send the cut file to you.
Thanks for working on great programs like this for us!
Boulder
29th January 2005, 18:29
A bug I just found with 1.2.0b3 :
I tried to create a project from a movie, 4 VOBs. I added them normally and then chose "demux all tracks" and saved the project. The processing went fine until the point where it should have ended (that is, the end of the movie). Instead, it kept going, and for some weird reason the resulting AC3 track became huge, it was ~3GB by the time I closed DGIndex :eek: Choosing one track and demuxing only that didn't help either.
I ripped the DVD with DVD Decrypter, stream processing enabled, one track left out.
DGIndex 1.1.0 works fine.
neuron2
29th January 2005, 18:52
Yes, I'm aware of it. I'll release a fix today or tomorrow.
Thank you.
neuron2
30th January 2005, 19:10
Here's beta 4:
http://neuron2.net/fixd2v/dgmpgdec120b4.zip
Hopefully (need smiley with fingers crossed), it fixes the reported problems. It can demux video from VOBs now too (transport and PVA coming). It also fixes the bug in deringing that Milan pointed out.
[off to the swimming pool now]
TEB
31st January 2005, 11:04
@Neuron2: Works good. Tho i get a VIDEO-ERROR in the gui on a file here that i know should work ok. Its on the ftp as zzzz_remuxed.spts.ts
gpower2
31st January 2005, 18:11
Great job! It is really nice that you continue this project!
Can you provide the source from 1.2.0 so I can compile it with ICL 8.1?
I "discovered" this ability lately, meaning I can compile with ICL 8.1 and optimize the binaries for my P4 with SSE2, and I saw great results!
I will soon provide some of my binaries in this forum (XviD 1.1, DGdecode, DGindex, DGbob, avisynth, etc...) for all us P4 users!
Thanks again!
neuron2
31st January 2005, 18:36
Originally posted by gpower2
Great job! It is really nice that you continue this project!
Can you provide the source from 1.2.0 so I can compile it with ICL 8.1? I don't release source for betas.
I "discovered" this ability lately, meaning I can compile with ICL 8.1 and optimize the binaries for my P4 with SSE2, and I saw great results!
I will soon provide some of my binaries in this forum (XviD 1.1, DGdecode, DGindex, DGbob, avisynth, etc...) for all us P4 users!
I prefer that you don't do that for my tools. If you insist, please use different names for the executables to avoid versioning nightmares. Thank you.
marcellus
31st January 2005, 23:42
Hi Neuron2, many thanks for your precious tool.
I just sent on your ftp a small m2v file (it's in an archive named long_gop.7z) with a problem. This particular fragment (SVCD PAL) I admit that probably is not mpeg2 compliant. I used ffdshow to encode it and the thing that makes it so special is that I set maximum I frame interval to 500. Libavcodec gives pretty good results with long gops (anyway much better than with a GOP of 15, especially at low bitrates). Funny enough, my standalone have no problem playing that kind of files (only seeking is slow) and all mpeg2 soft players play it also.
DGIndex again have no problem playing or previewing it but when I try to save the d2v file it simply vanishes after saving a 0 bit d2v file.
All versions of DGIndex that I tried show the same behaviour (including latest beta).
Bye
neuron2
1st February 2005, 02:15
I support a maximum GOP of 499 pictures. What a coincidence! Try 499 and report back. Thank you.
EDIT: The file you uploaded does not contain even one sequence header. It is therefore invisible as far as MPEG2 decoding is concerned. You may have cut it too small.
Don't you think 500-picture GOPs is a bit of overkill?
neuron2
1st February 2005, 02:20
Here is beta 5. The only thing it fixes is an important bug in indexing that could cause the first GOP address to be wrong in some circumstances (side effect of the changes to support dynamic quant matrices). Unfortunately, this affects 1.1.0 as well. :(
http://neuron2.net/fixd2v/dgmpgdec120b5.zip
I recommend using this version over 1.1.0.
mp34ever
1st February 2005, 02:24
i have been playing with beta 5 and i have golmember and a anime movie ripped of dvd to my computer in vob format and when i load the anime movie i go preview it looks interlaced and it says it is interlaced in preview window.But when i load goldmember in the preview windows it says it is interlaced but when i look at the frames it is progressive no lines.It looks like it has been deinterlaced really good.The goldmember vobs are actually interlaced because i checked them in virtualdub mod and i needed to deinterlace it?.
neuron2
1st February 2005, 02:38
You were quick. Download beta5 again because I had a bad version up for about 5 minutes.
Still, it wouldn't explain your issue.
The preview window shows only the first I frame of a GOP. To be sure, save project with field operation NONE and then serve to VirtualDub. If you don't see what you expect, please post a portion of the D2V file.
neuron2
1st February 2005, 03:08
Originally posted by TEB
@Neuron2: Works good. Tho i get a VIDEO-ERROR in the gui on a file here that i know should work ok. Its on the ftp as zzzz_remuxed.spts.ts Are you sure? I don't see it there.
neuron2
1st February 2005, 03:13
Originally posted by loni_blues
A doubt: I thought timestamp stood for the part of the movie being analysed, but at around half of the movie I am processing it starts from 0 again and ends with a value of 53 minutes for a 2 hour movie. Does that have to with the number of audio tracks? I had a look at this. The "timestamp" is just the audio PTS converted to hours/minutes/seconds. That means it can wrap around and is actually not very useful.
mp34ever
1st February 2005, 05:30
i redownloaded beta 5 and i am going to try what you said but this happened once before i had the matrix 1 on dvd and i ripped it and made a avs script but i wasn't deinterlacing it and vdub showed it progressive so i thought okay and converted to xvid .Once it finished
i viewd it in divx player and vdub and the whole thing was progressive apart from the start wher it had a paramount logo for first 10 seconds and that was interlaced.It was a official version not a asian rip.wierd.
mp34ever
1st February 2005, 05:33
i also had a test clip which i encoded in tmpgenc with a long gop not over 400 and powerdvd played it fine but dvd2avi only showed 2 frames and a green one and it was over a 60 seconds long.I remember ages ago with dvd2avi (probably fixed by now but hey) when selecting fromthe idct selection i selcted 1180 reference (something like that)and it created the little square artifacts not like macroblocks.
neuron2
1st February 2005, 06:16
@mp34ever
You're confusing me. Please stay focused on the present. Do you have a problem or not? If so, please put a clip on my server and explain how to duplicate the problem.
ftp.neuron2.net
user: guest@neuron2.net (enter it just like that)
pwd: guest
TEB
1st February 2005, 09:07
@Neuron2: Let me refrase it (tested on beta5).. Its under the Status:Info:Videoerror.
neuron2
1st February 2005, 13:48
Originally posted by TEB
@Neuron2: Let me refrase it (tested on beta5).. Its under the Status:Info:Videoerror. Ha ha. I meant I don't see the file on the ftp site!
neuron2
1st February 2005, 15:15
@TEB
There's a long-standing bug in the motion vector code in the whole DVD2AVI line of code. I just got a program stream that does it from another person. It fails in all versions of DVD2AVI all the day back to day 1. It's a problem with motion vector decoding. I will try to fix it.
alfixdvd
1st February 2005, 16:35
File d2v version 1.1.0 and 1.2.0 beta 5 are different at values 7 0 xxxxxxx in Gop Lines.
This is related with "indexing that could cause the first GOP address to be wrong in some circumstances " ?
Why if I examine mpegs generated with version 1.1.0 with M2Editpro it says thats's OK. ?
best regards
alfixdvd
neuron2
1st February 2005, 16:56
Originally posted by alfixdvd
File d2v version 1.1.0 and 1.2.0 beta 5 are different at values 7 0 xxxxxxx in Gop Lines.
This is related with "indexing that could cause the first GOP address to be wrong in some circumstances " ?
Why if I examine mpegs generated with version 1.1.0 with M2Editpro it says thats's OK. ?
Yes, the indexing was sometimes wrong.
The bug affects only the indexing (and therefore also DGDecode). If you are talking about video demux'ed by DGIndex, it is not affected by this bug.
alfixdvd
1st February 2005, 19:02
@Neuron2: Thank you for your answer.
best regards.
alfixdvd
marcellus
1st February 2005, 21:01
Hi Neuron2,
Don't you think 500-picture GOPs is a bit of overkill?
Yes, maybe, but I like to push things to limit (guess what GOP size I would use if ffdshow slider could reach a 1000 I frame interval setting). Anyway, this is how I discovered the DGIndex issue, because I was trying to compare quality through SSIM and PSNR at various GOP sizes.
Try 499 and report back.
The file you uploaded does not contain even one sequence header. It is therefore invisible as far as MPEG2 decoding is concerned. You may have cut it too small.
I've uploaded another sample made with a GOP setting of 499, it's in 499_gop.7z. No change, DGIndex still vanishes. I lowered the bitrate (I'm on dial-up) but I cut it longer. It's cut with mpeg2-schnitt from a 2 pass encoding made on 20000 frames (set at 500 kbps) and unmodified in any way (I think that the one I sent you previously was passed through Re-Stream), so if you see anything unusual in it (like the missing sequence header) it's probably a ffdshow/libavcodec issue.
Bye
Edit: I checked and it seems that my upload failed (my line dropped). I will send it again.
Wilbert
1st February 2005, 21:14
@Neuron2,
I've a small request :) Is it possible to pass the colorimetry (ie I709, FCC, I470, S170 or S240) through as global variable, such that ColorMatrix can use it:
ColorMatrix(CoefHints=true)
Cyberia
1st February 2005, 21:26
Originally posted by Wilbert
@Neuron2,
I've a small request :) Is it possible to pass the colorimetry (ie I709, FCC, I470, S170 or S240) through as global variable, such that ColorMatrix can use it:
ColorMatrix(CoefHints=true)
Wouldn't this be included in this Dev list item:
DGDecode Items
---------------
3) Allow "Info()" to be used in AviSynth for conditional filtering
What is ColorMatrix exactly?
Wilbert
1st February 2005, 21:48
Wouldn't this be included in this Dev list item:
More or less. The colorimetry parameter is sufficient for me :)
What is ColorMatrix exactly?
http://forum.doom9.org/showthread.php?s=&threadid=82217
summary:
There are multiple way to do a YUV<->RGB conversion, ie using different coefficients (the conversion itself is linear). Some streams are created uses Rec.709 coefficients (many dvds), others like DivX/XviD are created using Rec.601 coefficients.
neuron2
1st February 2005, 22:13
Originally posted by Wilbert
I've a small request :) Is it possible to pass the colorimetry (ie I709, FCC, I470, S170 or S240) through as global variable, such that ColorMatrix can use it:
ColorMatrix(CoefHints=true) You mean as hints in the video ala Decomb? If so, sure. I'll define an "API" and add it for you.
Wilbert
1st February 2005, 22:31
You mean as hints in the video ala Decomb? If so, sure. I'll define an "API" and add it for you.
Yup. That would be very cool! Thx.
tritical
1st February 2005, 22:40
Um, wouldn't using env->SetVar() and env->GetVar be more flexible? Using the method of hinting from decomb would mean colormatrix would have to be called immediately after mpeg2source() or at least before any filter that modifies the first 64 bytes of the image, and means you could not use it on interlaced material using separatefields().colormatrix().weave(). However, it would be nice to be able to do this and also to be able to use it after resizing I think? The setvar, getvar method would allow this and still be able to work correctly with multiple instances of mpeg2source() in one script.
neuron2
1st February 2005, 23:31
We want to handle per-frame data, so we can pass the interlaced/progressive indication, etc. Colorimetry would be signaled the same way. I can't think how to use SetVar/GetVar for per-frame data. This has been discussed extensively and the consensus is that Avisynth would support per-frame associated data. Until then, well, hints is all I can think of.
len0x
1st February 2005, 23:34
Isn't colorimetry a global setting for the mpeg source? (i.e. it doesn't change from frame to frame within the same source)
neuron2
1st February 2005, 23:46
It's in the sequence display extension, so it can change with every sequence. Anyway, I prefer to have one mechanism and since I need the per-frame data for interlaced/progressive, field/frame, etc., I might as well use it for the colorimetry as well.
tritical
1st February 2005, 23:49
Actually, you can use setvar and getvar to pass per frame values using avsvalue arrays. It isn't super nice and clean, but it is not too difficult. You set up an array that contains the frame # and then the next entry could be the value for that frame # you want to pass. The array wouldn't even need to be equal to the total number of frames in the clip, but only long enough to get past any caching and look ahead (200-400 would be more then sufficient). Then the next filter in the chain searches the array for the corresponding frame number entry and gets the data it needs.
neuron2
2nd February 2005, 00:55
In theory, yes. But I prefer the KISS approach. :)
darkluna
2nd February 2005, 04:10
I'm having weird problems with the later versions of DGMPGDec.
Basically I have several .TS files that I'm making the d2v file from and serving them via simple Avisynth script into Virtualdub. Moving around the files from within DGIndex is normal. However, moving around in VirtualDub, there seems to be a problem with the timeline -- scenes jump around in the wrong order -- definitely not linear. Strangely, the total show time is correct and does not change.
I've verified I'm using the right combination of DGIndex.exe and DGDecode.dll
tritical
2nd February 2005, 05:13
This post is most likely off topic, feel free to move it wherever; however, since the discussion started here I don't know where else to put it.
First, if you've already decided to do it the other way that's perfectly fine... your the one doing it of course :). However, after my initial claim that it would not be "nice and clean", the "in theory" comment, and there being no examples anywhere of it actually being done, I sat down and made a very simple prototype filter actually showing how it can be done. Surprisingly, it is very simple. Here: TestVar.cpp (http://bengal.missouri.edu/~kes25c/TestVar.cpp). Actually, the first filter simply allocates an avsvalue array (which could contain the needed data referenced by frame number) and then env->SetVar() and env->GetVar allow you to pass a pointer to that array to other filters so they can look at it as well. Which basically solves the entire problem of passing data. Anyways, I didn't see any other examples of how to do this so figured I'd post it.
EDIT: Or instead you could be smart and just use SetVar() and GetVar() to pass an array address and avoid having to use an avsvalue array altogether... should have thought of that before :sly:. Example: TestVar2.cpp (http://bengal.missouri.edu/~kes25c/TestVar2.cpp).
neuron2
2nd February 2005, 05:53
Originally posted by darkluna
I'm having weird problems with the later versions of DGMPGDec. What version are you using? Please try 1.2.0b5 and report back. Are you doing a selection? Tell me as much as you can so I can duplicate the problem.
EDIT: Also, don't rip in file mode. You'll mix up multiangle stuff:
http://forum.doom9.org/showthread.php?s=&threadid=32761&highlight=multiangle
neuron2
2nd February 2005, 05:56
@tritical
It seems to me that managing and purging the frame array and keeping it consistent when caching is going on is the hard part.
neuron2
2nd February 2005, 06:10
Originally posted by marcellus
Edit: I checked and it seems that my upload failed (my line dropped). I will send it again. Did you do that yet? I just checked and that file also has no sequence headers. Are you using binary mode for your transfers?
tritical
2nd February 2005, 06:45
Hm, if the main filter uses the array as a circular linked list and always inserts info from the last frame it processes into the next slot, I don't think there would be any problems. Since filters later down the chain could not be processing any frames not already processed above. As long as the array maintained enough entries to bypass all caching and any temporal filter look aheads it would be alright, and the other filters could simply search through the array to find the data that goes with the current frame number they are processing. While this method would get around not being able to use any filters that modify the first 64 bytes (smoothers, resamplers, some deinterlacers)... it would not work with filters that removed or added frames and that is not acceptable :(. So in the end, I guess it is not better for the current purpose.
neuron2
2nd February 2005, 06:55
It's a matter of "choose your evil" as long as Avisynth doesn't cleanly support carrying per frame data along.
Here's an old thread that gets into all this in agonizing detail:
http://forum.doom9.org/showthread.php?s=&threadid=46007
len0x
2nd February 2005, 13:06
Does this all mean that currently there is no way of making ColorMatrix use info from mpeg2source() for interlaced source?
P.S. Btw, can hints be catched the same way as "debug" information? (I'm just not sure how hints are working)
Wilbert
2nd February 2005, 14:13
Does this all mean that currently there is no way of making ColorMatrix use info from mpeg2source() for interlaced source?
We can add an interlaced mode in ColorMatrix itself.
neuron2
2nd February 2005, 14:19
Originally posted by len0x
I'm just not sure how hints are working The low order bit of the first 64 bytes of the video itself are stolen and data is written there. It is completely imperceptible. The first word of the data is a magic number. If the receiving filter sees the magic number in those bits, it knows that there will be good data in the second word.
len0x
2nd February 2005, 14:25
IC. Interesting...
Can debug parameter be added to mpeg2source to produce the same information as info=true does?
marcellus
2nd February 2005, 14:35
Yes, I guess if you successfuly opened the archive everything is fine. Oh, it's an archive is it? Well it doesn't open with anything I have. What is it?
EDIT: Darn, I keep hitting the edit button instead of the reply button. I need more sleep. Anyway, how do I open this archive?
len0x
2nd February 2005, 14:40
Also I have an idea for ColorMatrix purposes. Have an auxiliary function that catches hints from mpeg2source and use them in any form feasible (may be like tritical proposed in some cases). Later ColorMatrix can use that info from auxiliary function. So this ensures that Don has to make hints thing working only once and don't change implementation even if another way of parsing frame info is found/suggested. This auxilary function will be a part of ColorMatrix plugin and can be developed totally separate from DGDecode.
neuron2
2nd February 2005, 15:34
@marcellus
How do I open a .7z file? Can't you just put the stream there directly?
@len0x
The data has to be put somewhere that the receiving filter can access.
len0x
2nd February 2005, 16:06
I know, but implementation can be imperfect (i.e. for DVD sources it may be unlikely that different coefficients are used throughout the movie. That's why I asked if info() can be exposed in debug mode so that I can try running some automatic tests to see if we really need frame-by-frame info for ColorMatrix).
tritical
2nd February 2005, 16:55
Hm, one more thought... with the imbedded hints method you could make a generic wrapper filter that could preserve the hints accross filters that would ordinarily destroy them. One single generic version could not work for all filters, but it would be able to work for any filter that is 1:1 input output, such as resamplers, most denoisers, etc...
Cyberia
2nd February 2005, 17:05
Originally posted by neuron2
How do I open a .7z file?
Type "7" and then "z" into Google, and take the first link. :p
EDIT: I make no claims as to the quality of the 7z software. (Doesn't work for me)
neuron2
2nd February 2005, 17:51
So to save less than 2MB on an upload, marcellus is forcing me to install some SW I don't need or want? Sorry Charley.
Leak
2nd February 2005, 17:58
Originally posted by neuron2
So to save less than 2MB on an upload, marcellus is forcing me to install some SW I don't need or want? Sorry Charley.
Well, both TUGZip and WinRAR have no problems uncompressing 7Zip files, so if you happen to use one of those...
7Zip is an open-source packer providing better compression than zip, which IMHO is great. Yeah, RAR's not bad as well, but it's still proprietary.
np: Ido Gouvrin - Breaking Through The Frequencies (Clicks & Cuts 4)
neuron2
2nd February 2005, 18:13
You missed my point. I don't want to install it. He can please upload the uncompressed file. I estimate that it will be 9MB instead of 7MB.
Cyberia
2nd February 2005, 18:46
Don, I uncompressed both 7z files and uploaded them to your site. Hope that was OK.
gop_499.m2v
long_gop.m2v
neuron2
2nd February 2005, 21:35
Sure, no problem.
So his 499 picture GOP makes a line in the D2V that is 1500+ characters long. Would *you* have thought of making your sprintf() temporary buffer that long? :) I've fixed it in beta 6, to be released shortly.
Beta 6 also fixes the long-standing decode bug I mentioned. We will be much more error tolerant. It'll still report the error in the info box, because it is a real stream error it turns out, but we won't macroblock the pictures all to hell. It's at least as tolerant as VirtualDub MPEG2 now. Thanks for access to your code, fccHandler!
fccHandler
2nd February 2005, 22:39
K :)
neuron2
2nd February 2005, 23:16
http://neuron2.net/fixd2v/dgmpgdec120b6.zip
Relative to the brain-dead 1.1.0:
1. Adds demuxing of AAC audio from transport streams.
2. Adds preliminary support for PVA streams.
3. Adds demuxing of video from VOBs (programs streams).
Transport and PVA coming.
4. Fixes crash with long GOPs.
5. Fixes error tolerance on stream video errors.
6. Fixes problem with indexing for some selection operations. (This is a killer for 1.1.0.)
7. Further improvements to the Info dialog.
marcellus
3rd February 2005, 01:10
Hi Neuron2
I am really sorry, that me compressing with 7-zip a m2v file sounded like I want to make you install anything, I'm not so arogant. I just thought that is a commonly enough spreaded compression, especially in open source world, so it wouldn't be a problem. I was wrong and I appologize for that.
Is true that the obtained compression ratio is only 75-80% but also true is that I'm on a dial-up connection that, beside being expensive, is highly unreliable, so I tried everything to accomplish a successful transfer before anything bad happens to the line (since AFAIK there are no such thing as resumed upload - or there are? -my experience in uploading is next to 0).
I owe Cyberia my gratitude for being so nice to unzip the files. Thank you!
That being said, I downloaded beta 6 and I can confirm that it works flawlesly on my files. Thank you, Neuron2, for taking into acount this rather exotic issue and putting the effort to solve it!
Bye.
TEB
3rd February 2005, 09:59
@neuron2: Beta6 seems fine but i still get a Video Error 1 and later on a Video Error 2 when previewing the u571.remuxed.ts file..
It seems ok so i shall not nag !:) just a tiny FYI!.
I tested some other files now and im getting a: Video error 5, 1, 10.. also from time to time.. are these error codes?
neuron2
3rd February 2005, 14:16
Those errors occur due to real errors in your MPEG2 stream. Are you capturing from a bad signal or something?
The numbers are the "Fault_Flag" value:
1: bad block coefficients
2: bad macroblock type
4: bad macroblock address increment
5: bad prediction
10: bad motion code
99: newbie detected
TripleA
3rd February 2005, 14:53
Originally posted by neuron2
So to save less than 2MB on an upload, marcellus is forcing me to install some SW I don't need or want? Sorry Charley.
This point perhaps is not too significant, but having a wrapper would ensure the file's integrity: if the upload/download is broken for whatever unlikely reason, the extraction will fail.
Admittedly the same effect can be achieved with any compression/packaging.
But 7z is actually quite nice, to go a bit OT, in my experience. Best compression I saw, if a bit slow. And has always worked, for me. Please give it another try when you compress something next.
TEB
3rd February 2005, 14:54
@Neuron2: No thats why im worried... Its transports from our VOD service at work.. And im testing the content i have + DVB satellite streams to make dgindex robust..
It is possible to make a loggingwindow with some summary of the errors he finds? Would be very interesting..
Specially like the 99 one ;) hits me on the spot !! haha
neuron2
3rd February 2005, 17:31
@marcellus
I'm feeling guilty for making a big deal out of the 7z thing. Don't mind me. Thanks again for pointing out the issue.
@TEB
It's possible but triage will keep it low on the list for a while. Right now, I want to finish up video demuxing, fix problems with the audio delay calculation, and add hints for a 1.2.0 release. Quite possibly, you'll get debug output in DGDecode, where I can spit out the video errors along with the per-frame info.
TEB
3rd February 2005, 18:25
goodie!
MLS
4th February 2005, 11:55
Thanks for all your hard work Neuron.
/MLS
Black Hole
5th February 2005, 00:56
@neuron:
A couple of days ago, you wrote the features of DGIndex 1.2.0 beta 6, relative to the "brain-dead" 1.1.0 version.
Does that mean that 1.1.0 is not safe to use with normal DVD movies? Should we still use 1.0.12 until 1.2.0 is out?
Thanks.
neuron2
5th February 2005, 03:36
@Black Hole
Your reading comprehension is excellent. :) It has problems with some selections (setting left point) but is OK if there is no selection.
I withdrew it from my web site as well. Use the 1.2.0b6. It's miles ahead.
I'm looking at delay calculations right now. It's very complex and confusing, and the PTS/DTS values I see on DVDs aren't making sense right now. It may turn out that simple empirical syncing is the most reliable way.
darkluna
5th February 2005, 08:36
I'm working with HDTV .ts files, so no multi-angle-ripping is involved. I'm using version 1.2.0b6 and making a .d2v from all of the files, not just a selection.
The problem occurs right at .ts file-segments.
If I manually step through the file frame-by-frame in VirtualDub where it switches from one .ts file to another, it works; however if I use the "jump to a frame" (Ctrl-G) to the same problem area, it will give me the wrong frame.
Originally posted by neuron2
What version are you using? Please try 1.2.0b5 and report back. Are you doing a selection? Tell me as much as you can so I can duplicate the problem.
EDIT: Also, don't rip in file mode. You'll mix up multiangle stuff:
http://forum.doom9.org/showthread.php?s=&threadid=32761&highlight=multiangle
lineman
5th February 2005, 13:57
I have one large request that would make DGMPGDec a more awesome tool. For those of us that use it to downconvert hdtv to dvd, if DGMPGDec could do trims (cut the commercials) and still retain the ac3 audio. Right now I use projectx, which is ok but you have to have lots of harddrive. You can cut the commercials in avisynth but then you cant retain the ac3 audio. There is a prog called mpg2cut2 for cutting hdtv but it cant cut ts files only program files. Just an idea...if it to way out dont worry about...oh yea thanks for all the hard work that you have done for all of us
lineman
neuron2
5th February 2005, 20:24
@darkluna
I would need the two files. How big are they? We need to resolve this because I want to release 1.2.0. I'll try it on my own transport files, but if you can give me ones that fail in a duplicatable way, that would be best.
@lineman
Cutting is on the development list. Out of curiosity, though, why would you want to cut video but keep the corresponding audio?
lineman
5th February 2005, 21:51
Originally posted by neuron2
@lineman
Cutting is on the development list. Out of curiosity, though, why would you want to cut video but keep the corresponding audio?
I read my post and I see what I typed isnt what my brain was thinking. I want to be able to cut the audio and video with DGMPGDec. I am glad to see that you have that on the list...
Thanks
Lineman
darkluna
6th February 2005, 00:54
I found one of the smaller ones -- the first file is 308MB, the second is 986MB
Originally posted by neuron2
I would need the two files. How big are they? We need to resolve this because I want to release 1.2.0. I'll try it on my own transport files, but if you can give me ones that fail in a duplicatable way, that would be best.
neuron2
6th February 2005, 01:35
Trim the second one to 100Meg (from the back!). Then upload them to my ftp site:
ftp.neuron2.net
user: guest@neuron2.net (enter it just like that)
pwd: guest
Edit: If they are field structure and you have not kept an even number of fields in your first file, you will be in trouble.
darkluna
6th February 2005, 09:22
I've uploaded the files, but I don't know if they're going to do you much good. I made a new .d2v from the files I've uploaded and I can't duplicate the problem, but it still exists with the original file-set. I'm also uploading a sample avi (check frame 3287).
I recently started using a newer version of HDTVtoMPEG (1.11b) to create the .ts files, maybe that has something to do with it.
Thanks,
Originally posted by neuron2
Trim the second one to 100Meg (from the back!). Then upload them to my ftp site:
ftp.neuron2.net
user: guest@neuron2.net (enter it just like that)
pwd: guest
Edit: If they are field structure and you have not kept an even number of fields in your first file, you will be in trouble.
fewtch
6th February 2005, 22:44
Originally posted by neuron2
You missed my point. I don't want to install it. He can please upload the uncompressed file. I estimate that it will be 9MB instead of 7MB.
How about the command-line version of 7-zip (7za)... no installing necessary, just drop it in a shared folder somewhere. Works fine here.
http://www.7-zip.org/download.html
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.