[vlc-devel] [PATCH 1/3] input: enable decoders for data_es

Rémi Denis-Courmont remi at remlab.net
Fri Sep 29 14:59:09 CEST 2017


Le tiistaina 26. syyskuuta 2017, 23.24.25 EEST Francois Cartegnie a écrit :
> ---
>  src/input/decoder.c | 7 +++++++
>  src/input/es_out.c  | 6 +++++-
>  2 files changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/src/input/decoder.c b/src/input/decoder.c
> index 54eec0f..41ff1a0 100644
> --- a/src/input/decoder.c
> +++ b/src/input/decoder.c
> @@ -175,6 +175,7 @@ static int LoadDecoder( decoder_t *p_dec, bool
> b_packetizer, [VIDEO_ES] = "video decoder",
>              [AUDIO_ES] = "audio decoder",
>              [SPU_ES] = "spu decoder",
> +            [DATA_ES] = "data decoder",
>          };
>          p_dec->p_module = module_need( p_dec, caps[p_dec->fmt_in.i_cat],
>                                         "$codec", false );
> @@ -1272,6 +1273,8 @@ static void DecoderUpdateStatSpu( decoder_owner_sys_t
> *p_owner, (void) p_owner; (void) decoded; (void) lost;
>  }
> 
> +#define DecoderUpdateStatData DecoderUpdateStatSpu
> +
>  static int DecoderQueueSpu( decoder_t *p_dec, subpicture_t *p_spu )
>  {
>      assert( p_spu );
> @@ -1747,6 +1750,10 @@ static decoder_t * CreateDecoder( vlc_object_t
> *p_parent, p_dec->pf_queue_sub = DecoderQueueSpu;
>              p_owner->pf_update_stat = DecoderUpdateStatSpu;
>              break;
> +        case DATA_ES:
> +            p_dec->pf_queue_cc = DecoderQueueCc;
> +            p_owner->pf_update_stat = DecoderUpdateStatData;
> +            break;

IMHO, DATA should mean that the pipeline does not interpret it at all: 
specifically, it is ignored for normal output, and always selected and passed 
as is for streaming output. What this patch does is ostensibly closed caption, 
not plain data.

In any case, this needs to be reposted after the code freeze ends.

-- 
雷米‧德尼-库尔蒙
https://www.remlab.net/
.



More information about the vlc-devel mailing list