/usr/include/gmerlin/encoder.h is in libgmerlin-dev 1.2.0~dfsg+1-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | /*****************************************************************
* gmerlin - a general purpose multimedia framework and applications
*
* Copyright (c) 2001 - 2011 Members of the Gmerlin project
* gmerlin-general@lists.sourceforge.net
* http://gmerlin.sourceforge.net
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* *****************************************************************/
/* Frontend for encoder plugins:
It transparently handles the case that each stream goes to a
separate file or not.
*/
#include <gmerlin/transcoder_track.h>
typedef struct bg_encoder_s bg_encoder_t;
bg_encoder_t * bg_encoder_create(bg_plugin_registry_t * plugin_reg,
bg_cfg_section_t * section,
bg_transcoder_track_t * tt,
int stream_mask, int flag_mask);
void
bg_encoder_set_callbacks(bg_encoder_t * e, bg_encoder_callbacks_t * cb);
void
bg_encoder_set_video_pass(bg_encoder_t * enc,
int stream, int pass, int total_passes,
const char * stats_file);
/* Also closes all internal encoders */
void bg_encoder_destroy(bg_encoder_t * enc, int do_delete);
int bg_encoder_open(bg_encoder_t * enc, const char * filename_base,
const gavl_metadata_t * metadata,
const bg_chapter_list_t * chapter_list);
int bg_encoder_writes_compressed_audio(bg_encoder_t * enc,
const gavl_audio_format_t * format,
const gavl_compression_info_t * info);
int bg_encoder_writes_compressed_video(bg_encoder_t * enc,
const gavl_video_format_t * format,
const gavl_compression_info_t * info);
/* Add streams */
int bg_encoder_add_audio_stream(bg_encoder_t *, const gavl_metadata_t * m,
const gavl_audio_format_t * format,
int index);
int bg_encoder_add_video_stream(bg_encoder_t *,
const gavl_metadata_t * m,
const gavl_video_format_t * format,
int index);
int bg_encoder_add_audio_stream_compressed(bg_encoder_t *,
const gavl_metadata_t * m,
const gavl_audio_format_t * format,
const gavl_compression_info_t * info,
int index);
int bg_encoder_add_video_stream_compressed(bg_encoder_t *,
const gavl_metadata_t * m,
const gavl_video_format_t * format,
const gavl_compression_info_t * info,
int index);
int bg_encoder_add_subtitle_text_stream(bg_encoder_t *,
const gavl_metadata_t * m,
int timescale,
int index);
int bg_encoder_add_subtitle_overlay_stream(bg_encoder_t *,
const gavl_metadata_t * m,
const gavl_video_format_t * format,
int index,
bg_stream_type_t source_format);
/* Get formats */
void bg_encoder_get_audio_format(bg_encoder_t *, int stream,
gavl_audio_format_t*ret);
void bg_encoder_get_video_format(bg_encoder_t *, int stream,
gavl_video_format_t*ret);
void bg_encoder_get_subtitle_overlay_format(bg_encoder_t *, int stream,
gavl_video_format_t*ret);
void bg_encoder_get_subtitle_text_timescale(bg_encoder_t *, int stream,
int * ret);
/* Start encoding */
int bg_encoder_start(bg_encoder_t *);
/* Write frame */
int bg_encoder_write_audio_frame(bg_encoder_t *,
gavl_audio_frame_t * frame, int stream);
int bg_encoder_write_video_frame(bg_encoder_t *,
gavl_video_frame_t * frame, int stream);
int bg_encoder_write_subtitle_text(bg_encoder_t *,const char * text,
int64_t start, int64_t duration, int stream);
int bg_encoder_write_subtitle_overlay(bg_encoder_t *,
gavl_overlay_t * ovl, int stream);
int bg_encoder_write_audio_packet(bg_encoder_t *,
gavl_packet_t * p, int stream);
int bg_encoder_write_video_packet(bg_encoder_t *,
gavl_packet_t * p, int stream);
/* Update metadata */
void bg_encoder_update_metadata(bg_encoder_t *,
const char * name,
const gavl_metadata_t * m);
|