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.0.4~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fe931cb3615a5d3390eb5a421878a66ccfa98828;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 0ccadc388..aff07dde8 100644 --- a/src/dvr/dvr.h +++ b/src/dvr/dvr.h @@ -434,7 +434,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, @@ -443,9 +444,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 7b6424a00..9aabe67e5 100644 --- a/src/dvr/dvr_db.c +++ b/src/dvr/dvr_db.c @@ -897,9 +897,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; @@ -967,7 +967,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); } @@ -993,7 +997,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 */ @@ -1038,14 +1042,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); }