Modify

Opened 4 years ago

Last modified 18 months ago

#12081 new Bug Report - General

Setting a program to record from Program Schedule does not highlight/change status

Reported by: deadletterfile@… Owned by: stuartm
Priority: minor Milestone: 29.0
Component: MythTV - Scheduling Version: Master Head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

Believe behavior changed between commits 687b906 and f19d9f8 (Jan 28,2014). Continues with unpatched/not dirty compile at commit 2c71895d17.

'Manage Recordings'->'Schedule Recordings'->'Program Guide'

A program selected to record with the 'r' key no longer highlights. The status continues to report 'Not Recording'. However checking 'Upcoming Recordings' finds the program is set to record and indeed records. Closing and returning to the Program Guide or restarting mythfrontend does not produce highlighting. Using EIT over the air schedule from an atsc broadcast stream.

Attachments (1)

12081_possible_fix.diff (5.2 KB) - added by stuartm 3 years ago.

Download all attachments as: .zip

Change History (26)

comment:1 Changed 4 years ago by deadletterfile@…

If I have used 'git bisect' correctly, commit a0104e0552 (Dec 5 20:36:29 2013) is the last commit for which highlighting works.

Commit 40d1fe8fdd (Dec 6 11:10:25 2013; stuartm) broke highlighting for me as noted initially.

Thank you for your time --RoyBoy626

comment:2 Changed 4 years ago by mdean

  • Component changed from MythTV - Recording to MythTV - Scheduling
  • Owner set to gigem

comment:3 Changed 4 years ago by amlopezalonso@…

Confirming.

Regards, Antonio

comment:4 Changed 3 years ago by deadletterfile@…

Comments in commit 40d1fe8fdd02 state: IsSameTimeslot() becomes IsSameTitleStartTimeAndChannel().

In mythtv/libs/libmyth/programinfo.cpp:682 IsSameTimeslot() is instead replace by a new function IsSameProgramAndStartTime

At least in this commit, line 682 is the only place this new function seems to be called.

I replaced IsSameProgramAndStartTime with IsSameTitleStartTimeAndChannel() in commit 40d1fe8fdd02 i.e. line 682 is now:

if (!IsSameTitleStartTimeAndChannel(**it))

This one line change has restored previous behavior to my build. Highlighting of recordings previously set up exists in the 'Program Guide'. Shows newly selected in the 'Program Guide' for recording highlight as expected.

I have run on commit 40d1fe8fdd02 modified as above for 48 hours. No negative impacts have yet been detected by this change. I have advanced to running commit a31b85a5dd (March 25, 2014) with this one line change.

comment:5 Changed 3 years ago by stuartm

  • Milestone changed from unknown to 0.28
  • Owner changed from gigem to stuartm
  • Status changed from new to accepted

comment:6 Changed 3 years ago by Stuart Morgan <smorgan@…>

  • Resolution set to fixed
  • Status changed from accepted to closed

In 82b02823c4235b21f40a3722cef02e2387722f8f/mythtv:

Fix GuideGrid? to include rsOtherShowing in the 'will record' highlighting colour. Fixes #12081

comment:7 Changed 3 years ago by Stuart Morgan <smorgan@…>

In a0a32ef6881c9f3454e1514bc662d87ee172d574/mythtv:

Tighten the logic when matching up scheduler data against program showings. This should prevent some invalid data when the exact same program, at the exact same time is covered by two different schedules on different channels.

Refs #12081

comment:8 Changed 3 years ago by deadletterfile@…

At least for me, this problem is not resolved by recent comitts. I removed my patches for #11160 and #11476 (libmythtv.140128.patch) and ran a clean build on comitt a0a32ef688:

mythbackend version: (detached from a0a32ef) [v0.28-pre-1041-ga0a32ef]

Only when I make the one line edit of programinfo.cpp as in comment #4 does expected highlighting behavior occur. The clean build above results in the behavior of the original bug report. I would be happy to provide any information I can.

