Re: [FFmpeg-devel] [PATCH 5/5] af_hdcd: tweak hdcd_analyze_prepare() a bit
applied On Mon, Sep 5, 2016 at 6:18 AM, Burt Pwrote: > * use the actual sample rate > * use a more sensible frequency for the tone > * update fate test result > > Signed-off-by: Burt P > --- > libavfilter/af_hdcd.c | 9 ++--- > tests/fate/filter-audio.mak | 2 +- > 2 files changed, 7 insertions(+), 4 deletions(-) > > diff --git a/libavfilter/af_hdcd.c b/libavfilter/af_hdcd.c > index 1487a0b..fde6b7b 100644 > --- a/libavfilter/af_hdcd.c > +++ b/libavfilter/af_hdcd.c > @@ -871,6 +871,7 @@ typedef struct { > * a code. -1 for timer never set. */ > int count_sustain_expired; > > +int rate; /**< sampling rate */ > int _ana_snb; /**< used in the analyze mode tone generator > */ > } hdcd_state; > > @@ -1026,6 +1027,7 @@ static void hdcd_reset(hdcd_state *state, unsigned > rate, unsigned cdt_ms) > state->max_gain = 0; > state->count_sustain_expired = -1; > > +state->rate = rate; > state->_ana_snb = 0; > } > > @@ -1297,7 +1299,8 @@ static int hdcd_scan_stereo(HDCDContext *ctx, const > int32_t *samples, int max) > > /** replace audio with solid tone, but save LSBs */ > static void hdcd_analyze_prepare(hdcd_state *state, int32_t *samples, int > count, int stride) { > -int n; > +int n, f = 300; > +int so = state->rate / f; > for (n = 0; n < count * stride; n += stride) { > /* in analyze mode, the audio is replaced by a solid tone, and > * amplitude is changed to signal when the specified feature is > @@ -1306,9 +1309,9 @@ static void hdcd_analyze_prepare(hdcd_state *state, > int32_t *samples, int count, > * bit 1: Original sample was above PE level */ > int32_t save = (abs(samples[n]) - PEAK_EXT_LEVEL >= 0) ? 2 : 0; /* > above PE level */ > save |= samples[n] & 1; /* save LSB for HDCD > packets */ > -samples[n] = TONEGEN16(state->_ana_snb, 277.18, 44100, 0.1); > +samples[n] = TONEGEN16(state->_ana_snb, f, state->rate, 0.1); > samples[n] = (samples[n] | 3) ^ ((~save) & 3); > -if (++state->_ana_snb > 0x3fff) state->_ana_snb = 0; > +if (++state->_ana_snb > so) state->_ana_snb = 0; > } > } > > diff --git a/tests/fate/filter-audio.mak b/tests/fate/filter-audio.mak > index 2066fa9..cf92ef6 100644 > --- a/tests/fate/filter-audio.mak > +++ b/tests/fate/filter-audio.mak > @@ -242,7 +242,7 @@ FATE_AFILTER_SAMPLES-$(call FILTERDEMDECENCMUX, HDCD, > FLAC, FLAC, PCM_S24LE, PCM > fate-filter-hdcd-analyze: SRC = $(TARGET_SAMPLES)/filter/hdcd.flac > fate-filter-hdcd-analyze: CMD = md5 -i $(SRC) -af hdcd=analyze_mode=pe -f > s24le > fate-filter-hdcd-analyze: CMP = oneline > -fate-filter-hdcd-analyze: REF = 81a4f00f85a585bc0198e9a0670a8cde > +fate-filter-hdcd-analyze: REF = 6e39dc4629c1e84321c0d8bc069b42f6 > > FATE_AFILTER_SAMPLES-$(call FILTERDEMDECENCMUX, HDCD, FLAC, FLAC, PCM_S24LE, > PCM_S24LE) += fate-filter-hdcd-false-positive > fate-filter-hdcd-false-positive: SRC = > $(TARGET_SAMPLES)/filter/hdcd-false-positive.flac > -- > 2.7.4 > -- Burt ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 5/5] af_hdcd: tweak hdcd_analyze_prepare() a bit
2016-09-06 14:01 GMT+02:00 Burt P.: > In this patch, I took the opportunity to remove a hard-coded rate and > use one from the framework. Thanks for explaining! Carl Eugen ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 5/5] af_hdcd: tweak hdcd_analyze_prepare() a bit
On Tue, Sep 6, 2016 at 6:12 AM, Carl Eugen Hoyoswrote: > 2016-09-06 13:02 GMT+02:00 Burt P. : >> On Tue, Sep 6, 2016 at 5:22 AM, Carl Eugen Hoyos wrote: >>> 2016-09-05 13:18 GMT+02:00 Burt P : * use the actual sample rate >>> >>> Is hdcd supposed to work for sample_rates >>> different from 44100? >> >> As I understand it, yes. The PM Model 2 supported code >> insertion at all CD and DVD-Audio sample rates, so: >> 44.1, 48, 88.2, 96, 176.4, and 192 kHz. >> If any DVD-Audio was ever actually released with HDCD >> encoding, I do not know. > > Is there a test if the sample_rate is any of the above? > Right now, query_formats only accepts 44100. I don't have any higher rate samples to test, I don't know if it is a good idea to just add the other rates to the accepted list if I can't test the results. In this patch, I took the opportunity to remove a hard-coded rate and use one from the framework. I did the same in patch 4/5 in this set. hdcd_reset() already uses a variable rate to set the cdt period. All that is left is to make whatever changes to hdcd_envelope(), if any. So, perhaps in the future it will be possible to support the higher rates. I don't have any HDCD-encoded DVD-Audio (or any DVD-Audio), and I also don't have a PM Model Two to generate some. For now anyway, I can't test it. -- Burt ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 5/5] af_hdcd: tweak hdcd_analyze_prepare() a bit
2016-09-06 13:02 GMT+02:00 Burt P.: > On Tue, Sep 6, 2016 at 5:22 AM, Carl Eugen Hoyos wrote: >> 2016-09-05 13:18 GMT+02:00 Burt P : >>> * use the actual sample rate >> >> Is hdcd supposed to work for sample_rates >> different from 44100? > > As I understand it, yes. The PM Model 2 supported code > insertion at all CD and DVD-Audio sample rates, so: > 44.1, 48, 88.2, 96, 176.4, and 192 kHz. > If any DVD-Audio was ever actually released with HDCD > encoding, I do not know. Is there a test if the sample_rate is any of the above? >>> * use a more sensible frequency for the tone >>> * update fate test result >> >> Can't this be split? > > It could, if you would like it to be. You are the maintainer;-) Carl Eugen ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 5/5] af_hdcd: tweak hdcd_analyze_prepare() a bit
On Tue, Sep 6, 2016 at 5:22 AM, Carl Eugen Hoyoswrote: > 2016-09-05 13:18 GMT+02:00 Burt P : >> * use the actual sample rate > > Is hdcd supposed to work for sample_rates > different from 44100? As I understand it, yes. The PM Model 2 supported code insertion at all CD and DVD-Audio sample rates, so: 44.1, 48, 88.2, 96, 176.4, and 192 kHz. If any DVD-Audio was ever actually released with HDCD encoding, I do not know. >> * use a more sensible frequency for the tone >> * update fate test result > > Can't this be split? It could, if you would like it to be. ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 5/5] af_hdcd: tweak hdcd_analyze_prepare() a bit
2016-09-05 13:18 GMT+02:00 Burt P: > * use the actual sample rate Is hdcd supposed to work for sample_rates different from 44100? > * use a more sensible frequency for the tone > * update fate test result Can't this be split? Carl Eugen ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
[FFmpeg-devel] [PATCH 5/5] af_hdcd: tweak hdcd_analyze_prepare() a bit
* use the actual sample rate * use a more sensible frequency for the tone * update fate test result Signed-off-by: Burt P--- libavfilter/af_hdcd.c | 9 ++--- tests/fate/filter-audio.mak | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/libavfilter/af_hdcd.c b/libavfilter/af_hdcd.c index 1487a0b..fde6b7b 100644 --- a/libavfilter/af_hdcd.c +++ b/libavfilter/af_hdcd.c @@ -871,6 +871,7 @@ typedef struct { * a code. -1 for timer never set. */ int count_sustain_expired; +int rate; /**< sampling rate */ int _ana_snb; /**< used in the analyze mode tone generator */ } hdcd_state; @@ -1026,6 +1027,7 @@ static void hdcd_reset(hdcd_state *state, unsigned rate, unsigned cdt_ms) state->max_gain = 0; state->count_sustain_expired = -1; +state->rate = rate; state->_ana_snb = 0; } @@ -1297,7 +1299,8 @@ static int hdcd_scan_stereo(HDCDContext *ctx, const int32_t *samples, int max) /** replace audio with solid tone, but save LSBs */ static void hdcd_analyze_prepare(hdcd_state *state, int32_t *samples, int count, int stride) { -int n; +int n, f = 300; +int so = state->rate / f; for (n = 0; n < count * stride; n += stride) { /* in analyze mode, the audio is replaced by a solid tone, and * amplitude is changed to signal when the specified feature is @@ -1306,9 +1309,9 @@ static void hdcd_analyze_prepare(hdcd_state *state, int32_t *samples, int count, * bit 1: Original sample was above PE level */ int32_t save = (abs(samples[n]) - PEAK_EXT_LEVEL >= 0) ? 2 : 0; /* above PE level */ save |= samples[n] & 1; /* save LSB for HDCD packets */ -samples[n] = TONEGEN16(state->_ana_snb, 277.18, 44100, 0.1); +samples[n] = TONEGEN16(state->_ana_snb, f, state->rate, 0.1); samples[n] = (samples[n] | 3) ^ ((~save) & 3); -if (++state->_ana_snb > 0x3fff) state->_ana_snb = 0; +if (++state->_ana_snb > so) state->_ana_snb = 0; } } diff --git a/tests/fate/filter-audio.mak b/tests/fate/filter-audio.mak index 2066fa9..cf92ef6 100644 --- a/tests/fate/filter-audio.mak +++ b/tests/fate/filter-audio.mak @@ -242,7 +242,7 @@ FATE_AFILTER_SAMPLES-$(call FILTERDEMDECENCMUX, HDCD, FLAC, FLAC, PCM_S24LE, PCM fate-filter-hdcd-analyze: SRC = $(TARGET_SAMPLES)/filter/hdcd.flac fate-filter-hdcd-analyze: CMD = md5 -i $(SRC) -af hdcd=analyze_mode=pe -f s24le fate-filter-hdcd-analyze: CMP = oneline -fate-filter-hdcd-analyze: REF = 81a4f00f85a585bc0198e9a0670a8cde +fate-filter-hdcd-analyze: REF = 6e39dc4629c1e84321c0d8bc069b42f6 FATE_AFILTER_SAMPLES-$(call FILTERDEMDECENCMUX, HDCD, FLAC, FLAC, PCM_S24LE, PCM_S24LE) += fate-filter-hdcd-false-positive fate-filter-hdcd-false-positive: SRC = $(TARGET_SAMPLES)/filter/hdcd-false-positive.flac -- 2.7.4 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel