Here we go again:
http://www.pblue.org/myth/mpeg2fix-0.13.tgz
This fixes a deadlock in replex on streams with multiple audio
streams. i'm not 100% sure of the fix, but I think it is ok. This
should resolve the problem Adam was having on IRC.
It also should remove all deadlock conditions. The code should
instead abort with an assert if it detects a deadlock (which at least
tells the user what is going on, and may help debug)
Well, that seems true enough:
$ mpeg2fix -d4 -i cory_grad_luke_conf_alton.nuv -o test2.mpg > log4.txt
Input #0, mpeg, from 'cory_grad_luke_conf_alton.nuv':
Duration: N/A, bitrate: N/A
Stream #0.0[0x1e0], 29.97 fps: Video: mpeg2video, yuv420p, 704x480, 6000
kb/s
Stream #0.1[0x1c0]: Audio: mp2, 48000 Hz, stereo, 192 kb/s
Warning, QMAT_SHIFT is larger then 21, overflows possible
Mux rate: 6.29 Mbit/s
Deadlock detected. One buffer is full when
the other is empty! Aborting
mpeg2fix: mpeg2fix.cpp:627: void MPEG2fixup::add_frame(MPEG2frame*):
Assertion `ok' failed.
Aborted
Didn't see much useful out of end of the log4:
PTS discrepency: 609664731 != 609662909 on B-Type (13)
PTS discrepency: 609667975 != 609665912 on B-Type (14)
PTS discrepency: 609671216 != 609668915 on P-Type (15)
VID: P #:15 nb: 2 pts: 609671216 dts: 609659906 pos: 879b840
Id:0: 1:52:54.124 V:83 MP2: 199 AC3:
VID: B #:13 nb: 2 pts: 609664731 dts: 609664731 pos: 876f3e8
Id:0: 1:52:54.052 V:82 MP2: 199 AC3:
VID: B #:14 nb: 2 pts: 609667975 dts: 609667975 pos: 88a27c8
Id:0: 1:52:54.088 V:81 MP2: 199 AC3:
The PTS wrapping code was added, though it hasn't been tested too thoroughly.
This *should* be a very unusual situation though, right? Probably
most likely from constructed sources like dvb or hdtv. ivtv captures
probably just happily spool the PTS along.
I added code which attempts to preserve the interlaced/progresive info
when rebuilding frames. libavcodec doesn't give enough control to do
this right, so I hope the hack I put in works. Probably needs some
user testing.
Unfortunately, my same issue is there. Not sure how to debug this
any further... everything seems good. The decoded/encoded/redecoded debug
frames all look great.
> So that is it. I now have no features I plan to add before this
code > goes into myth. I will likely begin working on the interface to
mythtranscode, and commit the changes when I'm done.
New bugs may have cropped, up, there are probably still lots of issues
(I haven't fully resolved either Bryan's or Cory's issues, and there
isn't anything in here which would do so), but any issues that I can't
debug before the final merge I'll just deal with as bugs through the
tracker.
I'm sure there will be a whole slew of them once it gets a larger
test base. Seems like everyone who's added their own "stream of death"
(I like that, BTW) has uncovered yet another obscure bug.
Things which could be tackled at some point (after the merge)
add subtitle support
add ability to rebuild a bad frame from the previous good frame
(possibly interpolate if good data is available). This is the only
way I can fix Tom's corrupted stream problem, and it would be really
cool, but will require significant effort.
That'd be pretty spiffy.
support ATSC output (as opposed to converting to PS)
Does it currently require PS or will any TS work too? I don't have TS
sources, but just curious.
enforce DVD compliance (add borders or clip to resize to a given
dimension without reencoding, and build new I-frames as needed to meet
the GOP requirements).
I didn't even think that could be done. It thought a frame was a
frame and you were stuck with the size unless you transcoded.
Cheers,
-Cory
--
*************************************************************************
* Cory Papenfuss *
* Electrical Engineering candidate Ph.D. graduate student *
* Virginia Polytechnic Institute and State University *
*************************************************************************
_______________________________________________
mythtv-dev mailing list
[email protected]
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev