[FFmpeg-devel] [PATCH] lavf/matroska: Handle ASS as ASS instead of SSA

ValdikSS iam at valdikss.org.ru
Wed Apr 30 23:45:58 CEST 2014



On 05/01/2014 01:24 AM, Clément Bœsch wrote:
> On Thu, May 01, 2014 at 01:18:32AM +0400, ValdikSS wrote:
>> On 05/01/2014 01:05 AM, Clément Bœsch wrote:
>>> On Thu, May 01, 2014 at 12:56:23AM +0400, ValdikSS wrote:
>>>> After introducing ASS codec id and renaming (old) ASS to SSA,
>>>> Matroska ASS codec tag was mistakenly renamed too, making ASS
>>>> subtitles handled as SSA.
>>>>
>>>> This fixes Ticket #3491
>>>> ---
>>>>   libavformat/matroska.c | 4 ++--
>>>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/libavformat/matroska.c b/libavformat/matroska.c
>>>> index e8e9996..7dc09b3 100644
>>>> --- a/libavformat/matroska.c
>>>> +++ b/libavformat/matroska.c
>>>> @@ -67,9 +67,9 @@ const CodecTags ff_mkv_codec_tags[]={
>>>>       {"S_TEXT/UTF8"      , AV_CODEC_ID_SRT},
>>>>       {"S_TEXT/ASCII"     , AV_CODEC_ID_TEXT},
>>>>   #if FF_API_ASS_SSA
>>>> -    {"S_TEXT/ASS"       , AV_CODEC_ID_SSA},
>>>> +    {"S_TEXT/ASS"       , AV_CODEC_ID_ASS},
>>>>       {"S_TEXT/SSA"       , AV_CODEC_ID_SSA},
>>>> -    {"S_ASS"            , AV_CODEC_ID_SSA},
>>>> +    {"S_ASS"            , AV_CODEC_ID_ASS},
>>>>       {"S_SSA"            , AV_CODEC_ID_SSA},
>>>>   #endif
>>>>       {"S_TEXT/ASS"       , AV_CODEC_ID_ASS},
>>>
>>> This was for compatibility, look below the #if/#endif. "SSA" packets were
>>> still preferred, but maybe we can remove that ifdefery now.
>>>
>>> (Note that I didn't look at the ticket yet)
>> As far as I understand, this #if/#endif block is used only if we use new
>> API, which was introduced with the ASS/SSA split. If FF_API_ASS_SSA is not
>> defined, we use old api with old ASS (and without SSA).
>>
>> If the old API is not used anymore, it might be better to always use
>> #if/#endif block and remove the block below.
>
> See 7c1a002c
>
> tl;dr: AV_CODEC_ID_SSA is the old re-crafted hack format, AV_CODEC_ID_ASS
> is the new verbatim data from mkv. Until the next bump (FF_API_ASS_SSA
> ifdefery), we still continue to re-craft the packets because the
> applications might be relying on that format instead. When we will bump,
> the FF_API_ASS_SSA chunk will disappear and the verbatim format will be
> choosen.

Thank you. It seems like I sent patch in haste.
When the api bump will be? A lot of MKv files are muxed with ReadOrder 
and remuxing them breaks subtitles (see the ticket).


More information about the ffmpeg-devel mailing list