mirror of
https://github.com/librempeg/librempeg
synced 2024-11-22 18:49:58 +00:00
libavf/avienc: store language metadata for XSUB streams
Formatted in such a way that DivX certified players can decode it. Verified on Sony Playstation 3 and Philips DVP3380. Fixes ticket 2385 Signed-off-by: Erik Olofsson <eaj.olofsson@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
f591ba60ff
commit
f5bffd3a1a
@ -26,6 +26,8 @@
|
||||
#include "avi.h"
|
||||
#include "avio_internal.h"
|
||||
#include "riff.h"
|
||||
#include "libavformat/avlanguage.h"
|
||||
#include "libavutil/avstring.h"
|
||||
#include "libavutil/intreadwrite.h"
|
||||
#include "libavutil/dict.h"
|
||||
#include "libavutil/avassert.h"
|
||||
@ -309,6 +311,16 @@ static int avi_write_header(AVFormatContext *s)
|
||||
ff_riff_write_info_tag(s->pb, "strn", t->value);
|
||||
t = NULL;
|
||||
}
|
||||
if(stream->codec_id == AV_CODEC_ID_XSUB
|
||||
&& (t = av_dict_get(s->streams[i]->metadata, "language", NULL, 0))) {
|
||||
const char* langstr = av_convert_lang_to(t->value, AV_LANG_ISO639_1);
|
||||
t = NULL;
|
||||
if (langstr) {
|
||||
char* str = av_asprintf("Subtitle - %s-xx;02", langstr);
|
||||
ff_riff_write_info_tag(s->pb, "strn", str);
|
||||
av_free(str);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (pb->seekable) {
|
||||
|
Loading…
Reference in New Issue
Block a user