From: Jaroslav Kysela Date: Fri, 29 May 2015 16:02:19 +0000 (+0200) Subject: DVR: handle properly subtitle update and coding fixes X-Git-Tag: v4.2.1~2425 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ec2dea354f17c004801d8620dfe94cd4096bd47a;p=thirdparty%2Ftvheadend.git DVR: handle properly subtitle update and coding fixes --- diff --git a/src/dvr/dvr.h b/src/dvr/dvr.h index d772e80d4..55f5977b3 100644 --- a/src/dvr/dvr.h +++ b/src/dvr/dvr.h @@ -438,7 +438,8 @@ dvr_entry_t * dvr_entry_create_htsp( const char *dvr_config_uuid, channel_t *ch, time_t start, time_t stop, time_t start_extra, time_t stop_extra, - const char *title, const char* subtitle, const char *description, + const char *title, const char *subtitle, + const char *description, const char *lang, epg_genre_t *content_type, const char *owner, const char *creator, dvr_autorec_entry_t *dae, @@ -447,9 +448,10 @@ dvr_entry_create_htsp( const char *dvr_config_uuid, dvr_entry_t * dvr_entry_update( dvr_entry_t *de, - const char* de_title, const char* de_subtitle, const char *de_desc, const char *lang, - time_t de_start, time_t de_stop, - time_t de_start_extra, time_t de_stop_extra, + const char *title, const char *subtitle, + const char *desc, const char *lang, + time_t start, time_t stop, + time_t start_extra, time_t stop_extra, dvr_prio_t pri, int retention ); void dvr_destroy_by_channel(channel_t *ch, int delconf); diff --git a/src/dvr/dvr_db.c b/src/dvr/dvr_db.c index d7effc58c..20a507e81 100644 --- a/src/dvr/dvr_db.c +++ b/src/dvr/dvr_db.c @@ -933,9 +933,9 @@ dvr_timer_expire(void *aux) } static dvr_entry_t *_dvr_entry_update - ( dvr_entry_t *de, epg_broadcast_t *e, const char *title, const char* subtitle, + ( dvr_entry_t *de, epg_broadcast_t *e, const char *title, const char *subtitle, const char *desc, const char *lang, time_t start, time_t stop, - time_t start_extra, time_t stop_extra, dvr_prio_t pri, int retention ) + time_t start_extra, time_t stop_extra, dvr_prio_t pri, int retention ) { char buf[40]; int save = 0, updated = 0; @@ -1003,7 +1003,11 @@ static dvr_entry_t *_dvr_entry_update } /* Subtitle*/ - if (subtitle) { + if (e && e->episode && e->episode->subtitle) { + if (de->de_subtitle) lang_str_destroy(de->de_subtitle); + de->de_subtitle = lang_str_copy(e->episode->subtitle); + save = 1; + } else if (subtitle) { if (!de->de_subtitle) de->de_subtitle = lang_str_create(); save = lang_str_add(de->de_subtitle, subtitle, lang, 1); } @@ -1029,7 +1033,7 @@ static dvr_entry_t *_dvr_entry_update de->de_desc = lang_str_copy(e->episode->summary); } else if (desc) { if (!de->de_desc) de->de_desc = lang_str_create(); - save = lang_str_add(de->de_desc, title, lang, 1); + save = lang_str_add(de->de_desc, desc, lang, 1); } /* Genre */ @@ -1074,14 +1078,15 @@ dosave: */ dvr_entry_t * dvr_entry_update - (dvr_entry_t *de, - const char* de_title, const char* de_subtitle, const char *de_desc, const char *lang, - time_t de_start, time_t de_stop, - time_t de_start_extra, time_t de_stop_extra, - dvr_prio_t pri, int retention) -{ - return _dvr_entry_update(de, NULL, de_title, de_subtitle, de_desc, lang, - de_start, de_stop, de_start_extra, de_stop_extra, + ( dvr_entry_t *de, + const char *title, const char *subtitle, + const char *desc, const char *lang, + time_t start, time_t stop, + time_t start_extra, time_t stop_extra, + dvr_prio_t pri, int retention ) +{ + return _dvr_entry_update(de, NULL, title, subtitle, desc, lang, + start, stop, start_extra, stop_extra, pri, retention); }