Re: [FFmpeg-devel] [PATCH 3/5] af_hdcd: only hdcd_update_info() when something changes

2016-07-14 Thread Michael Niedermayer
On Tue, Jul 12, 2016 at 12:54:08PM -0500, Burt P wrote:
> Only call hdcd_update_info() when the control code changes
> instead of every frame, so the counters are more meaningful.
> 
> Signed-off-by: Burt P 
> ---
>  libavfilter/af_hdcd.c | 34 +-
>  1 file changed, 13 insertions(+), 21 deletions(-)

applied

thanks

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

Awnsering whenever a program halts or runs forever is
On a turing machine, in general impossible (turings halting problem).
On any real computer, always possible as a real computer has a finite number
of states N, and will either halt in less than N cycles or never halt.


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


[FFmpeg-devel] [PATCH 3/5] af_hdcd: only hdcd_update_info() when something changes

2016-07-12 Thread Burt P
Only call hdcd_update_info() when the control code changes
instead of every frame, so the counters are more meaningful.

Signed-off-by: Burt P 
---
 libavfilter/af_hdcd.c | 34 +-
 1 file changed, 13 insertions(+), 21 deletions(-)

diff --git a/libavfilter/af_hdcd.c b/libavfilter/af_hdcd.c
index 48f87f6..4104935 100644
--- a/libavfilter/af_hdcd.c
+++ b/libavfilter/af_hdcd.c
@@ -835,7 +835,6 @@ 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 cb6, cb7; /* watch bits 6 and 7 of the control code, for curiosity */
 } hdcd_state_t;
 
 typedef struct HDCDContext {
@@ -879,8 +878,15 @@ static void hdcd_reset(hdcd_state_t *state, unsigned rate)
 state->count_transient_filter = 0;
 for(i = 0; i < 16; i++) state->gain_counts[i] = 0;
 state->max_gain = 0;
-state->cb6 = 0;
-state->cb7 = 0;
+}
+
+/* update the user info/counters */
+static void hdcd_update_info(hdcd_state_t *state)
+{
+if (state->control & 16) state->count_peak_extend++;
+if (state->control & 32) state->count_transient_filter++;
+state->gain_counts[state->control & 15]++;
+state->max_gain = FFMAX(state->max_gain, (state->control & 15));
 }
 
 static int hdcd_integrate(hdcd_state_t *state, int *flag, const int32_t 
*samples, int count, int stride)
@@ -913,6 +919,7 @@ static int hdcd_integrate(hdcd_state_t *state, int *flag, 
const int32_t *samples
 *flag = 1;
 state->code_counterB++;
 }
+if (*flag) hdcd_update_info(state);
 state->arg = 0;
 }
 if (bits == 0x7e0fa005 || bits == 0x7e0fa006) {
@@ -1011,18 +1018,6 @@ static int hdcd_envelope(int32_t *samples, int count, 
int stride, int gain, int
 return gain;
 }
 
-/* update the user info/flags */
-static void hdcd_update_info(hdcd_state_t *state)
-{
-if (state->control & 16) state->count_peak_extend++;
-if (state->control & 32) state->count_transient_filter++;
-state->gain_counts[state->control & 15]++;
-state->max_gain = FFMAX(state->max_gain, (state->control & 15));
-
-if (state->control & 64) state->cb6++;
-if (state->control & 128) state->cb7++;
-}
-
 static void hdcd_process(hdcd_state_t *state, int32_t *samples, int count, int 
stride)
 {
 int32_t *samples_end = samples + count * stride;
@@ -1031,8 +1026,6 @@ static void hdcd_process(hdcd_state_t *state, int32_t 
*samples, int count, int s
 int target_gain = (state->control & 15) << 7;
 int lead = 0;
 
-hdcd_update_info(state);
-
 while (count > lead) {
 int envelope_run;
 int run;
@@ -1049,7 +1042,6 @@ static void hdcd_process(hdcd_state_t *state, int32_t 
*samples, int count, int s
 lead = run - envelope_run;
 peak_extend = (state->control & 16);
 target_gain = (state->control & 15) << 7;
-hdcd_update_info(state);
 }
 if (lead > 0) {
 av_assert0(samples + lead * stride <= samples_end);
@@ -1157,10 +1149,10 @@ static av_cold void uninit(AVFilterContext *ctx)
 hdcd_state_t *state = >state[i];
 av_log(ctx, AV_LOG_VERBOSE, "Channel %d: counter A: %d, B: %d, C: 
%d\n", i, state->code_counterA,
 state->code_counterB, state->code_counterC);
-av_log(ctx, AV_LOG_VERBOSE, "Channel %d: c(pe): %d, c(tf): %d, cb6: 
%d, cb7: %d\n", i,
-state->count_peak_extend, state->count_transient_filter, 
state->cb6, state->cb7);
+av_log(ctx, AV_LOG_VERBOSE, "Channel %d: cpe: %d, ctf: %d\n", i,
+state->count_peak_extend, state->count_transient_filter);
 for (j = 0; j <= state->max_gain; j++) {
-av_log(ctx, AV_LOG_VERBOSE, "Channel %d: tg %0.1f - %d\n", i, 
GAINTOFLOAT(j), state->gain_counts[j]);
+av_log(ctx, AV_LOG_VERBOSE, "Channel %d: tg %0.1f: %d\n", i, 
GAINTOFLOAT(j), state->gain_counts[j]);
 }
 }
 
-- 
2.7.4

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