rshendershot / MythRokuPlayer

mythtv front end for Roku player
tbd
8 stars 2 forks source link

Mythroku fail - issue; Default Group Video Defined causes issue... #23

Closed krisbee closed 11 years ago

krisbee commented 11 years ago

I decided to add video group to my backend to make streaming easier with upnp - normally I defined the video group in the frontends - I added the groups, did the metadata fillin and mythroku failed. Here is the dump:

CODE: krisbee@mythserver:/var/www/mythweb/mythroku$ php mythtv_all_xml.php

DB SCHEMA: 1299 PHP Notice: Trying to get property of non-object in /usr/share/mythtv/mythweb/mythroku/player_feed.php on line 235 PHP Notice: Trying to get property of non-object in /usr/share/mythtv/mythweb/mythroku/player_feed.php on line 242 PHP Fatal error: Uncaught exception 'ActiveRecord\UndefinedPropertyException' with message 'Undefined property: VideoMetadata->starttime in /usr/share/mythtv/mythweb/mythroku/php-activerecord/lib/Model.php on line 521' in /usr/share/mythtv/mythweb/mythroku/php-activerecord/lib/Model.php:521 Stack trace:

0 /usr/share/mythtv/mythweb/mythroku/php-activerecord/lib/Model.php(333): ActiveRecord\Model->read_attribute('starttime')

1 /usr/share/mythtv/mythweb/mythroku/player_feed.php(267): ActiveRecord\Model->__get('starttime')

2 /usr/share/mythtv/mythweb/mythroku/mythtv_all_xml.php(19): item->__construct(Object(VideoMetadata))

3 {main}

thrown in /usr/share/mythtv/mythweb/mythroku/php-activerecord/lib/Model.php on line 521

I deleted the default group, rescanned, and I was able to use mythroku again...

In my apache error log, this is all it says, however it says it hundreds of times over: [Wed Aug 14 22:43:31 2013] [error] [client 192.168.1.8] PHP Notice: Trying to get property of non-object in /usr/share/mythtv/mythweb/mythroku/player_feed.php on line 235 [Wed Aug 14 22:43:31 2013] [error] [client 192.168.1.8] PHP Notice: Trying to get property of non-object in /usr/share/mythtv/mythweb/mythroku/player_feed.php on line 242

rshendershot commented 11 years ago

There is nothing on lines 235 or 242 so I would ask that you clean everything out and clone again so that you have the current code. Mythtv_all_php has already been fixed so that should go away. If you still have problems, tell me how you use mythfrontend to add video-group. What theme and what menu-theme do you use (the features vary between themes) and what menu roadmap to get there? When you add a new video-group that causes the problem, does it appear in the storagegroup table of mythconverg? If not, what table is the value stored?

If you can't find the table for the data, I may be able to inject the problem in my system. I don't find anything in mythfrontend to add a video group and maybe you're adding a storage group or playback group or category - those should all work correctly. Helping me to add the same data here is the best bet.

krisbee commented 11 years ago

On Sat, Aug 17, 2013, at 08:51 AM, rshendershot wrote:

There is nothing on lines 235 or 242 so I would ask that you clean everything out and clone again so that you have the current code. Mythtv_all_php has already been fixed so that should go away. If you still have problems, tell me how you use mythfrontend to add video-group. What theme and what menu-theme do you use (the features vary between themes) and what menu roadmap to get there? When you add a new video-group that causes the problem, does it appear in the storagegroup table of mythconverg? If not, what table is the value stored?

If you can't find the table for the data, I may be able to inject the problem in my system. I don't find anything in mythfrontend to add a video group and maybe you're adding a storage group or playback group or category - those should all work correctly. Helping me to add the same data here is the best bet.

As discussed on email, the issue got narrowed down to a video file (from the videos storage group) that had an Ampersand in the title (the apostrophe also in the title has no issue)...

Temp fix was to just hide the directory that had some of these files until I rename.

--Kris

rshendershot commented 11 years ago

the filename is used to track the position for playback in a variable called contentId. This is stored in the Roku registry. Either the ampersnd is an illegal character there, or some other problem in the UI code, but to maintain compatibility with the production private channel I used PHP crc32 to calculate the contentId from the filename so that only numeric standard characters are ever sent to the Roku. This has the added benefit of reducing our usage of the Roku registry storage. It will cancel existing playback positions though.