[FFmpeg-devel] Test case for Closed caption decoder.

Clément Bœsch u at pkh.me
Tue Apr 28 10:44:03 CEST 2015


On Tue, Apr 28, 2015 at 02:05:20PM +0530, Anshul wrote:
[...]
> >Where are the line breaks?
> I have added patch in closed caption decoder.

> but that will make fate test fail till closed caption decoder patch is
> applied.

Then FATE test patch should be applied after the CC patch.

> since I have put the reference closed caption with line breaks.
> 
> -Anshul

> From 5b99f623fbf845e0f9bff1d68a61c96e14e31e65 Mon Sep 17 00:00:00 2001
> From: Anshul Maheshwari <er.anshul.maheshwari at gmail.com>
> Date: Tue, 28 Apr 2015 13:58:26 +0530
> Subject: [PATCH] Remove \N at endof screen nd add \n
> 
> Signed-off-by: Anshul Maheshwari <er.anshul.maheshwari at gmail.com>
> ---
>  libavcodec/ccaption_dec.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/libavcodec/ccaption_dec.c b/libavcodec/ccaption_dec.c
> index da43ca6..0123955 100644
> --- a/libavcodec/ccaption_dec.c
> +++ b/libavcodec/ccaption_dec.c
> @@ -338,6 +338,14 @@ static int reap_screen(CCaptionSubContext *ctx, int64_t pts)
>          }
>  
>      }
> +    if(screen->row_used) {
> +            ctx->buffer.len -= 2;

> +            av_bprintf(&ctx->buffer, "\n\r");

No, it's \r\n, but you're not supposed to define that yourself (it could
be \n). The ass API is supposed to do that for you, look at other
decoders.

> +            ret = av_bprint_is_complete(&ctx->buffer);
> +            if( ret == 0) {
> +                ret = AVERROR(ENOMEM);
> +            }
> +    }

Note: style and indent are in blatant violation of the project coding
rules. See http://ffmpeg.org/developer.html#Coding-Rules-1

>      ctx->startv_time = pts;
>      ctx->end_time = pts;
>      return ret;
> -- 
> 2.1.4
> 

> From 1cac66f6aeda244f1b830dedf1723e3c72331f60 Mon Sep 17 00:00:00 2001
> From: Anshul Maheshwari <er.anshul.maheshwari at gmail.com>
> Date: Tue, 28 Apr 2015 14:01:15 +0530
> Subject: [PATCH] Adding Closed caption sub test case
> 
> Signed-off-by: Anshul Maheshwari <er.anshul.maheshwari at gmail.com>
> ---
>  tests/fate/subtitles.mak |  3 +++
>  tests/ref/fate/sub-cc    | 38 ++++++++++++++++++++++++++++++++++++++
>  2 files changed, 41 insertions(+)
>  create mode 100644 tests/ref/fate/sub-cc
> 
> diff --git a/tests/fate/subtitles.mak b/tests/fate/subtitles.mak
> index 53cd4cb..20bf102 100644
> --- a/tests/fate/subtitles.mak
> +++ b/tests/fate/subtitles.mak
> @@ -1,6 +1,9 @@
>  FATE_SUBTITLES_ASS-$(call ALLYES, AQTITLE_DEMUXER TEXT_DECODER ICONV) += fate-sub-aqtitle
>  fate-sub-aqtitle: CMD = fmtstdout ass -sub_charenc windows-1250 -i $(TARGET_SAMPLES)/sub/AQTitle_capability_tester.aqt
>  
> +FATE_SUBTITLES_ASS-$(call ALLYES, CCAPTION_DECODER MOVIE_FILTER MPEGTS_DEMUXER) += fate-sub-cc

> +fate-sub-cc: CMD = fmtstdout ass -f lavfi -i "movie=$(TARGET_SAMPLES)/sub/Closedcaption_atsc_rollup.ts[out0+subcc]"

BTW, do we really need to go through libavfilter to extract the cc?