comment:9 Changed 3 years ago by stuartm

I'm assuming that you have multiple overlapping sources, or the same channel appearing multiple times in your guide data? Can you check that the program data for two channels with the same callsign really is identical (same programid, subtitle, description)? I suspect that it's not and that this is the cause of the problem.

comment:10 Changed 3 years ago by stuartm

diff --git a/mythtv/libs/libmyth/programinfo.cpp b/mythtv/libs/libmyth/programinfo.cpp
index 06cc019..be5d653 100644
--- a/mythtv/libs/libmyth/programinfo.cpp
+++ b/mythtv/libs/libmyth/programinfo.cpp
@@ -2116,12 +2116,20 @@ bool ProgramInfo::IsSameProgram(const ProgramInfo& other) const
 
 /**
  *  \brief Match same program, with same starttime (channel may be different)
+ *
+ *         Channels with the SAME CALLSIGN are considered IDENTICAL and
+ *         therefore any programs showing with the same starttime are
+ *         also considered to be exactly the same! (See #12081)
+ *
+ *         If the programs are different, then the channels MUST have different
+ *         callsigns
+ *
  *  \param other ProgramInfo to compare this one with.
  *  \return true if this program is the same and shares same start time as "other" program.
  */
 bool ProgramInfo::IsSameProgramAndStartTime(const ProgramInfo& other) const
 {
-    if (!IsSameProgram(other))
+    if (!IsSameChannel() || !IsSameProgram(other))
         return false;
     if (startts == other.startts)
         return true;

You could also try the above patch, taking careful note of the comment about channels sharing the same callsign having to be absolutely identical in content.

comment:11 Changed 3 years ago by deadletterfile@…

select chanid, channum from channel; +--------+---------+ | chanid | channum | +--------+---------+ | 1111 | 11_1 | | 1112 | 11_2 | | 1113 | 11_3 | | 1171 | 17_1 | | 1172 | 17_2 | | 1041 | 4_1 | | 1042 | 4_2 | | 1043 | 4_3 | | 1221 | 22_1 | | 1222 | 22_2 | | 1281 | 28_1 | | 1403 | 40_3 | | 1401 | 40_1 | | 1402 | 40_2 | | 1301 | 30_1 | | 1302 | 30_2 | | 1303 | 30_3 | | 1304 | 30_4 | | 1661 | 66_1 | | 1051 | 5_1 | | 1052 | 5_2 | | 1501 | 50_1 | | 1502 | 50_2 | | 1461 | 46-1 | +--------+---------+ 24 rows in set (0.00 sec) The above matches visual inspection of the 'Program Guide'. Over the air EIT information is used to populate. Note that at least three channels do not provide EIT data and are listed as 'Unknown' in the Guide. Another list 'TBA' (To Be Announced) multiple times. I would be willing to delete these channels if requested.

I will try the patch within the hour (by 1630Z). If the highlighting problem is cured, I WILL post here, otherwise the problem persists. If necessary, let me have specifics as to what information I might provide. (Correction to Comment 8: "#11739 and #11476")

comment:12 Changed 3 years ago by deadletterfile@…

Opps ??

programinfo.cpp:2132:24: error: no matching function for call to ‘ProgramInfo::IsSameChannel() const’

if (!IsSameChannel() || !IsSameProgram(other))

programinfo.cpp:2132:24: note: candidate is: In file included from programinfo.cpp:30:0: programinfo.h:315:10: note: bool ProgramInfo::IsSameChannel(const ProgramInfo&) const

bool IsSameChannel(const ProgramInfo &other) const;

programinfo.h:315:10: note: candidate expects 1 argument, 0 provided

comment:13 Changed 3 years ago by stuartm

diff --git a/mythtv/libs/libmyth/programinfo.cpp b/mythtv/libs/libmyth/programinfo.cpp
index 06cc019..44bd2f4 100644
--- a/mythtv/libs/libmyth/programinfo.cpp
+++ b/mythtv/libs/libmyth/programinfo.cpp
@@ -2116,12 +2116,20 @@ bool ProgramInfo::IsSameProgram(const ProgramInfo& other) const
 
 /**
  *  \brief Match same program, with same starttime (channel may be different)
+ *
+ *         Channels with the SAME CALLSIGN are considered IDENTICAL and
+ *         therefore any programs showing with the same starttime are
+ *         also considered to be exactly the same! (See #12081)
+ *
+ *         If the programs are different, then the channels MUST have different
+ *         callsigns
+ *
  *  \param other ProgramInfo to compare this one with.
  *  \return true if this program is the same and shares same start time as "other" program.
  */
 bool ProgramInfo::IsSameProgramAndStartTime(const ProgramInfo& other) const
 {
-    if (!IsSameProgram(other))
+    if (!IsSameChannel(other) || !IsSameProgram(other))
         return false;
     if (startts == other.startts)
         return true;

comment:14 Changed 3 years ago by stuartm

Can you include the callsign in that list of channels?

comment:15 Changed 3 years ago by deadletterfile@…

Channels 40_3 40_1 are both WUVC-DT

I changed the callsign of one of the stations and restarted mythbackend compiled with the supplied patch:

update channel set callsign='WUVC-DD' where chanid=1403;

Highlighting behavior continues as noted in original bug report. Perhaps this callsign change was not enough? Only the one line fix in Comment 4 works for me (but I have no idea what that might break).

173812 Mar 27 12:23 /data/packages/mythtvgit/mythtv/libs/libmyth/programinfo.cpp

select chanid, channum, freqid, callsign, name from channel; +--------+---------+--------+----------+--------------------------+ | chanid | channum | freqid | callsign | name | +--------+---------+--------+----------+--------------------------+ | 1111 | 11_1 | 11 | WTVD-D1 | WTVD-D1 | | 1112 | 11_2 | 11 | WTVD-D2 | WTVD-D2 | | 1113 | 11_3 | 11 | WTVD-D3 | WTVD-D3 | | 1171 | 17_1 | 17 | NBC17HD | NBC17HD | | 1172 | 17_2 | 17 | NBC17SD | NBC17SD | | 1041 | 4_1 | 25 | UNC-TV | UNC-TV | | 1042 | 4_2 | 25 | UNC-KD | UNC-KD | | 1043 | 4_3 | 25 | UNC-EX | UNC-EX | | 1221 | 22_1 | 27 | WLFL-HD | WLFL-HD | | 1222 | 22_2 | 27 | Country | Country | | 1281 | 28_1 | 28 | WRDC-HD | WRDC-HD | | 1403 | 40_3 | 38 | WUVC-DT | Bounce TV | | 1401 | 40_1 | 38 | WUVC-DT | Univision | | 1402 | 40_2 | 38 | WTNC-LP | Telefutura | | 1301 | 30_1 | 42 | WRAY-SD | WRAY Standard Television | | 1302 | 30_2 | 42 | WRAY-HD | WRAY High Definition | | 1303 | 30_3 | 42 | WRAYSD2 | WRAY-SD2 | | 1304 | 30_4 | 42 | WRAYSD3 | La Fuente | | 1661 | 66_1 | 45 | WWIW | WWIW | | 1051 | 5_1 | 48 | WRAL_HD | WRAL_HD | | 1052 | 5_2 | 48 | WRAL-2 | WRAL-2 | | 1501 | 50_1 | 49 | WRAZ-HD | WRAZ-HD | | 1502 | 50_2 | 49 | MeTV | MeTV | | 1461 | 46-1 | 46 | 1461 | |

Unless I have made a mistake, the patched programinfo.cpp continues to behave as stated in the original bug report. Thank you for your time and persistence.

comment:16 Changed 3 years ago by stuartm

  • Resolution fixed deleted
  • Status changed from closed to new

Changed 3 years ago by stuartm

comment:17 Changed 3 years ago by deadletterfile@…

Is scheduler.cpp patch incomplete in 12081_possible_fix.diff (line 1030)?

$ patch -Np1 < /data/wrkbin/computer/12081_possible_fix.diff patching file mythtv/libs/libmyth/programinfo.cpp patching file mythtv/libs/libmyth/programinfo.h patching file mythtv/programs/mythbackend/scheduler.cpp patch unexpectedly ends in middle of line Hunk #1 succeeded at 1024 with fuzz 1.

comment:18 Changed 3 years ago by deadletterfile@…

-rw-r--r--. 1 kdedev users 175482 Mar 27 14:03 mythtv/libs/libmyth/programinfo.cpp -rw-r--r--. 1 kdedev users 34444 Mar 27 14:03 mythtv/libs/libmyth/programinfo.h -rw-r--r--. 1 kdedev users 180420 Mar 27 14:03 mythtv/programs/mythbackend/scheduler.cpp

Although not perfectly clean, the patch seems to be installed. However the original symptoms regarding highlighting described in the original bug report persist. I am double checking that I have not made a mistake.

comment:19 Changed 3 years ago by stuartm

If that patch doesn't work, then I'm completely mystified. The only differences between IsSameTitleStartTimeAndChannel?() and IsSameProgramAndStartTime?() following that patch is that it checks that more than just the title is identical, but conversely it's actually a less restrictive check in that it doesn't require the program to be on the same channel.

So the check should only fail if the the program which is scheduled to record doesn't match the one in the guide, which shouldn't be possible given your channel table. It's conceivable, albeit unlikely, only if you had a mix of sources with two different sets of mis-matching guide data.

comment:20 Changed 3 years ago by deadletterfile@…

Thank you for your time. I can find no mistake on my end. Not to be a twit, but the one line change in comment 4 works for me. It seems to restore the behavior which last worked for me with commit a0104e0552 (Dec 5 20:36:29 2013). Commit 40d1fe8fdd broke highlighting for me. Perhaps figuring out why if (!IsSameTitleStartTimeAndChannel(**it)) works for me (and if it breaks something else) might yield some clues as to your course of action.

Regardless of the path you choose to take on this, I thank you for your time. If I can be of any help in this or other matters, let me know.

comment:21 Changed 3 years ago by Stuart Morgan <smorgan@…>

  • Resolution set to fixed
  • Status changed from new to closed

In 19cf366d01fab857d236611251bcc5fac9076fbe/mythtv:

Revert "Fix GuideGrid? to include rsOtherShowing in the 'will record' highlighting colour. Fixes #12081"

This reverts commit 82b02823c4235b21f40a3722cef02e2387722f8f.

Until I re-write the frontend guide grid to match the WebFrontend?
guide, this has the potential to cause more confusion that it would
solve. In the WebFrontend? guide earlier/later/other showings get
highlighted in a completely different colour making it clear what will
be recorded, what won't be recorded (old episodes/duplicates) and what
will be recorded - just not at that time or on that channel.

Conflicts:

mythtv/programs/mythfrontend/guidegrid.cpp

comment:22 Changed 3 years ago by stuartm

  • Resolution fixed deleted
  • Status changed from closed to new

comment:23 Changed 3 years ago by deadletterfile@…

Issue not fixed for me. I updated to a clean master head at commit befdc4d4b9 (Apr 29,2014) and symptoms remain as in original submission.

Comment #4 one line change continues to resolve this issue for me.

I am at your service.

comment:24 Changed 18 months ago by stuarta

  • Milestone changed from 0.28 to 0.29

Moving to 0.29

comment:25 Changed 18 months ago by stuarta

  • Milestone changed from 0.29 to 29.0

Milestone renamed

Add Comment

Modify Ticket

Action
as new The owner will remain stuartm.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.