mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-08 13:22:53 +02:00
Merge remote-tracking branch 'qatar/master'
* qatar/master: adtsenc: Check frame size. txd: Fix order of operations. APIchanges: fill in some blanks timer: fix misspelling of "decicycles" Eliminate pointless 0/NULL initializers in AVCodec and similar declarations. indeo3: cosmetics md5proto: Fix order of operations. dca: Replace oversized unused get_bits() with skip_bits_long(). Conflicts: doc/APIchanges libavformat/mmsh.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
4dcd1a3145
@ -22,14 +22,14 @@ API changes, most recent first:
|
|||||||
2011-10-20 - b35e9e1 - lavu 51.22.0
|
2011-10-20 - b35e9e1 - lavu 51.22.0
|
||||||
Add av_strtok() to avstring.h.
|
Add av_strtok() to avstring.h.
|
||||||
|
|
||||||
2011-xx-xx - xxxxxxx - lavu 51.18.0
|
2011-11-23 - bbb46f3 - lavu 51.18.0
|
||||||
Add av_samples_get_buffer_size(), av_samples_fill_arrays(), and
|
Add av_samples_get_buffer_size(), av_samples_fill_arrays(), and
|
||||||
av_samples_alloc(), to samplefmt.h.
|
av_samples_alloc(), to samplefmt.h.
|
||||||
|
|
||||||
2011-xx-xx - xxxxxxx - lavu 51.17.0
|
2011-11-23 - 8889cc4 - lavu 51.17.0
|
||||||
Add planar sample formats and av_sample_fmt_is_planar() to samplefmt.h.
|
Add planar sample formats and av_sample_fmt_is_planar() to samplefmt.h.
|
||||||
|
|
||||||
2011-xx-xx - xxxxxxx - lavc 53.21.0
|
2011-11-19 - f3a29b7 - lavc 53.21.0
|
||||||
Move some AVCodecContext fields to a new private struct, AVCodecInternal,
|
Move some AVCodecContext fields to a new private struct, AVCodecInternal,
|
||||||
which is accessed from a new field, AVCodecContext.internal.
|
which is accessed from a new field, AVCodecContext.internal.
|
||||||
- fields moved:
|
- fields moved:
|
||||||
@ -37,6 +37,9 @@ API changes, most recent first:
|
|||||||
AVCodecContext.internal_buffer_count --> AVCodecInternal.buffer_count
|
AVCodecContext.internal_buffer_count --> AVCodecInternal.buffer_count
|
||||||
AVCodecContext.is_copy --> AVCodecInternal.is_copy
|
AVCodecContext.is_copy --> AVCodecInternal.is_copy
|
||||||
|
|
||||||
|
2011-11-16 - 6270671 - lavu 51.16.0
|
||||||
|
Add av_timegm()
|
||||||
|
|
||||||
2011-11-13 - lavf 53.15.0
|
2011-11-13 - lavf 53.15.0
|
||||||
New interrupt callback API, allowing per-AVFormatContext/AVIOContext
|
New interrupt callback API, allowing per-AVFormatContext/AVIOContext
|
||||||
interrupt callbacks.
|
interrupt callbacks.
|
||||||
@ -47,9 +50,6 @@ API changes, most recent first:
|
|||||||
This will allow passing AVOptions to protocols after lavf
|
This will allow passing AVOptions to protocols after lavf
|
||||||
54.0.
|
54.0.
|
||||||
|
|
||||||
2011-11-xx - xxxxxxx - lavu 51.16.0
|
|
||||||
Add av_timegm()
|
|
||||||
|
|
||||||
2011-11-06 - ba04ecf - lavu 51.14.0
|
2011-11-06 - ba04ecf - lavu 51.14.0
|
||||||
Add av_strcasecmp() and av_strncasecmp() to avstring.h.
|
Add av_strcasecmp() and av_strncasecmp() to avstring.h.
|
||||||
|
|
||||||
|
@ -519,7 +519,7 @@ static int dca_parse_frame_header(DCAContext * s)
|
|||||||
init_get_bits(&s->gb, s->dca_buffer, s->dca_buffer_size * 8);
|
init_get_bits(&s->gb, s->dca_buffer, s->dca_buffer_size * 8);
|
||||||
|
|
||||||
/* Sync code */
|
/* Sync code */
|
||||||
get_bits(&s->gb, 32);
|
skip_bits_long(&s->gb, 32);
|
||||||
|
|
||||||
/* Frame header */
|
/* Frame header */
|
||||||
s->frame_type = get_bits(&s->gb, 1);
|
s->frame_type = get_bits(&s->gb, 1);
|
||||||
@ -1257,7 +1257,7 @@ static int dca_subframe_footer(DCAContext * s, int base_channel)
|
|||||||
/* presumably optional information only appears in the core? */
|
/* presumably optional information only appears in the core? */
|
||||||
if (!base_channel) {
|
if (!base_channel) {
|
||||||
if (s->timestamp)
|
if (s->timestamp)
|
||||||
get_bits(&s->gb, 32);
|
skip_bits_long(&s->gb, 32);
|
||||||
|
|
||||||
if (s->aux_data)
|
if (s->aux_data)
|
||||||
aux_data_count = get_bits(&s->gb, 6);
|
aux_data_count = get_bits(&s->gb, 6);
|
||||||
|
@ -443,7 +443,6 @@ AVHWAccel ff_h264_dxva2_hwaccel = {
|
|||||||
.type = AVMEDIA_TYPE_VIDEO,
|
.type = AVMEDIA_TYPE_VIDEO,
|
||||||
.id = CODEC_ID_H264,
|
.id = CODEC_ID_H264,
|
||||||
.pix_fmt = PIX_FMT_DXVA2_VLD,
|
.pix_fmt = PIX_FMT_DXVA2_VLD,
|
||||||
.capabilities = 0,
|
|
||||||
.start_frame = start_frame,
|
.start_frame = start_frame,
|
||||||
.decode_slice = decode_slice,
|
.decode_slice = decode_slice,
|
||||||
.end_frame = end_frame,
|
.end_frame = end_frame,
|
||||||
|
@ -265,7 +265,6 @@ AVHWAccel ff_mpeg2_dxva2_hwaccel = {
|
|||||||
.type = AVMEDIA_TYPE_VIDEO,
|
.type = AVMEDIA_TYPE_VIDEO,
|
||||||
.id = CODEC_ID_MPEG2VIDEO,
|
.id = CODEC_ID_MPEG2VIDEO,
|
||||||
.pix_fmt = PIX_FMT_DXVA2_VLD,
|
.pix_fmt = PIX_FMT_DXVA2_VLD,
|
||||||
.capabilities = 0,
|
|
||||||
.start_frame = start_frame,
|
.start_frame = start_frame,
|
||||||
.decode_slice = decode_slice,
|
.decode_slice = decode_slice,
|
||||||
.end_frame = end_frame,
|
.end_frame = end_frame,
|
||||||
|
@ -269,7 +269,6 @@ AVHWAccel ff_wmv3_dxva2_hwaccel = {
|
|||||||
.type = AVMEDIA_TYPE_VIDEO,
|
.type = AVMEDIA_TYPE_VIDEO,
|
||||||
.id = CODEC_ID_WMV3,
|
.id = CODEC_ID_WMV3,
|
||||||
.pix_fmt = PIX_FMT_DXVA2_VLD,
|
.pix_fmt = PIX_FMT_DXVA2_VLD,
|
||||||
.capabilities = 0,
|
|
||||||
.start_frame = start_frame,
|
.start_frame = start_frame,
|
||||||
.decode_slice = decode_slice,
|
.decode_slice = decode_slice,
|
||||||
.end_frame = end_frame,
|
.end_frame = end_frame,
|
||||||
@ -282,7 +281,6 @@ AVHWAccel ff_vc1_dxva2_hwaccel = {
|
|||||||
.type = AVMEDIA_TYPE_VIDEO,
|
.type = AVMEDIA_TYPE_VIDEO,
|
||||||
.id = CODEC_ID_VC1,
|
.id = CODEC_ID_VC1,
|
||||||
.pix_fmt = PIX_FMT_DXVA2_VLD,
|
.pix_fmt = PIX_FMT_DXVA2_VLD,
|
||||||
.capabilities = 0,
|
|
||||||
.start_frame = start_frame,
|
.start_frame = start_frame,
|
||||||
.decode_slice = decode_slice,
|
.decode_slice = decode_slice,
|
||||||
.end_frame = end_frame,
|
.end_frame = end_frame,
|
||||||
|
@ -759,7 +759,7 @@ static int parse_bintree(Indeo3DecodeContext *ctx, AVCodecContext *avctx,
|
|||||||
av_log(avctx, AV_LOG_ERROR, "SkipCell procedure not implemented yet!\n");
|
av_log(avctx, AV_LOG_ERROR, "SkipCell procedure not implemented yet!\n");
|
||||||
|
|
||||||
CHECK_CELL
|
CHECK_CELL
|
||||||
if(!curr_cell.mv_ptr)
|
if (!curr_cell.mv_ptr)
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
copy_cell(ctx, plane, &curr_cell);
|
copy_cell(ctx, plane, &curr_cell);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -108,6 +108,5 @@ static int mjpeg2jpeg_filter(AVBitStreamFilterContext *bsfc,
|
|||||||
|
|
||||||
AVBitStreamFilter ff_mjpeg2jpeg_bsf = {
|
AVBitStreamFilter ff_mjpeg2jpeg_bsf = {
|
||||||
.name = "mjpeg2jpeg",
|
.name = "mjpeg2jpeg",
|
||||||
.priv_data_size = 0,
|
|
||||||
.filter = mjpeg2jpeg_filter,
|
.filter = mjpeg2jpeg_filter,
|
||||||
};
|
};
|
||||||
|
@ -144,7 +144,6 @@ AVCodec ff_s302m_decoder = {
|
|||||||
.name = "s302m",
|
.name = "s302m",
|
||||||
.type = AVMEDIA_TYPE_AUDIO,
|
.type = AVMEDIA_TYPE_AUDIO,
|
||||||
.id = CODEC_ID_S302M,
|
.id = CODEC_ID_S302M,
|
||||||
.priv_data_size = 0,
|
|
||||||
.decode = s302m_decode_frame,
|
.decode = s302m_decode_frame,
|
||||||
.long_name = NULL_IF_CONFIG_SMALL("SMPTE 302M"),
|
.long_name = NULL_IF_CONFIG_SMALL("SMPTE 302M"),
|
||||||
};
|
};
|
||||||
|
@ -116,7 +116,8 @@ static int txd_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
|
|||||||
} else if (depth == 16) {
|
} else if (depth == 16) {
|
||||||
switch (d3d_format) {
|
switch (d3d_format) {
|
||||||
case 0:
|
case 0:
|
||||||
if (!flags&1) goto unsupported;
|
if (!(flags & 1))
|
||||||
|
goto unsupported;
|
||||||
case FF_S3TC_DXT1:
|
case FF_S3TC_DXT1:
|
||||||
if (buf_end - cur < (w/4) * (h/4) * 8)
|
if (buf_end - cur < (w/4) * (h/4) * 8)
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
|
@ -342,9 +342,7 @@ AVHWAccel ff_h264_vaapi_hwaccel = {
|
|||||||
.type = AVMEDIA_TYPE_VIDEO,
|
.type = AVMEDIA_TYPE_VIDEO,
|
||||||
.id = CODEC_ID_H264,
|
.id = CODEC_ID_H264,
|
||||||
.pix_fmt = PIX_FMT_VAAPI_VLD,
|
.pix_fmt = PIX_FMT_VAAPI_VLD,
|
||||||
.capabilities = 0,
|
|
||||||
.start_frame = start_frame,
|
.start_frame = start_frame,
|
||||||
.end_frame = end_frame,
|
.end_frame = end_frame,
|
||||||
.decode_slice = decode_slice,
|
.decode_slice = decode_slice,
|
||||||
.priv_data_size = 0,
|
|
||||||
};
|
};
|
||||||
|
@ -143,9 +143,7 @@ AVHWAccel ff_mpeg2_vaapi_hwaccel = {
|
|||||||
.type = AVMEDIA_TYPE_VIDEO,
|
.type = AVMEDIA_TYPE_VIDEO,
|
||||||
.id = CODEC_ID_MPEG2VIDEO,
|
.id = CODEC_ID_MPEG2VIDEO,
|
||||||
.pix_fmt = PIX_FMT_VAAPI_VLD,
|
.pix_fmt = PIX_FMT_VAAPI_VLD,
|
||||||
.capabilities = 0,
|
|
||||||
.start_frame = vaapi_mpeg2_start_frame,
|
.start_frame = vaapi_mpeg2_start_frame,
|
||||||
.end_frame = vaapi_mpeg2_end_frame,
|
.end_frame = vaapi_mpeg2_end_frame,
|
||||||
.decode_slice = vaapi_mpeg2_decode_slice,
|
.decode_slice = vaapi_mpeg2_decode_slice,
|
||||||
.priv_data_size = 0,
|
|
||||||
};
|
};
|
||||||
|
@ -155,11 +155,9 @@ AVHWAccel ff_mpeg4_vaapi_hwaccel = {
|
|||||||
.type = AVMEDIA_TYPE_VIDEO,
|
.type = AVMEDIA_TYPE_VIDEO,
|
||||||
.id = CODEC_ID_MPEG4,
|
.id = CODEC_ID_MPEG4,
|
||||||
.pix_fmt = PIX_FMT_VAAPI_VLD,
|
.pix_fmt = PIX_FMT_VAAPI_VLD,
|
||||||
.capabilities = 0,
|
|
||||||
.start_frame = vaapi_mpeg4_start_frame,
|
.start_frame = vaapi_mpeg4_start_frame,
|
||||||
.end_frame = vaapi_mpeg4_end_frame,
|
.end_frame = vaapi_mpeg4_end_frame,
|
||||||
.decode_slice = vaapi_mpeg4_decode_slice,
|
.decode_slice = vaapi_mpeg4_decode_slice,
|
||||||
.priv_data_size = 0,
|
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -169,10 +167,8 @@ AVHWAccel ff_h263_vaapi_hwaccel = {
|
|||||||
.type = AVMEDIA_TYPE_VIDEO,
|
.type = AVMEDIA_TYPE_VIDEO,
|
||||||
.id = CODEC_ID_H263,
|
.id = CODEC_ID_H263,
|
||||||
.pix_fmt = PIX_FMT_VAAPI_VLD,
|
.pix_fmt = PIX_FMT_VAAPI_VLD,
|
||||||
.capabilities = 0,
|
|
||||||
.start_frame = vaapi_mpeg4_start_frame,
|
.start_frame = vaapi_mpeg4_start_frame,
|
||||||
.end_frame = vaapi_mpeg4_end_frame,
|
.end_frame = vaapi_mpeg4_end_frame,
|
||||||
.decode_slice = vaapi_mpeg4_decode_slice,
|
.decode_slice = vaapi_mpeg4_decode_slice,
|
||||||
.priv_data_size = 0,
|
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
@ -346,11 +346,9 @@ AVHWAccel ff_wmv3_vaapi_hwaccel = {
|
|||||||
.type = AVMEDIA_TYPE_VIDEO,
|
.type = AVMEDIA_TYPE_VIDEO,
|
||||||
.id = CODEC_ID_WMV3,
|
.id = CODEC_ID_WMV3,
|
||||||
.pix_fmt = PIX_FMT_VAAPI_VLD,
|
.pix_fmt = PIX_FMT_VAAPI_VLD,
|
||||||
.capabilities = 0,
|
|
||||||
.start_frame = vaapi_vc1_start_frame,
|
.start_frame = vaapi_vc1_start_frame,
|
||||||
.end_frame = vaapi_vc1_end_frame,
|
.end_frame = vaapi_vc1_end_frame,
|
||||||
.decode_slice = vaapi_vc1_decode_slice,
|
.decode_slice = vaapi_vc1_decode_slice,
|
||||||
.priv_data_size = 0,
|
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -359,9 +357,7 @@ AVHWAccel ff_vc1_vaapi_hwaccel = {
|
|||||||
.type = AVMEDIA_TYPE_VIDEO,
|
.type = AVMEDIA_TYPE_VIDEO,
|
||||||
.id = CODEC_ID_VC1,
|
.id = CODEC_ID_VC1,
|
||||||
.pix_fmt = PIX_FMT_VAAPI_VLD,
|
.pix_fmt = PIX_FMT_VAAPI_VLD,
|
||||||
.capabilities = 0,
|
|
||||||
.start_frame = vaapi_vc1_start_frame,
|
.start_frame = vaapi_vc1_start_frame,
|
||||||
.end_frame = vaapi_vc1_end_frame,
|
.end_frame = vaapi_vc1_end_frame,
|
||||||
.decode_slice = vaapi_vc1_decode_slice,
|
.decode_slice = vaapi_vc1_decode_slice,
|
||||||
.priv_data_size = 0,
|
|
||||||
};
|
};
|
||||||
|
@ -86,7 +86,6 @@ AVHWAccel ff_h264_vda_hwaccel = {
|
|||||||
.type = AVMEDIA_TYPE_VIDEO,
|
.type = AVMEDIA_TYPE_VIDEO,
|
||||||
.id = CODEC_ID_H264,
|
.id = CODEC_ID_H264,
|
||||||
.pix_fmt = PIX_FMT_VDA_VLD,
|
.pix_fmt = PIX_FMT_VDA_VLD,
|
||||||
.capabilities = 0,
|
|
||||||
.start_frame = start_frame,
|
.start_frame = start_frame,
|
||||||
.decode_slice = decode_slice,
|
.decode_slice = decode_slice,
|
||||||
.end_frame = end_frame,
|
.end_frame = end_frame,
|
||||||
|
@ -166,7 +166,6 @@ static int a64_write_trailer(struct AVFormatContext *s)
|
|||||||
AVOutputFormat ff_a64_muxer = {
|
AVOutputFormat ff_a64_muxer = {
|
||||||
.name = "a64",
|
.name = "a64",
|
||||||
.long_name = NULL_IF_CONFIG_SMALL("a64 - video for Commodore 64"),
|
.long_name = NULL_IF_CONFIG_SMALL("a64 - video for Commodore 64"),
|
||||||
.mime_type = NULL,
|
|
||||||
.extensions = "a64, A64",
|
.extensions = "a64, A64",
|
||||||
.priv_data_size = sizeof (A64Context),
|
.priv_data_size = sizeof (A64Context),
|
||||||
.video_codec = CODEC_ID_A64_MULTI,
|
.video_codec = CODEC_ID_A64_MULTI,
|
||||||
|
@ -27,6 +27,8 @@
|
|||||||
#include "avformat.h"
|
#include "avformat.h"
|
||||||
#include "adts.h"
|
#include "adts.h"
|
||||||
|
|
||||||
|
#define ADTS_MAX_FRAME_BYTES ((1 << 13) - 1)
|
||||||
|
|
||||||
int ff_adts_decode_extradata(AVFormatContext *s, ADTSContext *adts, uint8_t *buf, int size)
|
int ff_adts_decode_extradata(AVFormatContext *s, ADTSContext *adts, uint8_t *buf, int size)
|
||||||
{
|
{
|
||||||
GetBitContext gb;
|
GetBitContext gb;
|
||||||
@ -93,6 +95,13 @@ int ff_adts_write_frame_header(ADTSContext *ctx,
|
|||||||
{
|
{
|
||||||
PutBitContext pb;
|
PutBitContext pb;
|
||||||
|
|
||||||
|
unsigned full_frame_size = (unsigned)ADTS_HEADER_SIZE + size + pce_size;
|
||||||
|
if (full_frame_size > ADTS_MAX_FRAME_BYTES) {
|
||||||
|
av_log(NULL, AV_LOG_ERROR, "ADTS frame size too large: %u (max %d)\n",
|
||||||
|
full_frame_size, ADTS_MAX_FRAME_BYTES);
|
||||||
|
return AVERROR_INVALIDDATA;
|
||||||
|
}
|
||||||
|
|
||||||
init_put_bits(&pb, buf, ADTS_HEADER_SIZE);
|
init_put_bits(&pb, buf, ADTS_HEADER_SIZE);
|
||||||
|
|
||||||
/* adts_fixed_header */
|
/* adts_fixed_header */
|
||||||
@ -110,7 +119,7 @@ int ff_adts_write_frame_header(ADTSContext *ctx,
|
|||||||
/* adts_variable_header */
|
/* adts_variable_header */
|
||||||
put_bits(&pb, 1, 0); /* copyright_identification_bit */
|
put_bits(&pb, 1, 0); /* copyright_identification_bit */
|
||||||
put_bits(&pb, 1, 0); /* copyright_identification_start */
|
put_bits(&pb, 1, 0); /* copyright_identification_start */
|
||||||
put_bits(&pb, 13, ADTS_HEADER_SIZE + size + pce_size); /* aac_frame_length */
|
put_bits(&pb, 13, full_frame_size); /* aac_frame_length */
|
||||||
put_bits(&pb, 11, 0x7ff); /* adts_buffer_fullness */
|
put_bits(&pb, 11, 0x7ff); /* adts_buffer_fullness */
|
||||||
put_bits(&pb, 2, 0); /* number_of_raw_data_blocks_in_frame */
|
put_bits(&pb, 2, 0); /* number_of_raw_data_blocks_in_frame */
|
||||||
|
|
||||||
@ -128,7 +137,10 @@ static int adts_write_packet(AVFormatContext *s, AVPacket *pkt)
|
|||||||
if (!pkt->size)
|
if (!pkt->size)
|
||||||
return 0;
|
return 0;
|
||||||
if (adts->write_adts) {
|
if (adts->write_adts) {
|
||||||
ff_adts_write_frame_header(adts, buf, pkt->size, adts->pce_size);
|
int err = ff_adts_write_frame_header(adts, buf, pkt->size,
|
||||||
|
adts->pce_size);
|
||||||
|
if (err < 0)
|
||||||
|
return err;
|
||||||
avio_write(pb, buf, ADTS_HEADER_SIZE);
|
avio_write(pb, buf, ADTS_HEADER_SIZE);
|
||||||
if (adts->pce_size) {
|
if (adts->pce_size) {
|
||||||
avio_write(pb, adts->pce_data, adts->pce_size);
|
avio_write(pb, adts->pce_data, adts->pce_size);
|
||||||
|
@ -176,7 +176,6 @@ static int amr_read_packet(AVFormatContext *s,
|
|||||||
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 file format"),
|
||||||
.priv_data_size = 0, /*priv_data_size*/
|
|
||||||
.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,
|
||||||
|
@ -36,7 +36,7 @@ static int md5_open(URLContext *h, const char *filename, int flags)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!flags & AVIO_FLAG_WRITE)
|
if (!(flags & AVIO_FLAG_WRITE))
|
||||||
return AVERROR(EINVAL);
|
return AVERROR(EINVAL);
|
||||||
|
|
||||||
av_md5_init(h->priv_data);
|
av_md5_init(h->priv_data);
|
||||||
|
@ -406,7 +406,6 @@ URLProtocol ff_mmsh_protocol = {
|
|||||||
.name = "mmsh",
|
.name = "mmsh",
|
||||||
.url_open = mmsh_open,
|
.url_open = mmsh_open,
|
||||||
.url_read = mmsh_read,
|
.url_read = mmsh_read,
|
||||||
.url_write = NULL,
|
|
||||||
.url_seek = mmsh_seek,
|
.url_seek = mmsh_seek,
|
||||||
.url_close = mmsh_close,
|
.url_close = mmsh_close,
|
||||||
.url_read_seek = mmsh_read_seek,
|
.url_read_seek = mmsh_read_seek,
|
||||||
|
@ -620,7 +620,6 @@ AVInputFormat ff_mpegps_demuxer = {
|
|||||||
.read_probe = mpegps_probe,
|
.read_probe = mpegps_probe,
|
||||||
.read_header = mpegps_read_header,
|
.read_header = mpegps_read_header,
|
||||||
.read_packet = mpegps_read_packet,
|
.read_packet = mpegps_read_packet,
|
||||||
.read_seek = NULL, //mpegps_read_seek,
|
|
||||||
.read_timestamp = mpegps_read_dts,
|
.read_timestamp = mpegps_read_dts,
|
||||||
.flags = AVFMT_SHOW_IDS|AVFMT_TS_DISCONT,
|
.flags = AVFMT_SHOW_IDS|AVFMT_TS_DISCONT,
|
||||||
};
|
};
|
||||||
|
@ -1006,7 +1006,7 @@ static int mpegts_write_packet(AVFormatContext *s, AVPacket *pkt)
|
|||||||
return -1;
|
return -1;
|
||||||
if ((AV_RB16(pkt->data) & 0xfff0) != 0xfff0) {
|
if ((AV_RB16(pkt->data) & 0xfff0) != 0xfff0) {
|
||||||
ADTSContext *adts = ts_st->adts;
|
ADTSContext *adts = ts_st->adts;
|
||||||
int new_size;
|
int new_size, err;
|
||||||
if (!adts) {
|
if (!adts) {
|
||||||
av_log(s, AV_LOG_ERROR, "aac bitstream not in adts format "
|
av_log(s, AV_LOG_ERROR, "aac bitstream not in adts format "
|
||||||
"and extradata missing\n");
|
"and extradata missing\n");
|
||||||
@ -1018,7 +1018,12 @@ static int mpegts_write_packet(AVFormatContext *s, AVPacket *pkt)
|
|||||||
data = av_malloc(new_size);
|
data = av_malloc(new_size);
|
||||||
if (!data)
|
if (!data)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
ff_adts_write_frame_header(adts, data, pkt->size, adts->pce_size);
|
err = ff_adts_write_frame_header(adts, data, pkt->size,
|
||||||
|
adts->pce_size);
|
||||||
|
if (err < 0) {
|
||||||
|
av_free(data);
|
||||||
|
return err;
|
||||||
|
}
|
||||||
if (adts->pce_size) {
|
if (adts->pce_size) {
|
||||||
memcpy(data+ADTS_HEADER_SIZE, adts->pce_data, adts->pce_size);
|
memcpy(data+ADTS_HEADER_SIZE, adts->pce_data, adts->pce_size);
|
||||||
adts->pce_size = 0;
|
adts->pce_size = 0;
|
||||||
|
@ -92,11 +92,8 @@ 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 format"),
|
||||||
.extensions = "rso",
|
.extensions = "rso",
|
||||||
.priv_data_size = 0,
|
|
||||||
.read_probe = NULL, /* no magic value in this format */
|
|
||||||
.read_header = rso_read_header,
|
.read_header = rso_read_header,
|
||||||
.read_packet = rso_read_packet,
|
.read_packet = rso_read_packet,
|
||||||
.read_close = NULL,
|
|
||||||
.read_seek = pcm_read_seek,
|
.read_seek = pcm_read_seek,
|
||||||
.codec_tag = (const AVCodecTag* const []){ff_codec_rso_tags, 0},
|
.codec_tag = (const AVCodecTag* const []){ff_codec_rso_tags, 0},
|
||||||
};
|
};
|
||||||
|
@ -104,7 +104,6 @@ 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 format"),
|
||||||
.extensions = "rso",
|
.extensions = "rso",
|
||||||
.priv_data_size = 0,
|
|
||||||
.audio_codec = CODEC_ID_PCM_U8,
|
.audio_codec = CODEC_ID_PCM_U8,
|
||||||
.video_codec = CODEC_ID_NONE,
|
.video_codec = CODEC_ID_NONE,
|
||||||
.write_header = rso_write_header,
|
.write_header = rso_write_header,
|
||||||
|
@ -234,9 +234,6 @@ RTPDynamicProtocolHandler ff_mp4v_es_dynamic_handler = {
|
|||||||
.codec_type = AVMEDIA_TYPE_VIDEO,
|
.codec_type = AVMEDIA_TYPE_VIDEO,
|
||||||
.codec_id = CODEC_ID_MPEG4,
|
.codec_id = CODEC_ID_MPEG4,
|
||||||
.parse_sdp_a_line = parse_sdp_line,
|
.parse_sdp_a_line = parse_sdp_line,
|
||||||
.alloc = NULL,
|
|
||||||
.free = NULL,
|
|
||||||
.parse_packet = NULL
|
|
||||||
};
|
};
|
||||||
|
|
||||||
RTPDynamicProtocolHandler ff_mpeg4_generic_dynamic_handler = {
|
RTPDynamicProtocolHandler ff_mpeg4_generic_dynamic_handler = {
|
||||||
|
@ -246,7 +246,6 @@ URLProtocol ff_tls_protocol = {
|
|||||||
.url_open = tls_open,
|
.url_open = tls_open,
|
||||||
.url_read = tls_read,
|
.url_read = tls_read,
|
||||||
.url_write = tls_write,
|
.url_write = tls_write,
|
||||||
.url_seek = NULL,
|
|
||||||
.url_close = tls_close,
|
.url_close = tls_close,
|
||||||
.priv_data_size = sizeof(TLSContext),
|
.priv_data_size = sizeof(TLSContext),
|
||||||
};
|
};
|
||||||
|
@ -61,7 +61,7 @@ tend= AV_READ_TIME();\
|
|||||||
}else\
|
}else\
|
||||||
tskip_count++;\
|
tskip_count++;\
|
||||||
if(((tcount+tskip_count)&(tcount+tskip_count-1))==0){\
|
if(((tcount+tskip_count)&(tcount+tskip_count-1))==0){\
|
||||||
av_log(NULL, AV_LOG_ERROR, "%"PRIu64" dezicycles in %s, %d runs, %d skips\n",\
|
av_log(NULL, AV_LOG_ERROR, "%"PRIu64" decicycles in %s, %d runs, %d skips\n",\
|
||||||
tsum*10/tcount, id, tcount, tskip_count);\
|
tsum*10/tcount, id, tcount, tskip_count);\
|
||||||
}\
|
}\
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user