Re: [FFmpeg-devel] [PATCH 2/7] af_hdcd: give cdt expired counter a value for never set

2016-07-31 Thread Michael Niedermayer
On Fri, Jul 29, 2016 at 12:36:17PM -0500, Burt P wrote:
> The counter is now -1 if the code detect timer was never set,
> and 0 if it was set but never expired.
> 
> Signed-off-by: Burt P 
> ---
>  libavfilter/af_hdcd.c | 17 ++---
>  1 file changed, 14 insertions(+), 3 deletions(-)

applied

thx

[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Let us carefully observe those good qualities wherein our enemies excel us
and endeavor to excel them, by avoiding what is faulty, and imitating what
is excellent in them. -- Plutarch


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH 2/7] af_hdcd: give cdt expired counter a value for never set

2016-07-29 Thread Burt P
The counter is now -1 if the code detect timer was never set,
and 0 if it was set but never expired.

Signed-off-by: Burt P 
---
 libavfilter/af_hdcd.c | 17 ++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/libavfilter/af_hdcd.c b/libavfilter/af_hdcd.c
index b860077..8498b35 100644
--- a/libavfilter/af_hdcd.c
+++ b/libavfilter/af_hdcd.c
@@ -846,7 +846,9 @@ typedef struct {
  * steps of 0.5, but no value below -6.0 dB should appear. */
 int gain_counts[16]; /* for cursiosity, mostly */
 int max_gain;
-int count_sustain_expired;/* occurences of code detect timer expiring 
without detecting a code */
+/* occurences of code detect timer expiring without detecting
+ * a code. -1 for timer never set. */
+int count_sustain_expired;
 
 AVFilterContext *fctx; /* filter context for logging errors */
 } hdcd_state_t;
@@ -909,7 +911,7 @@ static void hdcd_reset(hdcd_state_t *state, unsigned rate)
 for(i = 0; i < 16; i++) state->gain_counts[i] = 0;
 state->max_gain = 0;
 
-state->count_sustain_expired = 0;
+state->count_sustain_expired = -1;
 }
 
 /* update the user info/counters */
@@ -991,6 +993,15 @@ static int hdcd_integrate(hdcd_state_t *state, int *flag, 
const int32_t *samples
 return result;
 }
 
+static void hdcd_sustain_reset(hdcd_state_t *state)
+{
+state->sustain = state->sustain_reset;
+/* if this is the first reset then change
+ * from never set, to never expired */
+if (state->count_sustain_expired == -1)
+state->count_sustain_expired = 0;
+}
+
 static int hdcd_scan(hdcd_state_t *state, const int32_t *samples, int max, int 
stride)
 {
 int cdt_active = 0;
@@ -1011,7 +1022,7 @@ static int hdcd_scan(hdcd_state_t *state, const int32_t 
*samples, int max, int s
 result += consumed;
 if (flag > 0) {
 /* reset timer if code detected in channel */
-state->sustain = state->sustain_reset;
+hdcd_sustain_reset(state);
 break;
 }
 samples += consumed * stride;
-- 
2.7.4

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel