/usr/include/gmerlin/converters.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 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | /*****************************************************************
* 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/>.
* *****************************************************************/
#include <gavl/gavl.h>
#include <gmerlin/plugin.h>
/** \defgroup converters A/V Converters
*
* A/V converters, which can be plugged together with
* filters and input plugins. These are basically wrappers around
* the \ref gavl_audio_converter_t and the \ref gavl_video_converter_t
* with the difference, that they work asynchronous with the
* advantage, that the video converter can do framerate conversion as well.
*
* The functions for reading A/V frames are compatible with the read functions
* of input plugins and filters for easy generation of processing pipelines.
*
* @{
*/
/** \brief Audio converter
*
* Opaque audio converter structure. You don't want to know, what's inside.
*/
typedef struct bg_audio_converter_s bg_audio_converter_t;
/** \brief Video converter
*
* Opaque video converter structure. You don't want to know, what's inside.
*/
typedef struct bg_video_converter_s bg_video_converter_t;
/* Audio */
/** \brief Create an audio converter
* \param opt Audio options
*
* The options should be valid for the whole lifetime of the converter.
*/
bg_audio_converter_t * bg_audio_converter_create(const gavl_audio_options_t * opt);
/** \brief Initialize an audio converter
* \param cnv An audio converter
* \param in_format Input format
* \param out_format Output format
* \returns The number of conversion steps
*
* When this function returns 0 it means, that the converter can be bypassed.
* It should not be used then until the next initialization, which returns nonzero.
*/
int bg_audio_converter_init(bg_audio_converter_t * cnv,
const gavl_audio_format_t * in_format,
const gavl_audio_format_t * out_format);
/** \brief Set input callback of an audio converter
* \param cnv An audio converter
* \param func The function to call
* \param priv The private handle to pass to func
* \param stream The stream argument to pass to func
*/
void bg_audio_converter_connect_input(bg_audio_converter_t * cnv,
bg_read_audio_func_t func, void * priv,
int stream);
/** \brief Read samples from an audio converter
* \param priv An audio converter
* \param frame An audio frame
* \param stream Stream number (must be 0)
* \param num_samples Number of samples to read
* \returns The number of samples read. 0 means EOF.
*
* This function can be used as an input callback for audio filters.
*/
int bg_audio_converter_read(void * priv, gavl_audio_frame_t* frame, int stream,
int num_samples);
/** \brief Destroy an audio converter and free all associated memory
* \param cnv An audio converter
*/
void bg_audio_converter_destroy(bg_audio_converter_t * cnv);
/** \brief Reset an audio converter as if no samples have been processed since initialization
* \param cnv An audio converter
*
* Reset an audio converter as if no samples have been processed since initialization.
*/
void bg_audio_converter_reset(bg_audio_converter_t * cnv);
/* Video */
/** \brief Create a video converter
* \param opt Video options
*
* The options should be valid for the whole lifetime of the converter.
*/
bg_video_converter_t * bg_video_converter_create(const gavl_video_options_t * opt);
/** \brief Initialize a video converter
* \param cnv A video converter
* \param in_format Input format
* \param out_format Output format
* \returns The number of conversion steps
*
* When this function returns 0 it means, that the converter can be bypassed.
* It should not be used then until the next initialization, which returns nonzero.
*/
int bg_video_converter_init(bg_video_converter_t * cnv,
const gavl_video_format_t * in_format,
const gavl_video_format_t * out_format);
/** \brief Set input callback of a video converter
* \param cnv A video converter
* \param func The function to call
* \param priv The private handle to pass to func
* \param stream The stream argument to pass to func
*/
void bg_video_converter_connect_input(bg_video_converter_t * cnv,
bg_read_video_func_t func, void * priv,
int stream);
/** \brief Read a video frame from a video converter
* \param priv A video converter
* \param frame A video frame
* \param stream Stream number (must be 0)
* \returns 1 if a frame was read, 0 means EOF.
*
* This function can be used as an input callback for video filters.
*/
int bg_video_converter_read(void * priv, gavl_video_frame_t* frame, int stream);
/** \brief Destroy a video converter and free all associated memory
* \param cnv A video converter
*/
void bg_video_converter_destroy(bg_video_converter_t * cnv);
/** \brief Reset a video converter as if no samples have been processed since initialization
* \param cnv A video converter
*
* Reset a video converter as if no frame has been processed since initialization.
*/
void bg_video_converter_reset(bg_video_converter_t * cnv);
/**
* @}
*/
|