1 /**
2  *  Transcoding
3  *  Copyright (C) 2013 John Törnblom
4  *
5  *  This program is free software: you can redistribute it and/or modify
6  *  it under the terms of the GNU General Public License as published by
7  *  the Free Software Foundation, either version 3 of the License, or
8  *  (at your option) any later version.
9  *
10  *  This program is distributed in the hope that it will be useful,
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  *  GNU General Public License for more details.
14  *
15  *  You should have received a copy of the GNU General Public License
16  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  */
18 #pragma once
19 
20 #include "tvheadend.h"
21 #include "htsmsg.h"
22 
23 typedef struct transcoder_prop {
24   char     tp_vcodec[32];
25   char     tp_vcodec_preset[32];
26   char     tp_acodec[32];
27   char     tp_scodec[32];
28 
29   int8_t   tp_channels;
30   int32_t  tp_vbitrate;
31   int32_t  tp_abitrate;
32   char     tp_language[4];
33   int32_t  tp_resolution;
34 
35   long     tp_nrprocessors;
36   char     tp_src_vcodec[128];
37 } transcoder_props_t;
38 
39 extern uint32_t transcoding_enabled;
40 
41 streaming_target_t *transcoder_create (streaming_target_t *output);
42 void                transcoder_destroy(streaming_target_t *tr);
43 
44 htsmsg_t *transcoder_get_capabilities(int experimental);
45 void transcoder_set_properties  (streaming_target_t *tr,
46 				 transcoder_props_t *prop);
47 
48 
49 void transcoding_init(void);
50