Opened 19 years ago
Closed 16 years ago
#1088 closed patch (fixed)
Convert to using MARK_GOP_BYFRAME instead of MARK_GOP_START
Reported by: | Owned by: | cpinkham | |
---|---|---|---|
Priority: | minor | Milestone: | 0.22 |
Component: | mythtv | Version: | head |
Severity: | medium | Keywords: | |
Cc: | Geoffrey Hausheer, Janne Grunau, stuartm | Ticket locked: | no |
Description
as seen in http://www.gossamer-threads.com/lists/mythtv/dev/170636
mythcommflag rebuild does not properly rebuild the seek table resulting in extra short length reporting and jumping around doesn't work properly.
daniel.chassot at gmail has a "fix" that works, but may cause other problems: looking in avformatdecoder.cpp around line 794, I found that the keyframe distance is initially set to 15 except for AVI file because the avi keyframes are too irregular. As it seems to be my problem too for my DVB recordings, I've commented out the line 794: if (!strcmp(fmt->name, "avi")).
Attachments (4)
Change History (18)
comment:1 Changed 19 years ago by
comment:2 Changed 19 years ago by
Milestone: | → 0.20 |
---|---|
Summary: | mythcommflag rebuild doesn't work for DVB/ATSC MPEGs → mythcommflag rebuild broken for non-ivtv MPEGs |
Version: | → head |
We should just get rid of MARK_GOP_START altogether and always use MARK_GOP_BYFRAME which will work with all MPEG recordings.
comment:3 Changed 19 years ago by
Cc: | Geoffrey Hausheer added |
---|
comment:4 Changed 19 years ago by
Owner: | changed from Isaac Richards to cpinkham |
---|
comment:5 Changed 19 years ago by
Status: | new → assigned |
---|---|
Summary: | mythcommflag rebuild broken for non-ivtv MPEGs → Convert to using MARK_GOP_BYFRAME instead of MARK_GOP_START |
Type: | defect → task |
comment:6 Changed 19 years ago by
Milestone: | 0.20 → 0.21 |
---|
comment:7 Changed 18 years ago by
Cc: | Janne Grunau added |
---|
comment:8 Changed 18 years ago by
Here's my go at the patch. Patch is attached in three parts.
- gopbyframe.diff I've been able to test. It works works with videos and recordings I have. It works with DVD's I've tested. It fixes the problem of mythcommflag generating incorrect position maps for mpeg files and recordings. This fixes FFW/REW Seeking on mpeg files that have NO position map and that the keyframedist is not constant, but still will want to have a position map as the picture is blocky in FFW and REW.
- mpegrec_gopbyframe.diff changes the mpeg recorder to use a keyframedist of 1. I have no way of testing this, this is why it is separate. I noted that the other recorders seem to already use MARK_GOP_BYFRAME, so no changes needed.
- ivtv_gopbyframe.diff changes ivtvdecoder.cpp to use MARK_GOP_BYFRAME and keyframedist of 1 if there is no position map. Again I have no way to test this, so it is also separate.
There's some code in decoderbase.cpp in PosMapFromEnc? that could be removed if all three diff files are used. This is further code in decoderbase.cpp and avformatdecoder.cpp that is only needed to support old database position maps of type MARK_GOP_START.
Changed 18 years ago by
Attachment: | gopbyframe.diff added |
---|
Changed 18 years ago by
Attachment: | mpegrec_gopbyframe.diff added |
---|
Changed 18 years ago by
Attachment: | ivtv_gopbyframe.diff added |
---|
comment:9 Changed 18 years ago by
Cc: | stuartm added |
---|
comment:10 Changed 17 years ago by
Milestone: | 0.21 → 0.22 |
---|
comment:11 Changed 17 years ago by
Type: | task → patch |
---|
The patch I've just attached is lightly tested. I'll be applying it to my production machine to give it decent workout. It just uses MARK_GOP_BYFRAME in the mpegrecorder rather than MARK_GOP_START to avoid creating any new recordings employing MARK_GOP_START...
comment:12 Changed 17 years ago by
comment:13 Changed 17 years ago by
comment:14 Changed 16 years ago by
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
Also discussed in
http://www.gossamer-threads.com/lists/mythtv/dev/173198 http://www.gossamer-threads.com/lists/mythtv/dev/173742