64 av_log(avctx,
AV_LOG_ERROR,
"Too big bitrate: reduce sample rate, bitdepth or channels.\n");
101 s->
header[1] = (quant << 6) | (freq << 4) | (avctx->
channels - 1);
117 const int16_t *src16;
127 src16 = (
const int16_t *)frame->
data[0];
135 bytestream2_put_be16(&pb, *src16++);
141 for (
int i = 2;
i;
i--) {
142 bytestream2_put_be16(&pb, src32[0] >> 16);
143 bytestream2_put_be16(&pb, src32[1] >> 16);
144 bytestream2_put_byte(&pb, (*src32++) >> 24);
145 bytestream2_put_byte(&pb, (*src32++) >> 24);
151 bytestream2_put_be16(&pb, src32[0] >> 16);
152 bytestream2_put_be16(&pb, src32[1] >> 16);
153 bytestream2_put_be16(&pb, src32[2] >> 16);
154 bytestream2_put_be16(&pb, src32[3] >> 16);
155 bytestream2_put_byte(&pb, (*src32++) >> 24);
156 bytestream2_put_byte(&pb, (*src32++) >> 24);
157 bytestream2_put_byte(&pb, (*src32++) >> 24);
158 bytestream2_put_byte(&pb, (*src32++) >> 24);
166 avpkt->
size = pkt_size;
188 .supported_samplerates = (
const int[]) { 48000, 96000, 0},
#define AV_CH_LAYOUT_7POINT1
This structure describes decoded (raw) audio or video data.
int64_t bit_rate
the average bitrate
static av_cold int init(AVCodecContext *avctx)
static av_always_inline void bytestream2_init_writer(PutByteContext *p, uint8_t *buf, int buf_size)
#define AV_CH_LAYOUT_STEREO
int block_align
number of bytes per packet if constant and known or 0 Used by some WAV based audio codecs...
int ff_alloc_packet2(AVCodecContext *avctx, AVPacket *avpkt, int64_t size, int64_t min_size)
Check AVPacket size and/or allocate data.
enum AVSampleFormat sample_fmt
audio sample format
static av_cold int pcm_dvd_encode_init(AVCodecContext *avctx)
int64_t duration
Duration of this packet in AVStream->time_base units, 0 if unknown.
static av_cold int pcm_dvd_encode_close(AVCodecContext *avctx)
int64_t pts
Presentation timestamp in time_base units (time when frame should be shown to user).
static int pcm_dvd_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet_ptr)
int bits_per_coded_sample
bits per sample/pixel from the demuxer (needed for huffyuv).
#define AV_CH_LAYOUT_5POINT1
#define i(width, name, range_min, range_max)
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
const char * name
Name of the codec implementation.
#define AV_CODEC_CAP_SMALL_LAST_FRAME
Codec can be fed a final frame with a smaller size.
int frame_size
Number of samples per channel in an audio frame.
Libavcodec external API header.
AVSampleFormat
Audio sample formats.
int sample_rate
samples per second
main external API structure.
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes.
common internal api header.
AVCodec ff_pcm_dvd_encoder
int channels
number of audio channels
static av_always_inline int64_t ff_samples_to_time_base(AVCodecContext *avctx, int64_t samples)
Rescale from sample rate to AVCodecContext.time_base.
#define AV_CH_LAYOUT_MONO
This structure stores compressed data.
int nb_samples
number of audio samples (per channel) described by this frame
int64_t pts
Presentation timestamp in AVStream->time_base units; the time at which the decompressed packet will b...