On Fri, Feb 8, 2019 at 12:26 AM Carl Eugen Hoyos <ceffm...@gmail.com> wrote: > > 2019-02-07 23:17 GMT+01:00, Jan Ekström <jee...@gmail.com>: > > On Thu, Feb 7, 2019 at 5:46 PM Carl Eugen Hoyos <ceffm...@gmail.com> wrote: > >> > >> 2019-02-07 16:34 GMT+01:00, Moritz Barsnick <barsn...@gmx.net>: > >> > On Thu, Feb 07, 2019 at 14:40:40 +0100, Carl Eugen Hoyos wrote: > >> >> + if (p[0] < 0x20) { > >> >> + p++; > >> >> + if (--len < 0) > >> >> + return NULL; > >> >> + } > >> > > >> > If I understand section "A.2 Selection of character table" of ETSI EN > >> > 300 468 correctly, you need to drop an additional byte if the first > >> > byte (p[0]) is 0x1F, or an additional two bytes if the first one is > >> > 0x10. > >> > >> New patch attached. > >> > > > > This is weird. > > > > I applied this on top of my WIP ARIB branch > > (https://github.com/jeeb/ffmpeg/commits/mpegts_arib_stuff) and now I > > lost service name / provider altogether... > > I mean, the stuff in the branch is "quick and dirty" at this point, > > but it's still peculiar. > > > > This can be seen with both the PID switch sample I recently posted as > > well as with the ARIB captions sample I posted in the libaribb24 > > wrapper thread. > > Reason is that instead of "(*p < 0x20)" it has to be "(len && *p < 0x20)". > > This is also the missing sample, I don't know if I'll succeed with the > conversion. >
It seems like the person who implemented the ARIB STD-B24 encoding and got it merged to linuxtv also implemented ETSI EN 300 468? https://git.linuxtv.org/v4l-utils.git/tree/contrib/gconv/en300-468-tab00.c It is under LGPLv2.1+ so similarly usable. I did take a look at the ARIB one yesterday and while it seems to base an awful lot on the magic that comes from including iconv/{skeleton,loop}.c it doesn't seem completely impenetrable... Jan _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel