From: Jaroslav Kysela Date: Thu, 28 May 2015 12:00:53 +0000 (+0200) Subject: DVR: Add invalid target (file not created) to the status X-Git-Tag: v4.2.1~2433 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c7542087c2c425fc4d7369e52beb93b3c40a1c70;p=thirdparty%2Ftvheadend.git DVR: Add invalid target (file not created) to the status --- diff --git a/src/dvr/dvr.h b/src/dvr/dvr.h index bdd76cc65..d772e80d4 100644 --- a/src/dvr/dvr.h +++ b/src/dvr/dvr.h @@ -454,6 +454,8 @@ dvr_entry_update( dvr_entry_t *de, void dvr_destroy_by_channel(channel_t *ch, int delconf); +void dvr_stop_recording(dvr_entry_t *de, int stopcode, int saveconf); + int dvr_rec_subscribe(dvr_entry_t *de); void dvr_rec_unsubscribe(dvr_entry_t *de); diff --git a/src/dvr/dvr_db.c b/src/dvr/dvr_db.c index 74b49cab2..cf9d90164 100644 --- a/src/dvr/dvr_db.c +++ b/src/dvr/dvr_db.c @@ -297,6 +297,8 @@ dvr_entry_status(dvr_entry_t *de) } case DVR_COMPLETED: + if(de->de_last_error == SM_CODE_INVALID_TARGET) + return "File Not Created"; if(dvr_get_filesize(de) == -1) return "File Missing"; if(de->de_last_error) @@ -1149,16 +1151,17 @@ void dvr_event_updated ( epg_broadcast_t *e ) /** * */ -static void +void dvr_stop_recording(dvr_entry_t *de, int stopcode, int saveconf) { dvr_rs_state_t rec_state = de->de_rec_state; dvr_rec_unsubscribe(de); - if (rec_state == DVR_RS_PENDING || - rec_state == DVR_RS_WAIT_PROGRAM_START || - htsmsg_is_empty(de->de_files)) + if (stopcode != SM_CODE_INVALID_TARGET && + (rec_state == DVR_RS_PENDING || + rec_state == DVR_RS_WAIT_PROGRAM_START || + htsmsg_is_empty(de->de_files))) dvr_entry_missed_time(de, stopcode); else dvr_entry_completed(de, stopcode); diff --git a/src/dvr/dvr_rec.c b/src/dvr/dvr_rec.c index 29839ab72..70e5aea65 100644 --- a/src/dvr/dvr_rec.c +++ b/src/dvr/dvr_rec.c @@ -931,6 +931,8 @@ dvr_thread(void *aux) dvr_rec_set_state(de, DVR_RS_WAIT_PROGRAM_START, 0); if(dvr_rec_start(de, sm->sm_data) == 0) started = 1; + else + dvr_stop_recording(de, SM_CODE_INVALID_TARGET, 1); pthread_mutex_unlock(&global_lock); } break; diff --git a/src/htsp_server.c b/src/htsp_server.c index 1e3c6c87b..0dabd500b 100644 --- a/src/htsp_server.c +++ b/src/htsp_server.c @@ -3584,6 +3584,8 @@ _htsp_get_subscription_status(int smcode) return "subscriptionOverridden"; case SM_CODE_MUX_NOT_ENABLED: return "muxNotEnabled"; + case SM_CODE_INVALID_TARGET: + return "invalidTarget"; default: return streaming_code2txt(smcode); } diff --git a/src/streaming.c b/src/streaming.c index 4832c03d8..38d1d65df 100644 --- a/src/streaming.c +++ b/src/streaming.c @@ -412,6 +412,8 @@ streaming_code2txt(int code) return "Source deleted"; case SM_CODE_SUBSCRIPTION_OVERRIDDEN: return "Subscription overridden"; + case SM_CODE_INVALID_TARGET: + return "Invalid target"; case SM_CODE_NO_FREE_ADAPTER: return "No free adapter"; diff --git a/src/tvheadend.h b/src/tvheadend.h index 7ed2e0c85..ca7336a6f 100644 --- a/src/tvheadend.h +++ b/src/tvheadend.h @@ -448,6 +448,7 @@ typedef enum { #define SM_CODE_BAD_SOURCE 101 #define SM_CODE_SOURCE_DELETED 102 #define SM_CODE_SUBSCRIPTION_OVERRIDDEN 103 +#define SM_CODE_INVALID_TARGET 104 #define SM_CODE_NO_FREE_ADAPTER 200 #define SM_CODE_MUX_NOT_ENABLED 201