[mythtv] [PATCH] fix auto-transcode for "find once" schedules
cpinkham at bc2va.org
Tue Jun 21 21:07:19 UTC 2005
> On Tue, Jun 21, 2005 at 02:15:53AM -0400, Chris Pinkham wrote:
> > Can you take a look at the attached patch and see if it looks like
> Your patch works for me (I tested it on a garbage 5-minute "find-once"
> recording this morning).
Thanks. I should have been in bed last night hours before I wrote that
patch and sent the email. :)
> > +#define ClearJobMask(mask) mask =3D JOB_NONE;
> > +#define JobIsInMask(job, mask) ((bool)(job & mask))
> > +#define JobIsNotInMask(job, mask) (!(JobIsInMask(job, mask)))
> > +#define AddJobsToMask(jobs, mask) mask |=3D jobs;
> > +#define RemoveJobsFromMask(jobs, mask) mask &=3D (~jobs);
> > +
> The macro args should (always, IMHO) be parenthesized. Otherwise,
> things like:
See what I mean (about the sleep).... :) I sent the code totally
un-debugged. I tested compilation but not functionality.
I moved these into the JobQueue class so the #defines are gone.
2 birds with one stone, blah blah blah...
> JobIsInMask(job, JOB_TRANSCODE | JOB_COMMFLAG)
> RemoveJobsFromMask(jobs, JOB_TRANSCODE | JOB_COMMFLAG)
This is what I was intending to be possible.
> > +/* vim: set expandtab tabstop=4 shiftwidth=4: */
> Heh. This is good :).
Yeah, I've been putting this in the source files that I have created or
added to CVS.
> // Don't commflag commercial-free recordings
> if (!curRecording->chancommfree)
> RemoveJobsFromMask(JOB_COMMFLAG, autoRunJobs);
I agree about adding this, so it's in my tree.
> if (tmpInternalState !=3D kState_WatchingLiveTV &&
> curRecording &&
> JobIsInMask(JOB_COMMFLAG, autoRunJobs) &&
> (earlyCommFlag ||
> JobIsNotInMask(JOB_TRANSCODE, autoRunJobs) ||
This needs a little tweak, but I expect if you had compiled your
email and tested you'd have seen it also.
The earlyCommFlag needed to be moved out one level and AND-ed, not OR-ed. :)
Thanks for looking at it, I'll get the changes tested and into CVS tonight.
RE: your other email after this one:
> An experiment to help confirm/refute this hypothesis is to set up a
> find-once scheduled recording on a non-commercial-free channel. In the
> post-processing options, turn off commercial-flagging.
> If I am correct, the recording will be commflagged anyway (on an
> unpatched mythbackend), because the hard-coded default value for
> commflagging is "true".
This is exactly what's been happening. Bug #285 is "FindOne schedule
ALWAYS does CommFlagging in 0.18".
Thanks for tracking this down and for taking a look at my
sleep-deprived patch. :)
More information about the mythtv-dev