* qatar/master: avformat: Drop pointless "format" from container long names swscale: bury one more piece of inline asm under HAVE_INLINE_ASM. wv: K&R formatting cosmetics configure: Add missing descriptions to help output h264_ps: declare array of colorspace strings on its own line. fate: amix: specify f32 sample format for comparison tiny_psnr: support 32-bit float samples eamad/eatgq/eatqi: call special EA IDCT directly eamad: remove use of MpegEncContext mpegvideo: remove unnecessary inclusions of faandct.h af_asyncts: avoid overflow in out_size with large delta values af_asyncts: add first_pts option Conflicts: configure libavcodec/eamad.c libavcodec/h264_ps.c libavformat/crcenc.c libavformat/ffmdec.c libavformat/ffmenc.c libavformat/framecrcenc.c libavformat/md5enc.c libavformat/nutdec.c libavformat/rawenc.c libavformat/yuv4mpeg.c tests/tiny_psnr.c Merged-by: Michael Niedermayer <michaelni@gmx.at>tags/n1.0
@@ -119,6 +119,8 @@ Component options: | |||||
--enable-x11grab enable X11 grabbing [no] | --enable-x11grab enable X11 grabbing [no] | ||||
--disable-network disable network support [no] | --disable-network disable network support [no] | ||||
--disable-dct disable DCT code | --disable-dct disable DCT code | ||||
--disable-dwt disable DWT code | |||||
--disable-lsp disable LSP code | |||||
--disable-mdct disable MDCT code | --disable-mdct disable MDCT code | ||||
--disable-rdft disable RDFT code | --disable-rdft disable RDFT code | ||||
--disable-fft disable FFT code | --disable-fft disable FFT code | ||||
@@ -229,17 +231,19 @@ Advanced options (experts only): | |||||
--yasmexe=EXE use yasm-compatible assembler EXE [$yasmexe_default] | --yasmexe=EXE use yasm-compatible assembler EXE [$yasmexe_default] | ||||
--cc=CC use C compiler CC [$cc_default] | --cc=CC use C compiler CC [$cc_default] | ||||
--cxx=CXX use C compiler CXX [$cxx_default] | --cxx=CXX use C compiler CXX [$cxx_default] | ||||
--dep-cc=DEPCC use dependency generator DEPCC [$cc_default] | |||||
--ld=LD use linker LD [$ld_default] | --ld=LD use linker LD [$ld_default] | ||||
--host-cc=HOSTCC use host C compiler HOSTCC | --host-cc=HOSTCC use host C compiler HOSTCC | ||||
--host-cflags=HCFLAGS use HCFLAGS when compiling for host | --host-cflags=HCFLAGS use HCFLAGS when compiling for host | ||||
--host-ldflags=HLDFLAGS use HLDFLAGS when linking for host | --host-ldflags=HLDFLAGS use HLDFLAGS when linking for host | ||||
--host-libs=HLIBS use libs HLIBS when linking for host | --host-libs=HLIBS use libs HLIBS when linking for host | ||||
--host-os=OS compiler host OS [$target_os] | |||||
--extra-cflags=ECFLAGS add ECFLAGS to CFLAGS [$CFLAGS] | --extra-cflags=ECFLAGS add ECFLAGS to CFLAGS [$CFLAGS] | ||||
--extra-cxxflags=ECFLAGS add ECFLAGS to CXXFLAGS [$CXXFLAGS] | --extra-cxxflags=ECFLAGS add ECFLAGS to CXXFLAGS [$CXXFLAGS] | ||||
--extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS] | --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS] | ||||
--extra-libs=ELIBS add ELIBS [$ELIBS] | --extra-libs=ELIBS add ELIBS [$ELIBS] | ||||
--extra-version=STRING version string suffix [] | --extra-version=STRING version string suffix [] | ||||
--optflags override optimization-related compiler flags | |||||
--optflags=OPTFLAGS override optimization-related compiler flags | |||||
--build-suffix=SUFFIX library name suffix [] | --build-suffix=SUFFIX library name suffix [] | ||||
--malloc-prefix=PREFIX prefix malloc and related names with PREFIX | --malloc-prefix=PREFIX prefix malloc and related names with PREFIX | ||||
--progs-suffix=SUFFIX program name suffix [] | --progs-suffix=SUFFIX program name suffix [] | ||||
@@ -248,6 +252,7 @@ Advanced options (experts only): | |||||
instruction selection, may crash on older CPUs) | instruction selection, may crash on older CPUs) | ||||
--enable-pic build position-independent code | --enable-pic build position-independent code | ||||
--enable-sram allow use of on-chip SRAM | --enable-sram allow use of on-chip SRAM | ||||
--enable-thumb compile for Thumb instruction set | |||||
--disable-symver disable symbol versioning | --disable-symver disable symbol versioning | ||||
--disable-fastdiv disable table-based division | --disable-fastdiv disable table-based division | ||||
--enable-hardcoded-tables use hardcoded tables instead of runtime generation | --enable-hardcoded-tables use hardcoded tables instead of runtime generation | ||||
@@ -707,6 +707,13 @@ adding/dropping samples. | |||||
@item max_comp | @item max_comp | ||||
Maximum compensation in samples per second. | Maximum compensation in samples per second. | ||||
@item first_pts | |||||
Assume the first pts should be this value. | |||||
This allows for padding/trimming at the start of stream. By default, no | |||||
assumption is made about the first frame's expected pts, so no padding or | |||||
trimming is done. For example, this could be set to 0 to pad the beginning with | |||||
silence if an audio stream starts after the video stream. | |||||
@end table | @end table | ||||
@section channelsplit | @section channelsplit | ||||
@@ -2880,9 +2880,6 @@ av_cold void ff_dsputil_init(DSPContext* c, AVCodecContext *avctx) | |||||
c->idct_add= ff_faanidct_add; | c->idct_add= ff_faanidct_add; | ||||
c->idct = ff_faanidct; | c->idct = ff_faanidct; | ||||
c->idct_permutation_type= FF_NO_IDCT_PERM; | c->idct_permutation_type= FF_NO_IDCT_PERM; | ||||
}else if(CONFIG_EATGQ_DECODER && avctx->idct_algo==FF_IDCT_EA) { | |||||
c->idct_put= ff_ea_idct_put_c; | |||||
c->idct_permutation_type= FF_NO_IDCT_PERM; | |||||
}else{ //accurate/default | }else{ //accurate/default | ||||
c->idct_put = ff_simple_idct_put_8; | c->idct_put = ff_simple_idct_put_8; | ||||
c->idct_add = ff_simple_idct_add_8; | c->idct_add = ff_simple_idct_add_8; | ||||
@@ -108,9 +108,6 @@ PUTAVG_PIXELS(14) | |||||
#define ff_put_pixels16x16_c ff_put_pixels16x16_8_c | #define ff_put_pixels16x16_c ff_put_pixels16x16_8_c | ||||
#define ff_avg_pixels16x16_c ff_avg_pixels16x16_8_c | #define ff_avg_pixels16x16_c ff_avg_pixels16x16_8_c | ||||
/* EA functions */ | |||||
void ff_ea_idct_put_c(uint8_t *dest, int linesize, DCTELEM *block); | |||||
/* RV40 functions */ | /* RV40 functions */ | ||||
void ff_put_rv40_qpel16_mc33_c(uint8_t *dst, uint8_t *src, int stride); | void ff_put_rv40_qpel16_mc33_c(uint8_t *dst, uint8_t *src, int stride); | ||||
void ff_avg_rv40_qpel16_mc33_c(uint8_t *dst, uint8_t *src, int stride); | void ff_avg_rv40_qpel16_mc33_c(uint8_t *dst, uint8_t *src, int stride); | ||||
@@ -26,6 +26,7 @@ | |||||
*/ | */ | ||||
#include "dsputil.h" | #include "dsputil.h" | ||||
#include "eaidct.h" | |||||
#define ASQRT 181 /* (1/sqrt(2))<<8 */ | #define ASQRT 181 /* (1/sqrt(2))<<8 */ | ||||
#define A4 669 /* cos(pi/8)*sqrt(2)<<9 */ | #define A4 669 /* cos(pi/8)*sqrt(2)<<9 */ | ||||
@@ -0,0 +1,27 @@ | |||||
/* | |||||
* This file is part of FFmpeg | |||||
* | |||||
* FFmpeg is free software; you can redistribute it and/or | |||||
* modify it under the terms of the GNU Lesser General Public | |||||
* License as published by the Free Software Foundation; either | |||||
* version 2.1 of the License, or (at your option) any later version. | |||||
* | |||||
* FFmpeg 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 | |||||
* Lesser General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU Lesser General Public | |||||
* License along with FFmpeg; if not, write to the Free Software | |||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||||
*/ | |||||
#ifndef AVCODEC_EAIDCT_H | |||||
#define AVCODEC_EAIDCT_H | |||||
#include <stdint.h> | |||||
#include "dsputil.h" | |||||
void ff_ea_idct_put_c(uint8_t *dest, int linesize, DCTELEM *block); | |||||
#endif /* AVCODEC_EAIDCT_H */ |
@@ -32,6 +32,7 @@ | |||||
#include "get_bits.h" | #include "get_bits.h" | ||||
#include "dsputil.h" | #include "dsputil.h" | ||||
#include "aandcttab.h" | #include "aandcttab.h" | ||||
#include "eaidct.h" | |||||
#include "mpeg12.h" | #include "mpeg12.h" | ||||
#include "mpeg12data.h" | #include "mpeg12data.h" | ||||
#include "libavutil/imgutils.h" | #include "libavutil/imgutils.h" | ||||
@@ -42,12 +43,18 @@ | |||||
#define MADe_TAG MKTAG('M', 'A', 'D', 'e') /* MAD lqp-frame */ | #define MADe_TAG MKTAG('M', 'A', 'D', 'e') /* MAD lqp-frame */ | ||||
typedef struct MadContext { | typedef struct MadContext { | ||||
MpegEncContext s; | |||||
AVCodecContext *avctx; | |||||
DSPContext dsp; | |||||
AVFrame frame; | AVFrame frame; | ||||
AVFrame last_frame; | AVFrame last_frame; | ||||
GetBitContext gb; | |||||
void *bitstream_buf; | void *bitstream_buf; | ||||
unsigned int bitstream_buf_size; | unsigned int bitstream_buf_size; | ||||
DECLARE_ALIGNED(16, DCTELEM, block)[64]; | DECLARE_ALIGNED(16, DCTELEM, block)[64]; | ||||
ScanTable scantable; | |||||
uint16_t quant_matrix[64]; | |||||
int mb_x; | |||||
int mb_y; | |||||
} MadContext; | } MadContext; | ||||
static void bswap16_buf(uint16_t *dst, const uint16_t *src, int count) | static void bswap16_buf(uint16_t *dst, const uint16_t *src, int count) | ||||
@@ -59,14 +66,12 @@ static void bswap16_buf(uint16_t *dst, const uint16_t *src, int count) | |||||
static av_cold int decode_init(AVCodecContext *avctx) | static av_cold int decode_init(AVCodecContext *avctx) | ||||
{ | { | ||||
MadContext *t = avctx->priv_data; | |||||
MpegEncContext *s = &t->s; | |||||
MadContext *s = avctx->priv_data; | |||||
s->avctx = avctx; | s->avctx = avctx; | ||||
avctx->pix_fmt = PIX_FMT_YUV420P; | avctx->pix_fmt = PIX_FMT_YUV420P; | ||||
if (avctx->idct_algo == FF_IDCT_AUTO) | |||||
avctx->idct_algo = FF_IDCT_EA; | |||||
ff_dsputil_init(&s->dsp, avctx); | ff_dsputil_init(&s->dsp, avctx); | ||||
ff_init_scantable(s->dsp.idct_permutation, &s->intra_scantable, ff_zigzag_direct); | |||||
ff_init_scantable_permutation(s->dsp.idct_permutation, FF_NO_IDCT_PERM); | |||||
ff_init_scantable(s->dsp.idct_permutation, &s->scantable, ff_zigzag_direct); | |||||
ff_mpeg12_init_vlcs(); | ff_mpeg12_init_vlcs(); | ||||
return 0; | return 0; | ||||
} | } | ||||
@@ -83,19 +88,18 @@ static inline void comp(unsigned char *dst, int dst_stride, | |||||
static inline void comp_block(MadContext *t, int mb_x, int mb_y, | static inline void comp_block(MadContext *t, int mb_x, int mb_y, | ||||
int j, int mv_x, int mv_y, int add) | int j, int mv_x, int mv_y, int add) | ||||
{ | { | ||||
MpegEncContext *s = &t->s; | |||||
if (j < 4) { | if (j < 4) { | ||||
unsigned offset = (mb_y*16 + ((j&2)<<2) + mv_y)*t->last_frame.linesize[0] + mb_x*16 + ((j&1)<<3) + mv_x; | unsigned offset = (mb_y*16 + ((j&2)<<2) + mv_y)*t->last_frame.linesize[0] + mb_x*16 + ((j&1)<<3) + mv_x; | ||||
if (offset >= (s->height - 7) * t->last_frame.linesize[0] - 7) | |||||
if (offset >= (t->avctx->height - 7) * t->last_frame.linesize[0] - 7) | |||||
return; | return; | ||||
comp(t->frame.data[0] + (mb_y*16 + ((j&2)<<2))*t->frame.linesize[0] + mb_x*16 + ((j&1)<<3), | comp(t->frame.data[0] + (mb_y*16 + ((j&2)<<2))*t->frame.linesize[0] + mb_x*16 + ((j&1)<<3), | ||||
t->frame.linesize[0], | t->frame.linesize[0], | ||||
t->last_frame.data[0] + offset, | t->last_frame.data[0] + offset, | ||||
t->last_frame.linesize[0], add); | t->last_frame.linesize[0], add); | ||||
} else if (!(s->avctx->flags & CODEC_FLAG_GRAY)) { | |||||
} else if (!(t->avctx->flags & CODEC_FLAG_GRAY)) { | |||||
int index = j - 3; | int index = j - 3; | ||||
unsigned offset = (mb_y * 8 + (mv_y/2))*t->last_frame.linesize[index] + mb_x * 8 + (mv_x/2); | unsigned offset = (mb_y * 8 + (mv_y/2))*t->last_frame.linesize[index] + mb_x * 8 + (mv_x/2); | ||||
if (offset >= (s->height/2 - 7) * t->last_frame.linesize[index] - 7) | |||||
if (offset >= (t->avctx->height/2 - 7) * t->last_frame.linesize[index] - 7) | |||||
return; | return; | ||||
comp(t->frame.data[index] + (mb_y*8)*t->frame.linesize[index] + mb_x * 8, | comp(t->frame.data[index] + (mb_y*8)*t->frame.linesize[index] + mb_x * 8, | ||||
t->frame.linesize[index], | t->frame.linesize[index], | ||||
@@ -106,26 +110,24 @@ static inline void comp_block(MadContext *t, int mb_x, int mb_y, | |||||
static inline void idct_put(MadContext *t, DCTELEM *block, int mb_x, int mb_y, int j) | static inline void idct_put(MadContext *t, DCTELEM *block, int mb_x, int mb_y, int j) | ||||
{ | { | ||||
MpegEncContext *s = &t->s; | |||||
if (j < 4) { | if (j < 4) { | ||||
s->dsp.idct_put( | |||||
ff_ea_idct_put_c( | |||||
t->frame.data[0] + (mb_y*16 + ((j&2)<<2))*t->frame.linesize[0] + mb_x*16 + ((j&1)<<3), | t->frame.data[0] + (mb_y*16 + ((j&2)<<2))*t->frame.linesize[0] + mb_x*16 + ((j&1)<<3), | ||||
t->frame.linesize[0], block); | t->frame.linesize[0], block); | ||||
} else if (!(s->avctx->flags & CODEC_FLAG_GRAY)) { | |||||
} else if (!(t->avctx->flags & CODEC_FLAG_GRAY)) { | |||||
int index = j - 3; | int index = j - 3; | ||||
s->dsp.idct_put( | |||||
ff_ea_idct_put_c( | |||||
t->frame.data[index] + (mb_y*8)*t->frame.linesize[index] + mb_x*8, | t->frame.data[index] + (mb_y*8)*t->frame.linesize[index] + mb_x*8, | ||||
t->frame.linesize[index], block); | t->frame.linesize[index], block); | ||||
} | } | ||||
} | } | ||||
static inline int decode_block_intra(MadContext * t, DCTELEM * block) | |||||
static inline int decode_block_intra(MadContext *s, DCTELEM * block) | |||||
{ | { | ||||
MpegEncContext *s = &t->s; | |||||
int level, i, j, run; | int level, i, j, run; | ||||
RLTable *rl = &ff_rl_mpeg1; | RLTable *rl = &ff_rl_mpeg1; | ||||
const uint8_t *scantable = s->intra_scantable.permutated; | |||||
int16_t *quant_matrix = s->intra_matrix; | |||||
const uint8_t *scantable = s->scantable.permutated; | |||||
int16_t *quant_matrix = s->quant_matrix; | |||||
block[0] = (128 + get_sbits(&s->gb, 8)) * quant_matrix[0]; | block[0] = (128 + get_sbits(&s->gb, 8)) * quant_matrix[0]; | ||||
@@ -191,9 +193,8 @@ static int decode_motion(GetBitContext *gb) | |||||
return value; | return value; | ||||
} | } | ||||
static int decode_mb(MadContext *t, int inter) | |||||
static int decode_mb(MadContext *s, int inter) | |||||
{ | { | ||||
MpegEncContext *s = &t->s; | |||||
int mv_map = 0; | int mv_map = 0; | ||||
int mv_x, mv_y; | int mv_x, mv_y; | ||||
int j; | int j; | ||||
@@ -210,32 +211,25 @@ static int decode_mb(MadContext *t, int inter) | |||||
for (j=0; j<6; j++) { | for (j=0; j<6; j++) { | ||||
if (mv_map & (1<<j)) { // mv_x and mv_y are guarded by mv_map | if (mv_map & (1<<j)) { // mv_x and mv_y are guarded by mv_map | ||||
int add = 2*decode_motion(&s->gb); | int add = 2*decode_motion(&s->gb); | ||||
if (t->last_frame.data[0]) | |||||
comp_block(t, s->mb_x, s->mb_y, j, mv_x, mv_y, add); | |||||
if (s->last_frame.data[0]) | |||||
comp_block(s, s->mb_x, s->mb_y, j, mv_x, mv_y, add); | |||||
} else { | } else { | ||||
s->dsp.clear_block(t->block); | |||||
if(decode_block_intra(t, t->block) < 0) | |||||
s->dsp.clear_block(s->block); | |||||
if(decode_block_intra(s, s->block) < 0) | |||||
return -1; | return -1; | ||||
idct_put(t, t->block, s->mb_x, s->mb_y, j); | |||||
idct_put(s, s->block, s->mb_x, s->mb_y, j); | |||||
} | } | ||||
} | } | ||||
return 0; | return 0; | ||||
} | } | ||||
static void calc_intra_matrix(MadContext *t, int qscale) | |||||
static void calc_quant_matrix(MadContext *s, int qscale) | |||||
{ | { | ||||
MpegEncContext *s = &t->s; | |||||
int i; | int i; | ||||
if (s->avctx->idct_algo == FF_IDCT_EA) { | |||||
s->intra_matrix[0] = (ff_inv_aanscales[0]*ff_mpeg1_default_intra_matrix[0]) >> 11; | |||||
for (i=1; i<64; i++) | |||||
s->intra_matrix[i] = (ff_inv_aanscales[i]*ff_mpeg1_default_intra_matrix[i]*qscale + 32) >> 10; | |||||
} else { | |||||
s->intra_matrix[0] = ff_mpeg1_default_intra_matrix[0]; | |||||
for (i=1; i<64; i++) | |||||
s->intra_matrix[i] = (ff_mpeg1_default_intra_matrix[i]*qscale) << 1; | |||||
} | |||||
s->quant_matrix[0] = (ff_inv_aanscales[0]*ff_mpeg1_default_intra_matrix[0]) >> 11; | |||||
for (i=1; i<64; i++) | |||||
s->quant_matrix[i] = (ff_inv_aanscales[i]*ff_mpeg1_default_intra_matrix[i]*qscale + 32) >> 10; | |||||
} | } | ||||
static int decode_frame(AVCodecContext *avctx, | static int decode_frame(AVCodecContext *avctx, | ||||
@@ -245,8 +239,8 @@ static int decode_frame(AVCodecContext *avctx, | |||||
const uint8_t *buf = avpkt->data; | const uint8_t *buf = avpkt->data; | ||||
int buf_size = avpkt->size; | int buf_size = avpkt->size; | ||||
const uint8_t *buf_end = buf+buf_size; | const uint8_t *buf_end = buf+buf_size; | ||||
MadContext *t = avctx->priv_data; | |||||
MpegEncContext *s = &t->s; | |||||
MadContext *s = avctx->priv_data; | |||||
int width, height; | |||||
int chunk_type; | int chunk_type; | ||||
int inter; | int inter; | ||||
@@ -263,48 +257,48 @@ static int decode_frame(AVCodecContext *avctx, | |||||
av_reduce(&avctx->time_base.num, &avctx->time_base.den, | av_reduce(&avctx->time_base.num, &avctx->time_base.den, | ||||
AV_RL16(&buf[6]), 1000, 1<<30); | AV_RL16(&buf[6]), 1000, 1<<30); | ||||
s->width = AV_RL16(&buf[8]); | |||||
s->height = AV_RL16(&buf[10]); | |||||
calc_intra_matrix(t, buf[13]); | |||||
width = AV_RL16(&buf[8]); | |||||
height = AV_RL16(&buf[10]); | |||||
calc_quant_matrix(s, buf[13]); | |||||
buf += 16; | buf += 16; | ||||
if (avctx->width != s->width || avctx->height != s->height) { | |||||
if((s->width * s->height)/2048*7 > buf_end-buf) | |||||
if (avctx->width != width || avctx->height != height) { | |||||
if((width * height)/2048*7 > buf_end-buf) | |||||
return -1; | return -1; | ||||
if (av_image_check_size(s->width, s->height, 0, avctx) < 0) | |||||
if (av_image_check_size(width, height, 0, avctx) < 0) | |||||
return -1; | return -1; | ||||
avcodec_set_dimensions(avctx, s->width, s->height); | |||||
if (t->frame.data[0]) | |||||
avctx->release_buffer(avctx, &t->frame); | |||||
if (t->last_frame.data[0]) | |||||
avctx->release_buffer(avctx, &t->last_frame); | |||||
avcodec_set_dimensions(avctx, width, height); | |||||
if (s->frame.data[0]) | |||||
avctx->release_buffer(avctx, &s->frame); | |||||
if (s->last_frame.data[0]) | |||||
avctx->release_buffer(avctx, &s->last_frame); | |||||
} | } | ||||
t->frame.reference = 3; | |||||
if (!t->frame.data[0]) { | |||||
if (avctx->get_buffer(avctx, &t->frame) < 0) { | |||||
s->frame.reference = 3; | |||||
if (!s->frame.data[0]) { | |||||
if (avctx->get_buffer(avctx, &s->frame) < 0) { | |||||
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n"); | av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n"); | ||||
return -1; | return -1; | ||||
} | } | ||||
} | } | ||||
av_fast_malloc(&t->bitstream_buf, &t->bitstream_buf_size, (buf_end-buf) + FF_INPUT_BUFFER_PADDING_SIZE); | |||||
if (!t->bitstream_buf) | |||||
av_fast_malloc(&s->bitstream_buf, &s->bitstream_buf_size, (buf_end-buf) + FF_INPUT_BUFFER_PADDING_SIZE); | |||||
if (!s->bitstream_buf) | |||||
return AVERROR(ENOMEM); | return AVERROR(ENOMEM); | ||||
bswap16_buf(t->bitstream_buf, (const uint16_t*)buf, (buf_end-buf)/2); | |||||
memset((uint8_t*)t->bitstream_buf + (buf_end-buf), 0, FF_INPUT_BUFFER_PADDING_SIZE); | |||||
init_get_bits(&s->gb, t->bitstream_buf, 8*(buf_end-buf)); | |||||
bswap16_buf(s->bitstream_buf, (const uint16_t*)buf, (buf_end-buf)/2); | |||||
memset((uint8_t*)s->bitstream_buf + (buf_end-buf), 0, FF_INPUT_BUFFER_PADDING_SIZE); | |||||
init_get_bits(&s->gb, s->bitstream_buf, 8*(buf_end-buf)); | |||||
for (s->mb_y=0; s->mb_y < (avctx->height+15)/16; s->mb_y++) | for (s->mb_y=0; s->mb_y < (avctx->height+15)/16; s->mb_y++) | ||||
for (s->mb_x=0; s->mb_x < (avctx->width +15)/16; s->mb_x++) | for (s->mb_x=0; s->mb_x < (avctx->width +15)/16; s->mb_x++) | ||||
if(decode_mb(t, inter) < 0) | |||||
if(decode_mb(s, inter) < 0) | |||||
return -1; | return -1; | ||||
*data_size = sizeof(AVFrame); | *data_size = sizeof(AVFrame); | ||||
*(AVFrame*)data = t->frame; | |||||
*(AVFrame*)data = s->frame; | |||||
if (chunk_type != MADe_TAG) | if (chunk_type != MADe_TAG) | ||||
FFSWAP(AVFrame, t->frame, t->last_frame); | |||||
FFSWAP(AVFrame, s->frame, s->last_frame); | |||||
return buf_size; | return buf_size; | ||||
} | } | ||||
@@ -34,10 +34,10 @@ | |||||
#include "bytestream.h" | #include "bytestream.h" | ||||
#include "dsputil.h" | #include "dsputil.h" | ||||
#include "aandcttab.h" | #include "aandcttab.h" | ||||
#include "eaidct.h" | |||||
typedef struct TgqContext { | typedef struct TgqContext { | ||||
AVCodecContext *avctx; | AVCodecContext *avctx; | ||||
DSPContext dsp; | |||||
AVFrame frame; | AVFrame frame; | ||||
int width,height; | int width,height; | ||||
ScanTable scantable; | ScanTable scantable; | ||||
@@ -48,11 +48,10 @@ typedef struct TgqContext { | |||||
static av_cold int tgq_decode_init(AVCodecContext *avctx){ | static av_cold int tgq_decode_init(AVCodecContext *avctx){ | ||||
TgqContext *s = avctx->priv_data; | TgqContext *s = avctx->priv_data; | ||||
uint8_t idct_permutation[64]; | |||||
s->avctx = avctx; | s->avctx = avctx; | ||||
if(avctx->idct_algo==FF_IDCT_AUTO) | |||||
avctx->idct_algo=FF_IDCT_EA; | |||||
ff_dsputil_init(&s->dsp, avctx); | |||||
ff_init_scantable(s->dsp.idct_permutation, &s->scantable, ff_zigzag_direct); | |||||
ff_init_scantable_permutation(idct_permutation, FF_NO_IDCT_PERM); | |||||
ff_init_scantable(idct_permutation, &s->scantable, ff_zigzag_direct); | |||||
avctx->time_base = (AVRational){1, 15}; | avctx->time_base = (AVRational){1, 15}; | ||||
avctx->pix_fmt = PIX_FMT_YUV420P; | avctx->pix_fmt = PIX_FMT_YUV420P; | ||||
return 0; | return 0; | ||||
@@ -109,13 +108,13 @@ static void tgq_idct_put_mb(TgqContext *s, DCTELEM (*block)[64], int mb_x, int m | |||||
uint8_t *dest_cb = s->frame.data[1] + (mb_y * 8 * s->frame.linesize[1]) + mb_x * 8; | uint8_t *dest_cb = s->frame.data[1] + (mb_y * 8 * s->frame.linesize[1]) + mb_x * 8; | ||||
uint8_t *dest_cr = s->frame.data[2] + (mb_y * 8 * s->frame.linesize[2]) + mb_x * 8; | uint8_t *dest_cr = s->frame.data[2] + (mb_y * 8 * s->frame.linesize[2]) + mb_x * 8; | ||||
s->dsp.idct_put(dest_y , linesize, block[0]); | |||||
s->dsp.idct_put(dest_y + 8, linesize, block[1]); | |||||
s->dsp.idct_put(dest_y + 8*linesize , linesize, block[2]); | |||||
s->dsp.idct_put(dest_y + 8*linesize + 8, linesize, block[3]); | |||||
ff_ea_idct_put_c(dest_y , linesize, block[0]); | |||||
ff_ea_idct_put_c(dest_y + 8, linesize, block[1]); | |||||
ff_ea_idct_put_c(dest_y + 8*linesize , linesize, block[2]); | |||||
ff_ea_idct_put_c(dest_y + 8*linesize + 8, linesize, block[3]); | |||||
if(!(s->avctx->flags&CODEC_FLAG_GRAY)){ | if(!(s->avctx->flags&CODEC_FLAG_GRAY)){ | ||||
s->dsp.idct_put(dest_cb, s->frame.linesize[1], block[4]); | |||||
s->dsp.idct_put(dest_cr, s->frame.linesize[2], block[5]); | |||||
ff_ea_idct_put_c(dest_cb, s->frame.linesize[1], block[4]); | |||||
ff_ea_idct_put_c(dest_cr, s->frame.linesize[2], block[5]); | |||||
} | } | ||||
} | } | ||||
@@ -180,10 +179,7 @@ static void tgq_calculate_qtable(TgqContext *s, int quant){ | |||||
const int b = (11*(100-quant))/100 + 4; | const int b = (11*(100-quant))/100 + 4; | ||||
for(j=0;j<8;j++) | for(j=0;j<8;j++) | ||||
for(i=0;i<8;i++) | for(i=0;i<8;i++) | ||||
if (s->avctx->idct_algo==FF_IDCT_EA) | |||||
s->qtable[j*8+i] = ((a*(j+i)/(7+7) + b)*ff_inv_aanscales[j*8+i])>>(14-4); | |||||
else | |||||
s->qtable[j*8+i] = (a*(j+i)/(7+7) + b)<<3; | |||||
s->qtable[j*8+i] = ((a*(j+i)/(7+7) + b)*ff_inv_aanscales[j*8+i])>>(14-4); | |||||
} | } | ||||
static int tgq_decode_frame(AVCodecContext *avctx, | static int tgq_decode_frame(AVCodecContext *avctx, | ||||
@@ -30,6 +30,7 @@ | |||||
#include "get_bits.h" | #include "get_bits.h" | ||||
#include "dsputil.h" | #include "dsputil.h" | ||||
#include "aandcttab.h" | #include "aandcttab.h" | ||||
#include "eaidct.h" | |||||
#include "mpeg12.h" | #include "mpeg12.h" | ||||
#include "mpegvideo.h" | #include "mpegvideo.h" | ||||
@@ -46,9 +47,8 @@ static av_cold int tqi_decode_init(AVCodecContext *avctx) | |||||
TqiContext *t = avctx->priv_data; | TqiContext *t = avctx->priv_data; | ||||
MpegEncContext *s = &t->s; | MpegEncContext *s = &t->s; | ||||
s->avctx = avctx; | s->avctx = avctx; | ||||
if(avctx->idct_algo==FF_IDCT_AUTO) | |||||
avctx->idct_algo=FF_IDCT_EA; | |||||
ff_dsputil_init(&s->dsp, avctx); | ff_dsputil_init(&s->dsp, avctx); | ||||
ff_init_scantable_permutation(s->dsp.idct_permutation, FF_NO_IDCT_PERM); | |||||
ff_init_scantable(s->dsp.idct_permutation, &s->intra_scantable, ff_zigzag_direct); | ff_init_scantable(s->dsp.idct_permutation, &s->intra_scantable, ff_zigzag_direct); | ||||
s->qscale = 1; | s->qscale = 1; | ||||
avctx->time_base = (AVRational){1, 15}; | avctx->time_base = (AVRational){1, 15}; | ||||
@@ -76,13 +76,13 @@ static inline void tqi_idct_put(TqiContext *t, DCTELEM (*block)[64]) | |||||
uint8_t *dest_cb = t->frame.data[1] + (s->mb_y * 8 * t->frame.linesize[1]) + s->mb_x * 8; | uint8_t *dest_cb = t->frame.data[1] + (s->mb_y * 8 * t->frame.linesize[1]) + s->mb_x * 8; | ||||
uint8_t *dest_cr = t->frame.data[2] + (s->mb_y * 8 * t->frame.linesize[2]) + s->mb_x * 8; | uint8_t *dest_cr = t->frame.data[2] + (s->mb_y * 8 * t->frame.linesize[2]) + s->mb_x * 8; | ||||
s->dsp.idct_put(dest_y , linesize, block[0]); | |||||
s->dsp.idct_put(dest_y + 8, linesize, block[1]); | |||||
s->dsp.idct_put(dest_y + 8*linesize , linesize, block[2]); | |||||
s->dsp.idct_put(dest_y + 8*linesize + 8, linesize, block[3]); | |||||
ff_ea_idct_put_c(dest_y , linesize, block[0]); | |||||
ff_ea_idct_put_c(dest_y + 8, linesize, block[1]); | |||||
ff_ea_idct_put_c(dest_y + 8*linesize , linesize, block[2]); | |||||
ff_ea_idct_put_c(dest_y + 8*linesize + 8, linesize, block[3]); | |||||
if(!(s->avctx->flags&CODEC_FLAG_GRAY)) { | if(!(s->avctx->flags&CODEC_FLAG_GRAY)) { | ||||
s->dsp.idct_put(dest_cb, t->frame.linesize[1], block[4]); | |||||
s->dsp.idct_put(dest_cr, t->frame.linesize[2], block[5]); | |||||
ff_ea_idct_put_c(dest_cb, t->frame.linesize[1], block[4]); | |||||
ff_ea_idct_put_c(dest_cr, t->frame.linesize[2], block[5]); | |||||
} | } | ||||
} | } | ||||
@@ -90,15 +90,9 @@ static void tqi_calculate_qtable(MpegEncContext *s, int quant) | |||||
{ | { | ||||
const int qscale = (215 - 2*quant)*5; | const int qscale = (215 - 2*quant)*5; | ||||
int i; | int i; | ||||
if (s->avctx->idct_algo==FF_IDCT_EA) { | |||||
s->intra_matrix[0] = (ff_inv_aanscales[0]*ff_mpeg1_default_intra_matrix[0])>>11; | |||||
for(i=1; i<64; i++) | |||||
s->intra_matrix[i] = (ff_inv_aanscales[i]*ff_mpeg1_default_intra_matrix[i]*qscale + 32)>>14; | |||||
}else{ | |||||
s->intra_matrix[0] = ff_mpeg1_default_intra_matrix[0]; | |||||
for(i=1; i<64; i++) | |||||
s->intra_matrix[i] = (ff_mpeg1_default_intra_matrix[i]*qscale + 32)>>3; | |||||
} | |||||
s->intra_matrix[0] = (ff_inv_aanscales[0]*ff_mpeg1_default_intra_matrix[0])>>11; | |||||
for(i=1; i<64; i++) | |||||
s->intra_matrix[i] = (ff_inv_aanscales[i]*ff_mpeg1_default_intra_matrix[i]*qscale + 32)>>14; | |||||
} | } | ||||
static int tqi_decode_frame(AVCodecContext *avctx, | static int tqi_decode_frame(AVCodecContext *avctx, | ||||
@@ -491,6 +491,7 @@ int ff_h264_decode_seq_parameter_set(H264Context *h){ | |||||
sps->sar.den= 1; | sps->sar.den= 1; | ||||
if(s->avctx->debug&FF_DEBUG_PICT_INFO){ | if(s->avctx->debug&FF_DEBUG_PICT_INFO){ | ||||
static const char csp[4][5] = { "Gray", "420", "422", "444" }; | |||||
av_log(h->s.avctx, AV_LOG_DEBUG, "sps:%u profile:%d/%d poc:%d ref:%d %dx%d %s %s crop:%d/%d/%d/%d %s %s %d/%d b%d\n", | av_log(h->s.avctx, AV_LOG_DEBUG, "sps:%u profile:%d/%d poc:%d ref:%d %dx%d %s %s crop:%d/%d/%d/%d %s %s %d/%d b%d\n", | ||||
sps_id, sps->profile_idc, sps->level_idc, | sps_id, sps->profile_idc, sps->level_idc, | ||||
sps->poc_type, | sps->poc_type, | ||||
@@ -501,7 +502,7 @@ int ff_h264_decode_seq_parameter_set(H264Context *h){ | |||||
sps->crop_left, sps->crop_right, | sps->crop_left, sps->crop_right, | ||||
sps->crop_top, sps->crop_bottom, | sps->crop_top, sps->crop_bottom, | ||||
sps->vui_parameters_present_flag ? "VUI" : "", | sps->vui_parameters_present_flag ? "VUI" : "", | ||||
((const char*[]){"Gray","420","422","444"})[sps->chroma_format_idc], | |||||
csp[sps->chroma_format_idc], | |||||
sps->timing_info_present_flag ? sps->num_units_in_tick : 0, | sps->timing_info_present_flag ? sps->num_units_in_tick : 0, | ||||
sps->timing_info_present_flag ? sps->time_scale : 0, | sps->timing_info_present_flag ? sps->time_scale : 0, | ||||
sps->bit_depth_luma | sps->bit_depth_luma | ||||
@@ -36,7 +36,6 @@ | |||||
#include "mpegvideo_common.h" | #include "mpegvideo_common.h" | ||||
#include "mjpegenc.h" | #include "mjpegenc.h" | ||||
#include "msmpeg4.h" | #include "msmpeg4.h" | ||||
#include "faandct.h" | |||||
#include "xvmc_internal.h" | #include "xvmc_internal.h" | ||||
#include "thread.h" | #include "thread.h" | ||||
#include <limits.h> | #include <limits.h> | ||||
@@ -37,7 +37,6 @@ | |||||
#include "mpegvideo.h" | #include "mpegvideo.h" | ||||
#include "mjpegenc.h" | #include "mjpegenc.h" | ||||
#include "msmpeg4.h" | #include "msmpeg4.h" | ||||
#include "faandct.h" | |||||
#include <limits.h> | #include <limits.h> | ||||
int ff_dct_quantize_c(MpegEncContext *s, DCTELEM *block, int n, int qscale, int *overflow); | int ff_dct_quantize_c(MpegEncContext *s, DCTELEM *block, int n, int qscale, int *overflow); | ||||
@@ -49,6 +49,7 @@ static const AVOption asyncts_options[] = { | |||||
{ "min_delta", "Minimum difference between timestamps and audio data " | { "min_delta", "Minimum difference between timestamps and audio data " | ||||
"(in seconds) to trigger padding/trimmin the data.", OFFSET(min_delta_sec), AV_OPT_TYPE_FLOAT, { 0.1 }, 0, INT_MAX, A }, | "(in seconds) to trigger padding/trimmin the data.", OFFSET(min_delta_sec), AV_OPT_TYPE_FLOAT, { 0.1 }, 0, INT_MAX, A }, | ||||
{ "max_comp", "Maximum compensation in samples per second.", OFFSET(max_comp), AV_OPT_TYPE_INT, { 500 }, 0, INT_MAX, A }, | { "max_comp", "Maximum compensation in samples per second.", OFFSET(max_comp), AV_OPT_TYPE_INT, { 500 }, 0, INT_MAX, A }, | ||||
{ "first_pts", "Assume the first pts should be this value.", OFFSET(pts), AV_OPT_TYPE_INT64, { AV_NOPTS_VALUE }, INT64_MIN, INT64_MAX, A }, | |||||
{ NULL }, | { NULL }, | ||||
}; | }; | ||||
@@ -68,8 +69,6 @@ static int init(AVFilterContext *ctx, const char *args) | |||||
} | } | ||||
av_opt_free(s); | av_opt_free(s); | ||||
s->pts = AV_NOPTS_VALUE; | |||||
return 0; | return 0; | ||||
} | } | ||||
@@ -182,7 +181,7 @@ static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *buf) | |||||
if (labs(delta) > s->min_delta) { | if (labs(delta) > s->min_delta) { | ||||
av_log(ctx, AV_LOG_VERBOSE, "Discontinuity - %"PRId64" samples.\n", delta); | av_log(ctx, AV_LOG_VERBOSE, "Discontinuity - %"PRId64" samples.\n", delta); | ||||
out_size += delta; | |||||
out_size = av_clipl_int32((int64_t)out_size + delta); | |||||
} else { | } else { | ||||
if (s->resample) { | if (s->resample) { | ||||
int comp = av_clip(delta, -s->max_comp, s->max_comp); | int comp = av_clip(delta, -s->max_comp, s->max_comp); | ||||
@@ -359,7 +359,7 @@ static int fourxm_read_close(AVFormatContext *s) | |||||
AVInputFormat ff_fourxm_demuxer = { | AVInputFormat ff_fourxm_demuxer = { | ||||
.name = "4xm", | .name = "4xm", | ||||
.long_name = NULL_IF_CONFIG_SMALL("4X Technologies format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("4X Technologies"), | |||||
.priv_data_size = sizeof(FourxmDemuxContext), | .priv_data_size = sizeof(FourxmDemuxContext), | ||||
.read_probe = fourxm_probe, | .read_probe = fourxm_probe, | ||||
.read_header = fourxm_read_header, | .read_header = fourxm_read_header, | ||||
@@ -157,7 +157,7 @@ static int amr_read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
#if CONFIG_AMR_DEMUXER | #if CONFIG_AMR_DEMUXER | ||||
AVInputFormat ff_amr_demuxer = { | AVInputFormat ff_amr_demuxer = { | ||||
.name = "amr", | .name = "amr", | ||||
.long_name = NULL_IF_CONFIG_SMALL("3GPP AMR file format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("3GPP AMR"), | |||||
.read_probe = amr_probe, | .read_probe = amr_probe, | ||||
.read_header = amr_read_header, | .read_header = amr_read_header, | ||||
.read_packet = amr_read_packet, | .read_packet = amr_read_packet, | ||||
@@ -168,7 +168,7 @@ AVInputFormat ff_amr_demuxer = { | |||||
#if CONFIG_AMR_MUXER | #if CONFIG_AMR_MUXER | ||||
AVOutputFormat ff_amr_muxer = { | AVOutputFormat ff_amr_muxer = { | ||||
.name = "amr", | .name = "amr", | ||||
.long_name = NULL_IF_CONFIG_SMALL("3GPP AMR file format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("3GPP AMR"), | |||||
.mime_type = "audio/amr", | .mime_type = "audio/amr", | ||||
.extensions = "amr", | .extensions = "amr", | ||||
.audio_codec = CODEC_ID_AMR_NB, | .audio_codec = CODEC_ID_AMR_NB, | ||||
@@ -83,7 +83,7 @@ static int apc_read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
AVInputFormat ff_apc_demuxer = { | AVInputFormat ff_apc_demuxer = { | ||||
.name = "apc", | .name = "apc", | ||||
.long_name = NULL_IF_CONFIG_SMALL("CRYO APC format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("CRYO APC"), | |||||
.read_probe = apc_probe, | .read_probe = apc_probe, | ||||
.read_header = apc_read_header, | .read_header = apc_read_header, | ||||
.read_packet = apc_read_packet, | .read_packet = apc_read_packet, | ||||
@@ -205,7 +205,7 @@ static int read_seek2(AVFormatContext *s, int stream_index, | |||||
AVInputFormat ff_ass_demuxer = { | AVInputFormat ff_ass_demuxer = { | ||||
.name = "ass", | .name = "ass", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Advanced SubStation Alpha subtitle format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Advanced SubStation Alpha subtitle"), | |||||
.priv_data_size = sizeof(ASSContext), | .priv_data_size = sizeof(ASSContext), | ||||
.read_probe = probe, | .read_probe = probe, | ||||
.read_header = read_header, | .read_header = read_header, | ||||
@@ -79,7 +79,7 @@ static int write_trailer(AVFormatContext *s) | |||||
AVOutputFormat ff_ass_muxer = { | AVOutputFormat ff_ass_muxer = { | ||||
.name = "ass", | .name = "ass", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Advanced SubStation Alpha subtitle format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Advanced SubStation Alpha subtitle"), | |||||
.mime_type = "text/x-ssa", | .mime_type = "text/x-ssa", | ||||
.extensions = "ass,ssa", | .extensions = "ass,ssa", | ||||
.priv_data_size = sizeof(ASSContext), | .priv_data_size = sizeof(ASSContext), | ||||
@@ -223,7 +223,7 @@ static int avs_read_close(AVFormatContext * s) | |||||
AVInputFormat ff_avs_demuxer = { | AVInputFormat ff_avs_demuxer = { | ||||
.name = "avs", | .name = "avs", | ||||
.long_name = NULL_IF_CONFIG_SMALL("AVS format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("AVS"), | |||||
.priv_data_size = sizeof(AvsFormat), | .priv_data_size = sizeof(AvsFormat), | ||||
.read_probe = avs_probe, | .read_probe = avs_probe, | ||||
.read_header = avs_read_header, | .read_header = avs_read_header, | ||||
@@ -283,7 +283,7 @@ static int vid_read_close(AVFormatContext *s) | |||||
AVInputFormat ff_bethsoftvid_demuxer = { | AVInputFormat ff_bethsoftvid_demuxer = { | ||||
.name = "bethsoftvid", | .name = "bethsoftvid", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Bethesda Softworks VID format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Bethesda Softworks VID"), | |||||
.priv_data_size = sizeof(BVID_DemuxContext), | .priv_data_size = sizeof(BVID_DemuxContext), | ||||
.read_probe = vid_probe, | .read_probe = vid_probe, | ||||
.read_header = vid_read_header, | .read_header = vid_read_header, | ||||
@@ -71,7 +71,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
AVInputFormat ff_cdg_demuxer = { | AVInputFormat ff_cdg_demuxer = { | ||||
.name = "cdg", | .name = "cdg", | ||||
.long_name = NULL_IF_CONFIG_SMALL("CD Graphics Format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("CD Graphics"), | |||||
.read_header = read_header, | .read_header = read_header, | ||||
.read_packet = read_packet, | .read_packet = read_packet, | ||||
.flags = AVFMT_GENERIC_INDEX, | .flags = AVFMT_GENERIC_INDEX, | ||||
@@ -171,7 +171,7 @@ static const AVClass cdxl_demuxer_class = { | |||||
AVInputFormat ff_cdxl_demuxer = { | AVInputFormat ff_cdxl_demuxer = { | ||||
.name = "cdxl", | .name = "cdxl", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Commodore CDXL video format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Commodore CDXL video"), | |||||
.priv_data_size = sizeof(CDXLDemuxContext), | .priv_data_size = sizeof(CDXLDemuxContext), | ||||
.read_header = cdxl_read_header, | .read_header = cdxl_read_header, | ||||
.read_packet = cdxl_read_packet, | .read_packet = cdxl_read_packet, | ||||
@@ -56,7 +56,7 @@ static int crc_write_trailer(struct AVFormatContext *s) | |||||
AVOutputFormat ff_crc_muxer = { | AVOutputFormat ff_crc_muxer = { | ||||
.name = "crc", | .name = "crc", | ||||
.long_name = NULL_IF_CONFIG_SMALL("CRC testing format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("CRC testing"), | |||||
.priv_data_size = sizeof(CRCState), | .priv_data_size = sizeof(CRCState), | ||||
.audio_codec = CODEC_ID_PCM_S16LE, | .audio_codec = CODEC_ID_PCM_S16LE, | ||||
.video_codec = CODEC_ID_RAWVIDEO, | .video_codec = CODEC_ID_RAWVIDEO, | ||||
@@ -72,7 +72,7 @@ static int daud_write_packet(struct AVFormatContext *s, AVPacket *pkt) | |||||
#if CONFIG_DAUD_DEMUXER | #if CONFIG_DAUD_DEMUXER | ||||
AVInputFormat ff_daud_demuxer = { | AVInputFormat ff_daud_demuxer = { | ||||
.name = "daud", | .name = "daud", | ||||
.long_name = NULL_IF_CONFIG_SMALL("D-Cinema audio format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("D-Cinema audio"), | |||||
.read_header = daud_header, | .read_header = daud_header, | ||||
.read_packet = daud_packet, | .read_packet = daud_packet, | ||||
.extensions = "302,daud", | .extensions = "302,daud", | ||||
@@ -82,7 +82,7 @@ AVInputFormat ff_daud_demuxer = { | |||||
#if CONFIG_DAUD_MUXER | #if CONFIG_DAUD_MUXER | ||||
AVOutputFormat ff_daud_muxer = { | AVOutputFormat ff_daud_muxer = { | ||||
.name = "daud", | .name = "daud", | ||||
.long_name = NULL_IF_CONFIG_SMALL("D-Cinema audio format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("D-Cinema audio"), | |||||
.extensions = "302", | .extensions = "302", | ||||
.audio_codec = CODEC_ID_PCM_S24DAUD, | .audio_codec = CODEC_ID_PCM_S24DAUD, | ||||
.video_codec = CODEC_ID_NONE, | .video_codec = CODEC_ID_NONE, | ||||
@@ -222,7 +222,7 @@ static int cin_read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
AVInputFormat ff_dsicin_demuxer = { | AVInputFormat ff_dsicin_demuxer = { | ||||
.name = "dsicin", | .name = "dsicin", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Delphine Software International CIN format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Delphine Software International CIN"), | |||||
.priv_data_size = sizeof(CinDemuxContext), | .priv_data_size = sizeof(CinDemuxContext), | ||||
.read_probe = cin_probe, | .read_probe = cin_probe, | ||||
.read_header = cin_read_header, | .read_header = cin_read_header, | ||||
@@ -591,7 +591,7 @@ static int dv_probe(AVProbeData *p) | |||||
#if CONFIG_DV_DEMUXER | #if CONFIG_DV_DEMUXER | ||||
AVInputFormat ff_dv_demuxer = { | AVInputFormat ff_dv_demuxer = { | ||||
.name = "dv", | .name = "dv", | ||||
.long_name = NULL_IF_CONFIG_SMALL("DV video format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("DV video"), | |||||
.priv_data_size = sizeof(RawDVContext), | .priv_data_size = sizeof(RawDVContext), | ||||
.read_probe = dv_probe, | .read_probe = dv_probe, | ||||
.read_header = dv_read_header, | .read_header = dv_read_header, | ||||
@@ -407,7 +407,7 @@ static int dv_write_trailer(struct AVFormatContext *s) | |||||
AVOutputFormat ff_dv_muxer = { | AVOutputFormat ff_dv_muxer = { | ||||
.name = "dv", | .name = "dv", | ||||
.long_name = NULL_IF_CONFIG_SMALL("DV video format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("DV video"), | |||||
.extensions = "dv", | .extensions = "dv", | ||||
.priv_data_size = sizeof(DVMuxContext), | .priv_data_size = sizeof(DVMuxContext), | ||||
.audio_codec = CODEC_ID_PCM_S16LE, | .audio_codec = CODEC_ID_PCM_S16LE, | ||||
@@ -617,7 +617,7 @@ get_video_packet: | |||||
AVInputFormat ff_ea_demuxer = { | AVInputFormat ff_ea_demuxer = { | ||||
.name = "ea", | .name = "ea", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Electronic Arts Multimedia Format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Electronic Arts Multimedia"), | |||||
.priv_data_size = sizeof(EaDemuxContext), | .priv_data_size = sizeof(EaDemuxContext), | ||||
.read_probe = ea_probe, | .read_probe = ea_probe, | ||||
.read_header = ea_read_header, | .read_header = ea_read_header, | ||||
@@ -528,7 +528,7 @@ static int ffm_probe(AVProbeData *p) | |||||
AVInputFormat ff_ffm_demuxer = { | AVInputFormat ff_ffm_demuxer = { | ||||
.name = "ffm", | .name = "ffm", | ||||
.long_name = NULL_IF_CONFIG_SMALL("FFM (FFserver live feed) format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("FFM (FFserver live feed)"), | |||||
.priv_data_size = sizeof(FFMContext), | .priv_data_size = sizeof(FFMContext), | ||||
.read_probe = ffm_probe, | .read_probe = ffm_probe, | ||||
.read_header = ffm_read_header, | .read_header = ffm_read_header, | ||||
@@ -240,7 +240,7 @@ static int ffm_write_trailer(AVFormatContext *s) | |||||
AVOutputFormat ff_ffm_muxer = { | AVOutputFormat ff_ffm_muxer = { | ||||
.name = "ffm", | .name = "ffm", | ||||
.long_name = NULL_IF_CONFIG_SMALL("FFM (FFserver live feed) format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("FFM (FFserver live feed)"), | |||||
.extensions = "ffm", | .extensions = "ffm", | ||||
.priv_data_size = sizeof(FFMContext), | .priv_data_size = sizeof(FFMContext), | ||||
.audio_codec = CODEC_ID_MP2, | .audio_codec = CODEC_ID_MP2, | ||||
@@ -168,7 +168,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
AVInputFormat ff_ffmetadata_demuxer = { | AVInputFormat ff_ffmetadata_demuxer = { | ||||
.name = "ffmetadata", | .name = "ffmetadata", | ||||
.long_name = NULL_IF_CONFIG_SMALL("FFmpeg metadata in text format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("FFmpeg metadata in text"), | |||||
.read_probe = probe, | .read_probe = probe, | ||||
.read_header = read_header, | .read_header = read_header, | ||||
.read_packet = read_packet, | .read_packet = read_packet, | ||||
@@ -92,7 +92,7 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt) | |||||
AVOutputFormat ff_ffmetadata_muxer = { | AVOutputFormat ff_ffmetadata_muxer = { | ||||
.name = "ffmetadata", | .name = "ffmetadata", | ||||
.long_name = NULL_IF_CONFIG_SMALL("FFmpeg metadata in text format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("FFmpeg metadata in text"), | |||||
.extensions = "ffmeta", | .extensions = "ffmeta", | ||||
.write_header = write_header, | .write_header = write_header, | ||||
.write_packet = write_packet, | .write_packet = write_packet, | ||||
@@ -262,7 +262,7 @@ static int flic_read_packet(AVFormatContext *s, | |||||
AVInputFormat ff_flic_demuxer = { | AVInputFormat ff_flic_demuxer = { | ||||
.name = "flic", | .name = "flic", | ||||
.long_name = NULL_IF_CONFIG_SMALL("FLI/FLC/FLX animation format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("FLI/FLC/FLX animation"), | |||||
.priv_data_size = sizeof(FlicDemuxContext), | .priv_data_size = sizeof(FlicDemuxContext), | ||||
.read_probe = flic_probe, | .read_probe = flic_probe, | ||||
.read_header = flic_read_header, | .read_header = flic_read_header, | ||||
@@ -37,7 +37,7 @@ static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt) | |||||
AVOutputFormat ff_framecrc_muxer = { | AVOutputFormat ff_framecrc_muxer = { | ||||
.name = "framecrc", | .name = "framecrc", | ||||
.long_name = NULL_IF_CONFIG_SMALL("framecrc testing format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("framecrc testing"), | |||||
.audio_codec = CODEC_ID_PCM_S16LE, | .audio_codec = CODEC_ID_PCM_S16LE, | ||||
.video_codec = CODEC_ID_RAWVIDEO, | .video_codec = CODEC_ID_RAWVIDEO, | ||||
.write_header = ff_framehash_write_header, | .write_header = ff_framehash_write_header, | ||||
@@ -77,7 +77,7 @@ static int g723_1_read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
AVInputFormat ff_g723_1_demuxer = { | AVInputFormat ff_g723_1_demuxer = { | ||||
.name = "g723_1", | .name = "g723_1", | ||||
.long_name = NULL_IF_CONFIG_SMALL("G.723.1 format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("G.723.1"), | |||||
.read_header = g723_1_init, | .read_header = g723_1_init, | ||||
.read_packet = g723_1_read_packet, | .read_packet = g723_1_read_packet, | ||||
.extensions = "tco,rco,g723_1", | .extensions = "tco,rco,g723_1", | ||||
@@ -67,4 +67,4 @@ static int h264_probe(AVProbeData *p) | |||||
return 0; | return 0; | ||||
} | } | ||||
FF_DEF_RAWVIDEO_DEMUXER(h264 , "raw H.264 video format", h264_probe, "h26l,h264,264", CODEC_ID_H264) | |||||
FF_DEF_RAWVIDEO_DEMUXER(h264 , "raw H.264 video", h264_probe, "h26l,h264,264", CODEC_ID_H264) |
@@ -749,7 +749,7 @@ static int hls_probe(AVProbeData *p) | |||||
AVInputFormat ff_hls_demuxer = { | AVInputFormat ff_hls_demuxer = { | ||||
.name = "hls,applehttp", | .name = "hls,applehttp", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Apple HTTP Live Streaming format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Apple HTTP Live Streaming"), | |||||
.priv_data_size = sizeof(HLSContext), | .priv_data_size = sizeof(HLSContext), | ||||
.read_probe = hls_probe, | .read_probe = hls_probe, | ||||
.read_header = hls_read_header, | .read_header = hls_read_header, | ||||
@@ -295,7 +295,7 @@ static int idcin_read_packet(AVFormatContext *s, | |||||
AVInputFormat ff_idcin_demuxer = { | AVInputFormat ff_idcin_demuxer = { | ||||
.name = "idcin", | .name = "idcin", | ||||
.long_name = NULL_IF_CONFIG_SMALL("id Cinematic format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("id Cinematic"), | |||||
.priv_data_size = sizeof(IdcinDemuxContext), | .priv_data_size = sizeof(IdcinDemuxContext), | ||||
.read_probe = idcin_probe, | .read_probe = idcin_probe, | ||||
.read_header = idcin_read_header, | .read_header = idcin_read_header, | ||||
@@ -221,7 +221,7 @@ static int roq_read_packet(AVFormatContext *s, | |||||
AVInputFormat ff_roq_demuxer = { | AVInputFormat ff_roq_demuxer = { | ||||
.name = "roq", | .name = "roq", | ||||
.long_name = NULL_IF_CONFIG_SMALL("id RoQ format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("id RoQ"), | |||||
.priv_data_size = sizeof(RoqDemuxContext), | .priv_data_size = sizeof(RoqDemuxContext), | ||||
.read_probe = roq_probe, | .read_probe = roq_probe, | ||||
.read_header = roq_read_header, | .read_header = roq_read_header, | ||||
@@ -37,7 +37,7 @@ static int roq_write_header(struct AVFormatContext *s) | |||||
AVOutputFormat ff_roq_muxer = { | AVOutputFormat ff_roq_muxer = { | ||||
.name = "roq", | .name = "roq", | ||||
.long_name = NULL_IF_CONFIG_SMALL("raw id RoQ format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("raw id RoQ"), | |||||
.extensions = "roq", | .extensions = "roq", | ||||
.audio_codec = CODEC_ID_ROQ_DPCM, | .audio_codec = CODEC_ID_ROQ_DPCM, | ||||
.video_codec = CODEC_ID_ROQ, | .video_codec = CODEC_ID_ROQ, | ||||
@@ -122,7 +122,7 @@ static int ilbc_read_packet(AVFormatContext *s, | |||||
AVInputFormat ff_ilbc_demuxer = { | AVInputFormat ff_ilbc_demuxer = { | ||||
.name = "ilbc", | .name = "ilbc", | ||||
.long_name = NULL_IF_CONFIG_SMALL("iLBC storage file format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("iLBC storage"), | |||||
.read_probe = ilbc_probe, | .read_probe = ilbc_probe, | ||||
.read_header = ilbc_read_header, | .read_header = ilbc_read_header, | ||||
.read_packet = ilbc_read_packet, | .read_packet = ilbc_read_packet, | ||||
@@ -131,7 +131,7 @@ AVInputFormat ff_ilbc_demuxer = { | |||||
AVOutputFormat ff_ilbc_muxer = { | AVOutputFormat ff_ilbc_muxer = { | ||||
.name = "ilbc", | .name = "ilbc", | ||||
.long_name = NULL_IF_CONFIG_SMALL("iLBC storage file format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("iLBC storage"), | |||||
.mime_type = "audio/iLBC", | .mime_type = "audio/iLBC", | ||||
.extensions = "lbc", | .extensions = "lbc", | ||||
.audio_codec = CODEC_ID_ILBC, | .audio_codec = CODEC_ID_ILBC, | ||||
@@ -645,7 +645,7 @@ static int ipmovie_read_packet(AVFormatContext *s, | |||||
AVInputFormat ff_ipmovie_demuxer = { | AVInputFormat ff_ipmovie_demuxer = { | ||||
.name = "ipmovie", | .name = "ipmovie", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Interplay MVE format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Interplay MVE"), | |||||
.priv_data_size = sizeof(IPMVEContext), | .priv_data_size = sizeof(IPMVEContext), | ||||
.read_probe = ipmovie_probe, | .read_probe = ipmovie_probe, | ||||
.read_header = ipmovie_read_header, | .read_header = ipmovie_read_header, | ||||
@@ -129,7 +129,7 @@ static int iss_read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
AVInputFormat ff_iss_demuxer = { | AVInputFormat ff_iss_demuxer = { | ||||
.name = "iss", | .name = "iss", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Funcom ISS format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Funcom ISS"), | |||||
.priv_data_size = sizeof(IssDemuxContext), | .priv_data_size = sizeof(IssDemuxContext), | ||||
.read_probe = iss_probe, | .read_probe = iss_probe, | ||||
.read_header = iss_read_header, | .read_header = iss_read_header, | ||||
@@ -120,7 +120,7 @@ static int lmlm4_read_packet(AVFormatContext *s, AVPacket *pkt) { | |||||
AVInputFormat ff_lmlm4_demuxer = { | AVInputFormat ff_lmlm4_demuxer = { | ||||
.name = "lmlm4", | .name = "lmlm4", | ||||
.long_name = NULL_IF_CONFIG_SMALL("lmlm4 raw format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("raw lmlm4"), | |||||
.read_probe = lmlm4_probe, | .read_probe = lmlm4_probe, | ||||
.read_header = lmlm4_read_header, | .read_header = lmlm4_read_header, | ||||
.read_packet = lmlm4_read_packet, | .read_packet = lmlm4_read_packet, | ||||
@@ -365,7 +365,7 @@ static int lxf_read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
AVInputFormat ff_lxf_demuxer = { | AVInputFormat ff_lxf_demuxer = { | ||||
.name = "lxf", | .name = "lxf", | ||||
.long_name = NULL_IF_CONFIG_SMALL("VR native stream format (LXF)"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("VR native stream (LXF)"), | |||||
.priv_data_size = sizeof(LXFDemuxContext), | .priv_data_size = sizeof(LXFDemuxContext), | ||||
.read_probe = lxf_probe, | .read_probe = lxf_probe, | ||||
.read_header = lxf_read_header, | .read_header = lxf_read_header, | ||||
@@ -49,4 +49,4 @@ static int mpeg4video_probe(AVProbeData *probe_packet) | |||||
return 0; | return 0; | ||||
} | } | ||||
FF_DEF_RAWVIDEO_DEMUXER(m4v, "raw MPEG-4 video format", mpeg4video_probe, "m4v", CODEC_ID_MPEG4) | |||||
FF_DEF_RAWVIDEO_DEMUXER(m4v, "raw MPEG-4 video", mpeg4video_probe, "m4v", CODEC_ID_MPEG4) |
@@ -2305,7 +2305,7 @@ static int matroska_read_close(AVFormatContext *s) | |||||
AVInputFormat ff_matroska_demuxer = { | AVInputFormat ff_matroska_demuxer = { | ||||
.name = "matroska,webm", | .name = "matroska,webm", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Matroska/WebM file format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Matroska / WebM"), | |||||
.priv_data_size = sizeof(MatroskaDemuxContext), | .priv_data_size = sizeof(MatroskaDemuxContext), | ||||
.read_probe = matroska_probe, | .read_probe = matroska_probe, | ||||
.read_header = matroska_read_header, | .read_header = matroska_read_header, | ||||
@@ -1307,7 +1307,7 @@ static int mkv_query_codec(enum CodecID codec_id, int std_compliance) | |||||
#if CONFIG_MATROSKA_MUXER | #if CONFIG_MATROSKA_MUXER | ||||
AVOutputFormat ff_matroska_muxer = { | AVOutputFormat ff_matroska_muxer = { | ||||
.name = "matroska", | .name = "matroska", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Matroska file format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Matroska"), | |||||
.mime_type = "video/x-matroska", | .mime_type = "video/x-matroska", | ||||
.extensions = "mkv", | .extensions = "mkv", | ||||
.priv_data_size = sizeof(MatroskaMuxContext), | .priv_data_size = sizeof(MatroskaMuxContext), | ||||
@@ -1328,7 +1328,7 @@ AVOutputFormat ff_matroska_muxer = { | |||||
#if CONFIG_WEBM_MUXER | #if CONFIG_WEBM_MUXER | ||||
AVOutputFormat ff_webm_muxer = { | AVOutputFormat ff_webm_muxer = { | ||||
.name = "webm", | .name = "webm", | ||||
.long_name = NULL_IF_CONFIG_SMALL("WebM file format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("WebM"), | |||||
.mime_type = "video/webm", | .mime_type = "video/webm", | ||||
.extensions = "webm", | .extensions = "webm", | ||||
.priv_data_size = sizeof(MatroskaMuxContext), | .priv_data_size = sizeof(MatroskaMuxContext), | ||||
@@ -1345,7 +1345,7 @@ AVOutputFormat ff_webm_muxer = { | |||||
#if CONFIG_MATROSKA_AUDIO_MUXER | #if CONFIG_MATROSKA_AUDIO_MUXER | ||||
AVOutputFormat ff_matroska_audio_muxer = { | AVOutputFormat ff_matroska_audio_muxer = { | ||||
.name = "matroska", | .name = "matroska", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Matroska file format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Matroska"), | |||||
.mime_type = "audio/x-matroska", | .mime_type = "audio/x-matroska", | ||||
.extensions = "mka", | .extensions = "mka", | ||||
.priv_data_size = sizeof(MatroskaMuxContext), | .priv_data_size = sizeof(MatroskaMuxContext), | ||||
@@ -68,7 +68,7 @@ static int write_trailer(struct AVFormatContext *s) | |||||
AVOutputFormat ff_md5_muxer = { | AVOutputFormat ff_md5_muxer = { | ||||
.name = "md5", | .name = "md5", | ||||
.long_name = NULL_IF_CONFIG_SMALL("MD5 testing format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("MD5 testing"), | |||||
.priv_data_size = PRIVSIZE, | .priv_data_size = PRIVSIZE, | ||||
.audio_codec = CODEC_ID_PCM_S16LE, | .audio_codec = CODEC_ID_PCM_S16LE, | ||||
.video_codec = CODEC_ID_RAWVIDEO, | .video_codec = CODEC_ID_RAWVIDEO, | ||||
@@ -98,7 +98,7 @@ static int framemd5_write_packet(struct AVFormatContext *s, AVPacket *pkt) | |||||
AVOutputFormat ff_framemd5_muxer = { | AVOutputFormat ff_framemd5_muxer = { | ||||
.name = "framemd5", | .name = "framemd5", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Per-frame MD5 testing format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Per-frame MD5 testing"), | |||||
.priv_data_size = PRIVSIZE, | .priv_data_size = PRIVSIZE, | ||||
.audio_codec = CODEC_ID_PCM_S16LE, | .audio_codec = CODEC_ID_PCM_S16LE, | ||||
.video_codec = CODEC_ID_RAWVIDEO, | .video_codec = CODEC_ID_RAWVIDEO, | ||||
@@ -187,7 +187,7 @@ static int read_packet(AVFormatContext *s, | |||||
AVInputFormat ff_mm_demuxer = { | AVInputFormat ff_mm_demuxer = { | ||||
.name = "mm", | .name = "mm", | ||||
.long_name = NULL_IF_CONFIG_SMALL("American Laser Games MM format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("American Laser Games MM"), | |||||
.priv_data_size = sizeof(MmDemuxContext), | .priv_data_size = sizeof(MmDemuxContext), | ||||
.read_probe = probe, | .read_probe = probe, | ||||
.read_header = read_header, | .read_header = read_header, | ||||
@@ -3691,7 +3691,7 @@ AVOutputFormat ff_ipod_muxer = { | |||||
MOV_CLASS(ismv) | MOV_CLASS(ismv) | ||||
AVOutputFormat ff_ismv_muxer = { | AVOutputFormat ff_ismv_muxer = { | ||||
.name = "ismv", | .name = "ismv", | ||||
.long_name = NULL_IF_CONFIG_SMALL("ISMV/ISMA (Smooth Streaming) format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("ISMV/ISMA (Smooth Streaming)"), | |||||
.mime_type = "application/mp4", | .mime_type = "application/mp4", | ||||
.extensions = "ismv,isma", | .extensions = "ismv,isma", | ||||
.priv_data_size = sizeof(MOVMuxContext), | .priv_data_size = sizeof(MOVMuxContext), | ||||
@@ -1178,7 +1178,7 @@ AVOutputFormat ff_mpeg1vcd_muxer = { | |||||
MPEGENC_CLASS(vob) | MPEGENC_CLASS(vob) | ||||
AVOutputFormat ff_mpeg2vob_muxer = { | AVOutputFormat ff_mpeg2vob_muxer = { | ||||
.name = "vob", | .name = "vob", | ||||
.long_name = NULL_IF_CONFIG_SMALL("MPEG-2 PS format (VOB)"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("MPEG-2 PS (VOB)"), | |||||
.mime_type = "video/mpeg", | .mime_type = "video/mpeg", | ||||
.extensions = "vob", | .extensions = "vob", | ||||
.priv_data_size = sizeof(MpegMuxContext), | .priv_data_size = sizeof(MpegMuxContext), | ||||
@@ -1214,7 +1214,7 @@ AVOutputFormat ff_mpeg2svcd_muxer = { | |||||
MPEGENC_CLASS(dvd) | MPEGENC_CLASS(dvd) | ||||
AVOutputFormat ff_mpeg2dvd_muxer = { | AVOutputFormat ff_mpeg2dvd_muxer = { | ||||
.name = "dvd", | .name = "dvd", | ||||
.long_name = NULL_IF_CONFIG_SMALL("MPEG-2 PS format (DVD VOB)"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("MPEG-2 PS (DVD VOB)"), | |||||
.mime_type = "video/mpeg", | .mime_type = "video/mpeg", | ||||
.extensions = "dvd", | .extensions = "dvd", | ||||
.priv_data_size = sizeof(MpegMuxContext), | .priv_data_size = sizeof(MpegMuxContext), | ||||
@@ -58,7 +58,7 @@ static int mpjpeg_write_trailer(AVFormatContext *s) | |||||
AVOutputFormat ff_mpjpeg_muxer = { | AVOutputFormat ff_mpjpeg_muxer = { | ||||
.name = "mpjpeg", | .name = "mpjpeg", | ||||
.long_name = NULL_IF_CONFIG_SMALL("MIME multipart JPEG format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("MIME multipart JPEG"), | |||||
.mime_type = "multipart/x-mixed-replace;boundary=" BOUNDARY_TAG, | .mime_type = "multipart/x-mixed-replace;boundary=" BOUNDARY_TAG, | ||||
.extensions = "mjpg", | .extensions = "mjpg", | ||||
.audio_codec = CODEC_ID_NONE, | .audio_codec = CODEC_ID_NONE, | ||||
@@ -195,7 +195,7 @@ static int mtv_read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
AVInputFormat ff_mtv_demuxer = { | AVInputFormat ff_mtv_demuxer = { | ||||
.name = "mtv", | .name = "mtv", | ||||
.long_name = NULL_IF_CONFIG_SMALL("MTV format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("MTV"), | |||||
.priv_data_size = sizeof(MTVDemuxContext), | .priv_data_size = sizeof(MTVDemuxContext), | ||||
.read_probe = mtv_probe, | .read_probe = mtv_probe, | ||||
.read_header = mtv_read_header, | .read_header = mtv_read_header, | ||||
@@ -126,7 +126,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
AVInputFormat ff_mvi_demuxer = { | AVInputFormat ff_mvi_demuxer = { | ||||
.name = "mvi", | .name = "mvi", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Motion Pixels MVI format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Motion Pixels MVI"), | |||||
.priv_data_size = sizeof(MviDemuxContext), | .priv_data_size = sizeof(MviDemuxContext), | ||||
.read_header = read_header, | .read_header = read_header, | ||||
.read_packet = read_packet, | .read_packet = read_packet, | ||||
@@ -241,7 +241,7 @@ static int mxg_close(struct AVFormatContext *s) | |||||
AVInputFormat ff_mxg_demuxer = { | AVInputFormat ff_mxg_demuxer = { | ||||
.name = "mxg", | .name = "mxg", | ||||
.long_name = NULL_IF_CONFIG_SMALL("MxPEG clip file format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("MxPEG clip"), | |||||
.priv_data_size = sizeof(MXGContext), | .priv_data_size = sizeof(MXGContext), | ||||
.read_header = mxg_read_header, | .read_header = mxg_read_header, | ||||
.read_packet = mxg_read_packet, | .read_packet = mxg_read_packet, | ||||
@@ -93,7 +93,7 @@ static int nc_read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
AVInputFormat ff_nc_demuxer = { | AVInputFormat ff_nc_demuxer = { | ||||
.name = "nc", | .name = "nc", | ||||
.long_name = NULL_IF_CONFIG_SMALL("NC camera feed format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("NC camera feed"), | |||||
.read_probe = nc_probe, | .read_probe = nc_probe, | ||||
.read_header = nc_read_header, | .read_header = nc_read_header, | ||||
.read_packet = nc_read_packet, | .read_packet = nc_read_packet, | ||||
@@ -28,7 +28,7 @@ static int null_write_packet(struct AVFormatContext *s, AVPacket *pkt) | |||||
AVOutputFormat ff_null_muxer = { | AVOutputFormat ff_null_muxer = { | ||||
.name = "null", | .name = "null", | ||||
.long_name = NULL_IF_CONFIG_SMALL("raw null video format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("raw null video"), | |||||
.audio_codec = AV_NE(CODEC_ID_PCM_S16BE, CODEC_ID_PCM_S16LE), | .audio_codec = AV_NE(CODEC_ID_PCM_S16BE, CODEC_ID_PCM_S16LE), | ||||
.video_codec = CODEC_ID_RAWVIDEO, | .video_codec = CODEC_ID_RAWVIDEO, | ||||
.write_packet = null_write_packet, | .write_packet = null_write_packet, | ||||
@@ -1014,7 +1014,7 @@ static int nut_read_close(AVFormatContext *s) | |||||
AVInputFormat ff_nut_demuxer = { | AVInputFormat ff_nut_demuxer = { | ||||
.name = "nut", | .name = "nut", | ||||
.long_name = NULL_IF_CONFIG_SMALL("NUT format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("NUT"), | |||||
.flags = AVFMT_SEEK_TO_PTS, | .flags = AVFMT_SEEK_TO_PTS, | ||||
.priv_data_size = sizeof(NUTContext), | .priv_data_size = sizeof(NUTContext), | ||||
.read_probe = nut_probe, | .read_probe = nut_probe, | ||||
@@ -866,7 +866,7 @@ static int nut_write_trailer(AVFormatContext *s){ | |||||
AVOutputFormat ff_nut_muxer = { | AVOutputFormat ff_nut_muxer = { | ||||
.name = "nut", | .name = "nut", | ||||
.long_name = NULL_IF_CONFIG_SMALL("NUT format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("NUT"), | |||||
.mime_type = "video/x-nut", | .mime_type = "video/x-nut", | ||||
.extensions = "nut", | .extensions = "nut", | ||||
.priv_data_size = sizeof(NUTContext), | .priv_data_size = sizeof(NUTContext), | ||||
@@ -338,7 +338,7 @@ static int64_t nuv_read_dts(AVFormatContext *s, int stream_index, | |||||
AVInputFormat ff_nuv_demuxer = { | AVInputFormat ff_nuv_demuxer = { | ||||
.name = "nuv", | .name = "nuv", | ||||
.long_name = NULL_IF_CONFIG_SMALL("NuppelVideo format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("NuppelVideo"), | |||||
.priv_data_size = sizeof(NUVContext), | .priv_data_size = sizeof(NUVContext), | ||||
.read_probe = nuv_probe, | .read_probe = nuv_probe, | ||||
.read_header = nuv_header, | .read_header = nuv_header, | ||||
@@ -76,62 +76,62 @@ AVInputFormat ff_pcm_ ## name_ ## _demuxer = { \ | |||||
.priv_class = &name_ ## _demuxer_class, \ | .priv_class = &name_ ## _demuxer_class, \ | ||||
}; | }; | ||||
PCMDEF(f64be, "PCM 64 bit floating-point big-endian format", | |||||
PCMDEF(f64be, "PCM 64-bit floating-point big-endian", | |||||
NULL, CODEC_ID_PCM_F64BE) | NULL, CODEC_ID_PCM_F64BE) | ||||
PCMDEF(f64le, "PCM 64 bit floating-point little-endian format", | |||||
PCMDEF(f64le, "PCM 64-bit floating-point little-endian", | |||||
NULL, CODEC_ID_PCM_F64LE) | NULL, CODEC_ID_PCM_F64LE) | ||||
PCMDEF(f32be, "PCM 32 bit floating-point big-endian format", | |||||
PCMDEF(f32be, "PCM 32-bit floating-point big-endian", | |||||
NULL, CODEC_ID_PCM_F32BE) | NULL, CODEC_ID_PCM_F32BE) | ||||
PCMDEF(f32le, "PCM 32 bit floating-point little-endian format", | |||||
PCMDEF(f32le, "PCM 32-bit floating-point little-endian", | |||||
NULL, CODEC_ID_PCM_F32LE) | NULL, CODEC_ID_PCM_F32LE) | ||||
PCMDEF(s32be, "PCM signed 32 bit big-endian format", | |||||
PCMDEF(s32be, "PCM signed 32-bit big-endian", | |||||
NULL, CODEC_ID_PCM_S32BE) | NULL, CODEC_ID_PCM_S32BE) | ||||
PCMDEF(s32le, "PCM signed 32 bit little-endian format", | |||||
PCMDEF(s32le, "PCM signed 32-bit little-endian", | |||||
NULL, CODEC_ID_PCM_S32LE) | NULL, CODEC_ID_PCM_S32LE) | ||||
PCMDEF(s24be, "PCM signed 24 bit big-endian format", | |||||
PCMDEF(s24be, "PCM signed 24-bit big-endian", | |||||
NULL, CODEC_ID_PCM_S24BE) | NULL, CODEC_ID_PCM_S24BE) | ||||
PCMDEF(s24le, "PCM signed 24 bit little-endian format", | |||||
PCMDEF(s24le, "PCM signed 24-bit little-endian", | |||||
NULL, CODEC_ID_PCM_S24LE) | NULL, CODEC_ID_PCM_S24LE) | ||||
PCMDEF(s16be, "PCM signed 16 bit big-endian format", | |||||
PCMDEF(s16be, "PCM signed 16-bit big-endian", | |||||
AV_NE("sw", NULL), CODEC_ID_PCM_S16BE) | AV_NE("sw", NULL), CODEC_ID_PCM_S16BE) | ||||
PCMDEF(s16le, "PCM signed 16 bit little-endian format", | |||||
PCMDEF(s16le, "PCM signed 16-bit little-endian", | |||||
AV_NE(NULL, "sw"), CODEC_ID_PCM_S16LE) | AV_NE(NULL, "sw"), CODEC_ID_PCM_S16LE) | ||||
PCMDEF(s8, "PCM signed 8 bit format", | |||||
PCMDEF(s8, "PCM signed 8-bit", | |||||
"sb", CODEC_ID_PCM_S8) | "sb", CODEC_ID_PCM_S8) | ||||
PCMDEF(u32be, "PCM unsigned 32 bit big-endian format", | |||||
PCMDEF(u32be, "PCM unsigned 32-bit big-endian", | |||||
NULL, CODEC_ID_PCM_U32BE) | NULL, CODEC_ID_PCM_U32BE) | ||||
PCMDEF(u32le, "PCM unsigned 32 bit little-endian format", | |||||
PCMDEF(u32le, "PCM unsigned 32-bit little-endian", | |||||
NULL, CODEC_ID_PCM_U32LE) | NULL, CODEC_ID_PCM_U32LE) | ||||
PCMDEF(u24be, "PCM unsigned 24 bit big-endian format", | |||||
PCMDEF(u24be, "PCM unsigned 24-bit big-endian", | |||||
NULL, CODEC_ID_PCM_U24BE) | NULL, CODEC_ID_PCM_U24BE) | ||||
PCMDEF(u24le, "PCM unsigned 24 bit little-endian format", | |||||
PCMDEF(u24le, "PCM unsigned 24-bit little-endian", | |||||
NULL, CODEC_ID_PCM_U24LE) | NULL, CODEC_ID_PCM_U24LE) | ||||
PCMDEF(u16be, "PCM unsigned 16 bit big-endian format", | |||||
PCMDEF(u16be, "PCM unsigned 16-bit big-endian", | |||||
AV_NE("uw", NULL), CODEC_ID_PCM_U16BE) | AV_NE("uw", NULL), CODEC_ID_PCM_U16BE) | ||||
PCMDEF(u16le, "PCM unsigned 16 bit little-endian format", | |||||
PCMDEF(u16le, "PCM unsigned 16-bit little-endian", | |||||
AV_NE(NULL, "uw"), CODEC_ID_PCM_U16LE) | AV_NE(NULL, "uw"), CODEC_ID_PCM_U16LE) | ||||
PCMDEF(u8, "PCM unsigned 8 bit format", | |||||
PCMDEF(u8, "PCM unsigned 8-bit", | |||||
"ub", CODEC_ID_PCM_U8) | "ub", CODEC_ID_PCM_U8) | ||||
PCMDEF(alaw, "PCM A-law format", | |||||
PCMDEF(alaw, "PCM A-law", | |||||
"al", CODEC_ID_PCM_ALAW) | "al", CODEC_ID_PCM_ALAW) | ||||
PCMDEF(mulaw, "PCM mu-law format", | |||||
PCMDEF(mulaw, "PCM mu-law", | |||||
"ul", CODEC_ID_PCM_MULAW) | "ul", CODEC_ID_PCM_MULAW) |
@@ -33,62 +33,62 @@ AVOutputFormat ff_pcm_ ## name_ ## _muxer = { \ | |||||
.flags = AVFMT_NOTIMESTAMPS, \ | .flags = AVFMT_NOTIMESTAMPS, \ | ||||
}; | }; | ||||
PCMDEF(f64be, "PCM 64 bit floating-point big-endian format", | |||||
PCMDEF(f64be, "PCM 64-bit floating-point big-endian", | |||||
NULL, CODEC_ID_PCM_F64BE) | NULL, CODEC_ID_PCM_F64BE) | ||||
PCMDEF(f64le, "PCM 64 bit floating-point little-endian format", | |||||
PCMDEF(f64le, "PCM 64-bit floating-point little-endian", | |||||
NULL, CODEC_ID_PCM_F64LE) | NULL, CODEC_ID_PCM_F64LE) | ||||
PCMDEF(f32be, "PCM 32 bit floating-point big-endian format", | |||||
PCMDEF(f32be, "PCM 32-bit floating-point big-endian", | |||||
NULL, CODEC_ID_PCM_F32BE) | NULL, CODEC_ID_PCM_F32BE) | ||||
PCMDEF(f32le, "PCM 32 bit floating-point little-endian format", | |||||
PCMDEF(f32le, "PCM 32-bit floating-point little-endian", | |||||
NULL, CODEC_ID_PCM_F32LE) | NULL, CODEC_ID_PCM_F32LE) | ||||
PCMDEF(s32be, "PCM signed 32 bit big-endian format", | |||||
PCMDEF(s32be, "PCM signed 32-bit big-endian", | |||||
NULL, CODEC_ID_PCM_S32BE) | NULL, CODEC_ID_PCM_S32BE) | ||||
PCMDEF(s32le, "PCM signed 32 bit little-endian format", | |||||
PCMDEF(s32le, "PCM signed 32-bit little-endian", | |||||
NULL, CODEC_ID_PCM_S32LE) | NULL, CODEC_ID_PCM_S32LE) | ||||
PCMDEF(s24be, "PCM signed 24 bit big-endian format", | |||||
PCMDEF(s24be, "PCM signed 24-bit big-endian", | |||||
NULL, CODEC_ID_PCM_S24BE) | NULL, CODEC_ID_PCM_S24BE) | ||||
PCMDEF(s24le, "PCM signed 24 bit little-endian format", | |||||
PCMDEF(s24le, "PCM signed 24-bit little-endian", | |||||
NULL, CODEC_ID_PCM_S24LE) | NULL, CODEC_ID_PCM_S24LE) | ||||
PCMDEF(s16be, "PCM signed 16 bit big-endian format", | |||||
PCMDEF(s16be, "PCM signed 16-bit big-endian", | |||||
AV_NE("sw", NULL), CODEC_ID_PCM_S16BE) | AV_NE("sw", NULL), CODEC_ID_PCM_S16BE) | ||||
PCMDEF(s16le, "PCM signed 16 bit little-endian format", | |||||
PCMDEF(s16le, "PCM signed 16-bit little-endian", | |||||
AV_NE(NULL, "sw"), CODEC_ID_PCM_S16LE) | AV_NE(NULL, "sw"), CODEC_ID_PCM_S16LE) | ||||
PCMDEF(s8, "PCM signed 8 bit format", | |||||
PCMDEF(s8, "PCM signed 8-bit", | |||||
"sb", CODEC_ID_PCM_S8) | "sb", CODEC_ID_PCM_S8) | ||||
PCMDEF(u32be, "PCM unsigned 32 bit big-endian format", | |||||
PCMDEF(u32be, "PCM unsigned 32-bit big-endian", | |||||
NULL, CODEC_ID_PCM_U32BE) | NULL, CODEC_ID_PCM_U32BE) | ||||
PCMDEF(u32le, "PCM unsigned 32 bit little-endian format", | |||||
PCMDEF(u32le, "PCM unsigned 32-bit little-endian", | |||||
NULL, CODEC_ID_PCM_U32LE) | NULL, CODEC_ID_PCM_U32LE) | ||||
PCMDEF(u24be, "PCM unsigned 24 bit big-endian format", | |||||
PCMDEF(u24be, "PCM unsigned 24-bit big-endian", | |||||
NULL, CODEC_ID_PCM_U24BE) | NULL, CODEC_ID_PCM_U24BE) | ||||
PCMDEF(u24le, "PCM unsigned 24 bit little-endian format", | |||||
PCMDEF(u24le, "PCM unsigned 24-bit little-endian", | |||||
NULL, CODEC_ID_PCM_U24LE) | NULL, CODEC_ID_PCM_U24LE) | ||||
PCMDEF(u16be, "PCM unsigned 16 bit big-endian format", | |||||
PCMDEF(u16be, "PCM unsigned 16-bit big-endian", | |||||
AV_NE("uw", NULL), CODEC_ID_PCM_U16BE) | AV_NE("uw", NULL), CODEC_ID_PCM_U16BE) | ||||
PCMDEF(u16le, "PCM unsigned 16 bit little-endian format", | |||||
PCMDEF(u16le, "PCM unsigned 16-bit little-endian", | |||||
AV_NE(NULL, "uw"), CODEC_ID_PCM_U16LE) | AV_NE(NULL, "uw"), CODEC_ID_PCM_U16LE) | ||||
PCMDEF(u8, "PCM unsigned 8 bit format", | |||||
PCMDEF(u8, "PCM unsigned 8-bit", | |||||
"ub", CODEC_ID_PCM_U8) | "ub", CODEC_ID_PCM_U8) | ||||
PCMDEF(alaw, "PCM A-law format", | |||||
PCMDEF(alaw, "PCM A-law", | |||||
"al", CODEC_ID_PCM_ALAW) | "al", CODEC_ID_PCM_ALAW) | ||||
PCMDEF(mulaw, "PCM mu-law format", | |||||
PCMDEF(mulaw, "PCM mu-law", | |||||
"ul", CODEC_ID_PCM_MULAW) | "ul", CODEC_ID_PCM_MULAW) |
@@ -173,7 +173,7 @@ static int pmp_close(AVFormatContext *s) | |||||
AVInputFormat ff_pmp_demuxer = { | AVInputFormat ff_pmp_demuxer = { | ||||
.name = "pmp", | .name = "pmp", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Playstation Portable PMP format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Playstation Portable PMP"), | |||||
.priv_data_size = sizeof(PMPContext), | .priv_data_size = sizeof(PMPContext), | ||||
.read_probe = pmp_probe, | .read_probe = pmp_probe, | ||||
.read_header = pmp_header, | .read_header = pmp_header, | ||||
@@ -296,7 +296,7 @@ static int str_read_close(AVFormatContext *s) | |||||
AVInputFormat ff_str_demuxer = { | AVInputFormat ff_str_demuxer = { | ||||
.name = "psxstr", | .name = "psxstr", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Sony Playstation STR format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Sony Playstation STR"), | |||||
.priv_data_size = sizeof(StrDemuxContext), | .priv_data_size = sizeof(StrDemuxContext), | ||||
.read_probe = str_probe, | .read_probe = str_probe, | ||||
.read_header = str_read_header, | .read_header = str_read_header, | ||||
@@ -216,7 +216,7 @@ static int64_t pva_read_timestamp(struct AVFormatContext *s, int stream_index, | |||||
AVInputFormat ff_pva_demuxer = { | AVInputFormat ff_pva_demuxer = { | ||||
.name = "pva", | .name = "pva", | ||||
.long_name = NULL_IF_CONFIG_SMALL("TechnoTrend PVA file and stream format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("TechnoTrend PVA"), | |||||
.priv_data_size = sizeof(PVAContext), | .priv_data_size = sizeof(PVAContext), | ||||
.read_probe = pva_probe, | .read_probe = pva_probe, | ||||
.read_header = pva_read_header, | .read_header = pva_read_header, | ||||
@@ -188,7 +188,7 @@ static int qcp_read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
AVInputFormat ff_qcp_demuxer = { | AVInputFormat ff_qcp_demuxer = { | ||||
.name = "qcp", | .name = "qcp", | ||||
.long_name = NULL_IF_CONFIG_SMALL("QCP format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("QCP"), | |||||
.priv_data_size = sizeof(QCPContext), | .priv_data_size = sizeof(QCPContext), | ||||
.read_probe = qcp_probe, | .read_probe = qcp_probe, | ||||
.read_header = qcp_read_header, | .read_header = qcp_read_header, | ||||
@@ -396,7 +396,7 @@ static int r3d_close(AVFormatContext *s) | |||||
AVInputFormat ff_r3d_demuxer = { | AVInputFormat ff_r3d_demuxer = { | ||||
.name = "r3d", | .name = "r3d", | ||||
.long_name = NULL_IF_CONFIG_SMALL("REDCODE R3D format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("REDCODE R3D"), | |||||
.priv_data_size = sizeof(R3DContext), | .priv_data_size = sizeof(R3DContext), | ||||
.read_probe = r3d_probe, | .read_probe = r3d_probe, | ||||
.read_header = r3d_read_header, | .read_header = r3d_read_header, | ||||
@@ -174,7 +174,7 @@ AVOutputFormat ff_h263_muxer = { | |||||
#if CONFIG_H264_MUXER | #if CONFIG_H264_MUXER | ||||
AVOutputFormat ff_h264_muxer = { | AVOutputFormat ff_h264_muxer = { | ||||
.name = "h264", | .name = "h264", | ||||
.long_name = NULL_IF_CONFIG_SMALL("raw H.264 video format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("raw H.264 video"), | |||||
.extensions = "h264", | .extensions = "h264", | ||||
.audio_codec = CODEC_ID_NONE, | .audio_codec = CODEC_ID_NONE, | ||||
.video_codec = CODEC_ID_H264, | .video_codec = CODEC_ID_H264, | ||||
@@ -186,7 +186,7 @@ AVOutputFormat ff_h264_muxer = { | |||||
#if CONFIG_M4V_MUXER | #if CONFIG_M4V_MUXER | ||||
AVOutputFormat ff_m4v_muxer = { | AVOutputFormat ff_m4v_muxer = { | ||||
.name = "m4v", | .name = "m4v", | ||||
.long_name = NULL_IF_CONFIG_SMALL("raw MPEG-4 video format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("raw MPEG-4 video"), | |||||
.extensions = "m4v", | .extensions = "m4v", | ||||
.audio_codec = CODEC_ID_NONE, | .audio_codec = CODEC_ID_NONE, | ||||
.video_codec = CODEC_ID_MPEG4, | .video_codec = CODEC_ID_MPEG4, | ||||
@@ -248,7 +248,7 @@ AVOutputFormat ff_mpeg2video_muxer = { | |||||
#if CONFIG_RAWVIDEO_MUXER | #if CONFIG_RAWVIDEO_MUXER | ||||
AVOutputFormat ff_rawvideo_muxer = { | AVOutputFormat ff_rawvideo_muxer = { | ||||
.name = "rawvideo", | .name = "rawvideo", | ||||
.long_name = NULL_IF_CONFIG_SMALL("raw video format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("raw video"), | |||||
.extensions = "yuv,rgb", | .extensions = "yuv,rgb", | ||||
.audio_codec = CODEC_ID_NONE, | .audio_codec = CODEC_ID_NONE, | ||||
.video_codec = CODEC_ID_RAWVIDEO, | .video_codec = CODEC_ID_RAWVIDEO, | ||||
@@ -62,7 +62,7 @@ static const AVClass rawvideo_demuxer_class = { | |||||
AVInputFormat ff_rawvideo_demuxer = { | AVInputFormat ff_rawvideo_demuxer = { | ||||
.name = "rawvideo", | .name = "rawvideo", | ||||
.long_name = NULL_IF_CONFIG_SMALL("raw video format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("raw video"), | |||||
.priv_data_size = sizeof(FFRawVideoDemuxerContext), | .priv_data_size = sizeof(FFRawVideoDemuxerContext), | ||||
.read_header = ff_raw_read_header, | .read_header = ff_raw_read_header, | ||||
.read_packet = rawvideo_read_packet, | .read_packet = rawvideo_read_packet, | ||||
@@ -289,7 +289,7 @@ static int rl2_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp | |||||
AVInputFormat ff_rl2_demuxer = { | AVInputFormat ff_rl2_demuxer = { | ||||
.name = "rl2", | .name = "rl2", | ||||
.long_name = NULL_IF_CONFIG_SMALL("RL2 format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("RL2"), | |||||
.priv_data_size = sizeof(Rl2DemuxContext), | .priv_data_size = sizeof(Rl2DemuxContext), | ||||
.read_probe = rl2_probe, | .read_probe = rl2_probe, | ||||
.read_header = rl2_read_header, | .read_header = rl2_read_header, | ||||
@@ -989,7 +989,7 @@ static int64_t rm_read_dts(AVFormatContext *s, int stream_index, | |||||
AVInputFormat ff_rm_demuxer = { | AVInputFormat ff_rm_demuxer = { | ||||
.name = "rm", | .name = "rm", | ||||
.long_name = NULL_IF_CONFIG_SMALL("RealMedia format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("RealMedia"), | |||||
.priv_data_size = sizeof(RMDemuxContext), | .priv_data_size = sizeof(RMDemuxContext), | ||||
.read_probe = rm_probe, | .read_probe = rm_probe, | ||||
.read_header = rm_read_header, | .read_header = rm_read_header, | ||||
@@ -467,7 +467,7 @@ static int rm_write_trailer(AVFormatContext *s) | |||||
AVOutputFormat ff_rm_muxer = { | AVOutputFormat ff_rm_muxer = { | ||||
.name = "rm", | .name = "rm", | ||||
.long_name = NULL_IF_CONFIG_SMALL("RealMedia format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("RealMedia"), | |||||
.mime_type = "application/vnd.rn-realmedia", | .mime_type = "application/vnd.rn-realmedia", | ||||
.extensions = "rm,ra", | .extensions = "rm,ra", | ||||
.priv_data_size = sizeof(RMMuxContext), | .priv_data_size = sizeof(RMMuxContext), | ||||
@@ -351,7 +351,7 @@ static int rpl_read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
AVInputFormat ff_rpl_demuxer = { | AVInputFormat ff_rpl_demuxer = { | ||||
.name = "rpl", | .name = "rpl", | ||||
.long_name = NULL_IF_CONFIG_SMALL("RPL/ARMovie format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("RPL / ARMovie"), | |||||
.priv_data_size = sizeof(RPLContext), | .priv_data_size = sizeof(RPLContext), | ||||
.read_probe = rpl_probe, | .read_probe = rpl_probe, | ||||
.read_header = rpl_read_header, | .read_header = rpl_read_header, | ||||
@@ -88,7 +88,7 @@ static int rso_read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
AVInputFormat ff_rso_demuxer = { | AVInputFormat ff_rso_demuxer = { | ||||
.name = "rso", | .name = "rso", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Lego Mindstorms RSO format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Lego Mindstorms RSO"), | |||||
.extensions = "rso", | .extensions = "rso", | ||||
.read_header = rso_read_header, | .read_header = rso_read_header, | ||||
.read_packet = rso_read_packet, | .read_packet = rso_read_packet, | ||||
@@ -102,7 +102,7 @@ static int rso_write_trailer(AVFormatContext *s) | |||||
AVOutputFormat ff_rso_muxer = { | AVOutputFormat ff_rso_muxer = { | ||||
.name = "rso", | .name = "rso", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Lego Mindstorms RSO format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Lego Mindstorms RSO"), | |||||
.extensions = "rso", | .extensions = "rso", | ||||
.audio_codec = CODEC_ID_PCM_U8, | .audio_codec = CODEC_ID_PCM_U8, | ||||
.video_codec = CODEC_ID_NONE, | .video_codec = CODEC_ID_NONE, | ||||
@@ -546,7 +546,7 @@ static int rtp_write_trailer(AVFormatContext *s1) | |||||
AVOutputFormat ff_rtp_muxer = { | AVOutputFormat ff_rtp_muxer = { | ||||
.name = "rtp", | .name = "rtp", | ||||
.long_name = NULL_IF_CONFIG_SMALL("RTP output format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("RTP output"), | |||||
.priv_data_size = sizeof(RTPMuxContext), | .priv_data_size = sizeof(RTPMuxContext), | ||||
.audio_codec = CODEC_ID_PCM_MULAW, | .audio_codec = CODEC_ID_PCM_MULAW, | ||||
.video_codec = CODEC_ID_MPEG4, | .video_codec = CODEC_ID_MPEG4, | ||||
@@ -2076,7 +2076,7 @@ static const AVClass rtp_demuxer_class = { | |||||
AVInputFormat ff_rtp_demuxer = { | AVInputFormat ff_rtp_demuxer = { | ||||
.name = "rtp", | .name = "rtp", | ||||
.long_name = NULL_IF_CONFIG_SMALL("RTP input format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("RTP input"), | |||||
.priv_data_size = sizeof(RTSPState), | .priv_data_size = sizeof(RTSPState), | ||||
.read_probe = rtp_probe, | .read_probe = rtp_probe, | ||||
.read_header = rtp_read_header, | .read_header = rtp_read_header, | ||||
@@ -919,7 +919,7 @@ static const AVClass rtsp_demuxer_class = { | |||||
AVInputFormat ff_rtsp_demuxer = { | AVInputFormat ff_rtsp_demuxer = { | ||||
.name = "rtsp", | .name = "rtsp", | ||||
.long_name = NULL_IF_CONFIG_SMALL("RTSP input format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("RTSP input"), | |||||
.priv_data_size = sizeof(RTSPState), | .priv_data_size = sizeof(RTSPState), | ||||
.read_probe = rtsp_probe, | .read_probe = rtsp_probe, | ||||
.read_header = rtsp_read_header, | .read_header = rtsp_read_header, | ||||
@@ -235,7 +235,7 @@ static int rtsp_write_close(AVFormatContext *s) | |||||
AVOutputFormat ff_rtsp_muxer = { | AVOutputFormat ff_rtsp_muxer = { | ||||
.name = "rtsp", | .name = "rtsp", | ||||
.long_name = NULL_IF_CONFIG_SMALL("RTSP output format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("RTSP output"), | |||||
.priv_data_size = sizeof(RTSPState), | .priv_data_size = sizeof(RTSPState), | ||||
.audio_codec = CODEC_ID_AAC, | .audio_codec = CODEC_ID_AAC, | ||||
.video_codec = CODEC_ID_MPEG4, | .video_codec = CODEC_ID_MPEG4, | ||||
@@ -227,7 +227,7 @@ static int sap_fetch_packet(AVFormatContext *s, AVPacket *pkt) | |||||
AVInputFormat ff_sap_demuxer = { | AVInputFormat ff_sap_demuxer = { | ||||
.name = "sap", | .name = "sap", | ||||
.long_name = NULL_IF_CONFIG_SMALL("SAP input format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("SAP input"), | |||||
.priv_data_size = sizeof(struct SAPState), | .priv_data_size = sizeof(struct SAPState), | ||||
.read_probe = sap_probe, | .read_probe = sap_probe, | ||||
.read_header = sap_read_header, | .read_header = sap_read_header, | ||||
@@ -254,7 +254,7 @@ static int sap_write_packet(AVFormatContext *s, AVPacket *pkt) | |||||
AVOutputFormat ff_sap_muxer = { | AVOutputFormat ff_sap_muxer = { | ||||
.name = "sap", | .name = "sap", | ||||
.long_name = NULL_IF_CONFIG_SMALL("SAP output format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("SAP output"), | |||||
.priv_data_size = sizeof(struct SAPState), | .priv_data_size = sizeof(struct SAPState), | ||||
.audio_codec = CODEC_ID_AAC, | .audio_codec = CODEC_ID_AAC, | ||||
.video_codec = CODEC_ID_MPEG4, | .video_codec = CODEC_ID_MPEG4, | ||||
@@ -327,7 +327,7 @@ static int film_read_close(AVFormatContext *s) | |||||
AVInputFormat ff_segafilm_demuxer = { | AVInputFormat ff_segafilm_demuxer = { | ||||
.name = "film_cpk", | .name = "film_cpk", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Sega FILM/CPK format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Sega FILM / CPK"), | |||||
.priv_data_size = sizeof(FilmDemuxContext), | .priv_data_size = sizeof(FilmDemuxContext), | ||||
.read_probe = film_probe, | .read_probe = film_probe, | ||||
.read_header = film_read_header, | .read_header = film_read_header, | ||||
@@ -285,7 +285,7 @@ static int vmd_read_close(AVFormatContext *s) | |||||
AVInputFormat ff_vmd_demuxer = { | AVInputFormat ff_vmd_demuxer = { | ||||
.name = "vmd", | .name = "vmd", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Sierra VMD format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Sierra VMD"), | |||||
.priv_data_size = sizeof(VmdDemuxContext), | .priv_data_size = sizeof(VmdDemuxContext), | ||||
.read_probe = vmd_probe, | .read_probe = vmd_probe, | ||||
.read_header = vmd_read_header, | .read_header = vmd_read_header, | ||||
@@ -140,7 +140,7 @@ static int sol_read_packet(AVFormatContext *s, | |||||
AVInputFormat ff_sol_demuxer = { | AVInputFormat ff_sol_demuxer = { | ||||
.name = "sol", | .name = "sol", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Sierra SOL format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Sierra SOL"), | |||||
.read_probe = sol_probe, | .read_probe = sol_probe, | ||||
.read_header = sol_read_header, | .read_header = sol_read_header, | ||||
.read_packet = sol_read_packet, | .read_packet = sol_read_packet, | ||||
@@ -146,7 +146,7 @@ static int sox_read_packet(AVFormatContext *s, | |||||
AVInputFormat ff_sox_demuxer = { | AVInputFormat ff_sox_demuxer = { | ||||
.name = "sox", | .name = "sox", | ||||
.long_name = NULL_IF_CONFIG_SMALL("SoX native format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("SoX native"), | |||||
.read_probe = sox_probe, | .read_probe = sox_probe, | ||||
.read_header = sox_read_header, | .read_header = sox_read_header, | ||||
.read_packet = sox_read_packet, | .read_packet = sox_read_packet, | ||||
@@ -117,7 +117,7 @@ static int sox_write_trailer(AVFormatContext *s) | |||||
AVOutputFormat ff_sox_muxer = { | AVOutputFormat ff_sox_muxer = { | ||||
.name = "sox", | .name = "sox", | ||||
.long_name = NULL_IF_CONFIG_SMALL("SoX native format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("SoX native"), | |||||
.extensions = "sox", | .extensions = "sox", | ||||
.priv_data_size = sizeof(SoXContext), | .priv_data_size = sizeof(SoXContext), | ||||
.audio_codec = CODEC_ID_PCM_S32LE, | .audio_codec = CODEC_ID_PCM_S32LE, | ||||
@@ -94,7 +94,7 @@ static int srt_read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
AVInputFormat ff_srt_demuxer = { | AVInputFormat ff_srt_demuxer = { | ||||
.name = "srt", | .name = "srt", | ||||
.long_name = NULL_IF_CONFIG_SMALL("SubRip subtitle format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("SubRip subtitle"), | |||||
.read_probe = srt_probe, | .read_probe = srt_probe, | ||||
.read_header = srt_read_header, | .read_header = srt_read_header, | ||||
.read_packet = srt_read_packet, | .read_packet = srt_read_packet, | ||||
@@ -88,7 +88,7 @@ static int srt_write_packet(AVFormatContext *avf, AVPacket *pkt) | |||||
AVOutputFormat ff_srt_muxer = { | AVOutputFormat ff_srt_muxer = { | ||||
.name = "srt", | .name = "srt", | ||||
.long_name = NULL_IF_CONFIG_SMALL("SubRip subtitle format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("SubRip subtitle"), | |||||
.mime_type = "application/x-subrip", | .mime_type = "application/x-subrip", | ||||
.extensions = "srt", | .extensions = "srt", | ||||
.priv_data_size = sizeof(SRTContext), | .priv_data_size = sizeof(SRTContext), | ||||
@@ -306,7 +306,7 @@ static int seq_read_close(AVFormatContext *s) | |||||
AVInputFormat ff_tiertexseq_demuxer = { | AVInputFormat ff_tiertexseq_demuxer = { | ||||
.name = "tiertexseq", | .name = "tiertexseq", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Tiertex Limited SEQ format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Tiertex Limited SEQ"), | |||||
.priv_data_size = sizeof(SeqDemuxContext), | .priv_data_size = sizeof(SeqDemuxContext), | ||||
.read_probe = seq_probe, | .read_probe = seq_probe, | ||||
.read_header = seq_read_header, | .read_header = seq_read_header, | ||||
@@ -111,7 +111,7 @@ static int vc1t_read_packet(AVFormatContext *s, | |||||
AVInputFormat ff_vc1t_demuxer = { | AVInputFormat ff_vc1t_demuxer = { | ||||
.name = "vc1test", | .name = "vc1test", | ||||
.long_name = NULL_IF_CONFIG_SMALL("VC-1 test bitstream format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("VC-1 test bitstream"), | |||||
.read_probe = vc1t_probe, | .read_probe = vc1t_probe, | ||||
.read_header = vc1t_read_header, | .read_header = vc1t_read_header, | ||||
.read_packet = vc1t_read_packet, | .read_packet = vc1t_read_packet, | ||||
@@ -166,7 +166,7 @@ static int voc_read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
AVInputFormat ff_voc_demuxer = { | AVInputFormat ff_voc_demuxer = { | ||||
.name = "voc", | .name = "voc", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Creative Voice file format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Creative Voice"), | |||||
.priv_data_size = sizeof(VocDecContext), | .priv_data_size = sizeof(VocDecContext), | ||||
.read_probe = voc_probe, | .read_probe = voc_probe, | ||||
.read_header = voc_read_header, | .read_header = voc_read_header, | ||||
@@ -91,7 +91,7 @@ static int voc_write_trailer(AVFormatContext *s) | |||||
AVOutputFormat ff_voc_muxer = { | AVOutputFormat ff_voc_muxer = { | ||||
.name = "voc", | .name = "voc", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Creative Voice file format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Creative Voice"), | |||||
.mime_type = "audio/x-voc", | .mime_type = "audio/x-voc", | ||||
.extensions = "voc", | .extensions = "voc", | ||||
.priv_data_size = sizeof(VocEncContext), | .priv_data_size = sizeof(VocEncContext), | ||||
@@ -788,7 +788,7 @@ static int w64_read_header(AVFormatContext *s) | |||||
AVInputFormat ff_w64_demuxer = { | AVInputFormat ff_w64_demuxer = { | ||||
.name = "w64", | .name = "w64", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Sony Wave64 format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Sony Wave64"), | |||||
.priv_data_size = sizeof(WAVContext), | .priv_data_size = sizeof(WAVContext), | ||||
.read_probe = w64_probe, | .read_probe = w64_probe, | ||||
.read_header = w64_read_header, | .read_header = w64_read_header, | ||||
@@ -293,7 +293,7 @@ static int wc3_read_close(AVFormatContext *s) | |||||
AVInputFormat ff_wc3_demuxer = { | AVInputFormat ff_wc3_demuxer = { | ||||
.name = "wc3movie", | .name = "wc3movie", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Wing Commander III movie format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Wing Commander III movie"), | |||||
.priv_data_size = sizeof(Wc3DemuxContext), | .priv_data_size = sizeof(Wc3DemuxContext), | ||||
.read_probe = wc3_probe, | .read_probe = wc3_probe, | ||||
.read_header = wc3_read_header, | .read_header = wc3_read_header, | ||||
@@ -173,7 +173,7 @@ static int wsaud_read_packet(AVFormatContext *s, | |||||
AVInputFormat ff_wsaud_demuxer = { | AVInputFormat ff_wsaud_demuxer = { | ||||
.name = "wsaud", | .name = "wsaud", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Westwood Studios audio format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Westwood Studios audio"), | |||||
.read_probe = wsaud_probe, | .read_probe = wsaud_probe, | ||||
.read_header = wsaud_read_header, | .read_header = wsaud_read_header, | ||||
.read_packet = wsaud_read_packet, | .read_packet = wsaud_read_packet, | ||||
@@ -268,7 +268,7 @@ static int wsvqa_read_packet(AVFormatContext *s, | |||||
AVInputFormat ff_wsvqa_demuxer = { | AVInputFormat ff_wsvqa_demuxer = { | ||||
.name = "wsvqa", | .name = "wsvqa", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Westwood Studios VQA format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Westwood Studios VQA"), | |||||
.priv_data_size = sizeof(WsVqaDemuxContext), | .priv_data_size = sizeof(WsVqaDemuxContext), | ||||
.read_probe = wsvqa_probe, | .read_probe = wsvqa_probe, | ||||
.read_header = wsvqa_read_header, | .read_header = wsvqa_read_header, | ||||
@@ -36,7 +36,7 @@ | |||||
#define WV_END_BLOCK 0x1000 | #define WV_END_BLOCK 0x1000 | ||||
#define WV_SINGLE_BLOCK (WV_START_BLOCK | WV_END_BLOCK) | #define WV_SINGLE_BLOCK (WV_START_BLOCK | WV_END_BLOCK) | ||||
enum WV_FLAGS{ | |||||
enum WV_FLAGS { | |||||
WV_MONO = 0x0004, | WV_MONO = 0x0004, | ||||
WV_HYBRID = 0x0008, | WV_HYBRID = 0x0008, | ||||
WV_JOINT = 0x0010, | WV_JOINT = 0x0010, | ||||
@@ -51,11 +51,11 @@ enum WV_FLAGS{ | |||||
}; | }; | ||||
static const int wv_rates[16] = { | static const int wv_rates[16] = { | ||||
6000, 8000, 9600, 11025, 12000, 16000, 22050, 24000, | |||||
32000, 44100, 48000, 64000, 88200, 96000, 192000, -1 | |||||
6000, 8000, 9600, 11025, 12000, 16000, 22050, 24000, | |||||
32000, 44100, 48000, 64000, 88200, 96000, 192000, -1 | |||||
}; | }; | ||||
typedef struct{ | |||||
typedef struct { | |||||
uint32_t blksize, flags; | uint32_t blksize, flags; | ||||
int rate, chan, bpp; | int rate, chan, bpp; | ||||
uint32_t chmask; | uint32_t chmask; | ||||
@@ -64,7 +64,7 @@ typedef struct{ | |||||
int block_parsed; | int block_parsed; | ||||
uint8_t extra[WV_EXTRA_SIZE]; | uint8_t extra[WV_EXTRA_SIZE]; | ||||
int64_t pos; | int64_t pos; | ||||
}WVContext; | |||||
} WVContext; | |||||
static int wv_probe(AVProbeData *p) | static int wv_probe(AVProbeData *p) | ||||
{ | { | ||||
@@ -78,7 +78,8 @@ static int wv_probe(AVProbeData *p) | |||||
return 0; | return 0; | ||||
} | } | ||||
static int wv_read_block_header(AVFormatContext *ctx, AVIOContext *pb, int append) | |||||
static int wv_read_block_header(AVFormatContext *ctx, AVIOContext *pb, | |||||
int append) | |||||
{ | { | ||||
WVContext *wc = ctx->priv_data; | WVContext *wc = ctx->priv_data; | ||||
uint32_t tag, ver; | uint32_t tag, ver; | ||||
@@ -87,64 +88,67 @@ static int wv_read_block_header(AVFormatContext *ctx, AVIOContext *pb, int appen | |||||
uint32_t chmask; | uint32_t chmask; | ||||
wc->pos = avio_tell(pb); | wc->pos = avio_tell(pb); | ||||
if(!append){ | |||||
if (!append) { | |||||
tag = avio_rl32(pb); | tag = avio_rl32(pb); | ||||
if (tag != MKTAG('w', 'v', 'p', 'k')) | if (tag != MKTAG('w', 'v', 'p', 'k')) | ||||
return AVERROR_INVALIDDATA; | return AVERROR_INVALIDDATA; | ||||
size = avio_rl32(pb); | size = avio_rl32(pb); | ||||
if(size < 24 || size > WV_BLOCK_LIMIT){ | |||||
if (size < 24 || size > WV_BLOCK_LIMIT) { | |||||
av_log(ctx, AV_LOG_ERROR, "Incorrect block size %i\n", size); | av_log(ctx, AV_LOG_ERROR, "Incorrect block size %i\n", size); | ||||
return AVERROR_INVALIDDATA; | return AVERROR_INVALIDDATA; | ||||
} | } | ||||
wc->blksize = size; | wc->blksize = size; | ||||
ver = avio_rl16(pb); | ver = avio_rl16(pb); | ||||
if(ver < 0x402 || ver > 0x410){ | |||||
if (ver < 0x402 || ver > 0x410) { | |||||
av_log(ctx, AV_LOG_ERROR, "Unsupported version %03X\n", ver); | av_log(ctx, AV_LOG_ERROR, "Unsupported version %03X\n", ver); | ||||
return AVERROR_PATCHWELCOME; | return AVERROR_PATCHWELCOME; | ||||
} | } | ||||
avio_r8(pb); // track no | avio_r8(pb); // track no | ||||
avio_r8(pb); // track sub index | avio_r8(pb); // track sub index | ||||
wc->samples = avio_rl32(pb); // total samples in file | wc->samples = avio_rl32(pb); // total samples in file | ||||
wc->soff = avio_rl32(pb); // offset in samples of current block | |||||
wc->soff = avio_rl32(pb); // offset in samples of current block | |||||
avio_read(pb, wc->extra, WV_EXTRA_SIZE); | avio_read(pb, wc->extra, WV_EXTRA_SIZE); | ||||
}else{ | |||||
} else { | |||||
size = wc->blksize; | size = wc->blksize; | ||||
} | } | ||||
wc->flags = AV_RL32(wc->extra + 4); | wc->flags = AV_RL32(wc->extra + 4); | ||||
// blocks with zero samples don't contain actual audio information and should be ignored | |||||
/* Blocks with zero samples don't contain actual audio information | |||||
* and should be ignored */ | |||||
if (!AV_RN32(wc->extra)) | if (!AV_RN32(wc->extra)) | ||||
return 0; | return 0; | ||||
//parse flags | |||||
bpp = ((wc->flags & 3) + 1) << 3; | |||||
chan = 1 + !(wc->flags & WV_MONO); | |||||
// parse flags | |||||
bpp = ((wc->flags & 3) + 1) << 3; | |||||
chan = 1 + !(wc->flags & WV_MONO); | |||||
chmask = wc->flags & WV_MONO ? AV_CH_LAYOUT_MONO : AV_CH_LAYOUT_STEREO; | chmask = wc->flags & WV_MONO ? AV_CH_LAYOUT_MONO : AV_CH_LAYOUT_STEREO; | ||||
rate = wv_rates[(wc->flags >> 23) & 0xF]; | |||||
rate = wv_rates[(wc->flags >> 23) & 0xF]; | |||||
wc->multichannel = !!((wc->flags & WV_SINGLE_BLOCK) != WV_SINGLE_BLOCK); | wc->multichannel = !!((wc->flags & WV_SINGLE_BLOCK) != WV_SINGLE_BLOCK); | ||||
if(wc->multichannel){ | |||||
chan = wc->chan; | |||||
if (wc->multichannel) { | |||||
chan = wc->chan; | |||||
chmask = wc->chmask; | chmask = wc->chmask; | ||||
} | } | ||||
if((rate == -1 || !chan) && !wc->block_parsed){ | |||||
if ((rate == -1 || !chan) && !wc->block_parsed) { | |||||
int64_t block_end = avio_tell(pb) + wc->blksize - 24; | int64_t block_end = avio_tell(pb) + wc->blksize - 24; | ||||
if(!pb->seekable){ | |||||
av_log(ctx, AV_LOG_ERROR, "Cannot determine additional parameters\n"); | |||||
if (!pb->seekable) { | |||||
av_log(ctx, AV_LOG_ERROR, | |||||
"Cannot determine additional parameters\n"); | |||||
return AVERROR_INVALIDDATA; | return AVERROR_INVALIDDATA; | ||||
} | } | ||||
while(avio_tell(pb) < block_end){ | |||||
while (avio_tell(pb) < block_end) { | |||||
int id, size; | int id, size; | ||||
id = avio_r8(pb); | |||||
id = avio_r8(pb); | |||||
size = (id & 0x80) ? avio_rl24(pb) : avio_r8(pb); | size = (id & 0x80) ? avio_rl24(pb) : avio_r8(pb); | ||||
size <<= 1; | size <<= 1; | ||||
if(id&0x40) | |||||
if (id & 0x40) | |||||
size--; | size--; | ||||
switch(id&0x3F){ | |||||
switch (id & 0x3F) { | |||||
case 0xD: | case 0xD: | ||||
if(size <= 1){ | |||||
av_log(ctx, AV_LOG_ERROR, "Insufficient channel information\n"); | |||||
if (size <= 1) { | |||||
av_log(ctx, AV_LOG_ERROR, | |||||
"Insufficient channel information\n"); | |||||
return AVERROR_INVALIDDATA; | return AVERROR_INVALIDDATA; | ||||
} | } | ||||
chan = avio_r8(pb); | chan = avio_r8(pb); | ||||
switch(size - 2){ | |||||
switch (size - 2) { | |||||
case 0: | case 0: | ||||
chmask = avio_r8(pb); | chmask = avio_r8(pb); | ||||
break; | break; | ||||
@@ -159,11 +163,12 @@ static int wv_read_block_header(AVFormatContext *ctx, AVIOContext *pb, int appen | |||||
break; | break; | ||||
case 5: | case 5: | ||||
avio_skip(pb, 1); | avio_skip(pb, 1); | ||||
chan |= (avio_r8(pb) & 0xF) << 8; | |||||
chan |= (avio_r8(pb) & 0xF) << 8; | |||||
chmask = avio_rl24(pb); | chmask = avio_rl24(pb); | ||||
break; | break; | ||||
default: | default: | ||||
av_log(ctx, AV_LOG_ERROR, "Invalid channel info size %d\n", size); | |||||
av_log(ctx, AV_LOG_ERROR, | |||||
"Invalid channel info size %d\n", size); | |||||
return AVERROR_INVALIDDATA; | return AVERROR_INVALIDDATA; | ||||
} | } | ||||
break; | break; | ||||
@@ -173,30 +178,41 @@ static int wv_read_block_header(AVFormatContext *ctx, AVIOContext *pb, int appen | |||||
default: | default: | ||||
avio_skip(pb, size); | avio_skip(pb, size); | ||||
} | } | ||||
if(id&0x40) | |||||
if (id & 0x40) | |||||
avio_skip(pb, 1); | avio_skip(pb, 1); | ||||
} | } | ||||
if(rate == -1){ | |||||
av_log(ctx, AV_LOG_ERROR, "Cannot determine custom sampling rate\n"); | |||||
if (rate == -1) { | |||||
av_log(ctx, AV_LOG_ERROR, | |||||
"Cannot determine custom sampling rate\n"); | |||||
return AVERROR_INVALIDDATA; | return AVERROR_INVALIDDATA; | ||||
} | } | ||||
avio_seek(pb, block_end - wc->blksize + 24, SEEK_SET); | avio_seek(pb, block_end - wc->blksize + 24, SEEK_SET); | ||||
} | } | ||||
if(!wc->bpp) wc->bpp = bpp; | |||||
if(!wc->chan) wc->chan = chan; | |||||
if(!wc->chmask) wc->chmask = chmask; | |||||
if(!wc->rate) wc->rate = rate; | |||||
if (!wc->bpp) | |||||
wc->bpp = bpp; | |||||
if (!wc->chan) | |||||
wc->chan = chan; | |||||
if (!wc->chmask) | |||||
wc->chmask = chmask; | |||||
if (!wc->rate) | |||||
wc->rate = rate; | |||||
if(wc->flags && bpp != wc->bpp){ | |||||
av_log(ctx, AV_LOG_ERROR, "Bits per sample differ, this block: %i, header block: %i\n", bpp, wc->bpp); | |||||
if (wc->flags && bpp != wc->bpp) { | |||||
av_log(ctx, AV_LOG_ERROR, | |||||
"Bits per sample differ, this block: %i, header block: %i\n", | |||||
bpp, wc->bpp); | |||||
return AVERROR_INVALIDDATA; | return AVERROR_INVALIDDATA; | ||||
} | } | ||||
if(wc->flags && !wc->multichannel && chan != wc->chan){ | |||||
av_log(ctx, AV_LOG_ERROR, "Channels differ, this block: %i, header block: %i\n", chan, wc->chan); | |||||
if (wc->flags && !wc->multichannel && chan != wc->chan) { | |||||
av_log(ctx, AV_LOG_ERROR, | |||||
"Channels differ, this block: %i, header block: %i\n", | |||||
chan, wc->chan); | |||||
return AVERROR_INVALIDDATA; | return AVERROR_INVALIDDATA; | ||||
} | } | ||||
if(wc->flags && rate != -1 && rate != wc->rate){ | |||||
av_log(ctx, AV_LOG_ERROR, "Sampling rate differ, this block: %i, header block: %i\n", rate, wc->rate); | |||||
if (wc->flags && rate != -1 && rate != wc->rate) { | |||||
av_log(ctx, AV_LOG_ERROR, | |||||
"Sampling rate differ, this block: %i, header block: %i\n", | |||||
rate, wc->rate); | |||||
return AVERROR_INVALIDDATA; | return AVERROR_INVALIDDATA; | ||||
} | } | ||||
wc->blksize = size - 24; | wc->blksize = size - 24; | ||||
@@ -211,10 +227,10 @@ static int wv_read_header(AVFormatContext *s) | |||||
int ret; | int ret; | ||||
wc->block_parsed = 0; | wc->block_parsed = 0; | ||||
for(;;){ | |||||
for (;;) { | |||||
if ((ret = wv_read_block_header(s, pb, 0)) < 0) | if ((ret = wv_read_block_header(s, pb, 0)) < 0) | ||||
return ret; | return ret; | ||||
if(!AV_RN32(wc->extra)) | |||||
if (!AV_RN32(wc->extra)) | |||||
avio_skip(pb, wc->blksize - 24); | avio_skip(pb, wc->blksize - 24); | ||||
else | else | ||||
break; | break; | ||||
@@ -224,20 +240,20 @@ static int wv_read_header(AVFormatContext *s) | |||||
st = avformat_new_stream(s, NULL); | st = avformat_new_stream(s, NULL); | ||||
if (!st) | if (!st) | ||||
return AVERROR(ENOMEM); | return AVERROR(ENOMEM); | ||||
st->codec->codec_type = AVMEDIA_TYPE_AUDIO; | |||||
st->codec->codec_id = CODEC_ID_WAVPACK; | |||||
st->codec->channels = wc->chan; | |||||
st->codec->channel_layout = wc->chmask; | |||||
st->codec->sample_rate = wc->rate; | |||||
st->codec->codec_type = AVMEDIA_TYPE_AUDIO; | |||||
st->codec->codec_id = CODEC_ID_WAVPACK; | |||||
st->codec->channels = wc->chan; | |||||
st->codec->channel_layout = wc->chmask; | |||||
st->codec->sample_rate = wc->rate; | |||||
st->codec->bits_per_coded_sample = wc->bpp; | st->codec->bits_per_coded_sample = wc->bpp; | ||||
avpriv_set_pts_info(st, 64, 1, wc->rate); | avpriv_set_pts_info(st, 64, 1, wc->rate); | ||||
st->start_time = 0; | st->start_time = 0; | ||||
st->duration = wc->samples; | |||||
st->duration = wc->samples; | |||||
if(s->pb->seekable) { | |||||
if (s->pb->seekable) { | |||||
int64_t cur = avio_tell(s->pb); | int64_t cur = avio_tell(s->pb); | ||||
ff_ape_parse_tag(s); | ff_ape_parse_tag(s); | ||||
if(!av_dict_get(s->metadata, "", NULL, AV_DICT_IGNORE_SUFFIX)) | |||||
if (!av_dict_get(s->metadata, "", NULL, AV_DICT_IGNORE_SUFFIX)) | |||||
ff_id3v1_read(s); | ff_id3v1_read(s); | ||||
avio_seek(s->pb, cur, SEEK_SET); | avio_seek(s->pb, cur, SEEK_SET); | ||||
} | } | ||||
@@ -245,8 +261,7 @@ static int wv_read_header(AVFormatContext *s) | |||||
return 0; | return 0; | ||||
} | } | ||||
static int wv_read_packet(AVFormatContext *s, | |||||
AVPacket *pkt) | |||||
static int wv_read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
{ | { | ||||
WVContext *wc = s->priv_data; | WVContext *wc = s->priv_data; | ||||
int ret; | int ret; | ||||
@@ -256,41 +271,41 @@ static int wv_read_packet(AVFormatContext *s, | |||||
if (url_feof(s->pb)) | if (url_feof(s->pb)) | ||||
return AVERROR_EOF; | return AVERROR_EOF; | ||||
if(wc->block_parsed){ | |||||
if (wc->block_parsed) { | |||||
if ((ret = wv_read_block_header(s, s->pb, 0)) < 0) | if ((ret = wv_read_block_header(s, s->pb, 0)) < 0) | ||||
return ret; | return ret; | ||||
} | } | ||||
pos = wc->pos; | pos = wc->pos; | ||||
off = wc->multichannel ? 4 : 0; | off = wc->multichannel ? 4 : 0; | ||||
if(av_new_packet(pkt, wc->blksize + WV_EXTRA_SIZE + off) < 0) | |||||
if (av_new_packet(pkt, wc->blksize + WV_EXTRA_SIZE + off) < 0) | |||||
return AVERROR(ENOMEM); | return AVERROR(ENOMEM); | ||||
if(wc->multichannel) | |||||
if (wc->multichannel) | |||||
AV_WL32(pkt->data, wc->blksize + WV_EXTRA_SIZE + 12); | AV_WL32(pkt->data, wc->blksize + WV_EXTRA_SIZE + 12); | ||||
memcpy(pkt->data + off, wc->extra, WV_EXTRA_SIZE); | memcpy(pkt->data + off, wc->extra, WV_EXTRA_SIZE); | ||||
ret = avio_read(s->pb, pkt->data + WV_EXTRA_SIZE + off, wc->blksize); | ret = avio_read(s->pb, pkt->data + WV_EXTRA_SIZE + off, wc->blksize); | ||||
if(ret != wc->blksize){ | |||||
if (ret != wc->blksize) { | |||||
av_free_packet(pkt); | av_free_packet(pkt); | ||||
return AVERROR(EIO); | return AVERROR(EIO); | ||||
} | } | ||||
while(!(wc->flags & WV_END_BLOCK)){ | |||||
if(avio_rl32(s->pb) != MKTAG('w', 'v', 'p', 'k')){ | |||||
while (!(wc->flags & WV_END_BLOCK)) { | |||||
if (avio_rl32(s->pb) != MKTAG('w', 'v', 'p', 'k')) { | |||||
av_free_packet(pkt); | av_free_packet(pkt); | ||||
return AVERROR_INVALIDDATA; | return AVERROR_INVALIDDATA; | ||||
} | } | ||||
if((ret = av_append_packet(s->pb, pkt, 4)) < 0){ | |||||
if ((ret = av_append_packet(s->pb, pkt, 4)) < 0) { | |||||
av_free_packet(pkt); | av_free_packet(pkt); | ||||
return ret; | return ret; | ||||
} | } | ||||
size = AV_RL32(pkt->data + pkt->size - 4); | size = AV_RL32(pkt->data + pkt->size - 4); | ||||
if(size < 24 || size > WV_BLOCK_LIMIT){ | |||||
if (size < 24 || size > WV_BLOCK_LIMIT) { | |||||
av_free_packet(pkt); | av_free_packet(pkt); | ||||
av_log(s, AV_LOG_ERROR, "Incorrect block size %d\n", size); | av_log(s, AV_LOG_ERROR, "Incorrect block size %d\n", size); | ||||
return AVERROR_INVALIDDATA; | return AVERROR_INVALIDDATA; | ||||
} | } | ||||
wc->blksize = size; | wc->blksize = size; | ||||
ver = avio_rl16(s->pb); | |||||
if(ver < 0x402 || ver > 0x410){ | |||||
ver = avio_rl16(s->pb); | |||||
if (ver < 0x402 || ver > 0x410) { | |||||
av_free_packet(pkt); | av_free_packet(pkt); | ||||
av_log(s, AV_LOG_ERROR, "Unsupported version %03X\n", ver); | av_log(s, AV_LOG_ERROR, "Unsupported version %03X\n", ver); | ||||
return AVERROR_PATCHWELCOME; | return AVERROR_PATCHWELCOME; | ||||
@@ -298,29 +313,30 @@ static int wv_read_packet(AVFormatContext *s, | |||||
avio_r8(s->pb); // track no | avio_r8(s->pb); // track no | ||||
avio_r8(s->pb); // track sub index | avio_r8(s->pb); // track sub index | ||||
wc->samples = avio_rl32(s->pb); // total samples in file | wc->samples = avio_rl32(s->pb); // total samples in file | ||||
wc->soff = avio_rl32(s->pb); // offset in samples of current block | |||||
if((ret = av_append_packet(s->pb, pkt, WV_EXTRA_SIZE)) < 0){ | |||||
wc->soff = avio_rl32(s->pb); // offset in samples of current block | |||||
if ((ret = av_append_packet(s->pb, pkt, WV_EXTRA_SIZE)) < 0) { | |||||
av_free_packet(pkt); | av_free_packet(pkt); | ||||
return ret; | return ret; | ||||
} | } | ||||
memcpy(wc->extra, pkt->data + pkt->size - WV_EXTRA_SIZE, WV_EXTRA_SIZE); | memcpy(wc->extra, pkt->data + pkt->size - WV_EXTRA_SIZE, WV_EXTRA_SIZE); | ||||
if ((ret = wv_read_block_header(s, s->pb, 1)) < 0){ | |||||
if ((ret = wv_read_block_header(s, s->pb, 1)) < 0) { | |||||
av_free_packet(pkt); | av_free_packet(pkt); | ||||
return ret; | return ret; | ||||
} | } | ||||
ret = av_append_packet(s->pb, pkt, wc->blksize); | ret = av_append_packet(s->pb, pkt, wc->blksize); | ||||
if(ret < 0){ | |||||
if (ret < 0) { | |||||
av_free_packet(pkt); | av_free_packet(pkt); | ||||
return ret; | return ret; | ||||
} | } | ||||
} | } | ||||
pkt->stream_index = 0; | pkt->stream_index = 0; | ||||
wc->block_parsed = 1; | |||||
pkt->pts = wc->soff; | |||||
block_samples = AV_RN32(wc->extra); | |||||
wc->block_parsed = 1; | |||||
pkt->pts = wc->soff; | |||||
block_samples = AV_RN32(wc->extra); | |||||
if (block_samples > INT32_MAX) | if (block_samples > INT32_MAX) | ||||
av_log(s, AV_LOG_WARNING, "Too many samples in block: %"PRIu32"\n", block_samples); | |||||
av_log(s, AV_LOG_WARNING, | |||||
"Too many samples in block: %"PRIu32"\n", block_samples); | |||||
else | else | ||||
pkt->duration = block_samples; | pkt->duration = block_samples; | ||||
@@ -328,9 +344,10 @@ static int wv_read_packet(AVFormatContext *s, | |||||
return 0; | return 0; | ||||
} | } | ||||
static int wv_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) | |||||
static int wv_read_seek(AVFormatContext *s, int stream_index, | |||||
int64_t timestamp, int flags) | |||||
{ | { | ||||
AVStream *st = s->streams[stream_index]; | |||||
AVStream *st = s->streams[stream_index]; | |||||
WVContext *wc = s->priv_data; | WVContext *wc = s->priv_data; | ||||
AVPacket pkt1, *pkt = &pkt1; | AVPacket pkt1, *pkt = &pkt1; | ||||
int ret; | int ret; | ||||
@@ -345,19 +362,19 @@ static int wv_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, | |||||
return 0; | return 0; | ||||
} | } | ||||
/* if timestamp is out of bounds, return error */ | /* if timestamp is out of bounds, return error */ | ||||
if(timestamp < 0 || timestamp >= s->duration) | |||||
if (timestamp < 0 || timestamp >= s->duration) | |||||
return AVERROR(EINVAL); | return AVERROR(EINVAL); | ||||
pos = avio_tell(s->pb); | pos = avio_tell(s->pb); | ||||
do{ | |||||
do { | |||||
ret = av_read_frame(s, pkt); | ret = av_read_frame(s, pkt); | ||||
if (ret < 0){ | |||||
if (ret < 0) { | |||||
avio_seek(s->pb, pos, SEEK_SET); | avio_seek(s->pb, pos, SEEK_SET); | ||||
return ret; | return ret; | ||||
} | } | ||||
pts = pkt->pts; | pts = pkt->pts; | ||||
av_free_packet(pkt); | av_free_packet(pkt); | ||||
}while(pts < timestamp); | |||||
} while(pts < timestamp); | |||||
return 0; | return 0; | ||||
} | } | ||||
@@ -120,7 +120,7 @@ static int xa_read_packet(AVFormatContext *s, | |||||
AVInputFormat ff_xa_demuxer = { | AVInputFormat ff_xa_demuxer = { | ||||
.name = "xa", | .name = "xa", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Maxis XA File Format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Maxis XA"), | |||||
.priv_data_size = sizeof(MaxisXADemuxContext), | .priv_data_size = sizeof(MaxisXADemuxContext), | ||||
.read_probe = xa_probe, | .read_probe = xa_probe, | ||||
.read_header = xa_read_header, | .read_header = xa_read_header, | ||||
@@ -211,7 +211,7 @@ static int yop_read_seek(AVFormatContext *s, int stream_index, | |||||
AVInputFormat ff_yop_demuxer = { | AVInputFormat ff_yop_demuxer = { | ||||
.name = "yop", | .name = "yop", | ||||
.long_name = NULL_IF_CONFIG_SMALL("Psygnosis YOP Format"), | |||||
.long_name = NULL_IF_CONFIG_SMALL("Psygnosis YOP"), | |||||
.priv_data_size = sizeof(YopDecContext), | .priv_data_size = sizeof(YopDecContext), | ||||
.read_probe = yop_probe, | .read_probe = yop_probe, | ||||
.read_header = yop_read_header, | .read_header = yop_read_header, | ||||