Decoding subtitles streams.

This commit is contained in:
Zoe Roux 2019-09-10 19:16:09 +02:00
parent 3cf861a7c3
commit 5baf78fdde
4 changed files with 28 additions and 21 deletions

View File

@ -7,12 +7,12 @@
#include <iostream>
extern "C" API struct Stream
{
std::string title;
std::string languageCode;
std::string format;
bool isDefault;
bool isForced;
std::string path;
};
//extern "C" API struct Stream
//{
// std::string title;
// std::string languageCode;
// std::string format;
// bool isDefault;
// bool isForced;
// std::string path;
//};

View File

@ -13,11 +13,6 @@ int Init()
return 42;
}
//Video ScanVideo(std::string path)
//{
//
//}
void ExtractSubtitles(const char* path)
{
AVFormatContext* formatContext = NULL;
@ -34,13 +29,25 @@ void ExtractSubtitles(const char* path)
return;
}
AVDictionaryEntry* metadata = NULL;
while ((metadata = av_dict_get(formatContext->metadata, "", metadata, AV_DICT_IGNORE_SUFFIX)))
for (unsigned int i = 0; i < formatContext->nb_streams; i++)
{
std::cout << metadata->key << " - " << metadata->value << std::endl;
AVStream* stream = formatContext->streams[i];
const AVCodecContext* streamContext = stream->codec;
if (streamContext->codec_type == AVMEDIA_TYPE_SUBTITLE)
{
const AVCodec* dec = streamContext->codec;
std::cout << "Stream #" << i << ", stream type: " << streamContext->codec_type << " codec: " << dec->long_name << std::endl;
}
}
//const char* outputPath = "subtitle.ass";
//if (avformat_alloc_output_context2(&formatContext, NULL, NULL, outputPath) < 0)
//{
// std::cout << "Error: Can't create output file at " << outputPath << std::endl;
// return;
//}
avformat_close_input(&formatContext);
return;

View File

@ -13,7 +13,7 @@ namespace Kyoo.InternalAPI
public void ExtractSubtitles(string path)
{
Debug.WriteLine("&Transcoder extract subs: " + TranscoderAPI.ExtractSubtitles(path));
TranscoderAPI.ExtractSubtitles(path);
}
public void GetVideo(string path)

View File

@ -7,9 +7,9 @@ namespace Kyoo.InternalAPI.TranscoderLink
private const string TranscoderPath = @"C:\Projects\Kyoo\Debug\Kyoo.Transcoder.dll";
[DllImport(TranscoderPath, CallingConvention = CallingConvention.Cdecl)]
public extern static string Init();
public extern static int Init();
[DllImport(TranscoderPath, CallingConvention = CallingConvention.Cdecl)]
public extern static string ExtractSubtitles(string path);
public extern static void ExtractSubtitles(string path);
}
}