[mythtv] [PATCH] fix auto-transcode for "find once" schedules

Chris Pinkham 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) ||
> 			!transcodeFirst))

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. :)

-- 
Chris



More information about the mythtv-dev mailing list