mirror of
https://github.com/tuxbox-neutrino/libstb-hal.git
synced 2025-08-27 15:33:00 +02:00
teletext handling changes
This commit is contained in:
@@ -1762,10 +1762,14 @@ int container_ffmpeg_update_tracks(Context_t *context, char *filename)
|
|||||||
|
|
||||||
lang = av_dict_get(stream->metadata, "language", NULL, 0);
|
lang = av_dict_get(stream->metadata, "language", NULL, 0);
|
||||||
|
|
||||||
|
#ifdef MARTII
|
||||||
|
track.Name = lang ? lang->value : "und";
|
||||||
|
#else
|
||||||
if (lang)
|
if (lang)
|
||||||
track.Name = strdup(lang->value);
|
track.Name = strdup(lang->value);
|
||||||
else
|
else
|
||||||
track.Name = strdup("und");
|
track.Name = strdup("und");
|
||||||
|
#endif
|
||||||
|
|
||||||
ffmpeg_printf(10, "Language %s\n", track.Name);
|
ffmpeg_printf(10, "Language %s\n", track.Name);
|
||||||
|
|
||||||
@@ -1981,10 +1985,14 @@ int container_ffmpeg_update_tracks(Context_t *context, char *filename)
|
|||||||
|
|
||||||
lang = av_dict_get(stream->metadata, "language", NULL, 0);
|
lang = av_dict_get(stream->metadata, "language", NULL, 0);
|
||||||
|
|
||||||
|
#ifdef MARTII
|
||||||
|
track.Name = lang ? lang->value : "und";
|
||||||
|
#else
|
||||||
if (lang)
|
if (lang)
|
||||||
track.Name = strdup(lang->value);
|
track.Name = strdup(lang->value);
|
||||||
else
|
else
|
||||||
track.Name = strdup("und");
|
track.Name = strdup("und");
|
||||||
|
#endif
|
||||||
|
|
||||||
ffmpeg_printf(10, "Language %s\n", track.Name);
|
ffmpeg_printf(10, "Language %s\n", track.Name);
|
||||||
|
|
||||||
@@ -2016,14 +2024,29 @@ int container_ffmpeg_update_tracks(Context_t *context, char *filename)
|
|||||||
track.duration = (double) stream->duration * av_q2d(stream->time_base) * 1000.0;
|
track.duration = (double) stream->duration * av_q2d(stream->time_base) * 1000.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef MARTII
|
||||||
if (track.Name)
|
if (track.Name)
|
||||||
|
#endif
|
||||||
ffmpeg_printf(10, "FOUND SUBTITLE %s\n", track.Name);
|
ffmpeg_printf(10, "FOUND SUBTITLE %s\n", track.Name);
|
||||||
#ifdef MARTII
|
#ifdef MARTII
|
||||||
if (stream->codec->codec_id == CODEC_ID_DVB_TELETEXT && context->manager->teletext) {
|
if (stream->codec->codec_id == CODEC_ID_DVB_TELETEXT && context->manager->teletext) {
|
||||||
if (context->manager->teletext->Command(context, MANAGER_ADD, &track) < 0) {
|
ffmpeg_printf(10, "dvb_teletext\n");
|
||||||
ffmpeg_err("failed to add teletext track %d\n", n);
|
int i = 0;
|
||||||
}
|
AVDictionaryEntry *t = NULL;
|
||||||
|
do {
|
||||||
|
char tmp[30];
|
||||||
|
snprintf(tmp, sizeof(tmp), "teletext_%d", i);
|
||||||
|
t = av_dict_get(stream->metadata, tmp, NULL, 0);
|
||||||
|
if (t) {
|
||||||
|
track.Name = t->value;
|
||||||
|
if (context->manager->teletext->Command(context, MANAGER_ADD, &track) < 0)
|
||||||
|
ffmpeg_err("failed to add teletext track %d\n", n);
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
} while (t);
|
||||||
} else if (stream->codec->codec_id == CODEC_ID_DVB_SUBTITLE && context->manager->dvbsubtitle) {
|
} else if (stream->codec->codec_id == CODEC_ID_DVB_SUBTITLE && context->manager->dvbsubtitle) {
|
||||||
|
ffmpeg_printf(10, "dvb_subtitle\n");
|
||||||
|
lang = av_dict_get(stream->metadata, "language", NULL, 0);
|
||||||
if (context->manager->dvbsubtitle->Command(context, MANAGER_ADD, &track) < 0) {
|
if (context->manager->dvbsubtitle->Command(context, MANAGER_ADD, &track) < 0) {
|
||||||
ffmpeg_err("failed to add dvbsubtitle track %d\n", n);
|
ffmpeg_err("failed to add dvbsubtitle track %d\n", n);
|
||||||
}
|
}
|
||||||
|
@@ -115,7 +115,7 @@ static char ** ManagerList(Context_t *context) {
|
|||||||
teletext_mgr_printf(10, "%s::%s\n", FILENAME, __FUNCTION__);
|
teletext_mgr_printf(10, "%s::%s\n", FILENAME, __FUNCTION__);
|
||||||
|
|
||||||
if (Tracks != NULL) {
|
if (Tracks != NULL) {
|
||||||
|
char tmp[30];
|
||||||
tracklist = malloc(sizeof(char *) * ((TrackCount*2) + 1));
|
tracklist = malloc(sizeof(char *) * ((TrackCount*2) + 1));
|
||||||
|
|
||||||
if (tracklist == NULL)
|
if (tracklist == NULL)
|
||||||
|
Reference in New Issue
Block a user