> +
>  FATE_SUBTITLES_ASS-$(call DEMDEC, JACOSUB, JACOSUB) += fate-sub-jacosub
>  fate-sub-jacosub: CMD = fmtstdout ass -i $(TARGET_SAMPLES)/sub/JACOsub_capability_tester.jss
>  
> diff --git a/tests/ref/fate/sub-cc b/tests/ref/fate/sub-cc
> new file mode 100644
> index 0000000..035a51a
> --- /dev/null
> +++ b/tests/ref/fate/sub-cc
> @@ -0,0 +1,38 @@
> +[Script Info]
> +; Script generated by FFmpeg/Lavc
> +ScriptType: v4.00+
> +PlayResX: 384
> +PlayResY: 288
> +
> +[V4+ Styles]
> +Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
> +Style: Default,Arial,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,0,100,100,0,0,1,1,0,2,10,10,10,0
> +
> +[Events]
> +Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
> +Dialogue: 0,0:00:36.87,0:00:38.37,Default,,0,0,0,,( explosion )
> +Dialogue: 0,0:00:38.37,0:00:40.51,Default,,0,0,0,,( explosion )\N( inaudible radio chatter )
> +Dialogue: 0,0:00:40.51,0:00:41.88,Default,,0,0,0,,( inaudible radio chatter )\N>> Safety remains our number one
> +Dialogue: 0,0:00:41.88,0:00:43.34,Default,,0,0,0,,>> Safety remains our number one\Npriority.
> +Dialogue: 0,0:00:43.34,0:00:44.51,Default,,0,0,0,,priority.\N>> BP can talk about safety all
> +Dialogue: 0,0:00:44.51,0:00:45.88,Default,,0,0,0,,>> BP can talk about safety all\Nthey want, but they're not going
> +Dialogue: 0,0:00:45.88,0:00:47.95,Default,,0,0,0,,they want, but they're not going\Nto become a safer company.
> +Dialogue: 0,0:00:47.95,0:00:49.52,Default,,0,0,0,,to become a safer company.\N>> They base everything on risk.
> +Dialogue: 0,0:00:49.52,0:00:50.65,Default,,0,0,0,,>> They base everything on risk.\N"How many lives can we afford to
> +Dialogue: 0,0:00:50.65,0:00:51.65,Default,,0,0,0,,"How many lives can we afford to\Nlose before we need to deal with
> +Dialogue: 0,0:00:51.65,0:00:52.55,Default,,0,0,0,,lose before we need to deal with\Nthis?"
> +Dialogue: 0,0:00:52.55,0:00:53.25,Default,,0,0,0,,this?"\N>> 9-1.
> +Dialogue: 0,0:00:53.25,0:00:55.22,Default,,0,0,0,,>> 9-1.\N>> Yes, this plant just blew up!
> +Dialogue: 0,0:00:55.22,0:00:57.19,Default,,0,0,0,,>> Yes, this plant just blew up!\N>> From Texas and Alaska to the
> +Dialogue: 0,0:00:57.19,0:00:58.39,Default,,0,0,0,,>> From Texas and Alaska to the\NGulf of Mexico...
> +Dialogue: 0,0:00:58.39,0:01:00.19,Default,,0,0,0,,Gulf of Mexico...\N>> BP apologized again...
> +Dialogue: 0,0:01:00.19,0:01:02.33,Default,,0,0,0,,>> BP apologized again...\N>> ... Apology after apology.
> +Dialogue: 0,0:01:02.33,0:01:03.10,Default,,0,0,0,,>> ... Apology after apology.\N>> They pledged repeatedly to
> +Dialogue: 0,0:01:03.10,0:01:05.40,Default,,0,0,0,,>> They pledged repeatedly to\Nrun a safer operation, yet they
> +Dialogue: 0,0:01:05.40,0:01:07.17,Default,,0,0,0,,run a safer operation, yet they\Ncontinued to cut costs.
> +Dialogue: 0,0:01:07.17,0:01:08.67,Default,,0,0,0,,continued to cut costs.\N>> We have a facility here that
> +Dialogue: 0,0:01:08.67,0:01:10.17,Default,,0,0,0,,>> We have a facility here that\Ncould produce a cloud of gas
> +Dialogue: 0,0:01:10.17,0:01:11.57,Default,,0,0,0,,could produce a cloud of gas\Nthat would make this place look
> +Dialogue: 0,0:01:11.57,0:01:13.04,Default,,0,0,0,,that would make this place look\Nlike Hiroshima.
> +Dialogue: 0,0:01:13.04,0:01:15.21,Default,,0,0,0,,like Hiroshima.\N>> What went wrong at BP?
> +Dialogue: 0,0:01:15.21,0:01:17.11,Default,,0,0,0,,>> What went wrong at BP?\N>> The culture of BP management

This output looks better.

-- 
Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150428/1abaea94/attachment.asc>


More information about the ffmpeg-devel mailing list