Action Item #542

Port to new db formats from VideoLib

Added by Hammel about 1 year ago. Updated about 1 year ago.

Status:ClosedStart date:23 Aug 2016
Priority:ImmediateDue date:
Assignee:Hammel% Done:

100%

Category:Database
Target version:PiBox - 0.11.0
Severity:01 - Critical

Description

VideoLib now has separate subdirs under a videolib directory that hold files for each video. Each video has JSON in it. For movies it's just one line of JSON. For TV episodes it's multiple lines.

Associated revisions

Revision 6d1478eb
Added by Hammel about 1 year ago

RM #542: Add menu bar that works with TAB to switch between Movies and TV Episodes. It's just the menu, but it's Cairo based so the same events work on it as the rest of the interface. This was required prior to designing a way for working with either types of db formats.

Revision f0f5c43e
Added by Hammel about 1 year ago

RM #542, RM #515: Port to libpibox (pncLogger). Fix bug where %s is not a standalone argument but part of a larger argument (as in file://dvd/%s) in spawnPlayer.

Revision 34da8770
Added by Hammel about 1 year ago

RM #542, RM #515: Port to libpibox (pncLogger). Ported db handling to new JSON-based formats generated by VideoLib. Add TV Episodes option via TAB key in main interface. Show episode poster.

Revision 4d7b2b74
Added by Hammel about 1 year ago

RM #542, RM #414: Added Pango-rendered overview to display with a semi-transparent overlay between the text and poster. Added series poster
above episode poster, overlaying the latter with the overview. Fixed problem with resizing and repositioning of windows on startup.

Revision 8cb8c6b5
Added by Hammel about 1 year ago

RM #542: Fix bug when calculating size of buffer for image paths.
Test required fields and mark entries valid or invalid.
Skip adding entries to display list if they are marked invalid.

Revision 024536a3
Added by Hammel about 1 year ago

RM #542: Add valid field to movie and episode structs.

Revision 21679d66
Added by Hammel about 1 year ago

RM #542: Add valgrind support for checking for memory leaks. Use gtk suppression file to skip gtk-and-friends when
looking for leaks.

Revision d23d1b31
Added by Hammel about 1 year ago

RM #542: Fix buffer overruns in genVideo. Change program flow to make free'ing buffers cleaner.

History

#1 Updated by Hammel about 1 year ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 10

Added a Cairo-based menu to switch between Movies and TV Episodes. You can switch between them with simple TAB key. This is functionally the way that Plex does it - separate the two database types. That means I can now read in the directories that hold each type of dbs. I can then read in the dbs into separate structures and quickly switch between them.

Next up: make a list of directories for each db type. I'll need some test directories under data/ for that.

#2 Updated by Hammel about 1 year ago

  • % Done changed from 10 to 70

This is complete but could use more testing. The db now utilizes the JSON data generated by VideoLib, which makes the db handling much cleaner. The UI now supports switching between Movie and TV episodes as separate DBs using the TAB key (implemented with Cairo, which made it much easier than using GTK widgets). And TV episodes now show their poster.

There are likely a lot of little bugs that need to be shaken out, but the port is basically done. And there are lots of nice-to-have features that could be added, like adding the Series poster above the TV episode poster (which is generally just a screen shot) and adding the overview to the display.

But this port is done.

Now I need to build a package that can be tested on hardware with a new-format db on a USB stick. Once that's verified working I can merge mjhammel/tvdbcom branches for videofe and videolib into master and then close this issue.

#3 Updated by Hammel about 1 year ago

  • Status changed from In Progress to Closed
  • % Done changed from 70 to 100

Package is ready for test. SD card for RPI2 is ready to boot and install new package. Just need to sit down and do it.

I also added the overview to the display for both movies and episodes, along with the series poster above the episode image for episdoes.

#4 Updated by Hammel about 1 year ago

  • Status changed from Closed to In Progress
  • % Done changed from 100 to 90

#5 Updated by Hammel about 1 year ago

The code crashed on hardware because the DB was slightly old - it was missing the overview field. So I need to check the code to make sure it doesn't crash when data is missing from the db.

And I need to update the db to copy in the updated versionsl

#6 Updated by Hammel about 1 year ago

  • Status changed from In Progress to Closed
  • % Done changed from 90 to 100

Tested on hardware. Fixed a number of buffer overruns (off by 1 errors). Everything is working fine now. In fact, it works really well with posters, overview and swapping between movies and tv episodes. Pretty slick.

Committed and pushed.

Merged with master.

Closing issue.

Also available in: Atom PDF