* 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>tags/n0.9
| @@ -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);\ | ||||
| }\ | }\ | ||||
| } | } | ||||