YAPS progress (epg, sap / sdp, asp.net integration,…)


It’s been some time since I wrote about my little digital video disk recorder project and I think it’s time to wrap up some things. First of all I am using this software myself on a daily basis, having recorded about 1000 recordings in the last 4 months alone tells something. YAPS now is capable of handling multiple users – with each one having their own recordings and play-stop-positions.

Here are the new features in a short list:

  • Electronic Program Guide (EPG) Integration (multiple transponders/streams if you like)
  • Session Announcement Protocol / Session Description Protocol Integration
  • Multi-User support with capability checking
  • Cassini / ASP.NET Integration to allow ASP.NET web applications to run on YAPS
  • WCF Webservice interface to expose video disk recorder internal data (recordings list, event list,…)
  • Automatic and Reoccuring recordings
  • several new graphics
yaps_frontpage

yaps_add_recording

The daily-build system is broken as of now but you can always grab the latest sourcecode from here.

For a complete changelog hit the jump.

Here’s the complete changelog since the last article about yaps:

13.04.2008

  • added %render_automatic_and_reoccuring_recording_table% keyword; the other recording table keywords don’t display automatic/reoccuring events
  • added canAccessOthersRecordings capability and capability handling
  • added %holdingtime%, %comment% and %elapsed_holdingtime% to the Recording/Recorded/AutomaticReoccuringRecording table
  • added %render_currently_running_epg_events_table% keyword

06.04.2008

  • added Session Description Protocol parser
  • added Session Announcement Protocol setting data (SAP_IPAdress, SAP_Port)
  • added Session Announcement Protocol processor
  • bugfix attempt to fix a race condition that leads to no RecordingList rendering and no more recordings…

03.04.2008

  • added WCF Service Host to allow self hosting of data
  • switched to .NET Framework 3.5

23.03.2008

  • added feature that automatic EPG recordings end when they do end on the channel – Event EndTime is used now
  • rewrote Cassini Webserver integration
  • fixed a bug in the Template Processor that caused a display of the runtime as fraction of minutes…

15.03.2008

  • automatic epg recordings are now looking at the channel id and if it’s set they only record events on that channel
  • automatig epg recordings are now looking for a timespan in which they are active
  • recorded listing template processor is now aware of automatic recordings (icon, time rendering)
  • added automatic epg wait icon on recordingslist html page
  • changed automatic epg recording to take the real name from the epg instead of the one that was entered

14.03.2008

  • Recording data structure changed to reflect new “automatic epg based recording” feature
  • added automatic EPG recording feature; based on “AutomaticEPGRecordingKeywords”
  • changed Tuxbox Implementation to show channel ID on Xbox Media Center
  • changed addrecording.html and http vcr command handling (addrecording) to reflect automatic epg recording feature
  • implemented automatic epg based recording; just enter keywords + recordingtime + name + isAutomatic=true –> Automatic recording

13.03.2008

  • changed EPG error handling to only stop listening to EPG events when 25 errors in a row occur
  • changed EPG handling to display new events on unknown service ids

14.01.2008

  • fixed holding-time bug

13.01.2008

  • updated neu.png
  • added Holding-Time Handling

12.01.2008

  • added reoccuring event handling in VCRScheduler
  • added reoccuring event handling in HTML page AddRecordings
  • updated years and version numbers
  • bugfixed RecordingsPlayed statistics
  • updated Recordings-Table to reflect status if recording is reoccuring or not
  • added SVG Files for all YAPS graphics

03.01.2008

  • updated solutions to Visual Studio 2008

17.11.2007

  • Added HoldingTime to make “forget to delete a recording” impossible; HoldingTime of 0 is indefinite, everything else means hold n+1 days
  • Changed behaviour of Recordings Streaming: The StopPosition Counter is updated in realtime which means: You don’t have to close a recording to watch it from the current Position
  • added Cassini Wrapper

8.11.2007

  • integration of Cassini v2 into YAPS
  • added some statistics

