[FFmpeg-devel] [PATCH] DVB EPG decoder

Marton Balint cus at passwd.hu
Fri Aug 23 01:21:09 EEST 2019



On Thu, 22 Aug 2019, Anthony Delannoy wrote:

> Hi
>
>>> fails to build on MIPS
>>
>> Seems to be because of these two structs within EPGTable and EPGSubTable:
>> +    struct {
>> +        int nb_descriptors;
>> +        void **descriptors;
>> +    };
>
> I made modifications to avoid issues you encountered and put fate
> modifications in the right commit(s).
>
>> Afaict, some patches change files that were added in earlier patches. This may
>> not be ideal.
>
> I committed changements to files (dvb.{h,c}) I added earlier because I
> need descriptors files (dvbdescriptors.{h,c})
> before those changes and  descriptors files need the first version of
> the dvb file (basic get functions).
>
>> Why are the big api changes necessary at all?
>
> I made those big changements to ease the implementation of all others
> DVB tables (i'd like to add support for NIT,
> AIT, TDT,... after EPG) by using the same helper functions
> (avpriv_dvb_get{8,16,32}()) and especially the same
> DVB descriptors code because each descriptor is supported by multiple
> table in general.

I think we should only merge the part of this patchset which makes the EIT 
available as a data stream. Parsing the whole EIT or dumping the data as 
ASCII is not libavcodec's or libavutil's job. Also there is no such 
concept in libavcodec as a data decoder, if something happens to 
work with avcodec_send_packet/avcodec_receive_frame that is mostly luck I 
believe.

I am also not sure if we should add the EIT PID to all programs, that 
would mess up the direct relation between a PMT and an AVProgram, and we 
probably don't want that. So I'd rather see the EIT data stream as a 
standalone PID separate from the programs.

Regards,
Marton



More information about the ffmpeg-devel mailing list