[FFmpeg-devel] [PATCH]lavf/mpegts: Convert service name and service provider to utf-8

Carl Eugen Hoyos ceffmpeg at gmail.com
Sat Feb 9 01:51:04 EET 2019


2019-02-08 23:09 GMT+01:00, Marton Balint <cus at passwd.hu>:
>
>
> On Fri, 8 Feb 2019, Carl Eugen Hoyos wrote:
>
>> Hi!
>>
>> Attached patch fixes ticket #6320, tested with the sample from ticket
>> #7069.
>>
>> Please comment, Carl Eugen
>>
>> From fdcd141a29f336925681193a9cdd3f4eaa5c368e Mon Sep 17 00:00:00 2001
>> From: Carl Eugen Hoyos <ceffmpeg at gmail.com>
>> Date: Fri, 8 Feb 2019 01:35:33 +0100
>> Subject: [PATCH] lavf/mpegts: Convert service_name and service_provider to
>>  utf-8.
>>
>> Fixes ticket #6320.
>> ---
>>  libavformat/mpegts.c |   33 +++++++++++++++++++++++++++++++++
>>  1 file changed, 33 insertions(+)
>>
>> diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
>> index b04fd7b..dde610f 100644
>> --- a/libavformat/mpegts.c
>> +++ b/libavformat/mpegts.c
>> @@ -37,6 +37,9 @@
>>  #include "avio_internal.h"
>>  #include "mpeg.h"
>>  #include "isom.h"
>> +#if CONFIG_ICONV
>> +#include <iconv.h>
>> +#endif
>>
>>  /* maximum size in which we look for synchronization if
>>   * synchronization is lost */
>> @@ -674,6 +677,36 @@ static char *getstr8(const uint8_t **pp, const
>> uint8_t *p_end)
>>          return NULL;
>>      if (len > p_end - p)
>>          return NULL;
>> +#if CONFIG_ICONV
>> +    if (len && *p < 0x20) {
>> +        const char *encodings[] = {
>> +            "ISO6937", "ISO-8859-5", "ISO-8859-6", "ISO-8859-7",
>> "ISO-8859-8",
>> +            "ISO-8859-9", "ISO-8859-10", "ISO-8859-11", "",
>> "ISO-8859-13",
>> +            "ISO-8859-14", "ISO-8859-15", "", "", "", "",
>> +            "", "ISO-10646", "KSC_5601", "GB2312", "ISO-10646", "UTF-8",
>> "",
>> +            "", "", "", "", "", "", "", "", ""
>> +        };
>> +        iconv_t cd;
>> +        char *in, *out;
>> +        size_t inlen = len - 1, outlen = inlen * 6;
>> +        cd = iconv_open("UTF-8", encodings[*p]);
>
> Can you add support for the ISO-8859-any case where
> p[0] == 0x10, p[1] == 0x00
> and p[2] == any? I will upload a sample to the trac ticket.

New patch attached.

Thank you, Carl Eugen
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-lavf-mpegts-Convert-service_name-and-service_provide.patch
Type: text/x-patch
Size: 2481 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20190209/0becc2fa/attachment.bin>


More information about the ffmpeg-devel mailing list