Various metadata-related features and improvements:

- Added support for new "NowMs" field that holds up to where no new packets are guaranteed to show up, in order to lower latency.
- Added support for JSON tracks over all TS-based protocols (input and output)
- Added support for AMF metadata conversion to JSON (RTMP/FLV input)
- Fixed MP4 input subtitle tracks
- Generalized websocket-based outputs to all support the same commands and run the same core logic
- Added new "JSONLine" protocol that allows for generic direct line-by-line ingest of subtitles and/or JSON metadata tracks over a TCP socket or console standard input.
This commit is contained in:
Thulinma 2022-11-09 10:35:07 +01:00
parent c337fff614
commit 3e2a17ff93
36 changed files with 1054 additions and 469 deletions

View file

@ -5,6 +5,7 @@
#include <iostream>
#include <string>
#include <vector>
#include "json.h"
/// Holds all AMF parsing and creation related functions and classes.
namespace AMF{
@ -55,7 +56,7 @@ namespace AMF{
/// container type.
class Object{
public:
std::string Indice();
std::string Indice() const;
obj0type GetType();
double NumValue();
std::string StrValue();
@ -73,6 +74,7 @@ namespace AMF{
Object(std::string indice, obj0type setType = AMF0_OBJECT);
std::string Print(std::string indent = "");
std::string Pack();
JSON::Value toJSON() const;
protected:
std::string myIndice; ///< Holds this objects indice, if any.
@ -95,7 +97,7 @@ namespace AMF{
/// container type.
class Object3{
public:
std::string Indice();
std::string Indice() const;
obj3type GetType();
double DblValue();
int IntValue();
@ -114,6 +116,7 @@ namespace AMF{
Object3(std::string indice, obj3type setType = AMF3_OBJECT);
std::string Print(std::string indent = "");
std::string Pack();
JSON::Value toJSON() const;
protected:
std::string myIndice; ///< Holds this objects indice, if any.