source: titan/libeplayer3/include/manager.h @ 42177

Last change on this file since 42177 was 42177, checked in by obi, 6 years ago

reset libeplayer3 to v36

File size: 2.7 KB
Line 
1#ifndef MANAGER_H_
2#define MANAGER_H_
3
4#include <stdio.h>
5#include <stdint.h>
6 
7typedef enum {
8    MANAGER_ADD,
9    MANAGER_LIST,
10    MANAGER_GET,
11    MANAGER_GETNAME,
12    MANAGER_SET,
13    MANAGER_GETENCODING,
14    MANAGER_DEL,
15    MANAGER_GET_TRACK,
16    MANAGER_GET_TRACK_DESC,
17    MANAGER_INIT_UPDATE,
18    MANAGER_UPDATED_TRACK_INFO,
19    MANAGER_REGISTER_UPDATED_TRACK_INFO,
20} ManagerCmd_t;
21
22typedef enum {
23    eTypeES,
24    eTypePES
25} eTrackTypeEplayer;
26
27typedef struct Track_s {
28    char *                Name;
29    char *                Encoding;
30    char *                File;
31    int32_t               Id;
32    int32_t               AVIdx;
33
34    /* new field for ffmpeg - add at the end so no problem
35    * can occur with not changed srt saa container
36    */
37    char                  *language;
38
39    /* length of track */
40    int64_t               duration;
41    uint32_t              frame_rate;
42    uint32_t              TimeScale;
43    int32_t               version;
44    long long int         pts;
45    long long int         dts;
46   
47    /* for later use: */
48    eTrackTypeEplayer     type;
49    int                   width;
50    int                   height;
51    int32_t               aspect_ratio_num;
52    int32_t               aspect_ratio_den;
53
54    /* stream from ffmpeg */
55    void               *  stream;
56    /* AVCodecContext  for steam */
57    void               *  avCodecCtx;
58    /* codec extra data (header or some other stuff) */
59    void               *  extraData;
60    int                       extraSize;
61
62    uint8_t*              aacbuf;
63    unsigned int          aacbuflen;
64    int                   have_aacheader;
65
66    /* If player2 or the elf do not support decoding of audio codec set this.
67     * AVCodec is than used for softdecoding and stream will be injected as PCM */
68    int                   inject_as_pcm;
69    int                   inject_raw_pcm;
70
71    int                   pending;
72} Track_t;
73
74typedef struct TrackDescription_s
75{
76    int                   Id;
77    char *                Name;
78    char *                Encoding;
79    unsigned int          frame_rate;
80    int                   width;
81    int                   height;
82    int32_t               aspect_ratio_num;
83    int32_t               aspect_ratio_den;
84    int                   progressive;
85   
86} TrackDescription_t;
87
88typedef struct Manager_s
89{
90    char * Name;
91    int (* Command) (/*Context_t*/void  *, ManagerCmd_t, void *);
92    char ** Capabilities;
93
94} Manager_t;
95
96typedef struct ManagerHandler_s
97{
98    char *Name;
99    Manager_t *audio;
100    Manager_t *video;
101    Manager_t *subtitle;
102} ManagerHandler_t;
103
104void freeTrack(Track_t* track);
105void copyTrack(Track_t* to, Track_t* from);
106
107#endif
Note: See TracBrowser for help on using the repository browser.