22.10.2007

  • added a new management data structure to the data structures/Recording.cs that holds a list of UserStopPosition; Each User now has his own LastStoppedPosition for each recording.

08.05.2007

  • added RecordingsThumbnail class to generate a Thumbnail picture for a recording
  • added generateThumbnailFilename to XBMCPlaylistFilesHelper
  • added thumbnail creation and deletion routines to multicast_vcr and others
  • udpating thumbnail when playcounter/position is updated…
  • added “Updating recording…” console output
  • added isRTP property to channelist (default value is false); you can determine if RTP header should be stripped or not for a specific channel

07.05.2007

  • fixed a bug in the /xml/CurrentServiceData section that caused an exception when no EPG data was known
  • added error handling to the EPG Processor Thread; after 25 errors a thread will be shut down

06.05.2007

  • added /cgi-bin/zapto to http handling
  • added /xml/streaminfo to http handling
  • added Name2ServiceID to ChannelAndStationMapper
  • added TuxboxCurrentServiceData structure and handling
  • added /xml/currentservicedata method to http server
  • added /xml/boxinfo method to http server
  • added boxinfo data structure

05.05.2007

  • several changes for debugging purposes to the YAPS multicast processor to debug a specific problem
  • fixed a thread unsafe bug in multicast processor
  • fixed several more thread unsafe things in multicast processor and vcrscheduler
  • changed behaviour: If a streaming client now refuses to accept data packets he will be disconnected after 1 second (until timeshift is implemented)

01.05.2007

  • fixed a bug in VCRScheduler that could lead to a crash on startup (was not threadsafe)

24.04.2007

  • added %rendertransformation($input_url,$xslt_url)% keyword to the TemplateProcessor

21.04.2007

  • fixed a memory leak in the rss generator
  • added TuxBoxServices data structure
  • added tuxbox /xml/services call handler to http processor
  • changed the MulticastEPG source data handling so that the multicastEPG Sources are now stored in the settings.dat.xml (misc settings) file
  • fixed a bug in the EPGProcessor that caused an empty CurrentlyPlayingList
  • added small testing portion
  • fixed some bugs in http server
  • rewrote tuxbox services data structure and handling (helping hand: Andreas Heil)

18.04.2007

  • reimplemented the whole Channel-Name-Picture-ServiceID-MulticastIP-MulticastPort Mapping and created a new data structure and XML file that holds that data
  • added filtering functionality to the EPG Processor that filters only known channel EPG data and discards data for unkown channels
  • fixed the XBMCSyncProcessor bug; I had the file deletion functionality disabled….

17.04.2007

  • added the multicastedEPGProcessor Implementation, does maintain a CurrentlyRunning List but is not used yet (Implementation just for leak and stability testing)
  • added new Channel/StationID mapping data structure

13.04.2007

  • removed JMS/DVB subproject
  • several changes to the JMS/EPG subproject to make JMS/DVB obsolete
  • working EPG implementation (not yet activated) — need to get working

02.04.2007

  • now displaying associated username instead of IP address in the http logfile
  • added EPG Processor startup to YAPS.cs

01.04.2007

30.03.2007

  • fixed a bug in the XBMC Playlist File branch; XBMC Playlistfiles respect now a port number setting != default port 80

29.03.2007

  • changed multicast behaviour: we don’t use RTP from now on; there’s just plain UDP
  • added new EPG test data
  • fixed a bug in multicast_vcr
  • fixed DeleteRecordings; did not work for several versions – you can now delete scheduled recordings
  • fixed a bug in the ConsoleOutputLogger that leads to a “Collection was modified after the enumerator was instantiated.” exception when the logoutput is accessed while it’s written

Source 1: http://www.dotnetcommunity.de/yaps/yaps_daily_source.zip
Source 2: http://www.schrankmonster.de/PermaLink,guid,71a24ec5-8576-4fe6-b5f5-8607017e5f00.aspx

Comments are closed.