Mercurial > libavformat.hg
changeset 885:da1d5db0ce5c libavformat
COSMETICS: Remove all trailing whitespace.
author | diego |
---|---|
date | Sat, 17 Dec 2005 18:14:38 +0000 |
parents | 2ece9c9dd94c |
children | 7ed1351f8c7e |
files | 4xm.c Makefile allformats.c amr.c asf-enc.c asf.c asf.h au.c audio.c avformat.h avi.h avidec.c avienc.c avio.c avio.h aviobuf.c barpainet.c crc.c cutils.c dc1394.c dv.c dv.h dv1394.c dv1394.h electronicarts.c ffm.c file.c flic.c flvdec.c flvenc.c framehook.h gif.c gifdec.c grab.c grab_bktr.c http.c idcin.c idroq.c img.c img2.c ipmovie.c jpeg.c matroska.c mmf.c mov.c movenc.c mp3.c mpeg.c mpegts.c mpegts.h mpegtsenc.c nsvdec.c nut.c ogg.c ogg2.c oggparseflac.c oggparsetheora.c oggparsevorbis.c os_support.c png.c pnm.c psxstr.c qtpalette.h raw.c rm.c rtp.c rtp.h rtpproto.c rtsp.c rtsp.h segafilm.c sgi.c sierravmd.c sol.c swf.c tcp.c udp.c utils.c wav.c wc3movie.c westwood.c yuv.c yuv4mpeg.c |
diffstat | 83 files changed, 1545 insertions(+), 1545 deletions(-) [+] |
line wrap: on
line diff
--- a/4xm.c Sat Dec 17 17:57:03 2005 +0000 +++ b/4xm.c Sat Dec 17 18:14:38 2005 +0000 @@ -163,7 +163,7 @@ fourxm->track_count = current_track + 1; if((unsigned)fourxm->track_count >= UINT_MAX / sizeof(AudioTrack)) return -1; - fourxm->tracks = av_realloc(fourxm->tracks, + fourxm->tracks = av_realloc(fourxm->tracks, fourxm->track_count * sizeof(AudioTrack)); if (!fourxm->tracks) { av_free(header); @@ -277,7 +277,7 @@ ret= av_get_packet(&s->pb, pkt, size); if(ret<0) return AVERROR_IO; - pkt->stream_index = + pkt->stream_index = fourxm->tracks[fourxm->selected_track].stream_index; pkt->pts = fourxm->audio_pts; packet_read = 1; @@ -285,13 +285,13 @@ /* pts accounting */ audio_frame_count = size; if (fourxm->tracks[fourxm->selected_track].adpcm) - audio_frame_count -= + audio_frame_count -= 2 * (fourxm->tracks[fourxm->selected_track].channels); audio_frame_count /= fourxm->tracks[fourxm->selected_track].channels; if (fourxm->tracks[fourxm->selected_track].adpcm) audio_frame_count *= 2; - else + else audio_frame_count /= (fourxm->tracks[fourxm->selected_track].bits / 8); fourxm->audio_pts += audio_frame_count;
--- a/Makefile Sat Dec 17 17:57:03 2005 +0000 +++ b/Makefile Sat Dec 17 18:14:38 2005 +0000 @@ -33,8 +33,8 @@ # image formats OBJS+= pnm.o yuv.o png.o jpeg.o gifdec.o sgi.o # file I/O -OBJS+= avio.o aviobuf.o file.o -OBJS+= framehook.o +OBJS+= avio.o aviobuf.o file.o +OBJS+= framehook.o ifeq ($(CONFIG_VIDEO4LINUX),yes) OBJS+= grab.o @@ -53,7 +53,7 @@ endif ifeq ($(CONFIG_AUDIO_OSS),yes) -OBJS+= audio.o +OBJS+= audio.o endif EXTRALIBS += -L../libavutil -lavutil$(BUILDSUF) @@ -135,13 +135,13 @@ install -m 644 ../libavformat.pc "$(libdir)/pkgconfig" %.o: %.c - $(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $< + $(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $< # BeOS: remove -Wall to get rid of all the "multibyte constant" warnings %.o: %.cpp - g++ $(subst -Wall,,$(CFLAGS)) -c -o $@ $< + g++ $(subst -Wall,,$(CFLAGS)) -c -o $@ $< -distclean clean: +distclean clean: rm -f *.o *.d .depend *~ *.a *$(SLIBSUF) $(LIB) #
--- a/allformats.c Sat Dec 17 17:57:03 2005 +0000 +++ b/allformats.c Sat Dec 17 18:14:38 2005 +0000 @@ -27,7 +27,7 @@ void av_register_all(void) { static int inited = 0; - + if (inited != 0) return; inited = 1; @@ -126,7 +126,7 @@ #endif av_register_image_format(&jpeg_image_format); #endif - av_register_image_format(&gif_image_format); + av_register_image_format(&gif_image_format); // av_register_image_format(&sgi_image_format); heap corruption, dont enable #endif //CONFIG_MUXERS
--- a/amr.c Sat Dec 17 17:57:03 2005 +0000 +++ b/amr.c Sat Dec 17 18:14:38 2005 +0000 @@ -1,4 +1,4 @@ -/* +/* * amr file format * Copyright (c) 2001 ffmpeg project * @@ -65,8 +65,8 @@ static int amr_probe(AVProbeData *p) { - //Only check for "#!AMR" which could be amr-wb, amr-nb. - //This will also trigger multichannel files: "#!AMR_MC1.0\n" and + //Only check for "#!AMR" which could be amr-wb, amr-nb. + //This will also trigger multichannel files: "#!AMR_MC1.0\n" and //"#!AMR-WB_MC1.0\n" (not supported) if (p->buf_size < 5) @@ -99,7 +99,7 @@ { return AVERROR_NOMEM; } - + st->codec->codec_type = CODEC_TYPE_AUDIO; st->codec->codec_tag = MKTAG('s', 'a', 'w', 'b'); st->codec->codec_id = CODEC_ID_AMR_WB; @@ -113,7 +113,7 @@ { return AVERROR_NOMEM; } - + st->codec->codec_type = CODEC_TYPE_AUDIO; st->codec->codec_tag = MKTAG('s', 'a', 'm', 'r'); st->codec->codec_id = CODEC_ID_AMR_NB; @@ -137,18 +137,18 @@ uint8_t toc, q, ft; int read; int size; - + if (url_feof(&s->pb)) { return AVERROR_IO; } - + toc=get_byte(&s->pb); q = (toc >> 2) & 0x01; ft = (toc >> 3) & 0x0F; - + size=packed_size[ft]; - + if (av_new_packet(pkt, size+1)) { return AVERROR_IO; @@ -156,15 +156,15 @@ pkt->stream_index = 0; pkt->pos= url_ftell(&s->pb); pkt->data[0]=toc; - + read = get_buffer(&s->pb, pkt->data+1, size); - + if (read != size) { av_free_packet(pkt); return AVERROR_IO; } - + return 0; } else if(enc->codec_id == CODEC_ID_AMR_WB) @@ -173,33 +173,33 @@ uint8_t toc, mode; int read; int size; - + if (url_feof(&s->pb)) { return AVERROR_IO; } - + toc=get_byte(&s->pb); mode = (uint8_t)((toc >> 3) & 0x0F); size = packed_size[mode]; - + if ( (size==0) || av_new_packet(pkt, size)) { return AVERROR_IO; } - + pkt->stream_index = 0; pkt->pos= url_ftell(&s->pb); pkt->data[0]=toc; - + read = get_buffer(&s->pb, pkt->data+1, size-1); - + if (read != (size-1)) { av_free_packet(pkt); return AVERROR_IO; } - + return 0; } else
--- a/asf-enc.c Sat Dec 17 17:57:03 2005 +0000 +++ b/asf-enc.c Sat Dec 17 18:14:38 2005 +0000 @@ -164,7 +164,7 @@ ASF_PAYLOAD_REPLICATED_DATA_LENGTH_FIELD_SIZE + \ ASF_PAYLOAD_REPLICATED_DATA_LENGTH \ ) - + #define PAYLOAD_HEADER_SIZE_MULTIPLE_PAYLOADS (\ 1 + /*Stream Number*/ \ ASF_PAYLOAD_MEDIA_OBJECT_NUMBER_FIELD_SIZE + \ @@ -357,7 +357,7 @@ asf->streams[n].num = n + 1; asf->streams[n].seq = 0; - + if (enc->codec_type == CODEC_TYPE_AUDIO) { if (enc->codec_id == CODEC_ID_ADPCM_G726) { er_spr = (uint8_t *)error_spread_ADPCM_G726; @@ -443,8 +443,8 @@ put_le16(pb, asf->streams[n].num); put_str16(pb, p ? p->name : enc->codec_name); put_le16(pb, 0); /* no parameters */ - - + + /* id */ if (enc->codec_type == CODEC_TYPE_AUDIO) { put_le16(pb, 2); @@ -500,7 +500,7 @@ asf->packet_size = PACKET_SIZE; asf->nb_packets = 0; - + asf->last_indexed_pts = 0; asf->index_ptr = (ASFIndex*)av_malloc( sizeof(ASFIndex) * ASF_INDEX_BLOCK ); asf->nb_index_memory_alloc = ASF_INDEX_BLOCK; @@ -535,9 +535,9 @@ static int put_payload_parsing_info( AVFormatContext *s, - unsigned int sendtime, + unsigned int sendtime, unsigned int duration, - int nb_payloads, + int nb_payloads, int padsize ) { @@ -547,7 +547,7 @@ unsigned char *start_ppi_ptr = pb->buf_ptr; int iLengthTypeFlags = ASF_PPI_LENGTH_TYPE_FLAGS; - + put_byte(pb, ASF_PACKET_ERROR_CORRECTION_FLAGS); for (i = 0; i < ASF_PACKET_ERROR_CORRECTION_DATA_SIZE; i++){ put_byte(pb, 0x0); @@ -626,25 +626,25 @@ ASFContext *asf = s->priv_data; ByteIOContext *pb = &asf->pb; int val; - + val = stream->num; if (flags & PKT_FLAG_KEY) val |= ASF_PL_FLAG_KEY_FRAME; put_byte(pb, val); - + put_byte(pb, stream->seq); //Media object number put_le32(pb, m_obj_offset); //Offset Into Media Object - + // Replicated Data shall be at least 8 bytes long. - // The first 4 bytes of data shall contain the + // The first 4 bytes of data shall contain the // Size of the Media Object that the payload belongs to. - // The next 4 bytes of data shall contain the + // The next 4 bytes of data shall contain the // Presentation Time for the media object that the payload belongs to. put_byte(pb, ASF_PAYLOAD_REPLICATED_DATA_LENGTH); put_le32(pb, m_obj_size); //Replicated Data - Media Object Size put_le32(pb, presentation_time);//Replicated Data - Presentation Time - + if (asf->multi_payloads_present){ put_le16(pb, payload_len); //payload length } @@ -667,7 +667,7 @@ payload_len = m_obj_size - m_obj_offset; if (asf->packet_timestamp_start == -1) { asf->multi_payloads_present = (payload_len < MULTI_PAYLOAD_CONSTANT); - + if (asf->multi_payloads_present){ asf->packet_size_left = PACKET_SIZE; //For debug asf->packet_size_left = PACKET_SIZE - PACKET_HEADER_MIN_SIZE - 1; @@ -696,7 +696,7 @@ payload_len = frag_len1; else if (payload_len == (frag_len1 - 1)) payload_len = frag_len1 - 2; //additional byte need to put padding length - + put_payload_header(s, stream, timestamp+preroll_time, m_obj_size, m_obj_offset, payload_len, flags); put_buffer(&asf->pb, buf, payload_len); @@ -705,7 +705,7 @@ else asf->packet_size_left -= (payload_len + PAYLOAD_HEADER_SIZE_SINGLE_PAYLOAD); asf->packet_timestamp_end = timestamp; - + asf->packet_nb_payloads++; } else { payload_len = 0; @@ -727,7 +727,7 @@ ASFStream *stream; int64_t duration; AVCodecContext *codec; - int64_t packet_st,pts; + int64_t packet_st,pts; int start_sec,i; codec = s->streams[pkt->stream_index]->codec;
--- a/asf.c Sat Dec 17 17:57:03 2005 +0000 +++ b/asf.c Sat Dec 17 18:14:38 2005 +0000 @@ -25,7 +25,7 @@ #include <assert.h> #define FRAME_HEADER_SIZE 17 -// Fix Me! FRAME_HEADER_SIZE may be different. +// Fix Me! FRAME_HEADER_SIZE may be different. static const GUID index_guid = { 0x33000890, 0xe5b1, 0x11cf, { 0x89, 0xf4, 0x00, 0xa0, 0xc9, 0x03, 0x49, 0xcb }, @@ -198,7 +198,7 @@ goto fail; st->priv_data = asf_st; st->start_time = asf->hdr.preroll; - st->duration = asf->hdr.send_time / + st->duration = asf->hdr.send_time / (10000000 / 1000) - st->start_time; get_guid(pb, &g); if (!memcmp(&g, &audio_stream, sizeof(GUID))) { @@ -424,9 +424,9 @@ uint32_t packet_length, padsize; int rsize = 9; int c; - + assert((url_ftell(&s->pb) - s->data_offset) % asf->packet_size == 0); - + c = get_byte(pb); if (c != 0x82) { if (!url_feof(pb)) @@ -607,12 +607,12 @@ asf_st->seq = asf->packet_seq; asf_st->pkt.pts = asf->packet_frag_timestamp; asf_st->pkt.stream_index = asf->stream_index; - asf_st->pkt.pos = - asf_st->packet_pos= asf->packet_pos; -//printf("new packet: stream:%d key:%d packet_key:%d audio:%d size:%d\n", + asf_st->pkt.pos = + asf_st->packet_pos= asf->packet_pos; +//printf("new packet: stream:%d key:%d packet_key:%d audio:%d size:%d\n", //asf->stream_index, asf->packet_key_frame, asf_st->pkt.flags & PKT_FLAG_KEY, //s->streams[asf->stream_index]->codec->codec_type == CODEC_TYPE_AUDIO, asf->packet_obj_size); - if (s->streams[asf->stream_index]->codec->codec_type == CODEC_TYPE_AUDIO) + if (s->streams[asf->stream_index]->codec->codec_type == CODEC_TYPE_AUDIO) asf->packet_key_frame = 1; if (asf->packet_key_frame) asf_st->pkt.flags |= PKT_FLAG_KEY; @@ -705,7 +705,7 @@ asf->packet_obj_size = 0; asf->packet_time_delta = 0; asf->packet_time_start = 0; - + for(i=0; i<s->nb_streams; i++){ asf_st= s->streams[i]->priv_data; av_free_packet(&asf_st->pkt); @@ -724,15 +724,15 @@ int64_t pos= *ppos; int i; int64_t start_pos[s->nb_streams]; - + for(i=0; i<s->nb_streams; i++){ start_pos[i]= pos; } - + pos= (pos+asf->packet_size-1-s->data_offset)/asf->packet_size*asf->packet_size+ s->data_offset; *ppos= pos; url_fseek(&s->pb, pos, SEEK_SET); - + //printf("asf_read_pts\n"); asf_reset_header(s); for(;;){ @@ -740,7 +740,7 @@ av_log(s, AV_LOG_INFO, "seek failed\n"); return AV_NOPTS_VALUE; } - + pts= pkt->pts * 1000 / AV_TIME_BASE; av_free_packet(pkt); @@ -754,7 +754,7 @@ av_add_index_entry(s->streams[i], pos, pts, pos - start_pos[i] + 1, AVINDEX_KEYFRAME); start_pos[i]= asf_st->packet_pos + 1; - + if(pkt->stream_index == stream_index) break; } @@ -769,7 +769,7 @@ static int asf_read_seek(AVFormatContext *s, int stream_index, int64_t pts, int flags) { ASFContext *asf = s->priv_data; - + if (asf->packet_size <= 0) return -1;
--- a/asf.h Sat Dec 17 17:57:03 2005 +0000 +++ b/asf.h Sat Dec 17 18:14:38 2005 +0000 @@ -31,7 +31,7 @@ int ds_chunk_size; int ds_data_size; int ds_silence_data; - + int packet_pos; } ASFStream;
--- a/au.c Sat Dec 17 17:57:03 2005 +0000 +++ b/au.c Sat Dec 17 18:14:38 2005 +0000 @@ -1,4 +1,4 @@ -/* +/* * AU encoder and decoder * Copyright (c) 2001 Fabrice Bellard. * @@ -127,11 +127,11 @@ return -1; size = get_be32(pb); /* header size */ get_be32(pb); /* data size */ - + id = get_be32(pb); rate = get_be32(pb); channels = get_be32(pb); - + codec = codec_get_id(codec_au_tags, id); if (size >= 24) {
--- a/audio.c Sat Dec 17 17:57:03 2005 +0000 +++ b/audio.c Sat Dec 17 18:14:38 2005 +0000 @@ -87,7 +87,7 @@ /* select format : favour native format */ err = ioctl(audio_fd, SNDCTL_DSP_GETFMTS, &tmp); - + #ifdef WORDS_BIGENDIAN if (tmp & AFMT_S16_BE) { tmp = AFMT_S16_BE; @@ -123,7 +123,7 @@ perror("SNDCTL_DSP_SETFMT"); goto fail; } - + tmp = (s->channels == 2); err = ioctl(audio_fd, SNDCTL_DSP_STEREO, &tmp); if (err < 0) { @@ -132,7 +132,7 @@ } if (tmp) s->channels = 2; - + tmp = s->sample_rate; err = ioctl(audio_fd, SNDCTL_DSP_SPEED, &tmp); if (err < 0) { @@ -249,7 +249,7 @@ int ret, bdelay; int64_t cur_time; struct audio_buf_info abufi; - + if (av_new_packet(pkt, s->frame_size) < 0) return AVERROR_IO; for(;;) {
--- a/avformat.h Sat Dec 17 17:57:03 2005 +0000 +++ b/avformat.h Sat Dec 17 18:14:38 2005 +0000 @@ -38,7 +38,7 @@ void (*destruct)(struct AVPacket *); void *priv; int64_t pos; ///< byte position in stream, -1 if unknown -} AVPacket; +} AVPacket; #define PKT_FLAG_KEY 0x0001 void av_destruct_packet_nofree(AVPacket *pkt); @@ -78,7 +78,7 @@ /* the exact value of the fractional number is: 'val + num / den'. num is assumed to be such as 0 <= num < den */ typedef struct AVFrac { - int64_t val, num, den; + int64_t val, num, den; } AVFrac; void av_frac_init(AVFrac *f, int64_t val, int64_t num, int64_t den); @@ -121,7 +121,7 @@ } AVFormatParameters; #define AVFMT_NOFILE 0x0001 /* no file should be opened */ -#define AVFMT_NEEDNUMBER 0x0002 /* needs '%d' in filename */ +#define AVFMT_NEEDNUMBER 0x0002 /* needs '%d' in filename */ #define AVFMT_SHOW_IDS 0x0008 /* show format stream IDs numbers */ #define AVFMT_RAWPICTURE 0x0020 /* format wants AVPicture structure for raw picture data */ @@ -169,14 +169,14 @@ /* close the stream. The AVFormatContext and AVStreams are not freed by this function */ int (*read_close)(struct AVFormatContext *); - /** - * seek to a given timestamp relative to the frames in + /** + * seek to a given timestamp relative to the frames in * stream component stream_index * @param stream_index must not be -1 - * @param flags selects which direction should be preferred if no exact + * @param flags selects which direction should be preferred if no exact * match is available */ - int (*read_seek)(struct AVFormatContext *, + int (*read_seek)(struct AVFormatContext *, int stream_index, int64_t timestamp, int flags); /** * gets the next timestamp in AV_TIME_BASE units. @@ -219,13 +219,13 @@ AVCodecContext *codec; /* codec context */ /** * real base frame rate of the stream. - * for example if the timebase is 1/90000 and all frames have either + * for example if the timebase is 1/90000 and all frames have either * approximately 3600 or 1800 timer ticks then r_frame_rate will be 50/1 */ AVRational r_frame_rate; void *priv_data; /* internal data used in av_find_stream_info() */ - int64_t codec_info_duration; + int64_t codec_info_duration; int codec_info_nb_frames; /* encoding: PTS generation when outputing stream */ AVFrac pts; @@ -244,10 +244,10 @@ //FIXME move stuff to a flags field? /* quality, as it has been removed from AVCodecContext and put in AVVideoFrame * MN:dunno if thats the right place, for it */ - float quality; + float quality; /* decoding: position of the first frame of the component, in AV_TIME_BASE fractional seconds. */ - int64_t start_time; + int64_t start_time; /* decoding: duration of the stream, in AV_TIME_BASE fractional seconds. */ int64_t duration; @@ -266,7 +266,7 @@ support seeking natively */ int nb_index_entries; int index_entries_allocated_size; - + int64_t nb_frames; ///< number of frames in this stream if known or 0 } AVStream; @@ -307,7 +307,7 @@ /* decoding: position of the first frame of the component, in AV_TIME_BASE fractional seconds. NEVER set this value directly: it is deduced from the AVStream values. */ - int64_t start_time; + int64_t start_time; /* decoding: duration of the stream, in AV_TIME_BASE fractional seconds. NEVER set this value directly: it is deduced from the AVStream values. */ @@ -328,17 +328,17 @@ /* av_seek_frame() support */ int64_t data_offset; /* offset of the first packet */ int index_built; - + int mux_rate; int packet_size; int preload; int max_delay; -#define AVFMT_NOOUTPUTLOOP -1 -#define AVFMT_INFINITEOUTPUTLOOP 0 +#define AVFMT_NOOUTPUTLOOP -1 +#define AVFMT_INFINITEOUTPUTLOOP 0 /* number of times to loop output in formats that support it */ int loop_output; - + int flags; #define AVFMT_FLAG_GENPTS 0x0001 ///< generate pts if missing even if it requires parsing future frames } AVFormatContext; @@ -375,7 +375,7 @@ known so that the caller can allocate the image. If 'allo_cb' returns non zero, then the parsing is aborted. Return '0' if OK. */ - int (*img_read)(ByteIOContext *, + int (*img_read)(ByteIOContext *, int (*alloc_cb)(void *, AVImageInfo *info), void *); /* write the image */ int supported_pixel_formats; /* mask of supported formats for output */ @@ -475,7 +475,7 @@ int ff_mmf_init(void); /* raw.c */ -int pcm_read_seek(AVFormatContext *s, +int pcm_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags); int raw_init(void); @@ -559,11 +559,11 @@ /* utils.c */ void av_register_input_format(AVInputFormat *format); void av_register_output_format(AVOutputFormat *format); -AVOutputFormat *guess_stream_format(const char *short_name, +AVOutputFormat *guess_stream_format(const char *short_name, const char *filename, const char *mime_type); -AVOutputFormat *guess_format(const char *short_name, +AVOutputFormat *guess_format(const char *short_name, const char *filename, const char *mime_type); -enum CodecID av_guess_codec(AVOutputFormat *fmt, const char *short_name, +enum CodecID av_guess_codec(AVOutputFormat *fmt, const char *short_name, const char *filename, const char *mime_type, enum CodecType type); void av_hex_dump(FILE *f, uint8_t *buf, int size); @@ -587,10 +587,10 @@ /* media file input */ AVInputFormat *av_find_input_format(const char *short_name); AVInputFormat *av_probe_input_format(AVProbeData *pd, int is_opened); -int av_open_input_stream(AVFormatContext **ic_ptr, - ByteIOContext *pb, const char *filename, +int av_open_input_stream(AVFormatContext **ic_ptr, + ByteIOContext *pb, const char *filename, AVInputFormat *fmt, AVFormatParameters *ap); -int av_open_input_file(AVFormatContext **ic_ptr, const char *filename, +int av_open_input_file(AVFormatContext **ic_ptr, const char *filename, AVInputFormat *fmt, int buf_size, AVFormatParameters *ap); @@ -604,7 +604,7 @@ #define AVERROR_NOMEM (-5) /* not enough memory */ #define AVERROR_NOFMT (-6) /* unknown format */ #define AVERROR_NOTSUPP (-7) /* operation not supported */ - + int av_find_stream_info(AVFormatContext *ic); int av_read_packet(AVFormatContext *s, AVPacket *pkt); int av_read_frame(AVFormatContext *s, AVPacket *pkt); @@ -635,7 +635,7 @@ int av_write_trailer(AVFormatContext *s); void dump_format(AVFormatContext *ic, - int index, + int index, const char *url, int is_output); int parse_image_size(int *width_ptr, int *height_ptr, const char *str); @@ -692,7 +692,7 @@ time_t mktimegm(struct tm *tm); struct tm *brktimegm(time_t secs, struct tm *tm); -const char *small_strptime(const char *p, const char *fmt, +const char *small_strptime(const char *p, const char *fmt, struct tm *dt); struct in_addr;
--- a/avi.h Sat Dec 17 17:57:03 2005 +0000 +++ b/avi.h Sat Dec 17 18:14:38 2005 +0000 @@ -28,7 +28,7 @@ void put_bmp_header(ByteIOContext *pb, AVCodecContext *enc, const CodecTag *tags, int for_asf); int put_wav_header(ByteIOContext *pb, AVCodecContext *enc); int wav_codec_get_id(unsigned int tag, int bps); -void get_wav_header(ByteIOContext *pb, AVCodecContext *codec, int size); +void get_wav_header(ByteIOContext *pb, AVCodecContext *codec, int size); extern const CodecTag codec_bmp_tags[]; extern const CodecTag codec_wav_tags[];
--- a/avidec.c Sat Dec 17 17:57:03 2005 +0000 +++ b/avidec.c Sat Dec 17 18:14:38 2005 +0000 @@ -33,12 +33,12 @@ int packet_size; int scale; - int rate; + int rate; int sample_size; /* audio only data */ int start; - + int cum_len; /* temporary storage (used during seek) */ - + int prefix; ///< normally 'd'<<8 + 'c' or 'w'<<8 + 'b' int prefix_count; } AVIStream; @@ -70,7 +70,7 @@ static int get_riff(AVIContext *avi, ByteIOContext *pb) { - uint32_t tag; + uint32_t tag; /* check RIFF header */ tag = get_le32(pb); @@ -81,7 +81,7 @@ tag = get_le32(pb); if (tag != MKTAG('A', 'V', 'I', ' ') && tag != MKTAG('A', 'V', 'I', 'X')) return -1; - + return 0; } @@ -98,7 +98,7 @@ int xan_video = 0; /* hack to support Xan A/V */ avi->stream_index= -1; - + if (get_riff(avi, pb) < 0) return -1; @@ -165,18 +165,18 @@ print_tag("strh", tag1, -1); #endif if(tag1 == MKTAG('i', 'a', 'v', 's') || tag1 == MKTAG('i', 'v', 'a', 's')){ - /* - * After some consideration -- I don't think we + /* + * After some consideration -- I don't think we * have to support anything but DV in a type1 AVIs. */ if (s->nb_streams != 1) goto fail; - + if (handler != MKTAG('d', 'v', 's', 'd') && handler != MKTAG('d', 'v', 'h', 'd') && handler != MKTAG('d', 'v', 's', 'l')) goto fail; - + ast = s->streams[0]->priv_data; av_freep(&s->streams[0]->codec->extradata); av_freep(&s->streams[0]); @@ -196,7 +196,7 @@ if (stream_index >= s->nb_streams) { url_fskip(pb, size - 8); break; - } + } st = s->streams[stream_index]; ast = st->priv_data; st->codec->stream_codec_tag= handler; @@ -216,7 +216,7 @@ ast->scale = 1; } av_set_pts_info(st, 64, ast->scale, ast->rate); - + ast->start= get_le32(pb); /* start */ nb_frames = get_le32(pb); @@ -237,7 +237,7 @@ codec_type = CODEC_TYPE_AUDIO; break; case MKTAG('t', 'x', 't', 's'): - //FIXME + //FIXME codec_type = CODEC_TYPE_DATA; //CODEC_TYPE_SUB ? FIXME break; case MKTAG('p', 'a', 'd', 's'): @@ -275,7 +275,7 @@ st->codec->extradata= av_malloc(st->codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE); get_buffer(pb, st->codec->extradata, st->codec->extradata_size); } - + if(st->codec->extradata_size & 1) //FIXME check if the encoder really did this correctly get_byte(pb); @@ -347,7 +347,7 @@ assert(!avi->index_loaded); avi_load_index(s); avi->index_loaded = 1; - + return 0; } @@ -358,20 +358,20 @@ int n, d[8], size; offset_t i, sync; void* dstr; - + if (avi->dv_demux) { size = dv_get_packet(avi->dv_demux, pkt); if (size >= 0) return size; } - + if(avi->non_interleaved){ int best_stream_index = 0; AVStream *best_st= NULL; AVIStream *best_ast; int64_t best_ts= INT64_MAX; int i; - + for(i=0; i<s->nb_streams; i++){ AVStream *st = s->streams[i]; AVIStream *ast = st->priv_data; @@ -401,23 +401,23 @@ pos += avi->movi_list + best_ast->packet_size - best_ast->remaining; url_fseek(&s->pb, pos, SEEK_SET); // av_log(NULL, AV_LOG_DEBUG, "pos=%Ld\n", pos); - + if(best_ast->remaining) avi->stream_index= best_stream_index; else avi->stream_index= -1; } } - + resync: if(avi->stream_index >= 0){ AVStream *st= s->streams[ avi->stream_index ]; AVIStream *ast= st->priv_data; int size; - + if(ast->sample_size == 0) size= INT_MAX; - else if(ast->sample_size < 32) + else if(ast->sample_size < 32) size= 64*ast->sample_size; else size= ast->sample_size; @@ -425,7 +425,7 @@ if(size > ast->remaining) size= ast->remaining; av_get_packet(pb, pkt, size); - + if (avi->dv_demux) { dstr = pkt->destruct; size = dv_produce_packet(avi->dv_demux, pkt, @@ -448,7 +448,7 @@ index= av_index_search_timestamp(st, pkt->dts, 0); e= &st->index_entries[index]; - + if(index >= 0 && e->timestamp == ast->frame_offset){ if (e->flags & AVINDEX_KEYFRAME) pkt->flags |= PKT_FLAG_KEY; @@ -459,7 +459,7 @@ pkt->flags |= PKT_FLAG_KEY; } } else { - pkt->flags |= PKT_FLAG_KEY; + pkt->flags |= PKT_FLAG_KEY; } if(ast->sample_size) ast->frame_offset += pkt->size; @@ -494,9 +494,9 @@ for(j=0; j<7; j++) d[j]= d[j+1]; d[7]= get_byte(pb); - + size= d[4] + (d[5]<<8) + (d[6]<<16) + (d[7]<<24); - + if( d[2] >= '0' && d[2] <= '9' && d[3] >= '0' && d[3] <= '9'){ n= (d[2] - '0') * 10 + (d[3] - '0'); @@ -506,7 +506,7 @@ //av_log(NULL, AV_LOG_DEBUG, "%X %X %X %X %X %X %X %X %lld %d %d\n", d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], i, size, n); if(i + size > avi->movi_end || d[0]<0) continue; - + //parse ix## if( (d[0] == 'i' && d[1] == 'x' && n < s->nb_streams) //parse JUNK @@ -522,14 +522,14 @@ }else{ n= 100; //invalid stream id } - + //parse ##dc/##wb if(n < s->nb_streams){ AVStream *st; AVIStream *ast; st = s->streams[n]; ast = st->priv_data; - + if( (st->discard >= AVDISCARD_DEFAULT && size==0) /*|| (st->discard >= AVDISCARD_NONKEY && !(pkt->flags & PKT_FLAG_KEY))*/ //FIXME needs a little reordering || st->discard >= AVDISCARD_ALL){ @@ -539,9 +539,9 @@ goto resync; } - if( ((ast->prefix_count<5 || sync+9 > i) && d[2]<128 && d[3]<128) || + if( ((ast->prefix_count<5 || sync+9 > i) && d[2]<128 && d[3]<128) || d[2]*256+d[3] == ast->prefix /*|| - (d[2] == 'd' && d[3] == 'c') || + (d[2] == 'd' && d[3] == 'c') || (d[2] == 'w' && d[3] == 'b')*/) { //av_log(NULL, AV_LOG_DEBUG, "OK\n"); @@ -603,7 +603,7 @@ AVIStream *ast; unsigned int index, tag, flags, pos, len; unsigned last_pos= -1; - + nb_index_entries = size / 16; if (nb_index_entries <= 0) return -1; @@ -615,7 +615,7 @@ pos = get_le32(pb); len = get_le32(pb); #if defined(DEBUG_SEEK) - av_log(NULL, AV_LOG_DEBUG, "%d: tag=0x%x flags=0x%x pos=0x%x len=%d/", + av_log(NULL, AV_LOG_DEBUG, "%d: tag=0x%x flags=0x%x pos=0x%x len=%d/", i, tag, flags, pos, len); #endif if(i==0 && pos > avi->movi_list) @@ -627,7 +627,7 @@ continue; st = s->streams[index]; ast = st->priv_data; - + #if defined(DEBUG_SEEK) av_log(NULL, AV_LOG_DEBUG, "%d cum_len=%d\n", len, ast->cum_len); #endif @@ -648,7 +648,7 @@ int i; int64_t last_start=0; int64_t first_end= INT64_MAX; - + for(i=0; i<s->nb_streams; i++){ AVStream *st = s->streams[i]; int n= st->nb_index_entries; @@ -670,7 +670,7 @@ ByteIOContext *pb = &s->pb; uint32_t tag, size; offset_t pos= url_ftell(pb); - + url_fseek(pb, avi->movi_end, SEEK_SET); #ifdef DEBUG_SEEK printf("movi_end=0x%llx\n", avi->movi_end); @@ -726,7 +726,7 @@ index= av_index_search_timestamp(st, timestamp, flags); if(index<0) return -1; - + /* find the position */ pos = st->index_entries[index].pos; timestamp = st->index_entries[index].timestamp; @@ -742,17 +742,17 @@ if (st2->nb_index_entries <= 0) continue; - + // assert(st2->codec.block_align); assert(st2->time_base.den == ast2->rate); assert(st2->time_base.num == ast2->scale); index = av_index_search_timestamp( - st2, + st2, av_rescale(timestamp, st2->time_base.den*(int64_t)st->time_base.num, st->time_base.den * (int64_t)st2->time_base.num), flags | AVSEEK_FLAG_BACKWARD); if(index<0) index=0; - + if(!avi->non_interleaved){ while(index>0 && st2->index_entries[index].pos > pos) index--;
--- a/avienc.c Sat Dec 17 17:57:03 2005 +0000 +++ b/avienc.c Sat Dec 17 18:14:38 2005 +0000 @@ -20,7 +20,7 @@ #include "avi.h" /* - * TODO: + * TODO: * - fill all fields if non streamed (nb_frames for example) */ @@ -48,7 +48,7 @@ AVIIndex indexes[MAX_STREAMS]; } AVIContext; -static inline AVIIentry* avi_get_ientry(AVIIndex* idx, int ent_id) +static inline AVIIentry* avi_get_ientry(AVIIndex* idx, int ent_id) { int cl = ent_id / AVI_INDEX_CLUSTER_SIZE; int id = ent_id % AVI_INDEX_CLUSTER_SIZE; @@ -108,39 +108,39 @@ { CODEC_ID_MPEG4, MKTAG('W', 'V', '1', 'F') }, { CODEC_ID_MSMPEG4V3, MKTAG('D', 'I', 'V', '3'), .invalid_asf = 1 }, /* default signature when using MSMPEG4 */ - { CODEC_ID_MSMPEG4V3, MKTAG('M', 'P', '4', '3') }, + { CODEC_ID_MSMPEG4V3, MKTAG('M', 'P', '4', '3') }, /* added based on MPlayer */ - { CODEC_ID_MSMPEG4V3, MKTAG('M', 'P', 'G', '3') }, - { CODEC_ID_MSMPEG4V3, MKTAG('D', 'I', 'V', '5') }, - { CODEC_ID_MSMPEG4V3, MKTAG('D', 'I', 'V', '6') }, - { CODEC_ID_MSMPEG4V3, MKTAG('D', 'I', 'V', '4') }, - { CODEC_ID_MSMPEG4V3, MKTAG('A', 'P', '4', '1') }, - { CODEC_ID_MSMPEG4V3, MKTAG('C', 'O', 'L', '1') }, - { CODEC_ID_MSMPEG4V3, MKTAG('C', 'O', 'L', '0') }, + { CODEC_ID_MSMPEG4V3, MKTAG('M', 'P', 'G', '3') }, + { CODEC_ID_MSMPEG4V3, MKTAG('D', 'I', 'V', '5') }, + { CODEC_ID_MSMPEG4V3, MKTAG('D', 'I', 'V', '6') }, + { CODEC_ID_MSMPEG4V3, MKTAG('D', 'I', 'V', '4') }, + { CODEC_ID_MSMPEG4V3, MKTAG('A', 'P', '4', '1') }, + { CODEC_ID_MSMPEG4V3, MKTAG('C', 'O', 'L', '1') }, + { CODEC_ID_MSMPEG4V3, MKTAG('C', 'O', 'L', '0') }, - { CODEC_ID_MSMPEG4V2, MKTAG('M', 'P', '4', '2') }, + { CODEC_ID_MSMPEG4V2, MKTAG('M', 'P', '4', '2') }, /* added based on MPlayer */ { CODEC_ID_MSMPEG4V2, MKTAG('D', 'I', 'V', '2') }, - - { CODEC_ID_MSMPEG4V1, MKTAG('M', 'P', 'G', '4') }, - { CODEC_ID_WMV1, MKTAG('W', 'M', 'V', '1') }, + { CODEC_ID_MSMPEG4V1, MKTAG('M', 'P', 'G', '4') }, + + { CODEC_ID_WMV1, MKTAG('W', 'M', 'V', '1') }, /* added based on MPlayer */ - { CODEC_ID_WMV2, MKTAG('W', 'M', 'V', '2') }, - { CODEC_ID_DVVIDEO, MKTAG('d', 'v', 's', 'd') }, - { CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'h', 'd') }, - { CODEC_ID_DVVIDEO, MKTAG('d', 'v', 's', 'l') }, + { CODEC_ID_WMV2, MKTAG('W', 'M', 'V', '2') }, + { CODEC_ID_DVVIDEO, MKTAG('d', 'v', 's', 'd') }, + { CODEC_ID_DVVIDEO, MKTAG('d', 'v', 'h', 'd') }, + { CODEC_ID_DVVIDEO, MKTAG('d', 'v', 's', 'l') }, { CODEC_ID_DVVIDEO, MKTAG('d', 'v', '2', '5') }, - { CODEC_ID_MPEG1VIDEO, MKTAG('m', 'p', 'g', '1') }, - { CODEC_ID_MPEG1VIDEO, MKTAG('m', 'p', 'g', '2') }, - { CODEC_ID_MPEG2VIDEO, MKTAG('m', 'p', 'g', '2') }, - { CODEC_ID_MPEG1VIDEO, MKTAG('P', 'I', 'M', '1') }, - { CODEC_ID_MPEG1VIDEO, MKTAG('V', 'C', 'R', '2') }, - { CODEC_ID_MPEG1VIDEO, 0x10000001 }, - { CODEC_ID_MPEG2VIDEO, 0x10000002 }, + { CODEC_ID_MPEG1VIDEO, MKTAG('m', 'p', 'g', '1') }, + { CODEC_ID_MPEG1VIDEO, MKTAG('m', 'p', 'g', '2') }, + { CODEC_ID_MPEG2VIDEO, MKTAG('m', 'p', 'g', '2') }, + { CODEC_ID_MPEG1VIDEO, MKTAG('P', 'I', 'M', '1') }, + { CODEC_ID_MPEG1VIDEO, MKTAG('V', 'C', 'R', '2') }, + { CODEC_ID_MPEG1VIDEO, 0x10000001 }, + { CODEC_ID_MPEG2VIDEO, 0x10000002 }, { CODEC_ID_MPEG2VIDEO, MKTAG('D', 'V', 'R', ' ') }, { CODEC_ID_MJPEG, MKTAG('M', 'J', 'P', 'G') }, { CODEC_ID_MJPEG, MKTAG('L', 'J', 'P', 'G') }, @@ -258,7 +258,7 @@ put_le32(pb, enc->width); put_le32(pb, enc->height); put_le16(pb, 1); /* planes */ - + put_le16(pb, enc->bits_per_sample ? enc->bits_per_sample : 24); /* depth */ /* compression type */ put_le32(pb, for_asf ? (enc->codec_tag ? enc->codec_tag : codec_get_asf_tag(tags, enc->codec_id)) : enc->codec_tag); // @@ -267,7 +267,7 @@ put_le32(pb, 0); put_le32(pb, 0); put_le32(pb, 0); - + put_buffer(pb, enc->extradata, enc->extradata_size); if (enc->extradata_size & 1) @@ -294,16 +294,16 @@ *au_rate /= gcd; } -static offset_t avi_start_new_riff(AVIContext *avi, ByteIOContext *pb, +static offset_t avi_start_new_riff(AVIContext *avi, ByteIOContext *pb, const char* riff_tag, const char* list_tag) { offset_t loff; int i; - + avi->riff_id++; for (i=0; i<MAX_STREAMS; i++) avi->indexes[i].entry = 0; - + avi->riff_start = start_tag(pb, "RIFF"); put_tag(pb, riff_tag); loff = start_tag(pb, "LIST"); @@ -311,7 +311,7 @@ return loff; } -static unsigned char* avi_stream2fourcc(unsigned char* tag, int index, +static unsigned char* avi_stream2fourcc(unsigned char* tag, int index, enum CodecType type) { tag[0] = '0'; @@ -351,7 +351,7 @@ if (stream->codec_type == CODEC_TYPE_VIDEO) video_enc = stream; } - + nb_frames = 0; if(video_enc){ @@ -370,23 +370,23 @@ put_le32(pb, 0); /* initial frame */ put_le32(pb, s->nb_streams); /* nb streams */ put_le32(pb, 1024 * 1024); /* suggested buffer size */ - if(video_enc){ + if(video_enc){ put_le32(pb, video_enc->width); put_le32(pb, video_enc->height); } else { put_le32(pb, 0); put_le32(pb, 0); - } + } put_le32(pb, 0); /* reserved */ put_le32(pb, 0); /* reserved */ put_le32(pb, 0); /* reserved */ put_le32(pb, 0); /* reserved */ - + /* stream list */ for(i=0;i<n;i++) { list2 = start_tag(pb, "LIST"); put_tag(pb, "strl"); - + stream = s->streams[i]->codec; /* FourCC should really be set by the codec itself */ @@ -423,14 +423,14 @@ put_le32(pb, AVI_MAX_RIFF_SIZE); /* FIXME: this may be broken, but who cares */ else put_le32(pb, 0); /* length, XXX: filled later */ - + /* suggested buffer size */ //FIXME set at the end to largest chunk if(stream->codec_type == CODEC_TYPE_VIDEO) - put_le32(pb, 1024 * 1024); + put_le32(pb, 1024 * 1024); else if(stream->codec_type == CODEC_TYPE_AUDIO) - put_le32(pb, 12 * 1024); + put_le32(pb, 12 * 1024); else - put_le32(pb, 0); + put_le32(pb, 0); put_le32(pb, -1); /* quality */ put_le32(pb, au_ssize); /* sample size */ put_le32(pb, 0); @@ -455,18 +455,18 @@ } end_tag(pb, strf); } - + if (!url_is_streamed(pb)) { unsigned char tag[5]; int j; - - /* Starting to lay out AVI OpenDML master index. + + /* Starting to lay out AVI OpenDML master index. * We want to make it JUNK entry for now, since we'd - * like to get away without making AVI an OpenDML one + * like to get away without making AVI an OpenDML one * for compatibility reasons. */ avi->indexes[i].entry = avi->indexes[i].ents_allocated = 0; - avi->indexes[i].indx_start = start_tag(pb, "JUNK"); + avi->indexes[i].indx_start = start_tag(pb, "JUNK"); put_le16(pb, 4); /* wLongsPerEntry */ put_byte(pb, 0); /* bIndexSubType (0 == frame index) */ put_byte(pb, 0); /* bIndexType (0 == AVI_INDEX_OF_INDEXES) */ @@ -479,10 +479,10 @@ put_le64(pb, 0); end_tag(pb, avi->indexes[i].indx_start); } - + end_tag(pb, list2); } - + if (!url_is_streamed(pb)) { /* AVI could become an OpenDML one, if it grows beyond 2Gb range */ avi->odml_list = start_tag(pb, "JUNK"); @@ -495,7 +495,7 @@ } end_tag(pb, list1); - + avi->movi_list = start_tag(pb, "LIST"); put_tag(pb, "movi"); @@ -511,28 +511,28 @@ unsigned char tag[5]; unsigned char ix_tag[] = "ix00"; int i, j; - + if (url_is_streamed(pb)) return -1; if (avi->riff_id > AVI_MASTER_INDEX_SIZE) return -1; - + for (i=0;i<s->nb_streams;i++) { offset_t ix, pos; - + avi_stream2fourcc(&tag[0], i, s->streams[i]->codec->codec_type); ix_tag[3] = '0' + i; - + /* Writing AVI OpenDML leaf index chunk */ - ix = url_ftell(pb); + ix = url_ftell(pb); put_tag(pb, &ix_tag[0]); /* ix?? */ - put_le32(pb, avi->indexes[i].entry * 8 + 24); + put_le32(pb, avi->indexes[i].entry * 8 + 24); /* chunk size */ put_le16(pb, 2); /* wLongsPerEntry */ - put_byte(pb, 0); /* bIndexSubType (0 == frame index) */ + put_byte(pb, 0); /* bIndexSubType (0 == frame index) */ put_byte(pb, 1); /* bIndexType (1 == AVI_INDEX_OF_CHUNKS) */ - put_le32(pb, avi->indexes[i].entry); + put_le32(pb, avi->indexes[i].entry); /* nEntriesInUse */ put_tag(pb, &tag[0]); /* dwChunkId */ put_le64(pb, avi->movi_list);/* qwBaseOffset */ @@ -546,7 +546,7 @@ } put_flush_packet(pb); pos = url_ftell(pb); - + /* Updating one entry in the AVI OpenDML master index */ url_fseek(pb, avi->indexes[i].indx_start - 8, SEEK_SET); put_tag(pb, "indx"); /* enabling this entry */ @@ -583,17 +583,17 @@ for (i=0; i<s->nb_streams; i++) { if (avi->indexes[i].entry <= entry[i]) continue; - + tie = avi_get_ientry(&avi->indexes[i], entry[i]); if (empty || tie->pos < ie->pos) { - ie = tie; + ie = tie; stream_id = i; } empty = 0; } if (!empty) { - avi_stream2fourcc(&tag[0], stream_id, - s->streams[stream_id]->codec->codec_type); + avi_stream2fourcc(&tag[0], stream_id, + s->streams[stream_id]->codec->codec_type); put_tag(pb, &tag[0]); put_le32(pb, ie->flags); put_le32(pb, ie->pos); @@ -621,7 +621,7 @@ } if (avi->frames_hdr_all != 0) { url_fseek(pb, avi->frames_hdr_all, SEEK_SET); - put_le32(pb, nb_frames); + put_le32(pb, nb_frames); } url_fseek(pb, file_size, SEEK_SET); } @@ -652,19 +652,19 @@ avi->packet_count[stream_index]++; // Make sure to put an OpenDML chunk when the file size exceeds the limits - if (!url_is_streamed(pb) && + if (!url_is_streamed(pb) && (url_ftell(pb) - avi->riff_start > AVI_MAX_RIFF_SIZE)) { - + avi_write_ix(s); end_tag(pb, avi->movi_list); - + if (avi->riff_id == 1) avi_write_idx1(s); end_tag(pb, avi->riff_start); avi->movi_list = avi_start_new_riff(avi, pb, "AVIX", "movi"); } - + avi_stream2fourcc(&tag[0], stream_index, enc->codec_type); if(pkt->flags&PKT_FLAG_KEY) flags = 0x10; @@ -677,7 +677,7 @@ int cl = idx->entry / AVI_INDEX_CLUSTER_SIZE; int id = idx->entry % AVI_INDEX_CLUSTER_SIZE; if (idx->ents_allocated <= idx->entry) { - idx->cluster = av_realloc(idx->cluster, (cl+1)*sizeof(void*)); + idx->cluster = av_realloc(idx->cluster, (cl+1)*sizeof(void*)); if (!idx->cluster) return -1; idx->cluster[cl] = av_malloc(AVI_INDEX_CLUSTER_SIZE*sizeof(AVIIentry)); @@ -685,13 +685,13 @@ return -1; idx->ents_allocated += AVI_INDEX_CLUSTER_SIZE; } - - idx->cluster[cl][id].flags = flags; + + idx->cluster[cl][id].flags = flags; idx->cluster[cl][id].pos = url_ftell(pb) - avi->movi_list; idx->cluster[cl][id].len = size; idx->entry++; } - + put_buffer(pb, tag, 4); put_le32(pb, size); put_buffer(pb, pkt->data, size); @@ -750,7 +750,7 @@ avi->indexes[i].cluster = NULL; avi->indexes[i].ents_allocated = avi->indexes[i].entry = 0; } - + return res; }
--- a/avio.c Sat Dec 17 17:57:03 2005 +0000 +++ b/avio.c Sat Dec 17 18:14:38 2005 +0000 @@ -58,7 +58,7 @@ } else { *q = '\0'; } - + up = first_protocol; while (up != NULL) { if (!strcmp(proto_str, up->name)) @@ -108,7 +108,7 @@ return AVERROR_IO; /* avoid sending too big packets */ if (h->max_packet_size && size > h->max_packet_size) - return AVERROR_IO; + return AVERROR_IO; ret = h->prot->url_write(h, buf, size); return ret; } @@ -145,18 +145,18 @@ offset_t url_filesize(URLContext *h) { offset_t pos, size; - + pos = url_seek(h, 0, SEEK_CUR); size = url_seek(h, -1, SEEK_END)+1; url_seek(h, pos, SEEK_SET); return size; } -/* +/* * Return the maximum packet size associated to packetized file * handle. If the file is not packetized (stream like http or file on * disk), then 0 is returned. - * + * * @param h file handle * @return maximum packet size in bytes */ @@ -176,11 +176,11 @@ return 0; } -/** +/** * The callback is called in blocking functions to test regulary if * asynchronous interruption is needed. -EINTR is returned in this * case by the interrupted function. 'NULL' means no interrupt - * callback is given. + * callback is given. */ void url_set_interrupt_cb(URLInterruptCB *interrupt_cb) {
--- a/avio.h Sat Dec 17 17:57:03 2005 +0000 +++ b/avio.h Sat Dec 17 18:14:38 2005 +0000 @@ -9,7 +9,7 @@ struct URLContext { struct URLProtocol *prot; - int flags; + int flags; int is_streamed; /* true if streamed (no seek possible), default = false */ int max_packet_size; /* if non zero, the stream is packetized with this max packet size */ void *priv_data;
--- a/aviobuf.c Sat Dec 17 17:57:03 2005 +0000 +++ b/aviobuf.c Sat Dec 17 18:14:38 2005 +0000 @@ -35,7 +35,7 @@ s->buffer_size = buffer_size; s->buf_ptr = buffer; s->write_flag = write_flag; - if (!s->write_flag) + if (!s->write_flag) s->buf_end = buffer; else s->buf_end = buffer + buffer_size; @@ -52,7 +52,7 @@ s->update_checksum= NULL; return 0; } - + #ifdef CONFIG_MUXERS static void flush_buffer(ByteIOContext *s) @@ -76,7 +76,7 @@ void put_byte(ByteIOContext *s, int b) { *(s->buf_ptr)++ = b; - if (s->buf_ptr >= s->buf_end) + if (s->buf_ptr >= s->buf_end) flush_buffer(s); } @@ -91,7 +91,7 @@ memcpy(s->buf_ptr, buf, len); s->buf_ptr += len; - if (s->buf_ptr >= s->buf_end) + if (s->buf_ptr >= s->buf_end) flush_buffer(s); buf += len; @@ -112,7 +112,7 @@ if (whence != SEEK_CUR && whence != SEEK_SET) return -EINVAL; - + #ifdef CONFIG_MUXERS if (s->write_flag) { if (whence == SEEK_CUR) { @@ -122,7 +122,7 @@ offset += offset1; } offset1 = offset - s->pos; - if (!s->must_flush && + if (!s->must_flush && offset1 >= 0 && offset1 < (s->buf_end - s->buffer)) { /* can do the seek inside the buffer */ s->buf_ptr = s->buffer + offset1; @@ -135,7 +135,7 @@ s->seek(s->opaque, offset, SEEK_SET); s->pos = offset; } - } else + } else #endif //CONFIG_MUXERS { if (whence == SEEK_CUR) { @@ -175,7 +175,7 @@ offset_t url_fsize(ByteIOContext *s) { offset_t size; - + if (!s->seek) return -EPIPE; size = s->seek(s->opaque, -1, SEEK_END) + 1; @@ -375,7 +375,7 @@ int get_partial_buffer(ByteIOContext *s, unsigned char *buf, int size) { int len; - + if(size<0) return -1; @@ -447,7 +447,7 @@ if (i < maxlen-1) buf[i++] = c; } - + buf[i] = 0; /* Ensure null terminated, but may be truncated */ return buf; @@ -491,7 +491,7 @@ uint8_t *buffer; int buffer_size, max_packet_size; - + max_packet_size = url_get_max_packet_size(h); if (max_packet_size) { buffer_size = max_packet_size; /* no need to bufferize more than one packet */ @@ -502,7 +502,7 @@ if (!buffer) return -ENOMEM; - if (init_put_byte(s, buffer, buffer_size, + if (init_put_byte(s, buffer, buffer_size, (h->flags & URL_WRONLY || h->flags & URL_RDWR), h, url_read_packet, url_write_packet, url_seek_packet) < 0) { av_free(buffer); @@ -525,7 +525,7 @@ s->buffer = buffer; s->buffer_size = buf_size; s->buf_ptr = buffer; - if (!s->write_flag) + if (!s->write_flag) s->buf_end = buffer; else s->buf_end = buffer + buf_size; @@ -553,7 +553,7 @@ int url_fclose(ByteIOContext *s) { URLContext *h = s->opaque; - + av_free(s->buffer); memset(s, 0, sizeof(ByteIOContext)); return url_close(h); @@ -603,11 +603,11 @@ return buf; } -/* +/* * Return the maximum packet size associated to packetized buffered file * handle. If the file is not packetized (stream like http or file on * disk), then 0 is returned. - * + * * @param h buffered file handle * @return maximum packet size in bytes */ @@ -620,7 +620,7 @@ /* buffer handling */ int url_open_buf(ByteIOContext *s, uint8_t *buf, int buf_size, int flags) { - return init_put_byte(s, buf, buf_size, + return init_put_byte(s, buf, buf_size, (flags & URL_WRONLY || flags & URL_RDWR), NULL, NULL, NULL, NULL); } @@ -645,7 +645,7 @@ { DynBuffer *d = opaque; int new_size, new_allocated_size; - + /* reallocate buffer if needed */ new_size = d->pos + buf_size; new_allocated_size = d->allocated_size; @@ -655,9 +655,9 @@ if (!new_allocated_size) new_allocated_size = new_size; else - new_allocated_size += new_allocated_size / 2 + 1; + new_allocated_size += new_allocated_size / 2 + 1; } - + if (new_allocated_size > d->allocated_size) { d->buffer = av_realloc(d->buffer, new_allocated_size); if(d->buffer == NULL) @@ -707,12 +707,12 @@ { DynBuffer *d; int io_buffer_size, ret; - - if (max_packet_size) + + if (max_packet_size) io_buffer_size = max_packet_size; else io_buffer_size = 1024; - + if(sizeof(DynBuffer) + io_buffer_size < io_buffer_size) return -1; d = av_malloc(sizeof(DynBuffer) + io_buffer_size); @@ -723,9 +723,9 @@ d->pos = 0; d->size = 0; d->allocated_size = 0; - ret = init_put_byte(s, d->io_buffer, io_buffer_size, - 1, d, NULL, - max_packet_size ? dyn_packet_buf_write : dyn_buf_write, + ret = init_put_byte(s, d->io_buffer, io_buffer_size, + 1, d, NULL, + max_packet_size ? dyn_packet_buf_write : dyn_buf_write, max_packet_size ? NULL : dyn_buf_seek); if (ret == 0) { s->max_packet_size = max_packet_size; @@ -735,7 +735,7 @@ /* * Open a write only memory stream. - * + * * @param s new IO context * @return zero if no error. */ @@ -748,9 +748,9 @@ * Open a write only packetized memory stream with a maximum packet * size of 'max_packet_size'. The stream is stored in a memory buffer * with a big endian 4 byte header giving the packet size in bytes. - * + * * @param s new IO context - * @param max_packet_size maximum packet size (must be > 0) + * @param max_packet_size maximum packet size (must be > 0) * @return zero if no error. */ int url_open_dyn_packet_buf(ByteIOContext *s, int max_packet_size) @@ -760,9 +760,9 @@ return url_open_dyn_buf_internal(s, max_packet_size); } -/* +/* * Return the written size and a pointer to the buffer. The buffer - * must be freed with av_free(). + * must be freed with av_free(). * @param s IO context * @param pointer to a byte buffer * @return the length of the byte buffer
--- a/barpainet.c Sat Dec 17 17:57:03 2005 +0000 +++ b/barpainet.c Sat Dec 17 18:14:38 2005 +0000 @@ -6,7 +6,7 @@ int inet_aton (const char * str, struct in_addr * add) { const char * pch = str; unsigned int add1 = 0, add2 = 0, add3 = 0, add4 = 0; - + add1 = atoi(pch); pch = strpbrk(pch,"."); if (pch == 0 || ++pch == 0) goto done; @@ -20,6 +20,6 @@ done: add->s_addr=(add4<<24)+(add3<<16)+(add2<<8)+add1; - - return 1; + + return 1; }
--- a/crc.c Sat Dec 17 17:57:03 2005 +0000 +++ b/crc.c Sat Dec 17 18:14:38 2005 +0000 @@ -1,4 +1,4 @@ -/* +/* * CRC decoder (for codec/format testing) * Copyright (c) 2002 Fabrice Bellard. *
--- a/cutils.c Sat Dec 17 17:57:03 2005 +0000 +++ b/cutils.c Sat Dec 17 18:14:38 2005 +0000 @@ -74,7 +74,7 @@ * 1 then it is clamped to buf_size - 1. * NOTE: this function does what strncpy should have done to be * useful. NEVER use strncpy. - * + * * @param buf destination buffer * @param buf_size size of destination buffer * @param str source string @@ -101,7 +101,7 @@ { int len; len = strlen(buf); - if (len < buf_size) + if (len < buf_size) pstrcpy(buf + len, buf_size - len, s); return buf; } @@ -139,7 +139,7 @@ y--; } - t = 86400 * + t = 86400 * (d + (153 * m - 457) / 5 + 365 * y + y / 4 - y / 100 + y / 400 - 719469); t += 3600 * tm->tm_hour + 60 * tm->tm_min + tm->tm_sec; @@ -150,10 +150,10 @@ #define ISLEAP(y) (((y) % 4 == 0) && (((y) % 100) != 0 || ((y) % 400) == 0)) #define LEAPS_COUNT(y) ((y)/4 - (y)/100 + (y)/400) -/* this is our own gmtime_r. it differs from its POSIX counterpart in a +/* this is our own gmtime_r. it differs from its POSIX counterpart in a couple of places, though. */ struct tm *brktimegm(time_t secs, struct tm *tm) -{ +{ int days, y, ny, m; int md[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; @@ -208,7 +208,7 @@ } /* small strptime for ffmpeg */ -const char *small_strptime(const char *p, const char *fmt, +const char *small_strptime(const char *p, const char *fmt, struct tm *dt) { int c, val;
--- a/dc1394.c Sat Dec 17 17:57:03 2005 +0000 +++ b/dc1394.c Sat Dec 17 18:14:38 2005 +0000 @@ -70,11 +70,11 @@ for (fmt = dc1394_frame_formats; fmt->width; fmt++) if (fmt->pix_fmt == ap->pix_fmt && fmt->width == ap->width && fmt->height == ap->height) break; - + for (fps = dc1394_frame_rates; fps->frame_rate; fps++) if (fps->frame_rate == av_rescale(1000, ap->time_base.den, ap->time_base.num)) break; - + /* create a video stream */ vst = av_new_stream(c, 0); if (!vst) @@ -93,12 +93,12 @@ dc1394->packet.size = avpicture_get_size(fmt->pix_fmt, fmt->width, fmt->height); dc1394->packet.stream_index = vst->index; dc1394->packet.flags |= PKT_FLAG_KEY; - + dc1394->current_frame = 0; dc1394->fps = fps->frame_rate; vst->codec->bit_rate = av_rescale(dc1394->packet.size * 8, fps->frame_rate, 1000); - + /* Now lets prep the hardware */ dc1394->handle = dc1394_create_handle(0); /* FIXME: gotta have ap->port */ if (!dc1394->handle) { @@ -108,15 +108,15 @@ camera_nodes = dc1394_get_camera_nodes(dc1394->handle, &res, 1); if (!camera_nodes || camera_nodes[ap->channel] == DC1394_NO_CAMERA) { av_log(c, AV_LOG_ERROR, "There's no IIDC camera on the channel %d\n", ap->channel); - goto out_handle; + goto out_handle; } - res = dc1394_dma_setup_capture(dc1394->handle, camera_nodes[ap->channel], + res = dc1394_dma_setup_capture(dc1394->handle, camera_nodes[ap->channel], 0, FORMAT_VGA_NONCOMPRESSED, fmt->frame_size_id, SPEED_400, - fps->frame_rate_id, 8, 1, - ap->device, + fps->frame_rate_id, 8, 1, + ap->device, &dc1394->camera); dc1394_free_camera_nodes(camera_nodes); if (res != DC1394_SUCCESS) { @@ -129,7 +129,7 @@ av_log(c, AV_LOG_ERROR, "Can't start isochronous transmission\n"); goto out_handle_dma; } - + return 0; out_handle_dma: @@ -145,25 +145,25 @@ { struct dc1394_data *dc1394 = c->priv_data; int res; - + /* discard stale frame */ if (dc1394->current_frame++) { if (dc1394_dma_done_with_buffer(&dc1394->camera) != DC1394_SUCCESS) av_log(c, AV_LOG_ERROR, "failed to release %d frame\n", dc1394->current_frame); } - + res = dc1394_dma_single_capture(&dc1394->camera); if (res == DC1394_SUCCESS) { - dc1394->packet.data = (uint8_t *)(dc1394->camera.capture_buffer); - dc1394->packet.pts = (dc1394->current_frame * 1000000) / dc1394->fps; + dc1394->packet.data = (uint8_t *)(dc1394->camera.capture_buffer); + dc1394->packet.pts = (dc1394->current_frame * 1000000) / dc1394->fps; res = dc1394->packet.size; } else { av_log(c, AV_LOG_ERROR, "DMA capture failed\n"); dc1394->packet.data = NULL; - res = -1; + res = -1; } - + *pkt = dc1394->packet; return res; } @@ -176,7 +176,7 @@ dc1394_dma_unlisten(dc1394->handle, &dc1394->camera); dc1394_dma_release_camera(dc1394->handle, &dc1394->camera); dc1394_destroy_handle(dc1394->handle); - + return 0; }
--- a/dv.c Sat Dec 17 17:57:03 2005 +0000 +++ b/dv.c Sat Dec 17 18:14:38 2005 +0000 @@ -1,5 +1,5 @@ -/* - * General DV muxer/demuxer +/* + * General DV muxer/demuxer * Copyright (c) 2003 Roman Shaposhnick * * Many thanks to Dan Dennedy <dan@dennedy.org> for providing wealth @@ -30,7 +30,7 @@ struct DVDemuxContext { AVFormatContext* fctx; AVStream* vst; - AVStream* ast[2]; + AVStream* ast[2]; AVPacket audio_pkt[2]; uint8_t audio_buf[2][8192]; int ach; @@ -58,7 +58,7 @@ }; enum dv_pack_type { - dv_header525 = 0x3f, /* see dv_write_pack for important details on */ + dv_header525 = 0x3f, /* see dv_write_pack for important details on */ dv_header625 = 0xbf, /* these two packs */ dv_timecode = 0x13, dv_audio_source = 0x50, @@ -76,15 +76,15 @@ /* * The reason why the following three big ugly looking tables are - * here is my lack of DV spec IEC 61834. The tables were basically - * constructed to make code that places packs in SSYB, VAUX and + * here is my lack of DV spec IEC 61834. The tables were basically + * constructed to make code that places packs in SSYB, VAUX and * AAUX blocks very simple and table-driven. They conform to the * SMPTE 314M and the output of my personal DV camcorder, neither * of which is sufficient for a reliable DV stream producing. Thus * while code is still in development I'll be gathering input from * people with different DV equipment and modifying the tables to * accommodate all the quirks. Later on, if possible, some of them - * will be folded into smaller tables and/or switch-if logic. For + * will be folded into smaller tables and/or switch-if logic. For * now, my only excuse is -- they don't eat up that much of a space. */ @@ -104,29 +104,29 @@ }; static const int dv_vaux_packs_dist[12][15] = { - { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, + { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x61, 0x62, 0x63, 0xff, 0xff }, - { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, + { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x61, 0x62, 0x63, 0xff, 0xff }, - { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, + { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x61, 0x62, 0x63, 0xff, 0xff }, - { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, + { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x61, 0x62, 0x63, 0xff, 0xff }, - { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, + { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x61, 0x62, 0x63, 0xff, 0xff }, - { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, + { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x61, 0x62, 0x63, 0xff, 0xff }, - { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, + { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x61, 0x62, 0x63, 0xff, 0xff }, - { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, + { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x61, 0x62, 0x63, 0xff, 0xff }, - { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, + { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x61, 0x62, 0x63, 0xff, 0xff }, - { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, + { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x61, 0x62, 0x63, 0xff, 0xff }, - { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, + { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x61, 0x62, 0x63, 0xff, 0xff }, - { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, + { 0x60, 0x61, 0x62, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x61, 0x62, 0x63, 0xff, 0xff }, }; @@ -148,7 +148,7 @@ static inline uint16_t dv_audio_12to16(uint16_t sample) { uint16_t shift, result; - + sample = (sample < 0x800) ? sample : sample | 0xf000; shift = (sample & 0xf00) >> 8; @@ -186,19 +186,19 @@ buf[2] = (0 << 7) | /* TF1: audio data is 0 - valid; 1 - invalid */ (0x0f << 3) | /* reserved -- always 1 */ (0 & 0x07); /* AP1: Audio application ID */ - buf[3] = (0 << 7) | /* TF2: video data is 0 - valid; 1 - invalid */ + buf[3] = (0 << 7) | /* TF2: video data is 0 - valid; 1 - invalid */ (0x0f << 3) | /* reserved -- always 1 */ (0 & 0x07); /* AP2: Video application ID */ - buf[4] = (0 << 7) | /* TF3: subcode(SSYB) is 0 - valid; 1 - invalid */ + buf[4] = (0 << 7) | /* TF3: subcode(SSYB) is 0 - valid; 1 - invalid */ (0x0f << 3) | /* reserved -- always 1 */ (0 & 0x07); /* AP3: Subcode application ID */ break; case dv_timecode: - ct = (time_t)(c->frames / ((float)c->sys->frame_rate / + ct = (time_t)(c->frames / ((float)c->sys->frame_rate / (float)c->sys->frame_rate_base)); brktimegm(ct, &tc); - /* - * LTC drop-frame frame counter drops two frames (0 and 1) every + /* + * LTC drop-frame frame counter drops two frames (0 and 1) every * minute, unless it is exactly divisible by 10 */ ltc_frame = (c->frames + 2*ct/60 - 2*ct/600) % c->sys->ltc_divisor; @@ -234,7 +234,7 @@ buf[4] = (1 << 7) | /* emphasis: 1 -- off */ (0 << 6) | /* emphasis time constant: 0 -- reserved */ (0 << 3) | /* frequency: 0 -- 48Khz, 1 -- 44,1Khz, 2 -- 32Khz */ - 0; /* quantization: 0 -- 16bit linear, 1 -- 12bit nonlinear */ + 0; /* quantization: 0 -- 16bit linear, 1 -- 12bit nonlinear */ break; case dv_audio_control: buf[1] = (0 << 6) | /* copy protection: 0 -- unrestricted */ @@ -244,7 +244,7 @@ buf[2] = (1 << 7) | /* recording start point: 1 -- no */ (1 << 6) | /* recording end point: 1 -- no */ (1 << 3) | /* recording mode: 1 -- original */ - 7; + 7; buf[3] = (1 << 7) | /* direction: 1 -- forward */ 0x20; /* speed */ buf[4] = (1 << 7) | /* reserved -- always 1 */ @@ -252,7 +252,7 @@ break; case dv_audio_recdate: case dv_video_recdate: /* VAUX recording date */ - ct = c->start_time + (time_t)(c->frames / + ct = c->start_time + (time_t)(c->frames / ((float)c->sys->frame_rate / (float)c->sys->frame_rate_base)); brktimegm(ct, &tc); buf[1] = 0xff; /* ds, tm, tens of time zone, units of time zone */ @@ -268,18 +268,18 @@ break; case dv_audio_rectime: /* AAUX recording time */ case dv_video_rectime: /* VAUX recording time */ - ct = c->start_time + (time_t)(c->frames / + ct = c->start_time + (time_t)(c->frames / ((float)c->sys->frame_rate / (float)c->sys->frame_rate_base)); brktimegm(ct, &tc); buf[1] = (3 << 6) | /* reserved -- always 1 */ 0x3f; /* tens of frame, units of frame: 0x3f - "unknown" ? */ - buf[2] = (1 << 7) | /* reserved -- always 1 */ + buf[2] = (1 << 7) | /* reserved -- always 1 */ ((tc.tm_sec / 10) << 4) | /* Tens of seconds */ (tc.tm_sec % 10); /* Units of seconds */ buf[3] = (1 << 7) | /* reserved -- always 1 */ ((tc.tm_min / 10) << 4) | /* Tens of minutes */ (tc.tm_min % 10); /* Units of minutes */ - buf[4] = (3 << 6) | /* reserved -- always 1 */ + buf[4] = (3 << 6) | /* reserved -- always 1 */ ((tc.tm_hour / 10) << 4) | /* Tens of hours */ (tc.tm_hour % 10); /* Units of hours */ break; @@ -312,7 +312,7 @@ return 5; } -static inline int dv_write_dif_id(enum dv_section_type t, uint8_t seq_num, +static inline int dv_write_dif_id(enum dv_section_type t, uint8_t seq_num, uint8_t dif_num, uint8_t* buf) { buf[0] = (uint8_t)t; /* Section type */ @@ -329,7 +329,7 @@ buf[0] = (fr<<7) | /* FR ID 1 - first half of each channel; 0 - second */ (0<<4) | /* AP3 (Subcode application ID) */ 0x0f; /* reserved -- always 1 */ - } + } else if (syb_num == 11) { buf[0] = (fr<<7) | /* FR ID 1 - first half of each channel; 0 - second */ 0x7f; /* reserved -- always 1 */ @@ -348,15 +348,15 @@ static void dv_format_frame(DVMuxContext *c, uint8_t* buf) { int i, j, k; - + for (i = 0; i < c->sys->difseg_size; i++) { memset(buf, 0xff, 80 * 6); /* First 6 DIF blocks are for control data */ - + /* DV header: 1DIF */ buf += dv_write_dif_id(dv_sect_header, i, 0, buf); buf += dv_write_pack((c->sys->dsf ? dv_header625 : dv_header525), c, buf); buf += 72; /* unused bytes */ - + /* DV subcode: 2DIFs */ for (j = 0; j < 2; j++) { buf += dv_write_dif_id( dv_sect_subcode, i, j, buf); @@ -366,15 +366,15 @@ } buf += 29; /* unused bytes */ } - + /* DV VAUX: 3DIFs */ for (j = 0; j < 3; j++) { buf += dv_write_dif_id(dv_sect_vaux, i, j, buf); for (k = 0; k < 15 ; k++) buf += dv_write_pack(dv_vaux_packs_dist[i][k], c, buf); buf += 2; /* unused bytes */ - } - + } + /* DV Audio/Video: 135 Video DIFs + 9 Audio DIFs */ for (j = 0; j < 135; j++) { if (j%15 == 0) { @@ -403,9 +403,9 @@ of = c->sys->audio_shuffle[i][j] + (d - 8)/2 * c->sys->audio_stride; if (of*2 >= size) continue; - + frame_ptr[d] = pcm[of*2+1]; // FIXME: may be we have to admit - frame_ptr[d+1] = pcm[of*2]; // that DV is a big endian PCM + frame_ptr[d+1] = pcm[of*2]; // that DV is a big endian PCM } frame_ptr += 16 * 80; /* 15 Video DIFs + 1 Audio DIF */ } @@ -429,7 +429,7 @@ } } -/* +/* * This is the dumbest implementation of all -- it simply looks at * a fixed offset and if pack isn't there -- fails. We might want * to have a fallback mechanism for complete search of missing packs. @@ -437,7 +437,7 @@ static const uint8_t* dv_extract_pack(uint8_t* frame, enum dv_pack_type t) { int offs; - + switch (t) { case dv_audio_source: offs = (80*6 + 80*16*3 + 3); @@ -450,12 +450,12 @@ break; default: return NULL; - } + } return (frame[offs] == t ? &frame[offs] : NULL); } -/* +/* * There's a couple of assumptions being made here: * 1. By default we silence erroneous (0x8000/16bit 0x800/12bit) audio samples. * We can pass them upwards when ffmpeg will be ready to deal with them. @@ -469,16 +469,16 @@ uint16_t lc, rc; const DVprofile* sys; const uint8_t* as_pack; - + as_pack = dv_extract_pack(frame, dv_audio_source); if (!as_pack) /* No audio ? */ return 0; - + sys = dv_frame_profile(frame); smpls = as_pack[1] & 0x3f; /* samples in this frame - min. samples */ freq = (as_pack[4] >> 3) & 0x07; /* 0 - 48KHz, 1 - 44,1kHz, 2 - 32 kHz */ quant = as_pack[4] & 0x07; /* 0 - 16bit linear, 1 - 12bit nonlinear */ - + if (quant > 1) return -1; /* Unsupported quantization */ @@ -501,13 +501,13 @@ of = sys->audio_shuffle[i][j] + (d - 8)/2 * sys->audio_stride; if (of*2 >= size) continue; - + pcm[of*2] = frame[d+1]; // FIXME: may be we have to admit pcm[of*2+1] = frame[d]; // that DV is a big endian PCM if (pcm[of*2+1] == 0x80 && pcm[of*2] == 0x00) pcm[of*2+1] = 0; } else { /* 12bit quantization */ - lc = ((uint16_t)frame[d] << 4) | + lc = ((uint16_t)frame[d] << 4) | ((uint16_t)frame[d+2] >> 4); rc = ((uint16_t)frame[d+1] << 4) | ((uint16_t)frame[d+2] & 0x0f); @@ -520,14 +520,14 @@ pcm[of*2] = lc & 0xff; // FIXME: may be we have to admit pcm[of*2+1] = lc >> 8; // that DV is a big endian PCM - of = sys->audio_shuffle[i%half_ch+half_ch][j] + + of = sys->audio_shuffle[i%half_ch+half_ch][j] + (d - 8)/3 * sys->audio_stride; pcm[of*2] = rc & 0xff; // FIXME: may be we have to admit pcm[of*2+1] = rc >> 8; // that DV is a big endian PCM ++d; } } - + frame += 16 * 80; /* 15 Video DIFs + 1 Audio DIF */ } } @@ -547,7 +547,7 @@ c->ach = 0; return 0; } - + smpls = as_pack[1] & 0x3f; /* samples in this frame - min. samples */ freq = (as_pack[4] >> 3) & 0x07; /* 0 - 48KHz, 1 - 44,1kHz, 2 - 32 kHz */ quant = as_pack[4] & 0x07; /* 0 - 16bit linear, 1 - 12bit nonlinear */ @@ -575,22 +575,22 @@ c->ast[i]->start_time = 0; } c->ach = i; - + return (sys->audio_min_samples[freq] + smpls) * 4; /* 2ch, 2bytes */; } static int dv_extract_video_info(DVDemuxContext *c, uint8_t* frame) { - const DVprofile* sys; + const DVprofile* sys; const uint8_t* vsc_pack; AVCodecContext* avctx; int apt, is16_9; int size = 0; - + sys = dv_frame_profile(frame); if (sys) { avctx = c->vst->codec; - + av_set_pts_info(c->vst, 64, sys->frame_rate_base, sys->frame_rate); avctx->time_base= (AVRational){sys->frame_rate_base, sys->frame_rate}; if(!avctx->width){ @@ -598,20 +598,20 @@ avctx->height = sys->height; } avctx->pix_fmt = sys->pix_fmt; - + /* finding out SAR is a little bit messy */ vsc_pack = dv_extract_pack(frame, dv_video_control); apt = frame[4] & 0x07; is16_9 = (vsc_pack && ((vsc_pack[2] & 0x07) == 0x02 || (!apt && (vsc_pack[2] & 0x07) == 0x07))); avctx->sample_aspect_ratio = sys->sar[is16_9]; - + size = sys->frame_size; } return size; } -/* +/* * The following 6 functions constitute our interface to the world */ @@ -620,7 +620,7 @@ { uint8_t pcm[8192]; int fsize, reqasize; - + *frame = &c->frame_buf[0]; if (c->has_audio && c->has_video) { /* must be a stale frame */ dv_format_frame(c, *frame); @@ -629,22 +629,22 @@ c->has_audio = 0; c->has_video = 0; } - + if (st->codec->codec_type == CODEC_TYPE_VIDEO) { /* FIXME: we have to have more sensible approach than this one */ if (c->has_video) av_log(st->codec, AV_LOG_ERROR, "Can't process DV frame #%d. Insufficient audio data or severe sync problem.\n", c->frames); - + dv_inject_video(c, data, *frame); c->has_video = 1; data_size = 0; if (c->has_audio < 0) goto out; - } - + } + reqasize = 4 * dv_audio_frame_size(c->sys, c->frames); fsize = fifo_size(&c->audio_data, c->audio_data.rptr); - if (st->codec->codec_type == CODEC_TYPE_AUDIO || (c->has_video && fsize >= reqasize)) { + if (st->codec->codec_type == CODEC_TYPE_AUDIO || (c->has_video && fsize >= reqasize)) { if (fsize + data_size >= reqasize && !c->has_audio) { if (fsize >= reqasize) { fifo_read(&c->audio_data, &pcm[0], reqasize, &c->audio_data.rptr); @@ -657,7 +657,7 @@ dv_inject_audio(c, &pcm[0], *frame); c->has_audio = 1; } - + /* FIXME: we have to have more sensible approach than this one */ if (fifo_size(&c->audio_data, c->audio_data.rptr) + data_size >= 100*AVCODEC_MAX_AUDIO_FRAME_SIZE) av_log(st->codec, AV_LOG_ERROR, "Can't process DV frame #%d. Insufficient video data or severe sync problem.\n", c->frames); @@ -695,7 +695,7 @@ goto bail_out; } } - + /* Some checks -- DV format is very picky about its incoming streams */ if (!vst || vst->codec->codec_id != CODEC_ID_DVVIDEO) goto bail_out; @@ -706,14 +706,14 @@ c->sys = dv_codec_profile(vst->codec); if (!c->sys) goto bail_out; - + /* Ok, everything seems to be in working order */ c->frames = 0; c->has_audio = ast ? 0 : -1; c->has_video = 0; c->start_time = (time_t)s->timestamp; c->aspect = 0; /* 4:3 is the default */ - if ((int)(av_q2d(vst->codec->sample_aspect_ratio) * vst->codec->width / vst->codec->height * 10) == 17) /* 16:9 */ + if ((int)(av_q2d(vst->codec->sample_aspect_ratio) * vst->codec->width / vst->codec->height * 10) == 17) /* 16:9 */ c->aspect = 0x07; if (ast && fifo_init(&c->audio_data, 100*AVCODEC_MAX_AUDIO_FRAME_SIZE) < 0) @@ -722,14 +722,14 @@ dv_format_frame(c, &c->frame_buf[0]); return c; - + bail_out: av_free(c); return NULL; } void dv_delete_mux(DVMuxContext *c) -{ +{ fifo_free(&c->audio_data); } @@ -743,7 +743,7 @@ c->vst = av_new_stream(s, 0); if (!c->vst) { - av_free(c); + av_free(c); return NULL; } @@ -757,7 +757,7 @@ c->vst->codec->codec_id = CODEC_ID_DVVIDEO; c->vst->codec->bit_rate = 25000000; c->vst->start_time = 0; - + return c; } @@ -778,12 +778,12 @@ return size; } -int dv_produce_packet(DVDemuxContext *c, AVPacket *pkt, +int dv_produce_packet(DVDemuxContext *c, AVPacket *pkt, uint8_t* buf, int buf_size) { int size, i; const DVprofile* sys = dv_frame_profile(buf); - + if (buf_size < 4 || buf_size < sys->frame_size) return -1; /* Broken frame, or not enough data */ @@ -796,21 +796,21 @@ } dv_extract_audio(buf, c->audio_buf[0], c->audio_buf[1]); c->abytes += size; - + /* Now it's time to return video packet */ size = dv_extract_video_info(c, buf); av_init_packet(pkt); pkt->data = buf; - pkt->size = size; + pkt->size = size; pkt->flags |= PKT_FLAG_KEY; pkt->stream_index = c->vst->id; pkt->pts = c->frames; - + c->frames++; return size; } - + static int64_t dv_frame_offset(AVFormatContext *s, DVDemuxContext *c, int64_t timestamp, int flags) { @@ -821,7 +821,7 @@ int64_t max_offset = ((size-1) / sys->frame_size) * sys->frame_size; offset = sys->frame_size * timestamp; - + if (offset > max_offset) offset = max_offset; else if (offset < 0) offset = 0; @@ -836,7 +836,7 @@ /************************************************************ * Implementation of the easiest DV storage of all -- raw DV. ************************************************************/ - + typedef struct RawDVContext { uint8_t buf[144000]; DVDemuxContext* dv_demux; @@ -850,13 +850,13 @@ c->dv_demux = dv_init_demux(s); if (!c->dv_demux) return -1; - + if (get_buffer(&s->pb, c->buf, 4) <= 0 || url_fseek(&s->pb, -4, SEEK_CUR) < 0) return AVERROR_IO; sys = dv_frame_profile(c->buf); s->bit_rate = av_rescale(sys->frame_size * 8, sys->frame_rate, sys->frame_rate_base); - + return 0; } @@ -864,25 +864,25 @@ static int dv_read_packet(AVFormatContext *s, AVPacket *pkt) { int size; - RawDVContext *c = s->priv_data; - + RawDVContext *c = s->priv_data; + size = dv_get_packet(c->dv_demux, pkt); - + if (size < 0) { - if (get_buffer(&s->pb, c->buf, 4) <= 0) + if (get_buffer(&s->pb, c->buf, 4) <= 0) return AVERROR_IO; - + size = dv_frame_profile(c->buf)->frame_size; if (get_buffer(&s->pb, c->buf + 4, size - 4) <= 0) return AVERROR_IO; size = dv_produce_packet(c->dv_demux, pkt, c->buf, size); - } - + } + return size; } -static int dv_read_seek(AVFormatContext *s, int stream_index, +static int dv_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) { RawDVContext *r = s->priv_data; @@ -895,7 +895,7 @@ c->abytes= av_rescale(c->frames, c->ast[0]->codec->bit_rate * (int64_t)sys->frame_rate_base, 8*sys->frame_rate); - + dv_flush_audio_packets(c); return url_fseek(&s->pb, offset, SEEK_SET); } @@ -923,20 +923,20 @@ { uint8_t* frame; int fsize; - + fsize = dv_assemble_frame((DVMuxContext *)s->priv_data, s->streams[pkt->stream_index], pkt->data, pkt->size, &frame); if (fsize > 0) { - put_buffer(&s->pb, frame, fsize); + put_buffer(&s->pb, frame, fsize); put_flush_packet(&s->pb); - } + } return 0; } -/* +/* * We might end up with some extra A/V data without matching counterpart. * E.g. video data without enough audio to write the complete frame. - * Currently we simply drop the last frame. I don't know whether this + * Currently we simply drop the last frame. I don't know whether this * is the best strategy of all */ static int dv_write_trailer(struct AVFormatContext *s)
--- a/dv.h Sat Dec 17 17:57:03 2005 +0000 +++ b/dv.h Sat Dec 17 18:14:38 2005 +0000 @@ -1,5 +1,5 @@ -/* - * General DV muxer/demuxer +/* + * General DV muxer/demuxer * Copyright (c) 2003 Roman Shaposhnick * * Many thanks to Dan Dennedy <dan@dennedy.org> for providing wealth
--- a/dv1394.c Sat Dec 17 17:57:03 2005 +0000 +++ b/dv1394.c Sat Dec 17 18:14:38 2005 +0000 @@ -46,9 +46,9 @@ DVDemuxContext* dv_demux; /* Generic DV muxing/demuxing context */ }; -/* +/* * The trick here is to kludge around well known problem with kernel Ooopsing - * when you try to capture PAL on a device node configure for NTSC. That's + * when you try to capture PAL on a device node configure for NTSC. That's * why we have to configure the device node for PAL, and then read only NTSC * amount of data. */ @@ -148,9 +148,9 @@ /* This usually means that ring buffer overflowed. * We have to reset :(. */ - + av_log(context, AV_LOG_ERROR, "DV1394: Ring buffer overflow. Reseting ..\n"); - + dv1394_reset(dv); dv1394_start(dv); } @@ -200,12 +200,12 @@ dv->done); #endif - size = dv_produce_packet(dv->dv_demux, pkt, - dv->ring + (dv->index * DV1394_PAL_FRAME_SIZE), + size = dv_produce_packet(dv->dv_demux, pkt, + dv->ring + (dv->index * DV1394_PAL_FRAME_SIZE), DV1394_PAL_FRAME_SIZE); dv->index = (dv->index + 1) % DV1394_RING_FRAMES; dv->done++; dv->avail--; - + return size; }
--- a/dv1394.h Sat Dec 17 17:57:03 2005 +0000 +++ b/dv1394.h Sat Dec 17 18:14:38 2005 +0000 @@ -57,7 +57,7 @@ To set the DV output parameters (e.g. whether you want NTSC or PAL video), use the DV1394_INIT ioctl, passing in the parameters you want in a struct dv1394_init. - + Example 1: To play a raw .DV file: cat foo.DV > /dev/dv1394 (cat will use write() internally) @@ -80,9 +80,9 @@ 2) For more control over buffering, and to avoid unnecessary copies - of the DV data, you can use the more sophisticated the mmap() interface. - First, call the DV1394_INIT ioctl to specify your parameters, - including the number of frames in the ringbuffer. Then, calling mmap() + of the DV data, you can use the more sophisticated the mmap() interface. + First, call the DV1394_INIT ioctl to specify your parameters, + including the number of frames in the ringbuffer. Then, calling mmap() on the dv1394 device will give you direct access to the ringbuffer from which the DV card reads your frame data. @@ -107,7 +107,7 @@ *--------------------------------------* | CLEAR | DV data | DV data | CLEAR | *--------------------------------------* - <ACTIVE> + <ACTIVE> transmission goes in this direction --->>> @@ -118,10 +118,10 @@ will continue to transmit frame 2, and will increase the dropped_frames counter each time it repeats the transmission). - + If you called DV1394_GET_STATUS at this instant, you would receive the following values: - + n_frames = 4 active_frame = 1 first_clear_frame = 3 @@ -152,9 +152,9 @@ (checks of system call return values omitted for brevity; always check return values in your code!) - + while( frames left ) { - + struct pollfd *pfd = ...; pfd->fd = dv1394_fd; @@ -162,12 +162,12 @@ pfd->events = POLLOUT | POLLIN; (OUT for transmit, IN for receive) (add other sources of I/O here) - + poll(pfd, 1, -1); (or select(); add a timeout if you want) if(pfd->revents) { struct dv1394_status status; - + ioctl(dv1394_fd, DV1394_GET_STATUS, &status); if(status.dropped_frames > 0) { @@ -191,7 +191,7 @@ should close the dv1394 file descriptor (and munmap() all ringbuffer mappings, if you are using them), then re-open the dv1394 device (and re-map the ringbuffer). - + */ @@ -264,7 +264,7 @@ struct dv1394_init { /* DV1394_API_VERSION */ unsigned int api_version; - + /* isochronous transmission channel to use */ unsigned int channel; @@ -276,7 +276,7 @@ enum pal_or_ntsc format; /* the following are used only for transmission */ - + /* set these to zero unless you want a non-default empty packet rate (see below) */ unsigned long cip_n; @@ -293,7 +293,7 @@ would imply a different size for the ringbuffer). If you need a different buffer size, simply close and re-open the device, then initialize it with your new settings. */ - + /* Q: What are cip_n and cip_d? */ /* @@ -310,13 +310,13 @@ The default empty packet insertion rate seems to work for many people; if your DV output is stable, you can simply ignore this discussion. However, we have exposed the empty packet rate as a parameter to support devices that - do not work with the default rate. + do not work with the default rate. The decision to insert an empty packet is made with a numerator/denominator algorithm. Empty packets are produced at an average rate of CIP_N / CIP_D. You can alter the empty packet rate by passing non-zero values for cip_n and cip_d to the INIT ioctl. - + */
--- a/electronicarts.c Sat Dec 17 17:57:03 2005 +0000 +++ b/electronicarts.c Sat Dec 17 18:14:38 2005 +0000 @@ -191,7 +191,7 @@ st->codec->codec_type = CODEC_TYPE_VIDEO; st->codec->codec_id = CODEC_ID_EA_MJPEG; st->codec->codec_tag = 0; /* no fourcc */ -#endif +#endif /* initialize the audio decoder stream */ st = av_new_stream(s, 0); @@ -243,7 +243,7 @@ pkt->pts *= ea->audio_frame_counter; pkt->pts /= EA_SAMPLE_RATE; - /* 2 samples/byte, 1 or 2 samples per frame depending + /* 2 samples/byte, 1 or 2 samples per frame depending * on stereo; chunk also has 12-byte header */ ea->audio_frame_counter += ((chunk_size - 12) * 2) / ea->num_channels;
--- a/ffm.c Sat Dec 17 17:57:03 2005 +0000 +++ b/ffm.c Sat Dec 17 18:14:38 2005 +0000 @@ -66,7 +66,7 @@ fill_size = ffm->packet_end - ffm->packet_ptr; memset(ffm->packet_ptr, 0, fill_size); - if (url_ftell(pb) % ffm->packet_size) + if (url_ftell(pb) % ffm->packet_size) av_abort(); /* put header */ @@ -403,7 +403,7 @@ pts = get_pts(s, pos_max); - if (pts - 100000 > pts_start) + if (pts - 100000 > pts_start) goto end; ffm->write_index = FFM_PACKET_SIZE; @@ -481,9 +481,9 @@ if (!fst) goto fail; s->streams[i] = st; - + av_set_pts_info(st, 64, 1, 1000000); - + st->priv_data = fst; codec = st->codec; @@ -581,7 +581,7 @@ printf("pos=%08Lx spos=%Lx, write_index=%Lx size=%Lx\n", url_ftell(&s->pb), s->pb.pos, ffm->write_index, ffm->file_size); #endif - if (ffm_read_data(s, ffm->header, FRAME_HEADER_SIZE, 1) != + if (ffm_read_data(s, ffm->header, FRAME_HEADER_SIZE, 1) != FRAME_HEADER_SIZE) return -EAGAIN; #if 0 @@ -604,7 +604,7 @@ av_new_packet(pkt, size); pkt->stream_index = ffm->header[0]; - pkt->pos = url_ftell(&s->pb); + pkt->pos = url_ftell(&s->pb); if (ffm->header[1] & FLAG_KEY_FRAME) pkt->flags |= PKT_FLAG_KEY; @@ -747,7 +747,7 @@ static int ffm_probe(AVProbeData *p) { if (p->buf_size >= 4 && - p->buf[0] == 'F' && p->buf[1] == 'F' && p->buf[2] == 'M' && + p->buf[0] == 'F' && p->buf[1] == 'F' && p->buf[2] == 'M' && p->buf[3] == '1') return AVPROBE_SCORE_MAX + 1; return 0;
--- a/file.c Sat Dec 17 17:57:03 2005 +0000 +++ b/file.c Sat Dec 17 18:14:38 2005 +0000 @@ -70,7 +70,7 @@ static offset_t file_seek(URLContext *h, offset_t pos, int whence) { int fd = (size_t)h->priv_data; -#if defined(CONFIG_WIN32) && !defined(__CYGWIN__) +#if defined(CONFIG_WIN32) && !defined(__CYGWIN__) return _lseeki64(fd, pos, whence); #else return lseek(fd, pos, whence);
--- a/flic.c Sat Dec 17 17:57:03 2005 +0000 +++ b/flic.c Sat Dec 17 18:14:38 2005 +0000 @@ -33,7 +33,7 @@ #define FLIC_FILE_MAGIC_1 0xAF11 #define FLIC_FILE_MAGIC_2 0xAF12 -#define FLIC_FILE_MAGIC_3 0xAF44 /* Flic Type for Extended FLX Format which +#define FLIC_FILE_MAGIC_3 0xAF44 /* Flic Type for Extended FLX Format which originated in Dave's Targa Animator (DTA) */ #define FLIC_CHUNK_MAGIC_1 0xF1FA #define FLIC_CHUNK_MAGIC_2 0xF5FA @@ -182,9 +182,9 @@ } pkt->stream_index = flic->video_stream_index; pkt->pts = flic->pts; - pkt->pos = url_ftell(pb); + pkt->pos = url_ftell(pb); memcpy(pkt->data, preamble, FLIC_PREAMBLE_SIZE); - ret = get_buffer(pb, pkt->data + FLIC_PREAMBLE_SIZE, + ret = get_buffer(pb, pkt->data + FLIC_PREAMBLE_SIZE, size - FLIC_PREAMBLE_SIZE); if (ret != size - FLIC_PREAMBLE_SIZE) { av_free_packet(pkt);
--- a/flvdec.c Sat Dec 17 17:57:03 2005 +0000 +++ b/flvdec.c Sat Dec 17 18:14:38 2005 +0000 @@ -35,7 +35,7 @@ AVFormatParameters *ap) { int offset, flags; - + s->ctx_flags |= AVFMTCTX_NOHEADER; //ok we have a header but theres no fps, codec type, sample_rate, ... url_fskip(&s->pb, 4); @@ -51,7 +51,7 @@ { int ret, i, type, size, pts, flags, is_audio, next; AVStream *st = NULL; - + for(;;){ url_fskip(&s->pb, 4); /* size of previous packet */ type = get_byte(&s->pb); @@ -62,10 +62,10 @@ return AVERROR_IO; url_fskip(&s->pb, 4); /* reserved */ flags = 0; - + if(size == 0) continue; - + next= size + url_ftell(&s->pb); if (type == 8) { @@ -83,13 +83,13 @@ char tmp[128]; int type, len; double d= 0; - + len= get_be16(&s->pb); if(len >= sizeof(tmp) || !len) break; get_buffer(&s->pb, tmp, len); tmp[len]=0; - + type= get_byte(&s->pb); if(type==0){ d= av_int2dbl(get_be64(&s->pb)); @@ -105,7 +105,7 @@ d= av_int2dbl(get_be64(&s->pb)); get_be16(&s->pb); } - + if(!strcmp(tmp, "duration")){ s->duration = d*AV_TIME_BASE; }else if(!strcmp(tmp, "videodatarate")){ @@ -187,10 +187,10 @@ pkt->size = ret; pkt->pts = pts; pkt->stream_index = st->index; - + if (is_audio || ((flags >> 4)==1)) pkt->flags |= PKT_FLAG_KEY; - + return ret; }
--- a/flvenc.c Sat Dec 17 17:57:03 2005 +0000 +++ b/flvenc.c Sat Dec 17 18:14:38 2005 +0000 @@ -52,7 +52,7 @@ if (enc->channels > 1) { flags |= 0x01; } - + switch(enc->codec_id){ case CODEC_ID_MP3: flags |= 0x20 | 0x2; @@ -75,7 +75,7 @@ av_log(enc, AV_LOG_ERROR, "codec not compatible with flv\n"); return -1; } - + return flags; } @@ -93,7 +93,7 @@ put_byte(pb,0); // delayed write put_be32(pb,9); put_be32(pb,0); - + for(i=0; i<s->nb_streams; i++){ AVCodecContext *enc = s->streams[i]->codec; av_set_pts_info(s->streams[i], 24, 1, 1000); /* 24 bit pts in ms */ @@ -138,7 +138,7 @@ int flags; // av_log(s, AV_LOG_DEBUG, "type:%d pts: %lld size:%d\n", enc->codec_type, timestamp, size); - + if (enc->codec_type == CODEC_TYPE_VIDEO) { put_byte(pb, 9); flags = 2; // choose h263 @@ -147,7 +147,7 @@ } else { assert(enc->codec_type == CODEC_TYPE_AUDIO); flags = get_audio_flags(enc); - + assert(size); put_byte(pb, 8); @@ -162,7 +162,7 @@ put_byte(pb,flags); put_buffer(pb, pkt->data, size); put_be32(pb,size+1+11); // previous tag size - + put_flush_packet(pb); return 0; }
--- a/framehook.h Sat Dec 17 17:57:03 2005 +0000 +++ b/framehook.h Sat Dec 17 18:14:38 2005 +0000 @@ -2,7 +2,7 @@ #define _FRAMEHOOK_H /* - * Prototypes for interface to .so that implement a video processing hook + * Prototypes for interface to .so that implement a video processing hook */ #include "avcodec.h"
--- a/gif.c Sat Dec 17 17:57:03 2005 +0000 +++ b/gif.c Sat Dec 17 18:14:38 2005 +0000 @@ -56,7 +56,7 @@ /* we use the standard 216 color palette */ /* this script was used to create the palette: - * for r in 00 33 66 99 cc ff; do for g in 00 33 66 99 cc ff; do echo -n " "; for b in 00 33 66 99 cc ff; do + * for r in 00 33 66 99 cc ff; do for g in 00 33 66 99 cc ff; do echo -n " "; for b in 00 33 66 99 cc ff; do * echo -n "{ 0x$r, 0x$g, 0x$b }, "; done; echo ""; done; done */ @@ -129,12 +129,12 @@ bit_cnt+=n; } else { bit_buf |= value << (bit_cnt); - + *s->buf_ptr = bit_buf & 0xff; s->buf_ptr[1] = (bit_buf >> 8) & 0xff; s->buf_ptr[2] = (bit_buf >> 16) & 0xff; s->buf_ptr[3] = (bit_buf >> 24) & 0xff; - + //printf("bitbuf = %08x\n", bit_buf); s->buf_ptr+=4; if (s->buf_ptr >= s->buf_end) @@ -169,7 +169,7 @@ /* !RevPutBitContext */ /* GIF header */ -static int gif_image_write_header(ByteIOContext *pb, +static int gif_image_write_header(ByteIOContext *pb, int width, int height, int loop_count, uint32_t *palette) { @@ -204,16 +204,16 @@ byte 1 : 33 (hex 0x21) GIF Extension code byte 2 : 255 (hex 0xFF) Application Extension Label - byte 3 : 11 (hex (0x0B) Length of Application Block + byte 3 : 11 (hex (0x0B) Length of Application Block (eleven bytes of data to follow) bytes 4 to 11 : "NETSCAPE" bytes 12 to 14 : "2.0" - byte 15 : 3 (hex 0x03) Length of Data Sub-Block + byte 15 : 3 (hex 0x03) Length of Data Sub-Block (three bytes of data to follow) byte 16 : 1 (hex 0x01) - bytes 17 to 18 : 0 to 65535, an unsigned integer in - lo-hi byte format. This indicate the - number of iterations the loop should + bytes 17 to 18 : 0 to 65535, an unsigned integer in + lo-hi byte format. This indicate the + number of iterations the loop should be executed. bytes 19 : 0 (hex 0x00) a Data Sub-block Terminator */ @@ -241,7 +241,7 @@ } -static int gif_image_write_image(ByteIOContext *pb, +static int gif_image_write_image(ByteIOContext *pb, int x1, int y1, int width, int height, const uint8_t *buf, int linesize, int pix_fmt) { @@ -302,7 +302,7 @@ left-=GIF_CHUNKS; } put_byte(pb, 0x00); /* end of image block */ - + return 0; } @@ -351,7 +351,7 @@ return 0; } -static int gif_write_video(AVFormatContext *s, +static int gif_write_video(AVFormatContext *s, AVCodecContext *enc, const uint8_t *buf, int size) { ByteIOContext *pb = &s->pb; @@ -364,7 +364,7 @@ put_byte(pb, 0xf9); put_byte(pb, 0x04); /* block size */ put_byte(pb, 0x04); /* flags */ - + /* 1 jiffy is 1/70 s */ /* the delay_time field indicates the number of jiffies - 1 */ delay = gif->file_time - gif->time; @@ -407,10 +407,10 @@ /* better than nothing gif image writer */ int gif_write(ByteIOContext *pb, AVImageInfo *info) { - gif_image_write_header(pb, info->width, info->height, AVFMT_NOOUTPUTLOOP, + gif_image_write_header(pb, info->width, info->height, AVFMT_NOOUTPUTLOOP, (uint32_t *)info->pict.data[1]); - gif_image_write_image(pb, 0, 0, info->width, info->height, - info->pict.data[0], info->pict.linesize[0], + gif_image_write_image(pb, 0, 0, info->width, info->height, + info->pict.data[0], info->pict.linesize[0], PIX_FMT_PAL8); put_byte(pb, 0x3b); put_flush_packet(pb);
--- a/gifdec.c Sat Dec 17 17:57:03 2005 +0000 +++ b/gifdec.c Sat Dec 17 18:14:38 2005 +0000 @@ -46,7 +46,7 @@ int gce_disposal; /* delay during which the frame is shown */ int gce_delay; - + /* LZW compatible decoder */ ByteIOContext *f; int eob_reached; @@ -312,7 +312,7 @@ palette = s->global_palette; bits_per_pixel = s->bits_per_pixel; } - + /* verify that all the image is inside the screen dimensions */ if (left + width > s->screen_width || top + height > s->screen_height) @@ -327,7 +327,7 @@ n = (1 << bits_per_pixel); spal = palette; for(i = 0; i < n; i++) { - s->image_palette[i] = (0xff << 24) | + s->image_palette[i] = (0xff << 24) | (spal[0] << 16) | (spal[1] << 8) | (spal[2]); spal += 3; } @@ -376,7 +376,7 @@ ptr += linesize * 8; if (y1 >= height) { y1 = 4; - if (pass == 0) + if (pass == 0) ptr = ptr1 + linesize * 4; else ptr = ptr1 + linesize * 2; @@ -402,7 +402,7 @@ } } av_free(line); - + /* read the garbage data until end marker is found */ while (!s->eob_reached) GetCode(s); @@ -434,14 +434,14 @@ s->transparent_color_index = -1; s->gce_disposal = (gce_flags >> 2) & 0x7; #ifdef DEBUG - printf("gif: gce_flags=%x delay=%d tcolor=%d disposal=%d\n", - gce_flags, s->gce_delay, + printf("gif: gce_flags=%x delay=%d tcolor=%d disposal=%d\n", + gce_flags, s->gce_delay, s->transparent_color_index, s->gce_disposal); #endif ext_len = get_byte(f); break; } - + /* NOTE: many extension blocks can come after */ discard_ext: while (ext_len != 0) { @@ -474,11 +474,11 @@ s->transparent_color_index = -1; s->screen_width = get_le16(f); s->screen_height = get_le16(f); - if( (unsigned)s->screen_width > 32767 + if( (unsigned)s->screen_width > 32767 || (unsigned)s->screen_height > 32767){ av_log(NULL, AV_LOG_ERROR, "picture size too large\n"); return -1; - } + } v = get_byte(f); s->color_resolution = ((v & 0x70) >> 4) + 1; @@ -543,7 +543,7 @@ s->f = f; if (gif_read_header1(s) < 0) return -1; - + /* allocate image buffer */ s->image_linesize = s->screen_width * 3; s->image_buf = av_malloc(s->screen_height * s->image_linesize); @@ -593,7 +593,7 @@ } /* read gif as image */ -static int gif_read(ByteIOContext *f, +static int gif_read(ByteIOContext *f, int (*alloc_cb)(void *opaque, AVImageInfo *info), void *opaque) { GifState s1, *s = &s1;
--- a/grab.c Sat Dec 17 17:57:03 2005 +0000 +++ b/grab.c Sat Dec 17 18:14:38 2005 +0000 @@ -70,7 +70,7 @@ if (!ap || ap->width <= 0 || ap->height <= 0 || ap->time_base.den <= 0) return -1; - + width = ap->width; height = ap->height; frame_rate = ap->time_base.den; @@ -78,7 +78,7 @@ if((unsigned)width > 32767 || (unsigned)height > 32767) return -1; - + st = av_new_stream(s1, 0); if (!st) return -ENOMEM; @@ -97,7 +97,7 @@ perror(video_device); goto fail; } - + if (ioctl(video_fd,VIDIOCGCAP, &s->video_cap) < 0) { perror("VIDIOCGCAP"); goto fail; @@ -115,7 +115,7 @@ desired_palette = VIDEO_PALETTE_YUV422; } else if (st->codec->pix_fmt == PIX_FMT_BGR24) { desired_palette = VIDEO_PALETTE_RGB24; - } + } /* set tv standard */ if (ap->standard && !ioctl(video_fd, VIDIOCGTUNER, &tuner)) { @@ -127,7 +127,7 @@ tuner.mode = VIDEO_MODE_NTSC; ioctl(video_fd, VIDIOCSTUNER, &tuner); } - + /* unmute audio */ audio.audio = 0; ioctl(video_fd, VIDIOCGAUDIO, &audio); @@ -159,7 +159,7 @@ pict.brightness, pict.contrast, pict.whiteness); -#endif +#endif /* try to choose a suitable video format */ pict.palette = desired_palette; if (desired_palette == -1 || (ret = ioctl(video_fd, VIDIOCSPICT, &pict)) < 0) { @@ -171,7 +171,7 @@ if (ret < 0) { pict.palette=VIDEO_PALETTE_RGB24; ret = ioctl(video_fd, VIDIOCSPICT, &pict); - if (ret < 0) + if (ret < 0) goto fail1; } } @@ -184,7 +184,7 @@ s->time_frame = av_gettime() * s->frame_rate / s->frame_rate_base; s->use_mmap = 0; - + /* ATI All In Wonder automatic activation */ if (!strcmp(s->video_cap.name, "Km")) { if (aiw_init(s) < 0) @@ -202,7 +202,7 @@ } s->gb_frame = 0; s->time_frame = av_gettime() * s->frame_rate / s->frame_rate_base; - + /* start to grab the first frame */ s->gb_buf.frame = s->gb_frame % s->gb_buffers.frames; s->gb_buf.height = height; @@ -211,12 +211,12 @@ if (desired_palette == -1 || (ret = ioctl(video_fd, VIDIOCMCAPTURE, &s->gb_buf)) < 0) { s->gb_buf.format = VIDEO_PALETTE_YUV420P; - + ret = ioctl(video_fd, VIDIOCMCAPTURE, &s->gb_buf); if (ret < 0 && errno != EAGAIN) { /* try YUV422 */ s->gb_buf.format = VIDEO_PALETTE_YUV422; - + ret = ioctl(video_fd, VIDIOCMCAPTURE, &s->gb_buf); if (ret < 0 && errno != EAGAIN) { /* try RGB24 */ @@ -260,7 +260,7 @@ } s->fd = video_fd; s->frame_size = frame_size; - + st->codec->codec_type = CODEC_TYPE_VIDEO; st->codec->codec_id = CODEC_ID_RAWVIDEO; st->codec->width = width; @@ -322,7 +322,7 @@ s->time_frame += int64_t_C(1000000); } break; - } + } ts.tv_sec = delay / 1000000; ts.tv_nsec = (delay % 1000000) * 1000; nanosleep(&ts, NULL); @@ -388,7 +388,7 @@ if ((width == s->video_cap.maxwidth && height == s->video_cap.maxheight) || (width == s->video_cap.maxwidth && height == s->video_cap.maxheight*2) || (width == s->video_cap.maxwidth/2 && height == s->video_cap.maxheight)) { - + s->deint=0; s->halfw=0; if (height == s->video_cap.maxheight*2) s->deint=1; @@ -609,7 +609,7 @@ sum=(ptr[24]+ptr[26]+1) >> 1;lum[6]=sum; \ sum=(ptr[28]+ptr[30]+1) >> 1;lum[7]=sum; \ sum=(ptr[25]+ptr[29]+1) >> 1;cb[3]=sum; \ - sum=(ptr[27]+ptr[31]+1) >> 1;cr[3]=sum; + sum=(ptr[27]+ptr[31]+1) >> 1;cr[3]=sum; #define LINE_NOUV_AVG \ sum=(ptr[0]+ptr[2]+1) >> 1;lum[0]=sum; \ @@ -619,7 +619,7 @@ sum=(ptr[16]+ptr[18]+1) >> 1;lum[4]=sum; \ sum=(ptr[20]+ptr[22]+1) >> 1;lum[5]=sum; \ sum=(ptr[24]+ptr[26]+1) >> 1;lum[6]=sum; \ - sum=(ptr[28]+ptr[30]+1) >> 1;lum[7]=sum; + sum=(ptr[28]+ptr[30]+1) >> 1;lum[7]=sum; #define DEINT_LINE_LUM(ptroff) \ sum=(-lum_m4[(ptroff)]+(lum_m3[(ptroff)]<<2)+(lum_m2[(ptroff)]<<1)+(lum_m1[(ptroff)]<<2)-lum[(ptroff)]); \
--- a/grab_bktr.c Sat Dec 17 17:57:03 2005 +0000 +++ b/grab_bktr.c Sat Dec 17 18:14:38 2005 +0000 @@ -174,7 +174,7 @@ video_buf_size = width * height * 12 / 8; - video_buf = (uint8_t *)mmap((caddr_t)0, video_buf_size, + video_buf = (uint8_t *)mmap((caddr_t)0, video_buf_size, PROT_READ, MAP_SHARED, *video_fd, (off_t)0); if (video_buf == MAP_FAILED) { perror("mmap"); @@ -182,7 +182,7 @@ } if (frequency != 0.0) { - ioctl_frequency = (unsigned long)(frequency*16); + ioctl_frequency = (unsigned long)(frequency*16); if (ioctl(*tuner_fd, TVTUNER_SETFREQ, &ioctl_frequency) < 0) perror("TVTUNER_SETFREQ"); }
--- a/http.c Sat Dec 17 17:57:03 2005 +0000 +++ b/http.c Sat Dec 17 18:14:38 2005 +0000 @@ -73,13 +73,13 @@ h->priv_data = s; proxy_path = getenv("http_proxy"); - use_proxy = (proxy_path != NULL) && !getenv("no_proxy") && + use_proxy = (proxy_path != NULL) && !getenv("no_proxy") && strstart(proxy_path, "http://", NULL); /* fill the dest addr */ redo: /* needed in any case to build the host string */ - url_split(NULL, 0, auth, sizeof(auth), hostname, sizeof(hostname), &port, + url_split(NULL, 0, auth, sizeof(auth), hostname, sizeof(hostname), &port, path1, sizeof(path1), uri); if (port > 0) { snprintf(hoststr, sizeof(hoststr), "%s:%d", hostname, port); @@ -88,7 +88,7 @@ } if (use_proxy) { - url_split(NULL, 0, auth, sizeof(auth), hostname, sizeof(hostname), &port, + url_split(NULL, 0, auth, sizeof(auth), hostname, sizeof(hostname), &port, NULL, 0, proxy_path); path = uri; } else { @@ -142,7 +142,7 @@ static int process_line(HTTPContext *s, char *line, int line_count) { char *tag, *p; - + /* end of header */ if (line[0] == '\0') return 0; @@ -160,9 +160,9 @@ } else { while (*p != '\0' && *p != ':') p++; - if (*p != ':') + if (*p != ':') return 1; - + *p = '\0'; tag = line; p++; @@ -198,10 +198,10 @@ LIBAVFORMAT_IDENT, hoststr, b64_encode(auth)); - + if (http_write(h, s->buffer, strlen(s->buffer)) < 0) return AVERROR_IO; - + /* init input buffer */ s->buf_ptr = s->buffer; s->buf_end = s->buffer; @@ -211,7 +211,7 @@ sleep(1); return 0; } - + /* wait for header */ q = line; for(;;) { @@ -286,7 +286,7 @@ /***************************************************************************** * b64_encode: stolen from VLC's http.c *****************************************************************************/ - + static char *b64_encode( const unsigned char *src ) { static const char b64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; @@ -317,16 +317,16 @@ *dst++ = '='; break; } - + while( i_shift >= 6 ) { i_shift -= 6; *dst++ = b64[(i_bits >> i_shift)&0x3f]; } } - + *dst++ = '\0'; - + return ret; }
--- a/idcin.c Sat Dec 17 17:57:03 2005 +0000 +++ b/idcin.c Sat Dec 17 18:14:38 2005 +0000 @@ -255,7 +255,7 @@ /* skip the number of decoded bytes (always equal to width * height) */ url_fseek(pb, 4, SEEK_CUR); chunk_size -= 4; - ret= av_get_packet(pb, pkt, chunk_size); + ret= av_get_packet(pb, pkt, chunk_size); if (ret != chunk_size) return AVERROR_IO; pkt->stream_index = idcin->video_stream_index;
--- a/idroq.c Sat Dec 17 17:57:03 2005 +0000 +++ b/idroq.c Sat Dec 17 18:14:38 2005 +0000 @@ -78,19 +78,19 @@ unsigned int chunk_type; /* get the main header */ - if (get_buffer(pb, preamble, RoQ_CHUNK_PREAMBLE_SIZE) != + if (get_buffer(pb, preamble, RoQ_CHUNK_PREAMBLE_SIZE) != RoQ_CHUNK_PREAMBLE_SIZE) return AVERROR_IO; roq->framerate = LE_16(&preamble[6]); roq->frame_pts_inc = 90000 / roq->framerate; /* init private context parameters */ - roq->width = roq->height = roq->audio_channels = roq->video_pts = + roq->width = roq->height = roq->audio_channels = roq->video_pts = roq->audio_frame_count = 0; /* scan the first n chunks searching for A/V parameters */ for (i = 0; i < RoQ_CHUNKS_TO_SCAN; i++) { - if (get_buffer(pb, preamble, RoQ_CHUNK_PREAMBLE_SIZE) != + if (get_buffer(pb, preamble, RoQ_CHUNK_PREAMBLE_SIZE) != RoQ_CHUNK_PREAMBLE_SIZE) return AVERROR_IO; @@ -101,7 +101,7 @@ case RoQ_INFO: /* fetch the width and height; reuse the preamble bytes */ - if (get_buffer(pb, preamble, RoQ_CHUNK_PREAMBLE_SIZE) != + if (get_buffer(pb, preamble, RoQ_CHUNK_PREAMBLE_SIZE) != RoQ_CHUNK_PREAMBLE_SIZE) return AVERROR_IO; roq->width = LE_16(&preamble[0]); @@ -190,7 +190,7 @@ return AVERROR_IO; /* get the next chunk preamble */ - if ((ret = get_buffer(pb, preamble, RoQ_CHUNK_PREAMBLE_SIZE)) != + if ((ret = get_buffer(pb, preamble, RoQ_CHUNK_PREAMBLE_SIZE)) != RoQ_CHUNK_PREAMBLE_SIZE) return AVERROR_IO; @@ -211,10 +211,10 @@ codebook_offset = url_ftell(pb) - RoQ_CHUNK_PREAMBLE_SIZE; codebook_size = chunk_size; url_fseek(pb, codebook_size, SEEK_CUR); - if (get_buffer(pb, preamble, RoQ_CHUNK_PREAMBLE_SIZE) != + if (get_buffer(pb, preamble, RoQ_CHUNK_PREAMBLE_SIZE) != RoQ_CHUNK_PREAMBLE_SIZE) return AVERROR_IO; - chunk_size = LE_32(&preamble[2]) + RoQ_CHUNK_PREAMBLE_SIZE * 2 + + chunk_size = LE_32(&preamble[2]) + RoQ_CHUNK_PREAMBLE_SIZE * 2 + codebook_size; /* rewind */
--- a/img.c Sat Dec 17 17:57:03 2005 +0000 +++ b/img.c Sat Dec 17 18:14:38 2005 +0000 @@ -39,7 +39,7 @@ /* return -1 if no image found */ -static int find_image_range(int *pfirst_index, int *plast_index, +static int find_image_range(int *pfirst_index, int *plast_index, const char *path) { char buf[1024]; @@ -54,7 +54,7 @@ } if (first_index == 5) goto fail; - + /* find the last image */ last_index = first_index; for(;;) { @@ -64,7 +64,7 @@ range1 = 1; else range1 = 2 * range; - if (get_frame_filename(buf, sizeof(buf), path, + if (get_frame_filename(buf, sizeof(buf), path, last_index + range1) < 0) goto fail; if (!url_exist(buf)) @@ -126,7 +126,7 @@ pstrcpy(s->path, sizeof(s->path), s1->filename); s->img_number = 0; s->img_count = 0; - + /* find format */ if (s1->iformat->flags & AVFMT_NOFILE) s->is_pipe = 0; @@ -138,7 +138,7 @@ } else { st->codec->time_base= ap->time_base; } - + if (!s->is_pipe) { if (find_image_range(&first_index, &last_index, s->path) < 0) goto fail; @@ -155,7 +155,7 @@ } else { f = &s1->pb; } - + ret = av_read_image(f, s1->filename, s->img_fmt, read_header_alloc_cb, s); if (ret < 0) goto fail1; @@ -165,7 +165,7 @@ } else { url_fseek(f, 0, SEEK_SET); } - + st->codec->codec_type = CODEC_TYPE_VIDEO; st->codec->codec_id = CODEC_ID_RAWVIDEO; st->codec->width = s->width; @@ -265,7 +265,7 @@ if (s->nb_streams != 1) return -1; - + st = s->streams[0]; /* we select the first matching format */ for(i=0;i<PIX_FMT_NB;i++) { @@ -292,7 +292,7 @@ img->is_pipe = 0; else img->is_pipe = 1; - + return 0; } @@ -308,11 +308,11 @@ width = st->codec->width; height = st->codec->height; - + picture = (AVPicture *)pkt->data; if (!img->is_pipe) { - if (get_frame_filename(filename, sizeof(filename), + if (get_frame_filename(filename, sizeof(filename), img->path, img->img_number) < 0) return AVERROR_IO; pb = &pb1; @@ -406,6 +406,6 @@ av_register_input_format(&imagepipe_iformat); av_register_output_format(&imagepipe_oformat); - + return 0; }
--- a/img2.c Sat Dec 17 17:57:03 2005 +0000 +++ b/img2.c Sat Dec 17 18:14:38 2005 +0000 @@ -99,7 +99,7 @@ } /* return -1 if no image found */ -static int find_image_range(int *pfirst_index, int *plast_index, +static int find_image_range(int *pfirst_index, int *plast_index, const char *path) { char buf[1024]; @@ -108,7 +108,7 @@ /* find the first image */ for(first_index = 0; first_index < 5; first_index++) { if (get_frame_filename(buf, sizeof(buf), path, first_index) < 0){ - *pfirst_index = + *pfirst_index = *plast_index = 1; return 0; } @@ -117,7 +117,7 @@ } if (first_index == 5) goto fail; - + /* find the last image */ last_index = first_index; for(;;) { @@ -127,7 +127,7 @@ range1 = 1; else range1 = 2 * range; - if (get_frame_filename(buf, sizeof(buf), path, + if (get_frame_filename(buf, sizeof(buf), path, last_index + range1) < 0) goto fail; if (!url_exist(buf)) @@ -178,7 +178,7 @@ pstrcpy(s->path, sizeof(s->path), s1->filename); s->img_number = 0; s->img_count = 0; - + /* find format */ if (s1->iformat->flags & AVFMT_NOFILE) s->is_pipe = 0; @@ -186,18 +186,18 @@ s->is_pipe = 1; st->need_parsing= 1; } - + if (!ap || !ap->time_base.num) { av_set_pts_info(st, 60, 1, 25); } else { av_set_pts_info(st, 60, ap->time_base.num, ap->time_base.den); } - + if(ap && ap->width && ap->height){ st->codec->width = ap->width; st->codec->height= ap->height; } - + if (!s->is_pipe) { if (find_image_range(&first_index, &last_index, s->path) < 0) return AVERROR_IO; @@ -208,7 +208,7 @@ st->start_time = 0; st->duration = last_index - first_index + 1; } - + if(ap->video_codec_id){ st->codec->codec_type = CODEC_TYPE_VIDEO; st->codec->codec_id = ap->video_codec_id; @@ -246,12 +246,12 @@ if (url_fopen(f[i], filename, URL_RDONLY) < 0) return AVERROR_IO; size[i]= url_fsize(f[i]); - + if(codec->codec_id != CODEC_ID_RAWVIDEO) break; filename[ strlen(filename) - 1 ]= 'U' + i; } - + if(codec->codec_id == CODEC_ID_RAWVIDEO && !codec->width) infer_size(&codec->width, &codec->height, size[0]); } else { @@ -306,7 +306,7 @@ img->is_pipe = 0; else img->is_pipe = 1; - + return 0; } @@ -319,13 +319,13 @@ int i; if (!img->is_pipe) { - if (get_frame_filename(filename, sizeof(filename), + if (get_frame_filename(filename, sizeof(filename), img->path, img->img_number) < 0 && img->img_number>1) return AVERROR_IO; for(i=0; i<3; i++){ if (url_fopen(pb[i], filename, URL_WRONLY) < 0) return AVERROR_IO; - + if(codec->codec_id != CODEC_ID_RAWVIDEO) break; filename[ strlen(filename) - 1 ]= 'U' + i; @@ -333,7 +333,7 @@ } else { pb[0] = &s->pb; } - + if(codec->codec_id == CODEC_ID_RAWVIDEO){ int ysize = codec->width * codec->height; put_buffer(pb[0], pkt->data , ysize); @@ -423,6 +423,6 @@ av_register_input_format(&image2pipe_iformat); av_register_output_format(&image2pipe_oformat); - + return 0; }
--- a/ipmovie.c Sat Dec 17 17:57:03 2005 +0000 +++ b/ipmovie.c Sat Dec 17 18:14:38 2005 +0000 @@ -118,7 +118,7 @@ } IPMVEContext; -static int load_ipmovie_packet(IPMVEContext *s, ByteIOContext *pb, +static int load_ipmovie_packet(IPMVEContext *s, ByteIOContext *pb, AVPacket *pkt) { int chunk_type; @@ -170,7 +170,7 @@ url_fseek(pb, s->decode_map_chunk_offset, SEEK_SET); s->decode_map_chunk_offset = 0; - if (get_buffer(pb, pkt->data, s->decode_map_chunk_size) != + if (get_buffer(pb, pkt->data, s->decode_map_chunk_size) != s->decode_map_chunk_size) { av_free_packet(pkt); return CHUNK_EOF; @@ -207,7 +207,7 @@ /* This function loads and processes a single chunk in an IP movie file. * It returns the type of chunk that was processed. */ -static int process_ipmovie_chunk(IPMVEContext *s, ByteIOContext *pb, +static int process_ipmovie_chunk(IPMVEContext *s, ByteIOContext *pb, AVPacket *pkt) { unsigned char chunk_preamble[CHUNK_PREAMBLE_SIZE]; @@ -358,7 +358,7 @@ s->audio_bits, s->audio_sample_rate, (s->audio_channels == 2) ? "stereo" : "mono", - (s->audio_type == CODEC_ID_INTERPLAY_DPCM) ? + (s->audio_type == CODEC_ID_INTERPLAY_DPCM) ? "Interplay audio" : "PCM"); break;
--- a/jpeg.c Sat Dec 17 17:57:03 2005 +0000 +++ b/jpeg.c Sat Dec 17 18:14:38 2005 +0000 @@ -68,7 +68,7 @@ } } -static void jpeg_img_copy(uint8_t *dst, int dst_wrap, +static void jpeg_img_copy(uint8_t *dst, int dst_wrap, uint8_t *src, int src_wrap, int width, int height) { @@ -82,7 +82,7 @@ /* XXX: libavcodec is broken for truncated jpegs! */ #define IO_BUF_SIZE (1024*1024) -static int jpeg_read(ByteIOContext *f, +static int jpeg_read(ByteIOContext *f, int (*alloc_cb)(void *opaque, AVImageInfo *info), void *opaque) { AVCodecContext *c; @@ -94,7 +94,7 @@ jctx.alloc_cb = alloc_cb; jctx.opaque = opaque; jctx.ret_code = -1; /* default return code is error */ - + c = avcodec_alloc_context(); if (!c) return -1; @@ -114,7 +114,7 @@ break; inbuf_ptr = inbuf; while (size > 0) { - len = avcodec_decode_video(c, &picture1, &got_picture, + len = avcodec_decode_video(c, &picture1, &got_picture, inbuf_ptr, size); if (len < 0) goto fail; @@ -198,10 +198,10 @@ /* set the quality */ picture->quality = 3; /* XXX: a parameter should be used */ c->flags |= CODEC_FLAG_QSCALE; - + if (avcodec_open(c, &mjpeg_encoder) < 0) goto fail1; - + /* XXX: needs to sort out that size problem */ outbuf_size = 1000000; outbuf = av_malloc(outbuf_size);
--- a/matroska.c Sat Dec 17 17:57:03 2005 +0000 +++ b/matroska.c Sat Dec 17 18:14:38 2005 +0000 @@ -1661,7 +1661,7 @@ break; } - /* position in the file + track to which it + /* position in the file + track to which it * belongs */ case MATROSKA_ID_CUETRACKPOSITION: if ((res = ebml_read_master(matroska, &id)) < 0) @@ -1897,7 +1897,7 @@ "cannot parse further.\n", EBML_MAX_DEPTH); return AVERROR_UNKNOWN; } - + level.start = 0; level.length = (uint64_t)-1; matroska->levels[matroska->num_levels] = level; @@ -2179,7 +2179,7 @@ /* This is the MS compatibility mode which stores a * WAVEFORMATEX in the CodecPrivate. */ - else if (!strcmp(track->codec_id, + else if (!strcmp(track->codec_id, MATROSKA_CODEC_ID_AUDIO_ACM) && (track->codec_priv_size >= 18) && (track->codec_priv != NULL)) { @@ -2368,7 +2368,7 @@ } if(matroska->ctx->streams[ matroska->tracks[track]->stream_index ]->discard >= AVDISCARD_ALL){ av_free(origdata); - break; + break; } /* time (relative to cluster time) */
--- a/mmf.c Sat Dec 17 17:57:03 2005 +0000 +++ b/mmf.c Sat Dec 17 18:14:38 2005 +0000 @@ -1,4 +1,4 @@ -/* +/* * Yamaha SMAF format * Copyright (c) 2005 Vidar Madsen * @@ -66,7 +66,7 @@ av_log(s, AV_LOG_ERROR, "Unsupported sample rate %d\n", s->streams[0]->codec->sample_rate); return -1; } - + put_tag(pb, "MMMD"); put_be32(pb, 0); pos = start_tag(pb, "CNTI"); @@ -270,7 +270,7 @@ if(!size) return AVERROR_IO; - + if (av_new_packet(pkt, size)) return AVERROR_IO; pkt->stream_index = 0; @@ -290,7 +290,7 @@ return 0; } -static int mmf_read_seek(AVFormatContext *s, +static int mmf_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) { return pcm_read_seek(s, stream_index, timestamp, flags);
--- a/mov.c Sat Dec 17 17:57:03 2005 +0000 +++ b/mov.c Sat Dec 17 18:14:38 2005 +0000 @@ -18,7 +18,7 @@ */ #include <limits.h> - + #include "avformat.h" #include "avi.h" @@ -28,7 +28,7 @@ /* * First version by Francois Revol revol@free.fr - * Seek function by Gael Chardon gael.dev@4now.net + * Seek function by Gael Chardon gael.dev@4now.net * * Features and limitations: * - reads most of the QT files I have (at least the structure), @@ -242,9 +242,9 @@ long sample_to_chunk_sz; MOV_sample_to_chunk_tbl *sample_to_chunk; long sample_to_chunk_index; - int sample_to_time_index; - long sample_to_time_sample; - uint64_t sample_to_time_time; + int sample_to_time_index; + long sample_to_time_sample; + uint64_t sample_to_time_time; int sample_to_ctime_index; int sample_to_ctime_sample; long sample_size; @@ -381,10 +381,10 @@ /* empty */; a.size -= 8; - + if(a.size < 0) break; - + // av_log(NULL, AV_LOG_DEBUG, " i=%ld\n", i); if (c->parse_table[i].type == 0) { /* skip leaf atoms data */ // url_seek(pb, atom.offset+atom.size, SEEK_SET); @@ -693,7 +693,7 @@ if((uint64_t)atom.size > (1<<30)) return -1; - + // currently SVQ3 decoder expect full STSD header - so let's fake it // this should be fixed and just SMI header should be passed av_free(st->codec->extradata); @@ -716,7 +716,7 @@ if((uint64_t)atom.size > (1<<30)) return -1; - + // pass all frma atom to codec, needed at least for QDM2 av_free(st->codec->extradata); st->codec->extradata_size = atom.size; @@ -763,10 +763,10 @@ get_byte(pb); get_byte(pb); get_byte(pb); /* flags */ entries = get_be32(pb); - + if(entries >= UINT_MAX/sizeof(int64_t)) return -1; - + sc->chunk_count = entries; sc->chunk_offsets = (int64_t*) av_malloc(entries * sizeof(int64_t)); if (!sc->chunk_offsets) @@ -781,7 +781,7 @@ } } else return -1; - + for(i=0; i<c->fc->nb_streams; i++){ MOVStreamContext *sc2 = (MOVStreamContext *)c->fc->streams[i]->priv_data; if(sc2 && sc2->chunk_offsets){ @@ -966,7 +966,7 @@ color_greyscale = st->codec->bits_per_sample & 0x20; /* if the depth is 2, 4, or 8 bpp, file is palettized */ - if ((color_depth == 2) || (color_depth == 4) || + if ((color_depth == 2) || (color_depth == 4) || (color_depth == 8)) { if (color_greyscale) { @@ -1049,7 +1049,7 @@ get_be16(pb);//Reserved_2 //AMRSpecificBox.(10 bytes) - + get_be32(pb); //size get_be32(pb); //type=='damr' get_be32(pb); //vendor @@ -1070,7 +1070,7 @@ st->codec->channels=1; } st->codec->bits_per_sample=16; - st->codec->bit_rate=0; /*It is not possible to tell this before we have + st->codec->bit_rate=0; /*It is not possible to tell this before we have an audio frame and even then every frame can be different*/ } else if( st->codec->codec_tag == MKTAG( 'm', 'p', '4', 's' )) @@ -1099,7 +1099,7 @@ get_be16(pb); c->mp4=1; - + if(mp4_version==1) { url_fskip(pb,16); @@ -1109,13 +1109,13 @@ a.size=size-(16+20); a.offset=url_ftell(pb); - + mov_read_default(c, pb, a); /* Get correct sample rate from extradata */ if(st->codec->extradata_size) { const int samplerate_table[] = { - 96000, 88200, 64000, 48000, 44100, 32000, + 96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350, 0, 0, 0 }; @@ -1139,7 +1139,7 @@ /* fetch the 36-byte extradata needed for alac decoding */ st->codec->extradata_size = 36; - st->codec->extradata = (uint8_t*) + st->codec->extradata = (uint8_t*) av_mallocz(st->codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE); get_buffer(pb, st->codec->extradata, st->codec->extradata_size); } @@ -1222,7 +1222,7 @@ } } } - + if(st->codec->codec_type==CODEC_TYPE_AUDIO && st->codec->sample_rate==0 && sc->time_scale>1) { st->codec->sample_rate= sc->time_scale; } @@ -1242,10 +1242,10 @@ get_byte(pb); get_byte(pb); get_byte(pb); /* flags */ entries = get_be32(pb); - + if(entries >= UINT_MAX / sizeof(MOV_sample_to_chunk_tbl)) return -1; - + #ifdef DEBUG av_log(NULL, AV_LOG_DEBUG, "track[%i].stsc.entries = %i\n", c->fc->nb_streams-1, entries); #endif @@ -1276,10 +1276,10 @@ get_byte(pb); get_byte(pb); get_byte(pb); /* flags */ entries = get_be32(pb); - + if(entries >= UINT_MAX / sizeof(long)) return -1; - + sc->keyframe_count = entries; #ifdef DEBUG av_log(NULL, AV_LOG_DEBUG, "keyframe_count = %ld\n", sc->keyframe_count); @@ -1565,7 +1565,7 @@ get_byte(pb); /* version */ get_byte(pb); get_byte(pb); get_byte(pb); /* flags */ edit_count= c->streams[c->fc->nb_streams-1]->edit_count = get_be32(pb); /* entries */ - + for(i=0; i<edit_count; i++){ get_be32(pb); /* Track duration */ get_be32(pb); /* Media time */ @@ -1609,7 +1609,7 @@ { MKTAG( 's', 'k', 'i', 'p' ), mov_read_leaf }, { MKTAG( 's', 'm', 'h', 'd' ), mov_read_leaf }, /* sound media info header */ { MKTAG( 'S', 'M', 'I', ' ' ), mov_read_smi }, /* Sorenson extension ??? */ -{ MKTAG( 'a', 'v', 'c', 'C' ), mov_read_avcC }, +{ MKTAG( 'a', 'v', 'c', 'C' ), mov_read_avcC }, { MKTAG( 's', 't', 'b', 'l' ), mov_read_default }, { MKTAG( 's', 't', 'c', 'o' ), mov_read_stco }, { MKTAG( 's', 't', 'd', 'p' ), mov_read_default }, @@ -1663,8 +1663,8 @@ av_freep(&sc->sample_to_chunk); av_freep(&sc->sample_sizes); av_freep(&sc->keyframes); - av_freep(&sc->stts_data); - av_freep(&sc->ctts_data); + av_freep(&sc->stts_data); + av_freep(&sc->ctts_data); av_freep(&sc); } } @@ -1901,11 +1901,11 @@ } #ifdef MOV_MINOLTA_FIX - //Make sure that size is according to sample_size (Needed by .mov files + //Make sure that size is according to sample_size (Needed by .mov files //created on a Minolta Dimage Xi where audio chunks contains waste data in the end) //Maybe we should really not only check sc->sample_size, but also sc->sample_sizes //but I have no such movies - if (sc->sample_size > 0) { + if (sc->sample_size > 0) { int foundsize=0; for(i=0; i<(sc->sample_to_chunk_sz); i++) { if( (sc->sample_to_chunk[i].first)<=(sc->next_chunk) ) @@ -1966,22 +1966,22 @@ av_get_packet(&s->pb, pkt, size); pkt->stream_index = sc->ffindex; - + // If the keyframes table exists, mark any samples that are in the table as key frames. // If no table exists, treat very sample as a key frame. - if (sc->keyframes) { + if (sc->keyframes) { a = 0; b = sc->keyframe_count - 1; - + while (a < b) { m = (a + b + 1) >> 1; if (sc->keyframes[m] > sc->current_sample) { b = m - 1; } else { a = m; - } + } } - + if (sc->keyframes[a] == sc->current_sample) pkt->flags |= PKT_FLAG_KEY; } @@ -2000,19 +2000,19 @@ #endif mov->next_chunk_offset = offset + size; - - /* find the corresponding dts */ - if (sc && sc->sample_to_time_index < sc->stts_count && pkt) { + + /* find the corresponding dts */ + if (sc && sc->sample_to_time_index < sc->stts_count && pkt) { unsigned int count; uint64_t dts, pts; unsigned int duration = sc->stts_data[sc->sample_to_time_index].duration; count = sc->stts_data[sc->sample_to_time_index].count; - if ((sc->sample_to_time_sample + count) < sc->current_sample) { - sc->sample_to_time_sample += count; - sc->sample_to_time_time += count*duration; - sc->sample_to_time_index ++; + if ((sc->sample_to_time_sample + count) < sc->current_sample) { + sc->sample_to_time_sample += count; + sc->sample_to_time_time += count*duration; + sc->sample_to_time_index ++; duration = sc->stts_data[sc->sample_to_time_index].duration; - } + } dts = sc->sample_to_time_time + (sc->current_sample-1 - sc->sample_to_time_sample) * (int64_t)duration; /* find the corresponding pts */ if (sc->sample_to_ctime_index < sc->ctts_count) { @@ -2063,9 +2063,9 @@ int64_t sample_file_offset; int32_t first_chunk_sample; int32_t sample_to_chunk_idx; - int sample_to_time_index; - long sample_to_time_sample = 0; - uint64_t sample_to_time_time = 0; + int sample_to_time_index; + long sample_to_time_sample = 0; + uint64_t sample_to_time_time = 0; int mov_idx; // Find the corresponding mov stream @@ -2097,20 +2097,20 @@ for (i = 0; i < sc->stts_count; i++) { count = sc->stts_data[i].count; duration = sc->stts_data[i].duration; -//av_log(s, AV_LOG_DEBUG, "> sample_time %lli \n", (long)sample_time); -//av_log(s, AV_LOG_DEBUG, "> count=%i duration=%i\n", count, duration); +//av_log(s, AV_LOG_DEBUG, "> sample_time %lli \n", (long)sample_time); +//av_log(s, AV_LOG_DEBUG, "> count=%i duration=%i\n", count, duration); if ((start_time + count*duration) > sample_time) { - sample_to_time_time = start_time; - sample_to_time_index = i; - sample_to_time_sample = sample; + sample_to_time_time = start_time; + sample_to_time_index = i; + sample_to_time_sample = sample; sample += (sample_time - start_time) / duration; break; } sample += count; start_time += count * duration; - } - sample_to_time_time = start_time; - sample_to_time_index = i; + } + sample_to_time_time = start_time; + sample_to_time_index = i; /* NOTE: despite what qt doc say, the dt value (Display Time in qt vocabulary) computed with the stts atom is a decoding time stamp (dts) not a presentation time stamp. And as usual dts != pts for stream with b frames */ @@ -2198,7 +2198,7 @@ sc->next_chunk = chunk; // +1 -1 (zero based) sc->sample_to_chunk_index = sample_to_chunk_idx; - // Update other streams + // Update other streams for (i = 0; i<mov->total_streams; i++) { MOVStreamContext *msc; if (i == mov_idx) continue; @@ -2213,17 +2213,17 @@ } else { a = m; } -#ifdef DEBUG +#ifdef DEBUG /* av_log(s, AV_LOG_DEBUG, "a=%i (%li) b=%i (%li) m=%i (%li) stream #%i\n" , a, (long)msc->chunk_offsets[a], b, (long)msc->chunk_offsets[b], m, (long)msc->chunk_offsets[m], i); */ -#endif +#endif } msc->next_chunk = a; if (msc->chunk_offsets[a] < chunk_file_offset && a < (msc->chunk_count-1)) msc->next_chunk ++; -#ifdef DEBUG +#ifdef DEBUG av_log(s, AV_LOG_DEBUG, "Nearest next chunk for stream #%i is #%i @%lli\n", i, msc->next_chunk+1, msc->chunk_offsets[msc->next_chunk]); -#endif +#endif // Compute sample count and index in the sample_to_chunk table (what a pity) msc->sample_to_chunk_index = 0; msc->current_sample = 0; @@ -2234,19 +2234,19 @@ } msc->current_sample += (msc->next_chunk - (msc->sample_to_chunk[msc->sample_to_chunk_index].first - 1)) * sc->sample_to_chunk[msc->sample_to_chunk_index].count; msc->left_in_chunk = msc->sample_to_chunk[msc->sample_to_chunk_index].count - 1; - // Find corresponding position in stts (used later to compute dts) - sample = 0; - start_time = 0; - for (msc->sample_to_time_index = 0; msc->sample_to_time_index < msc->stts_count; msc->sample_to_time_index++) { + // Find corresponding position in stts (used later to compute dts) + sample = 0; + start_time = 0; + for (msc->sample_to_time_index = 0; msc->sample_to_time_index < msc->stts_count; msc->sample_to_time_index++) { count = msc->stts_data[msc->sample_to_time_index].count; duration = msc->stts_data[msc->sample_to_time_index].duration; - if ((sample + count - 1) > msc->current_sample) { - msc->sample_to_time_time = start_time; - msc->sample_to_time_sample = sample; - break; - } - sample += count; - start_time += count * duration; + if ((sample + count - 1) > msc->current_sample) { + msc->sample_to_time_time = start_time; + msc->sample_to_time_sample = sample; + break; + } + sample += count; + start_time += count * duration; } sample = 0; for (msc->sample_to_ctime_index = 0; msc->sample_to_ctime_index < msc->ctts_count; msc->sample_to_ctime_index++) { @@ -2257,11 +2257,11 @@ break; } sample += count; - } -#ifdef DEBUG + } +#ifdef DEBUG av_log(s, AV_LOG_DEBUG, "Next Sample for stream #%i is #%i @%i\n", i, msc->current_sample + 1, msc->sample_to_chunk_index + 1); -#endif - } +#endif + } return 0; } #endif @@ -2289,7 +2289,7 @@ mov_read_close, #if defined(MOV_SPLIT_CHUNKS) && defined(MOV_SEEK) mov_read_seek, -#endif +#endif }; int mov_init(void)
--- a/movenc.c Sat Dec 17 17:57:03 2005 +0000 +++ b/movenc.c Sat Dec 17 18:14:38 2005 +0000 @@ -30,7 +30,7 @@ #define MODE_MP4 0 #define MODE_MOV 1 #define MODE_3GP 2 -#define MODE_PSP 3 // example working PSP command line: +#define MODE_PSP 3 // example working PSP command line: // ffmpeg -i testinput.avi -f psp -r 14.985 -s 320x240 -b 768 -ar 24000 -ab 32 M4V00001.MP4 #define MODE_3G2 4 @@ -143,12 +143,12 @@ } if (equalChunks) { int sSize = track->cluster[0][0].size/track->cluster[0][0].entries; - put_be32(pb, sSize); // sample size + put_be32(pb, sSize); // sample size put_be32(pb, entries); // sample count } else { - put_be32(pb, 0); // sample size - put_be32(pb, entries); // sample count + put_be32(pb, 0); // sample size + put_be32(pb, entries); // sample count for (i=0; i<track->entry; i++) { int cl = i / MOV_INDEX_CLUSTER_SIZE; int id = i % MOV_INDEX_CLUSTER_SIZE; @@ -169,24 +169,24 @@ int pos = url_ftell(pb); put_be32(pb, 0); /* size */ put_tag(pb, "stsc"); - put_be32(pb, 0); // version & flags + put_be32(pb, 0); // version & flags entryPos = url_ftell(pb); - put_be32(pb, track->entry); // entry count + put_be32(pb, track->entry); // entry count for (i=0; i<track->entry; i++) { int cl = i / MOV_INDEX_CLUSTER_SIZE; int id = i % MOV_INDEX_CLUSTER_SIZE; if(oldval != track->cluster[cl][id].samplesInChunk) { - put_be32(pb, i+1); // first chunk + put_be32(pb, i+1); // first chunk put_be32(pb, track->cluster[cl][id].samplesInChunk); // samples per chunk - put_be32(pb, 0x1); // sample description index + put_be32(pb, 0x1); // sample description index oldval = track->cluster[cl][id].samplesInChunk; index++; } } curpos = url_ftell(pb); url_fseek(pb, entryPos, SEEK_SET); - put_be32(pb, index); // rewrite size + put_be32(pb, index); // rewrite size url_fseek(pb, curpos, SEEK_SET); return updateSize (pb, pos); @@ -198,11 +198,11 @@ long curpos; int i, index = 0, entryPos; int pos = url_ftell(pb); - put_be32(pb, 0); // size + put_be32(pb, 0); // size put_tag(pb, "stss"); - put_be32(pb, 0); // version & flags + put_be32(pb, 0); // version & flags entryPos = url_ftell(pb); - put_be32(pb, track->entry); // entry count + put_be32(pb, track->entry); // entry count for (i=0; i<track->entry; i++) { int cl = i / MOV_INDEX_CLUSTER_SIZE; int id = i % MOV_INDEX_CLUSTER_SIZE; @@ -213,7 +213,7 @@ } curpos = url_ftell(pb); url_fseek(pb, entryPos, SEEK_SET); - put_be32(pb, index); // rewrite size + put_be32(pb, index); // rewrite size url_fseek(pb, curpos, SEEK_SET); return updateSize (pb, pos); } @@ -278,7 +278,7 @@ { int pos = url_ftell(pb); int tag; - + put_be32(pb, 0); /* size */ tag = track->enc->codec_tag; @@ -359,7 +359,7 @@ put_be32(pb, 0x5); put_be32(pb, 0xe2c0211d); put_be32(pb, 0xc0000000); - put_byte(pb, 0); + put_byte(pb, 0); return 0x15; } @@ -383,9 +383,9 @@ len = size; vals[3] = (uint8_t)(len & 0x7f); len >>= 7; - vals[2] = (uint8_t)((len & 0x7f) | 0x80); + vals[2] = (uint8_t)((len & 0x7f) | 0x80); len >>= 7; - vals[1] = (uint8_t)((len & 0x7f) | 0x80); + vals[1] = (uint8_t)((len & 0x7f) | 0x80); len >>= 7; vals[0] = (uint8_t)((len & 0x7f) | 0x80); @@ -421,12 +421,12 @@ int pos = url_ftell(pb); void *vosDataBackup=track->vosData; int vosLenBackup=track->vosLen; - + // we should be able to have these passed in, via vosData, then we wouldn't need to attack this routine at all static const char PSPAACData[]={0x13,0x10}; static const char PSPMP4Data[]={0x00,0x00,0x01,0xB0,0x03,0x00,0x00,0x01,0xB5,0x09,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x20,0x00,0x84,0x5D,0x4C,0x28,0x50,0x20,0xF0,0xA3,0x1F }; - - + + if (track->mode == MODE_PSP) // fails on psp if this is not here { if (track->enc->codec_id == CODEC_ID_AAC) @@ -538,13 +538,13 @@ put_be32(pb, 0x00480000); /* Vertical resolution 72dpi */ put_be32(pb, 0); /* Data size (= 0) */ put_be16(pb, 1); /* Frame count (= 1) */ - + memset(compressor_name,0,32); if (track->enc->codec && track->enc->codec->name) strncpy(compressor_name,track->enc->codec->name,31); put_byte(pb, strlen(compressor_name)); put_buffer(pb, compressor_name, 31); - + put_be16(pb, 0x18); /* Reserved */ put_be16(pb, 0xffff); /* Reserved */ if(track->enc->codec_id == CODEC_ID_MPEG4) @@ -552,7 +552,7 @@ else if(track->enc->codec_id == CODEC_ID_H263) mov_write_d263_tag(pb); else if(track->enc->codec_id == CODEC_ID_SVQ3) - mov_write_svq3_tag(pb); + mov_write_svq3_tag(pb); return updateSize (pb, pos); } @@ -647,7 +647,7 @@ { char *descr, *hdlr, *hdlr_type; int pos = url_ftell(pb); - + if (!track) { /* no media --> data handler */ hdlr = "dhlr"; hdlr_type = "url "; @@ -662,7 +662,7 @@ descr = "SoundHandler"; } } - + put_be32(pb, 0); /* size */ put_tag(pb, "hdlr"); put_be32(pb, 0); /* Version & flags */ @@ -699,7 +699,7 @@ put_be32(pb, 0); /* Version & flags */ put_be32(pb, track->time); /* creation time */ put_be32(pb, track->time); /* modification time */ - put_be32(pb, track->timescale); /* time scale (sample rate for audio) */ + put_be32(pb, track->timescale); /* time scale (sample rate for audio) */ put_be32(pb, track->trackDuration); /* duration */ put_be16(pb, 0); /* language, 0 = english */ put_be16(pb, 0); /* reserved (quality) */ @@ -805,10 +805,10 @@ put_be32(pb, 0); /* size */ put_tag(pb, "trak"); mov_write_tkhd_tag(pb, track); - if (track->mode == MODE_PSP) + if (track->mode == MODE_PSP) mov_write_edts_tag(pb, track); // PSP Movies require edts box mov_write_mdia_tag(pb, track); - if (track->mode == MODE_PSP) + if (track->mode == MODE_PSP) mov_write_uuid_tag_psp(pb,track); // PSP Movies require this uuid box return updateSize(pb, pos); } @@ -1078,7 +1078,7 @@ int size = 0; // only save meta tag if required - if ( s->title[0] || s->author[0] || s->album[0] || s->year || + if ( s->title[0] || s->author[0] || s->album[0] || s->year || s->comment[0] || s->genre[0] || s->track ) { int pos = url_ftell(pb); put_be32(pb, 0); /* size */ @@ -1090,7 +1090,7 @@ } return size; } - + static int mov_write_udta_tag(ByteIOContext *pb, MOVContext* mov, AVFormatContext *s) { @@ -1196,7 +1196,7 @@ } } - mov->tracks[i].trackDuration = + mov->tracks[i].trackDuration = mov->tracks[i].sampleCount * mov->tracks[i].sampleDuration; mov->tracks[i].time = mov->time; mov->tracks[i].trackID = i+1; @@ -1217,7 +1217,7 @@ int mov_write_mdat_tag(ByteIOContext *pb, MOVContext* mov) { - mov->mdat_pos = url_ftell(pb); + mov->mdat_pos = url_ftell(pb); put_be32(pb, 0); /* size placeholder*/ put_tag(pb, "mdat"); return 0; @@ -1258,7 +1258,7 @@ { int AudioRate = s->streams[1]->codec->sample_rate; int FrameRate = ((s->streams[0]->codec->time_base.den) * (0x10000))/ (s->streams[0]->codec->time_base.num); - + //printf("audiorate = %d\n",AudioRate); //printf("framerate = %d / %d = 0x%x\n",s->streams[0]->codec->time_base.den,s->streams[0]->codec->time_base.num,FrameRate); @@ -1300,7 +1300,7 @@ put_be32(pb, 0x0 ); put_be32(pb, 0xc0 ); put_be32(pb, 0xc0 ); - put_be32(pb, FrameRate); // was 0xefc29 + put_be32(pb, FrameRate); // was 0xefc29 put_be32(pb, FrameRate ); // was 0xefc29 put_be16(pb, s->streams[0]->codec->width); put_be16(pb, s->streams[0]->codec->height); @@ -1396,7 +1396,7 @@ } else if(enc->codec_id == CODEC_ID_PCM_S16BE || enc->codec_id == CODEC_ID_PCM_S16LE) { samplesInChunk = size/(2*enc->channels); - } + } else { samplesInChunk = 1; } @@ -1415,7 +1415,7 @@ id = trk->entry % MOV_INDEX_CLUSTER_SIZE; if (trk->ents_allocated <= trk->entry) { - trk->cluster = av_realloc(trk->cluster, (cl+1)*sizeof(void*)); + trk->cluster = av_realloc(trk->cluster, (cl+1)*sizeof(void*)); if (!trk->cluster) return -1; trk->cluster[cl] = av_malloc(MOV_INDEX_CLUSTER_SIZE*sizeof(MOVIentry));
--- a/mp3.c Sat Dec 17 17:57:03 2005 +0000 +++ b/mp3.c Sat Dec 17 18:14:38 2005 +0000 @@ -1,4 +1,4 @@ -/* +/* * MP3 encoder and decoder * Copyright (c) 2003 Fabrice Bellard. * @@ -166,7 +166,7 @@ (buf[9] & 0x80) == 0); } -static void id3_get_string(char *str, int str_size, +static void id3_get_string(char *str, int str_size, const uint8_t *buf, int buf_size) { int i, c; @@ -189,7 +189,7 @@ { char str[5]; int genre; - + if (!(buf[0] == 'T' && buf[1] == 'A' && buf[2] == 'G')) @@ -254,7 +254,7 @@ st->codec->codec_type = CODEC_TYPE_AUDIO; st->codec->codec_id = CODEC_ID_MP3; st->need_parsing = 1; - + /* try to get the TAG */ if (!url_is_streamed(&s->pb)) { /* XXX: change that */ @@ -294,7 +294,7 @@ { int ret, size; // AVStream *st = s->streams[0]; - + size= MP3_PACKET_SIZE; ret= av_get_packet(&s->pb, pkt, size); @@ -394,7 +394,7 @@ av_register_output_format(&mp2_oformat); #ifdef CONFIG_MP3LAME av_register_output_format(&mp3_oformat); -#endif +#endif #endif //CONFIG_MUXERS return 0; }
--- a/mpeg.c Sat Dec 17 17:57:03 2005 +0000 +++ b/mpeg.c Sat Dec 17 18:14:38 2005 +0000 @@ -77,7 +77,7 @@ #define PACKET_START_CODE_MASK ((unsigned int)0xffffff00) #define PACKET_START_CODE_PREFIX ((unsigned int)0x00000100) #define ISO_11172_END_CODE ((unsigned int)0x000001b9) - + /* mpeg2 */ #define PROGRAM_STREAM_MAP 0x1bc #define PRIVATE_STREAM_1 0x1bd @@ -114,12 +114,12 @@ static AVOutputFormat mpeg2svcd_mux; static AVOutputFormat mpeg2dvd_mux; -static int put_pack_header(AVFormatContext *ctx, +static int put_pack_header(AVFormatContext *ctx, uint8_t *buf, int64_t timestamp) { MpegMuxContext *s = ctx->priv_data; PutBitContext pb; - + init_put_bits(&pb, buf, 128); put_bits(&pb, 32, PACK_START_CODE); @@ -161,7 +161,7 @@ put_bits(&pb, 32, SYSTEM_HEADER_START_CODE); put_bits(&pb, 16, 0); put_bits(&pb, 1, 1); - + put_bits(&pb, 22, s->mux_rate); /* maximum bit rate of the multiplexed stream */ put_bits(&pb, 1, 1); /* marker */ if (s->is_vcd && only_for_stream_id==VIDEO_ID) { @@ -172,13 +172,13 @@ if (s->is_vcd) { /* see VCD standard, p. IV-7*/ - put_bits(&pb, 1, 0); + put_bits(&pb, 1, 0); put_bits(&pb, 1, 1); } else { put_bits(&pb, 1, 0); /* variable bitrate*/ put_bits(&pb, 1, 0); /* non constrainted bit stream */ } - + if (s->is_vcd || s->is_dvd) { /* see VCD standard p IV-7 */ put_bits(&pb, 1, 1); /* audio locked */ @@ -195,24 +195,24 @@ put_bits(&pb, 5, 0); } else put_bits(&pb, 5, s->video_bound); - + if (s->is_dvd) { put_bits(&pb, 1, 0); /* packet_rate_restriction_flag */ put_bits(&pb, 7, 0x7f); /* reserved byte */ } else put_bits(&pb, 8, 0xff); /* reserved byte */ - + /* DVD-Video Stream_bound entries - id (0xB9) video, maximum P-STD for stream 0xE0. (P-STD_buffer_bound_scale = 1) - id (0xB8) audio, maximum P-STD for any MPEG audio (0xC0 to 0xC7) streams. If there are none set to 4096 (32x128). (P-STD_buffer_bound_scale = 0) - id (0xBD) private stream 1 (audio other than MPEG and subpictures). (P-STD_buffer_bound_scale = 1) + id (0xB9) video, maximum P-STD for stream 0xE0. (P-STD_buffer_bound_scale = 1) + id (0xB8) audio, maximum P-STD for any MPEG audio (0xC0 to 0xC7) streams. If there are none set to 4096 (32x128). (P-STD_buffer_bound_scale = 0) + id (0xBD) private stream 1 (audio other than MPEG and subpictures). (P-STD_buffer_bound_scale = 1) id (0xBF) private stream 2, NAV packs, set to 2x1024. */ if (s->is_dvd) { - + int P_STD_max_video = 0; int P_STD_max_mpeg_audio = 0; int P_STD_max_mpeg_PS1 = 0; - + for(i=0;i<ctx->nb_streams;i++) { StreamInfo *stream = ctx->streams[i]->priv_data; @@ -257,7 +257,7 @@ private_stream_coded = 0; for(i=0;i<ctx->nb_streams;i++) { StreamInfo *stream = ctx->streams[i]->priv_data; - + /* For VCDs, only include the stream info for the stream that the pack which contains this system belongs to. @@ -334,15 +334,15 @@ s->is_svcd = (ctx->oformat == &mpeg2svcd_mux); s->is_mpeg2 = (ctx->oformat == &mpeg2vob_mux || ctx->oformat == &mpeg2svcd_mux || ctx->oformat == &mpeg2dvd_mux); s->is_dvd = (ctx->oformat == &mpeg2dvd_mux); - + if(ctx->packet_size) s->packet_size = ctx->packet_size; else s->packet_size = 2048; - + s->vcd_padding_bytes_written = 0; s->vcd_padding_bitrate=0; - + s->audio_bound = 0; s->video_bound = 0; mpa_id = AUDIO_ID; @@ -386,7 +386,7 @@ /* This value HAS to be used for VCD (see VCD standard, p. IV-7). Right now it is also used for everything else.*/ - stream->max_buffer_size = 4 * 1024; + stream->max_buffer_size = 4 * 1024; s->audio_bound++; break; case CODEC_TYPE_VIDEO: @@ -397,11 +397,11 @@ stream->max_buffer_size = 230*1024; //FIXME this is probably too small as default #if 0 /* see VCD standard, p. IV-7*/ - stream->max_buffer_size = 46 * 1024; + stream->max_buffer_size = 46 * 1024; else /* This value HAS to be used for SVCD (see SVCD standard, p. 26 V.2.3.2). Right now it is also used for everything else.*/ - stream->max_buffer_size = 230 * 1024; + stream->max_buffer_size = 230 * 1024; #endif s->video_bound++; break; @@ -426,10 +426,10 @@ codec_rate= st->codec->rc_max_rate; else codec_rate= st->codec->bit_rate; - + if(!codec_rate) codec_rate= (1<<21)*8*50/ctx->nb_streams; - + bitrate += codec_rate; if (stream->id==AUDIO_ID) @@ -437,7 +437,7 @@ else if (stream->id==VIDEO_ID) video_bitrate += codec_rate; } - + if(ctx->mux_rate){ s->mux_rate= (ctx->mux_rate + (8 * 50) - 1) / (8 * 50); } else { @@ -472,11 +472,11 @@ overhead_rate = ((audio_bitrate / 8.0) / 2279) * (2324 - 2279); overhead_rate += ((video_bitrate / 8.0) / 2294) * (2324 - 2294); overhead_rate *= 8; - + /* Add padding so that the full bitrate is 2324*75 bytes/sec */ s->vcd_padding_bitrate = 2324 * 75 * 8 - (bitrate + overhead_rate); } - + if (s->is_vcd || s->is_mpeg2) /* every packet */ s->pack_header_freq = 1; @@ -487,7 +487,7 @@ /* the above seems to make pack_header_freq zero sometimes */ if (s->pack_header_freq == 0) s->pack_header_freq = 1; - + if (s->is_mpeg2) /* every 200 packets. Need to look at the spec. */ s->system_header_freq = s->pack_header_freq * 40; @@ -498,7 +498,7 @@ s->system_header_freq = 0x7fffffff; else s->system_header_freq = s->pack_header_freq * 5; - + for(i=0;i<ctx->nb_streams;i++) { stream = ctx->streams[i]->priv_data; stream->packet_number = 0; @@ -515,9 +515,9 @@ static inline void put_timestamp(ByteIOContext *pb, int id, int64_t timestamp) { - put_byte(pb, - (id << 4) | - (((timestamp >> 30) & 0x07) << 1) | + put_byte(pb, + (id << 4) | + (((timestamp >> 30) & 0x07) << 1) | 1); put_be16(pb, (uint16_t)((((timestamp >> 15) & 0x7fff) << 1) | 1)); put_be16(pb, (uint16_t)((((timestamp) & 0x7fff) << 1) | 1)); @@ -534,7 +534,7 @@ if (s->vcd_padding_bitrate > 0 && pts!=AV_NOPTS_VALUE) { int64_t full_pad_bytes; - + full_pad_bytes = (int64_t)((s->vcd_padding_bitrate * (pts / 90000.0)) / 8.0); //FIXME this is wrong pad_bytes = (int) (full_pad_bytes - s->vcd_padding_bytes_written); @@ -564,22 +564,22 @@ buf_index = 0; if (((s->packet_number % s->pack_header_freq) == 0)) { /* pack header size */ - if (s->is_mpeg2) + if (s->is_mpeg2) buf_index += 14; else buf_index += 12; - + if (s->is_vcd) { /* there is exactly one system header for each stream in a VCD MPEG, One in the very first video packet and one in the very first audio packet (see VCD standard p. IV-7 and IV-8).*/ - + if (stream->packet_number==0) /* The system headers refer only to the stream they occur in, so they have a constant size.*/ buf_index += 15; - } else { + } else { if ((s->packet_number % s->system_header_freq) == 0) buf_index += s->system_header_size; } @@ -588,7 +588,7 @@ if ((s->is_vcd && stream->packet_number==0) || (s->is_svcd && s->packet_number==0)) /* the first pack of each stream contains only the pack header, - the system header and some padding (see VCD standard p. IV-6) + the system header and some padding (see VCD standard p. IV-6) Add the padding size, so that the actual payload becomes 0.*/ buf_index += s->packet_size - buf_index; else { @@ -610,7 +610,7 @@ if (!s->is_mpeg2) buf_index++; } - + if (stream->id < 0xc0) { /* AC3/LPCM private data header */ buf_index += 4; @@ -630,7 +630,7 @@ each audio packet (see standard p. IV-8).*/ buf_index+=20; } - return s->packet_size - buf_index; + return s->packet_size - buf_index; } #endif @@ -639,7 +639,7 @@ { MpegMuxContext *s = ctx->priv_data; int i; - + put_be32(pb, PADDING_STREAM); put_be16(pb, packet_bytes - 6); if (!s->is_mpeg2) { @@ -656,7 +656,7 @@ int nb_frames=0; PacketDesc *pkt_desc= stream->premux_packet; - while(len>0){ + while(len>0){ if(pkt_desc->size == pkt_desc->unwritten_size) nb_frames++; len -= pkt_desc->unwritten_size; @@ -667,7 +667,7 @@ } /* flush the packet on stream stream_index */ -static int flush_packet(AVFormatContext *ctx, int stream_index, +static int flush_packet(AVFormatContext *ctx, int stream_index, int64_t pts, int64_t dts, int64_t scr, int trailer_size) { MpegMuxContext *s = ctx->priv_data; @@ -681,11 +681,11 @@ int pes_flags; int general_pack = 0; /*"general" pack without data specific to one stream?*/ int nb_frames; - + id = stream->id; - + #if 0 - printf("packet ID=%2x PTS=%0.3f\n", + printf("packet ID=%2x PTS=%0.3f\n", id, pts / 90000.0); #endif @@ -701,7 +701,7 @@ /* there is exactly one system header for each stream in a VCD MPEG, One in the very first video packet and one in the very first audio packet (see VCD standard p. IV-7 and IV-8).*/ - + if (stream->packet_number==0) { size = put_system_header(ctx, buf_ptr, id); buf_ptr += size; @@ -771,7 +771,7 @@ /* The VCD standard demands that 20 zero bytes follow each audio pack (see standard p. IV-8).*/ zero_trail_bytes += 20; - + if ((s->is_vcd && stream->packet_number==0) || (s->is_svcd && s->packet_number==0)) { /* for VCD the first pack of each stream contains only the pack header, @@ -791,7 +791,7 @@ /* packet header size */ packet_size -= 6; - + /* packet header */ if (s->is_mpeg2) { header_len = 3; @@ -829,7 +829,7 @@ // first byte doesnt fit -> reset pts/dts + stuffing if(payload_size <= trailer_size && pts != AV_NOPTS_VALUE){ int timestamp_len=0; - if(dts != pts) + if(dts != pts) timestamp_len += 5; if(pts != AV_NOPTS_VALUE) timestamp_len += s->is_mpeg2 ? 5 : 4; @@ -865,13 +865,13 @@ payload_size -= stuffing_size; stuffing_size = 0; } - + nb_frames= get_nb_frames(ctx, stream, payload_size - stuffing_size); put_be32(&ctx->pb, startcode); put_be16(&ctx->pb, packet_size); - + if (!s->is_mpeg2) for(i=0;i<stuffing_size;i++) put_byte(&ctx->pb, 0xff); @@ -901,11 +901,11 @@ put_timestamp(&ctx->pb, (pes_flags & 0x40) ? 0x03 : 0x02, pts); if (pes_flags & 0x40) /*write dts*/ put_timestamp(&ctx->pb, 0x01, dts); - + if (pes_flags & 0x01) { /*write pes extension*/ put_byte(&ctx->pb, 0x10); /* flags */ - /* P-STD buffer info */ + /* P-STD buffer info */ if (id == AUDIO_ID) put_be16(&ctx->pb, 0x4000 | stream->max_buffer_size/128); else @@ -959,13 +959,13 @@ } if (pad_packet_bytes > 0) - put_padding_packet(ctx,&ctx->pb, pad_packet_bytes); + put_padding_packet(ctx,&ctx->pb, pad_packet_bytes); for(i=0;i<zero_trail_bytes;i++) put_byte(&ctx->pb, 0x00); - + put_flush_packet(&ctx->pb); - + s->packet_number++; /* only increase the stream packet number if this pack actually contains @@ -973,7 +973,7 @@ or some data.*/ if (!general_pack) stream->packet_number++; - + return payload_size - stuffing_size; } @@ -992,9 +992,9 @@ put_byte(&ctx->pb, 0); s->vcd_padding_bytes_written += s->packet_size; - + put_flush_packet(&ctx->pb); - + /* increasing the packet number is correct. The SCR of the following packs is calculated from the packet_number and it has to include the padding sector (it represents the sector index, not the MPEG pack index) @@ -1021,7 +1021,7 @@ scr = 36000 + s->packet_number * 1200; return scr; -} +} #endif static int remove_decoded_packets(AVFormatContext *ctx, int64_t scr){ @@ -1032,9 +1032,9 @@ AVStream *st = ctx->streams[i]; StreamInfo *stream = st->priv_data; PacketDesc *pkt_desc= stream->predecode_packet; - + while(pkt_desc && scr > pkt_desc->dts){ //FIXME > vs >= - if(stream->buffer_index < pkt_desc->size || + if(stream->buffer_index < pkt_desc->size || stream->predecode_packet == stream->premux_packet){ av_log(ctx, AV_LOG_ERROR, "buffer underflow\n"); break; @@ -1045,7 +1045,7 @@ av_freep(&pkt_desc); } } - + return 0; } @@ -1081,17 +1081,17 @@ if(space < s->packet_size && !ignore_constraints) continue; - + if(next_pkt && next_pkt->dts - scr > max_delay) continue; - + if(rel_space > best_score){ best_score= rel_space; best_i = i; avail_space= space; } } - + if(best_i < 0){ int64_t best_dts= INT64_MAX; @@ -1104,7 +1104,7 @@ } #if 0 - av_log(ctx, AV_LOG_DEBUG, "bumping scr, scr:%f, dts:%f\n", + av_log(ctx, AV_LOG_DEBUG, "bumping scr, scr:%f, dts:%f\n", scr/90000.0, best_dts/90000.0); #endif if(best_dts == INT64_MAX) @@ -1121,14 +1121,14 @@ } assert(best_i >= 0); - + st = ctx->streams[best_i]; stream = st->priv_data; - + assert(fifo_size(&stream->fifo, stream->fifo.rptr) > 0); assert(avail_space >= s->packet_size || ignore_constraints); - + timestamp_packet= stream->premux_packet; if(timestamp_packet->unwritten_size == timestamp_packet->size){ trailer_size= 0; @@ -1155,17 +1155,17 @@ s->last_scr += s->packet_size*90000LL / (s->mux_rate*50LL); //FIXME rounding and first few bytes of each packet } } - + stream->buffer_index += es_size; s->last_scr += s->packet_size*90000LL / (s->mux_rate*50LL); //FIXME rounding and first few bytes of each packet - + while(stream->premux_packet && stream->premux_packet->unwritten_size <= es_size){ es_size -= stream->premux_packet->unwritten_size; stream->premux_packet= stream->premux_packet->next; } if(es_size) stream->premux_packet->unwritten_size -= es_size; - + if(remove_decoded_packets(ctx, s->last_scr) < 0) return -1; @@ -1184,7 +1184,7 @@ PacketDesc *pkt_desc; const int preload= av_rescale(ctx->preload, 90000, AV_TIME_BASE); const int is_iframe = st->codec->codec_type == CODEC_TYPE_VIDEO && (pkt->flags & PKT_FLAG_KEY); - + pts= pkt->pts; dts= pkt->dts; @@ -1220,7 +1220,7 @@ for(;;){ int ret= output_packet(ctx, 0); - if(ret<=0) + if(ret<=0) return ret; } } @@ -1230,10 +1230,10 @@ // MpegMuxContext *s = ctx->priv_data; StreamInfo *stream; int i; - + for(;;){ int ret= output_packet(ctx, 1); - if(ret<0) + if(ret<0) return ret; else if(ret==0) break; @@ -1323,7 +1323,7 @@ return pts; } -static int find_next_start_code(ByteIOContext *pb, int *size_ptr, +static int find_next_start_code(ByteIOContext *pb, int *size_ptr, uint32_t *header_state) { unsigned int state, v; @@ -1388,7 +1388,7 @@ /** * Extracts stream types from a program stream map * According to ISO/IEC 13818-1 ('MPEG-2 Systems') table 2-35 - * + * * @return number of bytes occupied by PSM in the bitstream */ static long mpegps_psm_parse(MpegDemuxContext *m, ByteIOContext *pb) @@ -1419,11 +1419,11 @@ return 2 + psm_length; } -/* read the next PES header. Return its position in ppos +/* read the next PES header. Return its position in ppos (if not NULL), and its start code, pts and dts. */ static int mpegps_read_pes_header(AVFormatContext *s, - int64_t *ppos, int *pstart_code, + int64_t *ppos, int *pstart_code, int64_t *ppts, int64_t *pdts) { MpegDemuxContext *m = s->priv_data; @@ -1454,7 +1454,7 @@ mpegps_psm_parse(m, &s->pb); goto redo; } - + /* find matching stream */ if (!((startcode >= 0x1c0 && startcode <= 0x1df) || (startcode >= 0x1e0 && startcode <= 0x1ef) || @@ -1473,7 +1473,7 @@ c = get_byte(&s->pb); len--; /* XXX: for mpeg1, should test only bit 7 */ - if (c != 0xff) + if (c != 0xff) break; } if ((c & 0xc0) == 0x40) { @@ -1552,7 +1552,7 @@ } } } - + *pstart_code = startcode; *ppts = pts; *pdts = dts; @@ -1571,7 +1571,7 @@ len = mpegps_read_pes_header(s, &dummy_pos, &startcode, &pts, &dts); if (len < 0) return len; - + /* now find stream */ for(i=0;i<s->nb_streams;i++) { st = s->streams[i]; @@ -1632,7 +1632,7 @@ } /* no stream found: add a new stream */ st = av_new_stream(s, startcode); - if (!st) + if (!st) goto skip; st->codec->codec_type = type; st->codec->codec_id = codec_id; @@ -1675,7 +1675,7 @@ return 0; } -static int64_t mpegps_read_dts(AVFormatContext *s, int stream_index, +static int64_t mpegps_read_dts(AVFormatContext *s, int stream_index, int64_t *ppos, int64_t pos_limit) { int len, startcode; @@ -1694,7 +1694,7 @@ #endif return AV_NOPTS_VALUE; } - if (startcode == s->streams[stream_index]->id && + if (startcode == s->streams[stream_index]->id && dts != AV_NOPTS_VALUE) { break; }
--- a/mpegts.c Sat Dec 17 17:57:03 2005 +0000 +++ b/mpegts.c Sat Dec 17 18:14:38 2005 +0000 @@ -92,7 +92,7 @@ int64_t cur_pcr; int pcr_incr; int pcr_pid; - + /* data needed to handle file based ts */ int stop_parse; /* stop parsing loop */ AVPacket *pkt; /* packet containing av data */ @@ -103,7 +103,7 @@ MpegTSFilter *sdt_filter; int nb_services; MpegTSService **services; - + /* set service context (XXX: allocated it ?) */ SetServiceCallback *set_service_cb; void *set_service_opaque; @@ -119,7 +119,7 @@ { MpegTSSectionFilter *tss = &tss1->u.section_filter; int len; - + if (is_start) { memcpy(tss->section_buf, buf, buf_size); tss->section_index = buf_size; @@ -151,21 +151,21 @@ } } -MpegTSFilter *mpegts_open_section_filter(MpegTSContext *ts, unsigned int pid, +MpegTSFilter *mpegts_open_section_filter(MpegTSContext *ts, unsigned int pid, SectionCallback *section_cb, void *opaque, int check_crc) { MpegTSFilter *filter; MpegTSSectionFilter *sec; - + #ifdef DEBUG_SI printf("Filter: pid=0x%x\n", pid); #endif if (pid >= NB_PID_MAX || ts->pids[pid]) return NULL; filter = av_mallocz(sizeof(MpegTSFilter)); - if (!filter) + if (!filter) return NULL; ts->pids[pid] = filter; filter->type = MPEGTS_SECTION; @@ -183,7 +183,7 @@ return filter; } -MpegTSFilter *mpegts_open_pes_filter(MpegTSContext *ts, unsigned int pid, +MpegTSFilter *mpegts_open_pes_filter(MpegTSContext *ts, unsigned int pid, PESCallback *pes_cb, void *opaque) { @@ -193,7 +193,7 @@ if (pid >= NB_PID_MAX || ts->pids[pid]) return NULL; filter = av_mallocz(sizeof(MpegTSFilter)); - if (!filter) + if (!filter) return NULL; ts->pids[pid] = filter; filter->type = MPEGTS_PES; @@ -250,11 +250,11 @@ if (size < (TS_FEC_PACKET_SIZE * 5 + 1)) return -1; - + score = analyze(buf, size, TS_PACKET_SIZE, NULL); fec_score= analyze(buf, size, TS_FEC_PACKET_SIZE, NULL); // av_log(NULL, AV_LOG_DEBUG, "score: %d, fec_score: %d \n", score, fec_score); - + if (score > fec_score) return TS_PACKET_SIZE; else if(score < fec_score) return TS_FEC_PACKET_SIZE; else return -1; @@ -318,7 +318,7 @@ return str; } -static int parse_section_header(SectionHeader *h, +static int parse_section_header(SectionHeader *h, const uint8_t **pp, const uint8_t *p_end) { int val; @@ -347,13 +347,13 @@ return 0; } -static MpegTSService *new_service(MpegTSContext *ts, int sid, +static MpegTSService *new_service(MpegTSContext *ts, int sid, char *provider_name, char *name) { MpegTSService *service; #ifdef DEBUG_SI - printf("new_service: sid=0x%04x provider='%s' name='%s'\n", + printf("new_service: sid=0x%04x provider='%s' name='%s'\n", sid, provider_name, name); #endif @@ -378,7 +378,7 @@ int desc_list_len, desc_len, desc_tag; int comp_page = 0, anc_page = 0; /* initialize to kill warnings */ char language[4]; - + #ifdef DEBUG_SI printf("PMT:\n"); av_hex_dump(stdout, (uint8_t *)section, section_len); @@ -535,7 +535,7 @@ /* NIT info */ } else { if (ts->req_sid == sid) { - ts->pmt_filter = mpegts_open_section_filter(ts, pmt_pid, + ts->pmt_filter = mpegts_open_section_filter(ts, pmt_pid, pmt_cb, ts, 1); goto found; } @@ -608,7 +608,7 @@ ts->set_service_cb = set_service_cb; ts->set_service_opaque = opaque; ts->req_sid = sid; - ts->pat_filter = mpegts_open_section_filter(ts, PAT_PID, + ts->pat_filter = mpegts_open_section_filter(ts, PAT_PID, pat_cb, ts, 1); } @@ -691,7 +691,7 @@ /* scan services in a transport stream by looking at the SDT */ void mpegts_scan_sdt(MpegTSContext *ts) { - ts->sdt_filter = mpegts_open_section_filter(ts, SDT_PID, + ts->sdt_filter = mpegts_open_section_filter(ts, SDT_PID, sdt_cb, ts, 1); } @@ -699,7 +699,7 @@ than nothing !) */ void mpegts_scan_pat(MpegTSContext *ts) { - ts->pat_filter = mpegts_open_section_filter(ts, PAT_PID, + ts->pat_filter = mpegts_open_section_filter(ts, PAT_PID, pat_scan_cb, ts, 1); } @@ -752,7 +752,7 @@ MpegTSContext *ts = pes->ts; const uint8_t *p; int len, code; - + if (is_start) { pes->state = MPEGTS_HEADER; pes->data_index = 0; @@ -973,7 +973,7 @@ cc = (packet[3] & 0xf); cc_ok = (tss->last_cc < 0) || ((((tss->last_cc + 1) & 0x0f) == cc)); tss->last_cc = cc; - + /* skip adaptation field */ afc = (packet[3] >> 4) & 3; p = packet + 4; @@ -989,7 +989,7 @@ p_end = packet + TS_PACKET_SIZE; if (p >= p_end) return; - + if (tss->type == MPEGTS_SECTION) { if (is_start) { /* pointer field present */ @@ -998,7 +998,7 @@ return; if (len && cc_ok) { /* write remaining section bytes */ - write_section_data(s, tss, + write_section_data(s, tss, p, len, 0); /* check whether filter has been closed */ if (!ts->pids[pid]) @@ -1006,17 +1006,17 @@ } p += len; if (p < p_end) { - write_section_data(s, tss, + write_section_data(s, tss, p, p_end - p, 1); } } else { if (cc_ok) { - write_section_data(s, tss, + write_section_data(s, tss, p, p_end - p, 0); } } } else { - tss->u.pes_filter.pes_cb(tss->u.pes_filter.opaque, + tss->u.pes_filter.pes_cb(tss->u.pes_filter.opaque, p, p_end - p, is_start); } } @@ -1096,14 +1096,14 @@ const int size= p->buf_size; int score, fec_score; #define CHECK_COUNT 10 - + if (size < (TS_FEC_PACKET_SIZE * CHECK_COUNT)) return -1; - + score = analyze(p->buf, TS_PACKET_SIZE *CHECK_COUNT, TS_PACKET_SIZE, NULL); fec_score= analyze(p->buf, TS_FEC_PACKET_SIZE*CHECK_COUNT, TS_FEC_PACKET_SIZE, NULL); // av_log(NULL, AV_LOG_DEBUG, "score: %d, fec_score: %d \n", score, fec_score); - + // we need a clear definition for the returned score otherwise things will become messy sooner or later if (score > fec_score && score > 6) return AVPROBE_SCORE_MAX + score - CHECK_COUNT; else if( fec_score > 6) return AVPROBE_SCORE_MAX + fec_score - CHECK_COUNT; @@ -1126,7 +1126,7 @@ /* return the 90 kHz PCR and the extension for the 27 MHz PCR. return (-1) if not available */ -static int parse_pcr(int64_t *ppcr_high, int *ppcr_low, +static int parse_pcr(int64_t *ppcr_high, int *ppcr_low, const uint8_t *packet) { int afc, len, flags; @@ -1188,12 +1188,12 @@ /* first do a scaning to get all the services */ url_fseek(pb, pos, SEEK_SET); mpegts_scan_sdt(ts); - + handle_packets(ts, MAX_SCAN_PACKETS); - + if (ts->nb_services <= 0) { /* no SDT found, we try to look at the PAT */ - + /* First remove the SDT filters from each PID */ int i; for (i=0; i < NB_PID_MAX; i++) { @@ -1202,17 +1202,17 @@ } url_fseek(pb, pos, SEEK_SET); mpegts_scan_pat(ts); - + handle_packets(ts, MAX_SCAN_PACKETS); } - + if (ts->nb_services <= 0) { /* raw transport stream */ ts->auto_guess = 1; s->ctx_flags |= AVFMTCTX_NOHEADER; goto do_pcr; } - + /* tune to first service found */ for(i=0; i<ts->nb_services && ts->set_service_ret; i++){ service = ts->services[i]; @@ -1220,20 +1220,20 @@ #ifdef DEBUG_SI printf("tuning to '%s'\n", service->name); #endif - + /* now find the info for the first service if we found any, otherwise try to filter all PATs */ - + url_fseek(pb, pos, SEEK_SET); mpegts_set_service(ts, sid, set_service_cb, ts); - + handle_packets(ts, MAX_SCAN_PACKETS); } /* if could not find service, exit */ - + if (ts->set_service_ret != 0) return -1; - + #ifdef DEBUG_SI printf("tuning done\n"); #endif @@ -1245,9 +1245,9 @@ int64_t pcrs[2], pcr_h; int packet_count[2]; uint8_t packet[TS_PACKET_SIZE]; - + /* only read packets */ - + do_pcr: st = av_new_stream(s, 0); if (!st) @@ -1255,7 +1255,7 @@ av_set_pts_info(st, 60, 1, 27000000); st->codec->codec_type = CODEC_TYPE_DATA; st->codec->codec_id = CODEC_ID_MPEG2TS; - + /* we iterate until we find two PCRs to estimate the bitrate */ pcr_pid = -1; nb_pcrs = 0; @@ -1326,7 +1326,7 @@ get_buffer(&s->pb, pcr_buf, 12); if (parse_pcr(&next_pcr_h, &next_pcr_l, pcr_buf) == 0) { /* XXX: not precise enough */ - ts->pcr_incr = ((next_pcr_h - pcr_h) * 300 + (next_pcr_l - pcr_l)) / + ts->pcr_incr = ((next_pcr_h - pcr_h) * 300 + (next_pcr_l - pcr_l)) / (i + 1); break; } @@ -1365,7 +1365,7 @@ return 0; } -static int64_t mpegts_get_pcr(AVFormatContext *s, int stream_index, +static int64_t mpegts_get_pcr(AVFormatContext *s, int stream_index, int64_t *ppos, int64_t pos_limit) { MpegTSContext *ts = s->priv_data; @@ -1423,7 +1423,7 @@ // pid = ((buf[1] & 0x1f) << 8) | buf[2]; if(buf[1] & 0x40) break; pos += ts->raw_packet_size; - } + } url_fseek(&s->pb, pos, SEEK_SET); return 0; @@ -1435,7 +1435,7 @@ MpegTSContext *mpegts_parse_open(AVFormatContext *s) { MpegTSContext *ts; - + ts = av_mallocz(sizeof(MpegTSContext)); if (!ts) return NULL;
--- a/mpegts.h Sat Dec 17 17:57:03 2005 +0000 +++ b/mpegts.h Sat Dec 17 18:14:38 2005 +0000 @@ -28,7 +28,7 @@ /* table ids */ #define PAT_TID 0x00 -#define PMT_TID 0x02 +#define PMT_TID 0x02 #define SDT_TID 0x42 /* descriptor ids */
--- a/mpegtsenc.c Sat Dec 17 17:57:03 2005 +0000 +++ b/mpegtsenc.c Sat Dec 17 18:14:38 2005 +0000 @@ -72,10 +72,10 @@ { register int i; unsigned int crc = 0xffffffff; - + for (i=0; i<len; i++) crc = (crc << 8) ^ crc_table[((crc >> 24) ^ *data++) & 0xff]; - + return crc; } @@ -103,7 +103,7 @@ buf[len - 3] = (crc >> 16) & 0xff; buf[len - 2] = (crc >> 8) & 0xff; buf[len - 1] = (crc) & 0xff; - + /* send each packet */ buf_ptr = buf; while (len > 0) { @@ -120,7 +120,7 @@ if (first) *q++ = 0; /* 0 offset */ len1 = TS_PACKET_SIZE - (q - packet); - if (len1 > len) + if (len1 > len) len1 = len; memcpy(q, buf_ptr, len1); q += len1; @@ -145,13 +145,13 @@ *q_ptr = q; } -int mpegts_write_section1(MpegTSSection *s, int tid, int id, +int mpegts_write_section1(MpegTSSection *s, int tid, int id, int version, int sec_num, int last_sec_num, uint8_t *buf, int len) { uint8_t section[1024], *q; unsigned int tot_len; - + tot_len = 3 + 5 + len + 4; /* check if not too big */ if (tot_len > 1024) @@ -165,7 +165,7 @@ *q++ = sec_num; *q++ = last_sec_num; memcpy(q, buf, len); - + mpegts_write_section(s, section, tot_len); return 0; } @@ -230,7 +230,7 @@ MpegTSService *service; uint8_t data[1012], *q; int i; - + q = data; for(i = 0; i < ts->nb_services; i++) { service = ts->services[i]; @@ -258,7 +258,7 @@ val = 0xf000 | (q - program_info_length_ptr - 2); program_info_length_ptr[0] = val >> 8; program_info_length_ptr[1] = val; - + for(i = 0; i < s->nb_streams; i++) { AVStream *st = s->streams[i]; MpegTSWriteStream *ts_st = st->priv_data; @@ -328,7 +328,7 @@ } mpegts_write_section1(&service->pmt, PMT_TID, service->sid, 0, 0, 0, data, q - data); -} +} /* NOTE: str == NULL is accepted for an empty string */ static void putstr8(uint8_t **q_ptr, const char *str) @@ -353,7 +353,7 @@ MpegTSService *service; uint8_t data[1012], *q, *desc_list_len_ptr, *desc_len_ptr; int i, running_status, free_ca_mode, val; - + q = data; put16(&q, ts->onid); *q++ = 0xff; @@ -376,7 +376,7 @@ desc_len_ptr[0] = q - desc_len_ptr - 1; /* fill descriptor length */ - val = (running_status << 13) | (free_ca_mode << 12) | + val = (running_status << 13) | (free_ca_mode << 12) | (q - desc_list_len_ptr - 2); desc_list_len_ptr[0] = val >> 8; desc_list_len_ptr[1] = val; @@ -385,9 +385,9 @@ data, q - data); } -static MpegTSService *mpegts_add_service(MpegTSWrite *ts, - int sid, - const char *provider_name, +static MpegTSService *mpegts_add_service(MpegTSWrite *ts, + int sid, + const char *provider_name, const char *name) { MpegTSService *service; @@ -418,14 +418,14 @@ AVStream *st; int i, total_bit_rate; const char *service_name; - + ts->tsid = DEFAULT_TSID; ts->onid = DEFAULT_ONID; /* allocate a single DVB service */ service_name = s->title; if (service_name[0] == '\0') service_name = DEFAULT_SERVICE_NAME; - service = mpegts_add_service(ts, DEFAULT_SID, + service = mpegts_add_service(ts, DEFAULT_SID, DEFAULT_PROVIDER_NAME, service_name); service->pmt.write_packet = section_write_packet; service->pmt.opaque = s; @@ -452,12 +452,12 @@ ts_st->pid = DEFAULT_START_PID + i; ts_st->payload_pts = AV_NOPTS_VALUE; /* update PCR pid by using the first video stream */ - if (st->codec->codec_type == CODEC_TYPE_VIDEO && + if (st->codec->codec_type == CODEC_TYPE_VIDEO && service->pcr_pid == 0x1fff) service->pcr_pid = ts_st->pid; total_bit_rate += st->codec->bit_rate; } - + /* if no video stream, use the first stream as PCR */ if (service->pcr_pid == 0x1fff && s->nb_streams > 0) { ts_st = s->streams[0]->priv_data; @@ -466,14 +466,14 @@ if (total_bit_rate <= 8 * 1024) total_bit_rate = 8 * 1024; - service->pcr_packet_freq = (total_bit_rate * PCR_RETRANS_TIME) / + service->pcr_packet_freq = (total_bit_rate * PCR_RETRANS_TIME) / (TS_PACKET_SIZE * 8 * 1000); - ts->sdt_packet_freq = (total_bit_rate * SDT_RETRANS_TIME) / + ts->sdt_packet_freq = (total_bit_rate * SDT_RETRANS_TIME) / (TS_PACKET_SIZE * 8 * 1000); - ts->pat_packet_freq = (total_bit_rate * PAT_RETRANS_TIME) / + ts->pat_packet_freq = (total_bit_rate * PAT_RETRANS_TIME) / (TS_PACKET_SIZE * 8 * 1000); #if 0 - printf("%d %d %d\n", + printf("%d %d %d\n", total_bit_rate, ts->sdt_packet_freq, ts->pat_packet_freq); #endif @@ -534,7 +534,7 @@ write_pcr = 0; if (ts_st->pid == ts_st->service->pcr_pid) { ts_st->service->pcr_packet_count++; - if (ts_st->service->pcr_packet_count >= + if (ts_st->service->pcr_packet_count >= ts_st->service->pcr_packet_freq) { ts_st->service->pcr_packet_count = 0; write_pcr = 1; @@ -575,7 +575,7 @@ } else if (st->codec->codec_type == CODEC_TYPE_AUDIO && (st->codec->codec_id == CODEC_ID_MP2 || st->codec->codec_id == CODEC_ID_MP3)) { - *q++ = 0xc0; + *q++ = 0xc0; } else { *q++ = 0xbd; if (st->codec->codec_type == CODEC_TYPE_SUBTITLE) { @@ -599,7 +599,7 @@ if (pts != AV_NOPTS_VALUE) { *q++ = 0x80; /* PTS only */ *q++ = 0x05; /* header len */ - val = (0x02 << 4) | + val = (0x02 << 4) | (((pts >> 30) & 0x07) << 1) | 1; *q++ = val; val = (((pts >> 15) & 0x7fff) << 1) | 1; @@ -629,7 +629,7 @@ /* stuffing already present: increase its size */ afc_len = buf[4] + 1; memmove(buf + 4 + afc_len + stuffing_len, - buf + 4 + afc_len, + buf + 4 + afc_len, header_len - (4 + afc_len)); buf[4] += stuffing_len; memset(buf + 4 + afc_len, 0xff, stuffing_len); @@ -665,7 +665,7 @@ mpegts_write_pes(s, st, buf, size, pkt->pts); return 0; } - + max_payload_size = DEFAULT_PES_PAYLOAD_SIZE; while (size > 0) { len = max_payload_size - ts_st->payload_index; @@ -705,7 +705,7 @@ } } put_flush_packet(&s->pb); - + for(i = 0; i < ts->nb_services; i++) { service = ts->services[i]; av_freep(&service->provider_name);
--- a/nsvdec.c Sat Dec 17 17:57:03 2005 +0000 +++ b/nsvdec.c Sat Dec 17 18:14:38 2005 +0000 @@ -46,8 +46,8 @@ /* * notes on the header (Francois Revol): - * - * It is followed by strings, then a table, but nothing tells + * + * It is followed by strings, then a table, but nothing tells * where the table begins according to (1). After checking faster.nsv, * I believe NVSf[16-19] gives the size of the strings data * (that is the offset of the data table after the header). @@ -56,15 +56,15 @@ * Then, about NSVf[12-15], faster.nsf has 179700. When veiwing it in VLC, * I noticed there was about 1 NVSs chunk/s, so I ran * strings faster.nsv | grep NSVs | wc -l - * which gave me 180. That leads me to think that NSVf[12-15] might be the + * which gave me 180. That leads me to think that NSVf[12-15] might be the * file length in milliseconds. * Let's try that: * for f in *.nsv; do HTIME="$(od -t x4 "$f" | head -1 | sed 's/.* //')"; echo "'$f' $((0x$HTIME))s = $((0x$HTIME/1000/60)):$((0x$HTIME/1000%60))"; done * except for nstrailer (which doesn't have an NSVf header), it repports correct time. * - * nsvtrailer.nsv (S1) does not have any NSVf header, only NSVs chunks, + * nsvtrailer.nsv (S1) does not have any NSVf header, only NSVs chunks, * so the header seems to not be mandatory. (for streaming). - * + * * index slice duration check (excepts nsvtrailer.nsv): * for f in [^n]*.nsv; do DUR="$(ffmpeg -i "$f" 2>/dev/null | grep 'NSVf duration' | cut -d ' ' -f 4)"; IC="$(ffmpeg -i "$f" 2>/dev/null | grep 'INDEX ENTRIES' | cut -d ' ' -f 2)"; echo "duration $DUR, slite time $(($DUR/$IC))"; done */ @@ -80,7 +80,7 @@ #ifdef DEBUG #define PRINT(_v) printf _v #else -#define PRINT(_v) +#define PRINT(_v) #endif #if 0 @@ -156,10 +156,10 @@ int frame_offset; /* current frame (video) or byte (audio) counter (used to compute the pts) */ int scale; - int rate; + int rate; int sample_size; /* audio only data */ int start; - + int new_frame_offset; /* temporary storage (used during seek) */ int cum_len; /* temporary storage (used during seek) */ } NSVStream; @@ -235,11 +235,11 @@ ByteIOContext *pb = &s->pb; uint32_t v = 0; int i; - + PRINT(("%s(), offset = %"PRId64", state = %d\n", __FUNCTION__, url_ftell(pb), nsv->state)); - + //nsv->state = NSV_UNSYNC; - + for (i = 0; i < NSV_MAX_RESYNC; i++) { if (url_feof(pb)) { PRINT(("NSV EOF\n")); @@ -253,7 +253,7 @@ PRINT(("NSV resync: [%d] = %02x\n", i, v & 0x0FF)); } */ - + if ((v & 0x0000ffff) == 0xefbe) { /* BEEF */ PRINT(("NSV resynced on BEEF after %d bytes\n", i+1)); nsv->state = NSV_FOUND_BEEF; @@ -270,7 +270,7 @@ nsv->state = NSV_FOUND_NSVS; return 0; } - + } PRINT(("NSV sync lost\n")); return -1; @@ -289,7 +289,7 @@ PRINT(("%s()\n", __FUNCTION__)); nsv->state = NSV_UNSYNC; /* in case we fail */ - + size = get_le32(pb); if (size < 28) return -1; @@ -307,11 +307,11 @@ strings_size = get_le32(pb); table_entries = get_le32(pb); table_entries_used = get_le32(pb); - PRINT(("NSV NSVf info-strings size: %d, table entries: %d, bis %d\n", + PRINT(("NSV NSVf info-strings size: %d, table entries: %d, bis %d\n", strings_size, table_entries, table_entries_used)); if (url_feof(pb)) return -1; - + PRINT(("NSV got header; filepos %"PRId64"\n", url_ftell(pb))); if (strings_size > 0) { @@ -354,7 +354,7 @@ } if (url_feof(pb)) return -1; - + PRINT(("NSV got infos; filepos %"PRId64"\n", url_ftell(pb))); if (table_entries_used > 0) { @@ -367,7 +367,7 @@ } PRINT(("NSV got index; filepos %"PRId64"\n", url_ftell(pb))); - + #ifdef DEBUG_DUMP_INDEX #define V(v) ((v<0x20 || v > 127)?'.':v) /* dump index */ @@ -380,15 +380,15 @@ PRINT(("NSV [0x%08lx][0x%08lx]: %02x %02x %02x %02x %02x %02x %02x %02x" "%c%c%c%c%c%c%c%c\n", nsv->nsvf_index_data[i], size + nsv->nsvf_index_data[i], - b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7], + b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7], V(b[0]), V(b[1]), V(b[2]), V(b[3]), V(b[4]), V(b[5]), V(b[6]), V(b[7]) )); } //url_fseek(pb, size, SEEK_SET); /* go back to end of header */ #undef V #endif - + url_fseek(pb, nsv->base_offset + size, SEEK_SET); /* required for dumbdriving-271.nsv (2 extra bytes) */ - + if (url_feof(pb)) return -1; nsv->state = NSV_HAS_READ_NSVF; @@ -424,7 +424,7 @@ print_tag("NSV NSVs atag", atag, 0); PRINT(("NSV NSVs vsize %dx%d\n", vwidth, vheight)); #endif - + /* XXX change to ap != NULL ? */ if (s->nb_streams == 0) { /* streams not yet published, let's do that */ nsv->vtag = vtag; @@ -466,7 +466,7 @@ st->codec->codec_id = codec_get_id(nsv_codec_audio_tags, atag); st->start_time = 0; // st->duration = nsv->duration; //FIXME - + st->need_parsing = 1; /* for PCM we will read a chunk later and put correct info */ /* XXX:FIXME */ //st->codec->channels = 2; //XXX:channels; @@ -502,7 +502,7 @@ nsv->state = NSV_UNSYNC; nsv->ahead[0].data = nsv->ahead[1].data = NULL; - + for (i = 0; i < NSV_MAX_RESYNC_TRIES; i++) { if (nsv_resync(s) < 0) return -1; @@ -518,7 +518,7 @@ return -1; /* now read the first chunk, so we can attempt to decode more info */ err = nsv_read_chunk(s, 1); - + PRINT(("parsed header\n")); return 0; } @@ -536,16 +536,16 @@ uint16_t asize; uint16_t auxsize; uint32_t auxtag; - + PRINT(("%s(%d)\n", __FUNCTION__, fill_header)); - + if (nsv->ahead[0].data || nsv->ahead[1].data) return 0; //-1; /* hey! eat what you've in your plate first! */ null_chunk_retry: if (url_feof(pb)) return -1; - + for (i = 0; i < NSV_MAX_RESYNC_TRIES && nsv->state < NSV_FOUND_NSVS && !err; i++) err = nsv_resync(s); if (err < 0) @@ -556,7 +556,7 @@ return err; if (nsv->state != NSV_HAS_READ_NSVS && nsv->state != NSV_FOUND_BEEF) return -1; - + auxcount = get_byte(pb); vsize = get_le16(pb); asize = get_le16(pb); @@ -567,29 +567,29 @@ for (i = 0; i < auxcount; i++) { auxsize = get_le16(pb); auxtag = get_le32(pb); - PRINT(("NSV aux data: '%c%c%c%c', %d bytes\n", - (auxtag & 0x0ff), - ((auxtag >> 8) & 0x0ff), + PRINT(("NSV aux data: '%c%c%c%c', %d bytes\n", + (auxtag & 0x0ff), + ((auxtag >> 8) & 0x0ff), ((auxtag >> 16) & 0x0ff), ((auxtag >> 24) & 0x0ff), auxsize)); url_fskip(pb, auxsize); vsize -= auxsize + sizeof(uint16_t) + sizeof(uint32_t); /* that's becoming braindead */ } - + if (url_feof(pb)) return -1; if (!vsize && !asize) { nsv->state = NSV_UNSYNC; goto null_chunk_retry; } - + /* map back streams to v,a */ if (s->streams[0]) st[s->streams[0]->id] = s->streams[0]; if (s->streams[1]) st[s->streams[1]->id] = s->streams[1]; - + if (vsize/* && st[NSV_ST_VIDEO]*/) { nst = st[NSV_ST_VIDEO]->priv_data; pkt = &nsv->ahead[NSV_ST_VIDEO]; @@ -628,7 +628,7 @@ channels = 1; st[NSV_ST_AUDIO]->codec->channels = channels; st[NSV_ST_AUDIO]->codec->sample_rate = samplerate; - av_set_pts_info(st[NSV_ST_AUDIO], 64, 1, + av_set_pts_info(st[NSV_ST_AUDIO], 64, 1, st[NSV_ST_AUDIO]->codec->sample_rate); PRINT(("NSV RAWAUDIO: bps %d, nchan %d, srate %d\n", bps, channels, samplerate)); } @@ -640,7 +640,7 @@ // pkt->dts /= nst->sample_size; nst->frame_offset += asize; // XXX: that's valid only for PCM !? } - + //pkt->flags |= PKT_FLAG_KEY; nsv->state = NSV_UNSYNC; return 0; @@ -653,13 +653,13 @@ int i, err = 0; PRINT(("%s()\n", __FUNCTION__)); - + /* in case we don't already have something to eat ... */ if (nsv->ahead[0].data == NULL && nsv->ahead[1].data == NULL) err = nsv_read_chunk(s, 0); if (err < 0) return err; - + /* now pick one of the plates */ for (i = 0; i < 2; i++) { if (nsv->ahead[i].data) { @@ -670,7 +670,7 @@ return pkt->size; } } - + /* this restaurant is not approvisionned :^] */ return -1; }
--- a/nut.c Sat Dec 17 17:57:03 2005 +0000 +++ b/nut.c Sat Dec 17 18:14:38 2005 +0000 @@ -42,11 +42,11 @@ //from /dev/random -#define MAIN_STARTCODE (0x7A561F5F04ADULL + (((uint64_t)('N'<<8) + 'M')<<48)) -#define STREAM_STARTCODE (0x11405BF2F9DBULL + (((uint64_t)('N'<<8) + 'S')<<48)) -#define KEYFRAME_STARTCODE (0xE4ADEECA4569ULL + (((uint64_t)('N'<<8) + 'K')<<48)) -#define INDEX_STARTCODE (0xDD672F23E64EULL + (((uint64_t)('N'<<8) + 'X')<<48)) -#define INFO_STARTCODE (0xAB68B596BA78ULL + (((uint64_t)('N'<<8) + 'I')<<48)) +#define MAIN_STARTCODE (0x7A561F5F04ADULL + (((uint64_t)('N'<<8) + 'M')<<48)) +#define STREAM_STARTCODE (0x11405BF2F9DBULL + (((uint64_t)('N'<<8) + 'S')<<48)) +#define KEYFRAME_STARTCODE (0xE4ADEECA4569ULL + (((uint64_t)('N'<<8) + 'K')<<48)) +#define INDEX_STARTCODE (0xDD672F23E64EULL + (((uint64_t)('N'<<8) + 'X')<<48)) +#define INFO_STARTCODE (0xAB68B596BA78ULL + (((uint64_t)('N'<<8) + 'I')<<48)) #define ID_STRING "nut/multimedia container\0" @@ -115,7 +115,7 @@ static void update(NUTContext *nut, int stream_index, int64_t frame_start, int frame_type, int frame_code, int key_frame, int size, int64_t pts){ StreamContext *stream= &nut->stream[stream_index]; - + stream->last_key_frame= key_frame; nut->packet_start[ frame_type ]= frame_start; stream->last_pts= pts; @@ -124,10 +124,10 @@ static void reset(AVFormatContext *s, int64_t global_ts){ NUTContext *nut = s->priv_data; int i; - + for(i=0; i<s->nb_streams; i++){ StreamContext *stream= &nut->stream[i]; - + stream->last_key_frame= 1; stream->last_pts= av_rescale(global_ts, stream->rate_num*(int64_t)nut->rate_den, stream->rate_den*(int64_t)nut->rate_num); @@ -163,7 +163,7 @@ for(key_frame=0; key_frame<2; key_frame++){ if(intra_only && keyframe_0_esc && key_frame==0) continue; - + { FrameCode *ft= &nut->frame_code[start2]; ft->flags= FLAG_KEY_FRAME*key_frame; @@ -258,7 +258,7 @@ static int get_str(ByteIOContext *bc, char *string, unsigned int maxlen){ unsigned int len= get_v(bc); - + if(len && maxlen) get_buffer(bc, string, FFMIN(len, maxlen)); while(len > maxlen){ @@ -268,7 +268,7 @@ if(maxlen) string[FFMIN(len, maxlen-1)]= 0; - + if(maxlen == len) return -1; else @@ -285,13 +285,13 @@ static uint64_t get_vb(ByteIOContext *bc){ uint64_t val=0; unsigned int i= get_v(bc); - + if(i>8) return UINT64_MAX; - + while(i--) val = (val<<8) + get_byte(bc); - + //av_log(NULL, AV_LOG_DEBUG, "get_vb()= %lld\n", val); return val; } @@ -344,7 +344,7 @@ } /** - * + * */ static int get_length(uint64_t val){ int i; @@ -356,7 +356,7 @@ static uint64_t find_any_startcode(ByteIOContext *bc, int64_t pos){ uint64_t state=0; - + if(pos >= 0) url_fseek(bc, pos, SEEK_SET); //note, this may fail if the stream isnt seekable, but that shouldnt matter, as in this case we simply start where we are currently @@ -416,7 +416,7 @@ */ static void put_str(ByteIOContext *bc, const char *string){ int len= strlen(string); - + put_v(bc, len); put_buffer(bc, string, len); } @@ -428,7 +428,7 @@ static void put_vb(ByteIOContext *bc, uint64_t val){ int i; - + for (i=8; val>>i; i+=8); put_v(bc, i>>3); @@ -439,19 +439,19 @@ #ifdef TRACE static inline void put_v_trace(ByteIOContext *bc, uint64_t v, char *file, char *func, int line){ printf("get_v %5lld / %llX in %s %s:%d\n", v, v, file, func, line); - + put_v(bc, v); } static inline void put_s_trace(ByteIOContext *bc, int64_t v, char *file, char *func, int line){ printf("get_s %5lld / %llX in %s %s:%d\n", v, v, file, func, line); - + put_s(bc, v); } static inline void put_vb_trace(ByteIOContext *bc, uint64_t v, char *file, char *func, int line){ printf("get_vb %5lld / %llX in %s %s:%d\n", v, v, file, func, line); - + put_vb(bc, v); } #define put_v(bc, v) put_v_trace(bc, v, __FILE__, __PRETTY_FUNCTION__, __LINE__) @@ -464,7 +464,7 @@ put_flush_packet(bc); nut->packet_start[2]= url_ftell(bc) - 8; nut->written_packet_size = max_size; - + /* packet header */ put_v(bc, nut->written_packet_size); /* forward ptr */ @@ -482,15 +482,15 @@ int64_t start= nut->packet_start[2]; int64_t cur= url_ftell(bc); int size= cur - start - get_length(nut->written_packet_size)/7 - 8; - + if(calculate_checksum) size += 4; - + if(size != nut->written_packet_size){ int i; assert( size <= nut->written_packet_size ); - + url_fseek(bc, start + 8, SEEK_SET); for(i=get_length(size); i < get_length(nut->written_packet_size); i+=7) put_byte(bc, 0x80); @@ -498,11 +498,11 @@ url_fseek(bc, cur, SEEK_SET); nut->written_packet_size= size; //FIXME may fail if multiple updates with differing sizes, as get_length may differ - + if(calculate_checksum) put_be32(bc, get_checksum(bc)); } - + return 0; } @@ -514,15 +514,15 @@ int i, j, tmp_time, tmp_flags,tmp_stream, tmp_mul, tmp_size, tmp_fields; nut->avf= s; - - nut->stream = + + nut->stream = av_mallocz(sizeof(StreamContext)*s->nb_streams); - + put_buffer(bc, ID_STRING, strlen(ID_STRING)); put_byte(bc, 0); nut->packet_start[2]= url_ftell(bc); - + /* main header */ put_be64(bc, MAIN_STARTCODE); put_packetheader(nut, bc, 120+5*256, 1); @@ -530,14 +530,14 @@ put_v(bc, s->nb_streams); put_v(bc, MAX_DISTANCE); put_v(bc, MAX_SHORT_DISTANCE); - + put_v(bc, nut->rate_num=1); put_v(bc, nut->rate_den=2); put_v(bc, nut->short_startcode=0x4EFE79); - + build_frame_code(s); assert(nut->frame_code['N'].flags == FLAG_INVALID); - + tmp_time= tmp_flags= tmp_stream= tmp_mul= tmp_size= /*tmp_res=*/ INT_MAX; for(i=0; i<256;){ tmp_fields=0; @@ -554,7 +554,7 @@ tmp_mul = nut->frame_code[i].size_mul; tmp_size = nut->frame_code[i].size_lsb; // tmp_res = nut->frame_code[i].res; - + for(j=0; i<256; j++,i++){ if(nut->frame_code[i].timestamp_delta != tmp_time ) break; if(nut->frame_code[i].flags != tmp_flags ) break; @@ -576,14 +576,14 @@ } update_packetheader(nut, bc, 0, 1); - + /* stream headers */ for (i = 0; i < s->nb_streams; i++) { int nom, denom, ssize; codec = s->streams[i]->codec; - + put_be64(bc, STREAM_STARTCODE); put_packetheader(nut, bc, 120 + codec->extradata_size, 1); put_v(bc, i /*s->streams[i]->index*/); @@ -606,7 +606,7 @@ } else put_vb(bc, 0); - + ff_parse_specific_params(codec, &nom, &ssize, &denom); nut->stream[i].rate_num= nom; @@ -624,14 +624,14 @@ put_v(bc, nut->stream[i].msb_timestamp_shift); put_v(bc, codec->has_b_frames); put_byte(bc, 0); /* flags: 0x1 - fixed_fps, 0x2 - index_present */ - + if(codec->extradata_size){ put_v(bc, 1); put_v(bc, codec->extradata_size); - put_buffer(bc, codec->extradata, codec->extradata_size); + put_buffer(bc, codec->extradata, codec->extradata_size); } put_v(bc, 0); /* end of codec specific headers */ - + switch(codec->codec_type) { case CODEC_TYPE_AUDIO: @@ -655,7 +655,7 @@ /* info header */ put_be64(bc, INFO_STARTCODE); put_packetheader(nut, bc, 30+strlen(s->author)+strlen(s->title)+ - strlen(s->comment)+strlen(s->copyright)+strlen(LIBAVFORMAT_IDENT), 1); + strlen(s->comment)+strlen(s->copyright)+strlen(LIBAVFORMAT_IDENT), 1); if (s->author[0]) { put_v(bc, 9); /* type */ @@ -681,12 +681,12 @@ put_v(bc, 13); /* type */ put_str(bc, LIBAVFORMAT_IDENT); } - + put_v(bc, 0); /* eof info */ update_packetheader(nut, bc, 0, 1); - + put_flush_packet(bc); - + return 0; } @@ -712,7 +712,7 @@ enc = s->streams[stream_index]->codec; key_frame = !!(pkt->flags & PKT_FLAG_KEY); - + frame_type=0; if(frame_start + size + 20 - FFMAX(nut->packet_start[1], nut->packet_start[2]) > MAX_DISTANCE) frame_type=2; @@ -745,7 +745,7 @@ flags= nut->frame_code[i].flags; assert(size_mul > size_lsb); - + if(stream_id_plus1 == 0) length+= get_length(stream_index); else if(stream_id_plus1 - 1 != stream_index) continue; @@ -764,7 +764,7 @@ if(full_pts && time_delta) continue; - + if(!time_delta){ length += get_length(coded_pts); }else{ @@ -809,11 +809,11 @@ if(size > MAX_DISTANCE){ assert(frame_type > 1); } - + put_buffer(bc, pkt->data, size); update(nut, stream_index, frame_start, frame_type, frame_code, key_frame, size, pts); - + return 0; } @@ -838,7 +838,7 @@ #endif put_flush_packet(bc); - + av_freep(&nut->stream); return 0; @@ -863,7 +863,7 @@ ByteIOContext *bc = &s->pb; uint64_t tmp; int i, j, tmp_stream, tmp_mul, tmp_time, tmp_size, count, tmp_res; - + get_packetheader(nut, bc, 1); tmp = get_v(bc); @@ -871,7 +871,7 @@ av_log(s, AV_LOG_ERROR, "bad version (%"PRId64")\n", tmp); return -1; } - + nut->stream_count = get_v(bc); if(nut->stream_count > MAX_STREAMS){ av_log(s, AV_LOG_ERROR, "too many streams\n"); @@ -886,7 +886,7 @@ av_log(s, AV_LOG_ERROR, "invalid short startcode %X\n", nut->short_startcode); return -1; } - + for(i=0; i<256;){ int tmp_flags = get_v(bc); int tmp_fields= get_v(bc); @@ -899,10 +899,10 @@ else tmp_res = 0; if(tmp_fields>5) count = get_v(bc); else count = tmp_mul - tmp_size; - - while(tmp_fields-- > 6) + + while(tmp_fields-- > 6) get_v(bc); - + if(count == 0 || i+count > 256){ av_log(s, AV_LOG_ERROR, "illegal count %d at %d\n", count, i); return -1; @@ -940,12 +940,12 @@ int class, nom, denom, stream_id; uint64_t tmp; AVStream *st; - + get_packetheader(nut, bc, 1); stream_id= get_v(bc); if(stream_id >= nut->stream_count || s->streams[stream_id]) return -1; - + st = av_new_stream(s, stream_id); if (!st) return AVERROR_NOMEM; @@ -993,10 +993,10 @@ if((unsigned)st->codec->extradata_size > (1<<30)) return -1; st->codec->extradata= av_mallocz(st->codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE); - get_buffer(bc, st->codec->extradata, st->codec->extradata_size); + get_buffer(bc, st->codec->extradata, st->codec->extradata_size); // url_fskip(bc, get_v(bc)); } - + if (st->codec->codec_type == CODEC_TYPE_VIDEO) /* VIDEO */ { st->codec->width = get_v(bc); @@ -1024,7 +1024,7 @@ static int decode_info_header(NUTContext *nut){ AVFormatContext *s= nut->avf; ByteIOContext *bc = &s->pb; - + get_packetheader(nut, bc, 1); for(;;){ @@ -1050,7 +1050,7 @@ get_str(bc, custom_name, sizeof(custom_name)); name= custom_name; } - + if(!strcmp(type, "v")){ get_v(bc); }else{ @@ -1081,7 +1081,7 @@ int inited_stream_count; nut->avf= s; - + /* main header */ pos=0; for(;;){ @@ -1093,8 +1093,8 @@ if(decode_main_header(nut) >= 0) break; } - - + + s->bit_rate = 0; nut->stream = av_malloc(sizeof(StreamContext)*nut->stream_count); @@ -1147,13 +1147,13 @@ if(frame_type) nut->packet_start[ frame_type ]= frame_start; //otherwise 1 goto 1 may happen - + flags= nut->frame_code[frame_code].flags; size_mul= nut->frame_code[frame_code].size_mul; size_lsb= nut->frame_code[frame_code].size_lsb; stream_id= nut->frame_code[frame_code].stream_id_plus1 - 1; time_delta= nut->frame_code[frame_code].timestamp_delta; - + if(stream_id==-1) stream_id= get_v(bc); if(stream_id >= s->nb_streams){ @@ -1189,9 +1189,9 @@ if(*key_frame_ret){ // av_log(s, AV_LOG_DEBUG, "stream:%d start:%lld pts:%lld length:%lld\n",stream_id, frame_start, av_pts, frame_start - nut->stream[stream_id].last_sync_pos); av_add_index_entry( - s->streams[stream_id], - frame_start, - pts, + s->streams[stream_id], + frame_start, + pts, frame_start - nut->stream[stream_id].last_sync_pos, AVINDEX_KEYFRAME); nut->stream[stream_id].last_sync_pos= frame_start; @@ -1202,7 +1202,7 @@ size= size_lsb; if(flags & FLAG_DATA_SIZE) size+= size_mul*get_v(bc); - + #ifdef TRACE av_log(s, AV_LOG_DEBUG, "fs:%lld fc:%d ft:%d kf:%d pts:%lld size:%d mul:%d lsb:%d flags:%d delta:%d\n", frame_start, frame_code, frame_type, *key_frame_ret, pts, size, size_mul, size_lsb, flags, time_delta); #endif @@ -1211,7 +1211,7 @@ av_log(s, AV_LOG_ERROR, "frame size too large\n"); return -1; } - + *stream_id_ret = stream_id; *pts_ret = pts; @@ -1225,7 +1225,7 @@ ByteIOContext *bc = &s->pb; int size, stream_id, key_frame, discard; int64_t pts, last_IP_pts; - + size= decode_frame_header(nut, &key_frame, &pts, &stream_id, frame_code, frame_type, frame_start); if(size < 0) return -1; @@ -1336,12 +1336,12 @@ url_fseek(bc, -8, SEEK_CUR); for(i=0; i<s->nb_streams; i++) nut->stream[i].last_sync_pos= url_ftell(bc); - + for(;;){ int frame_type=0; int64_t pos= url_ftell(bc); uint64_t tmp=0; - + if(pos > pos_limit || url_feof(bc)) return AV_NOPTS_VALUE; @@ -1370,13 +1370,13 @@ size= decode_frame_header(nut, &key_frame, &pts, &stream_id, frame_code, frame_type, pos); if(size < 0) goto resync; - + stream= &nut->stream[stream_id]; if(stream_id != stream_index || !key_frame || pos < *pos_arg){ url_fseek(bc, size, SEEK_CUR); break; } - + *pos_arg= pos; return pts; default:
--- a/ogg.c Sat Dec 17 17:57:03 2005 +0000 +++ b/ogg.c Sat Dec 17 18:14:38 2005 +0000 @@ -30,14 +30,14 @@ #ifdef CONFIG_MUXERS -static int ogg_write_header(AVFormatContext *avfcontext) +static int ogg_write_header(AVFormatContext *avfcontext) { OggContext *context = avfcontext->priv_data; - ogg_packet *op= &context->op; + ogg_packet *op= &context->op; int n; ogg_stream_init(&context->os, 31415); - + for(n = 0 ; n < avfcontext->nb_streams ; n++) { AVCodecContext *codec = avfcontext->streams[n]->codec; uint8_t *headers = codec->extradata; @@ -45,7 +45,7 @@ uint8_t *header_start[3]; int header_len[3]; int i, j; - + av_set_pts_info(avfcontext->streams[n], 60, 1, AV_TIME_BASE); for(j=1,i=0;i<2;++i, ++j) { @@ -75,7 +75,7 @@ context->header_handled = 0 ; } - + return 0 ; } @@ -108,14 +108,14 @@ op->granulepos= pts; /* correct the fields in the packet -- essential for streaming */ - - ogg_stream_packetin(&context->os, op); - + + ogg_stream_packetin(&context->os, op); + while(ogg_stream_pageout(&context->os, &og)) { put_buffer(&avfcontext->pb, og.header, og.header_len); - put_buffer(&avfcontext->pb, og.body, og.body_len); + put_buffer(&avfcontext->pb, og.body, og.body_len); put_flush_packet(&avfcontext->pb); - } + } op->packetno++; return 0; @@ -164,9 +164,9 @@ buf = ogg_sync_buffer(&context->oy, DECODER_BUFFER_SIZE) ; if(get_buffer(&avfcontext->pb, buf, DECODER_BUFFER_SIZE) <= 0) return 1 ; - ogg_sync_wrote(&context->oy, DECODER_BUFFER_SIZE) ; - } - + ogg_sync_wrote(&context->oy, DECODER_BUFFER_SIZE) ; + } + /* got a page. Feed it into the stream and get the packet */ if(ogg_stream_pagein(&context->os, &og) != 0) return 1 ; @@ -179,25 +179,25 @@ static int ogg_read_header(AVFormatContext *avfcontext, AVFormatParameters *ap) { OggContext *context = avfcontext->priv_data; - ogg_packet op ; + ogg_packet op ; char *buf ; ogg_page og ; AVStream *ast ; AVCodecContext *codec; uint8_t *p; int i; - + ogg_sync_init(&context->oy) ; buf = ogg_sync_buffer(&context->oy, DECODER_BUFFER_SIZE) ; if(get_buffer(&avfcontext->pb, buf, DECODER_BUFFER_SIZE) <= 0) return AVERROR_IO ; - - ogg_sync_wrote(&context->oy, DECODER_BUFFER_SIZE) ; + + ogg_sync_wrote(&context->oy, DECODER_BUFFER_SIZE) ; ogg_sync_pageout(&context->oy, &og) ; ogg_stream_init(&context->os, ogg_page_serialno(&og)) ; ogg_stream_pagein(&context->os, &og) ; - + /* currently only one vorbis stream supported */ ast = av_new_stream(avfcontext, 0) ; @@ -230,7 +230,7 @@ static int ogg_read_packet(AVFormatContext *avfcontext, AVPacket *pkt) { ogg_packet op ; - if(next_packet(avfcontext, &op)) + if(next_packet(avfcontext, &op)) return AVERROR_IO ; if(av_new_packet(pkt, op.bytes) < 0) return AVERROR_IO ;
--- a/ogg2.c Sat Dec 17 17:57:03 2005 +0000 +++ b/ogg2.c Sat Dec 17 18:14:38 2005 +0000 @@ -2,7 +2,7 @@ * Ogg bitstream support * Luca Barbato <lu_zero@gentoo.org> * Based on tcvp implementation - * + * */ /** @@ -503,7 +503,7 @@ ogg_stream_t *os; int idx = -1; - //Get an ogg packet + //Get an ogg packet do{ if (ogg_packet (s, &idx) < 0) return AVERROR_IO; @@ -643,7 +643,7 @@ ogg_read_packet, ogg_read_close, ogg_read_seek, -// ogg_read_timestamp, +// ogg_read_timestamp, .extensions = "ogg", };
--- a/oggparseflac.c Sat Dec 17 17:57:03 2005 +0000 +++ b/oggparseflac.c Sat Dec 17 18:14:38 2005 +0000 @@ -1,6 +1,6 @@ /* * Copyright (C) 2005 Matthieu CASTET - * + * * This library 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 @@ -45,7 +45,7 @@ return -1; skip_bits(&gb, 8 + 16); /* minor version + header count */ skip_bits(&gb, 4*8); /* "fLaC" */ - + /* METADATA_BLOCK_HEADER */ if (get_bits(&gb, 32) != FLAC_STREAMINFO_SIZE) return -1; @@ -54,7 +54,7 @@ st->codec->sample_rate = get_bits_long(&gb, 20); st->codec->channels = get_bits(&gb, 3) + 1; - + st->codec->codec_type = CODEC_TYPE_AUDIO; st->codec->codec_id = CODEC_ID_FLAC;
--- a/oggparsetheora.c Sat Dec 17 17:57:03 2005 +0000 +++ b/oggparsetheora.c Sat Dec 17 18:14:38 2005 +0000 @@ -68,7 +68,7 @@ skip_bits(&gb, 64); st->codec->time_base.den = get_bits(&gb, 32); st->codec->time_base.num = get_bits(&gb, 32); - + st->codec->sample_aspect_ratio.num = get_bits(&gb, 24); st->codec->sample_aspect_ratio.den = get_bits(&gb, 24);
--- a/oggparsevorbis.c Sat Dec 17 17:57:03 2005 +0000 +++ b/oggparsevorbis.c Sat Dec 17 18:14:38 2005 +0000 @@ -86,7 +86,7 @@ memcpy (ct, v, vl); ct[vl] = 0; - // took from Vorbis_I_spec + // took from Vorbis_I_spec if (!strcmp (tt, "AUTHOR")) strncpy (as->author, ct, FFMIN(sizeof (as->author), vl)); else if (!strcmp (tt, "TITLE")) @@ -117,7 +117,7 @@ * Vorbis Identification header from Vorbis_I_spec.html#vorbis-spec-codec * [vorbis_version] = read 32 bits as unsigned integer | Not used * [audio_channels] = read 8 bit integer as unsigned | Used - * [audio_sample_rate] = read 32 bits as unsigned integer | Used + * [audio_sample_rate] = read 32 bits as unsigned integer | Used * [bitrate_maximum] = read 32 bits as signed integer | Not used yet * [bitrate_nominal] = read 32 bits as signed integer | Not used yet * [bitrate_minimum] = read 32 bits as signed integer | Used as bitrate
--- a/os_support.c Sat Dec 17 17:57:03 2005 +0000 +++ b/os_support.c Sat Dec 17 18:14:38 2005 +0000 @@ -51,7 +51,7 @@ struct tm *localtime_r(const time_t *t, struct tm *tp) { struct tm *l; - + l = localtime(t); if (!l) return 0;
--- a/png.c Sat Dec 17 17:57:03 2005 +0000 +++ b/png.c Sat Dec 17 18:14:38 2005 +0000 @@ -64,7 +64,7 @@ int channels; int bits_per_pixel; int bpp; - + uint8_t *image_buf; int image_linesize; uint32_t palette[256]; @@ -107,7 +107,7 @@ }; /* Mask to determine which pixels to overwrite while displaying */ -static const uint8_t png_pass_dsp_mask[NB_PASSES] = { +static const uint8_t png_pass_dsp_mask[NB_PASSES] = { 0xff, 0x0f, 0xff, 0x33, 0xff, 0x55, 0xff }; @@ -158,14 +158,14 @@ /* NOTE: we try to construct a good looking image at each pass. width is the original image width. We also do pixel format convertion at this stage */ -static void png_put_interlaced_row(uint8_t *dst, int width, - int bits_per_pixel, int pass, +static void png_put_interlaced_row(uint8_t *dst, int width, + int bits_per_pixel, int pass, int color_type, const uint8_t *src) { int x, mask, dsp_mask, j, src_x, b, bpp; uint8_t *d; const uint8_t *s; - + mask = png_pass_mask[pass]; dsp_mask = png_pass_dsp_mask[pass]; switch(bits_per_pixel) { @@ -213,8 +213,8 @@ } } -static void png_get_interlaced_row(uint8_t *dst, int row_size, - int bits_per_pixel, int pass, +static void png_get_interlaced_row(uint8_t *dst, int row_size, + int bits_per_pixel, int pass, const uint8_t *src, int width) { int x, mask, dst_x, j, b, bpp; @@ -253,7 +253,7 @@ /* XXX: optimize */ /* NOTE: 'dst' can be equal to 'last' */ -static void png_filter_row(uint8_t *dst, int filter_type, +static void png_filter_row(uint8_t *dst, int filter_type, uint8_t *src, uint8_t *last, int size, int bpp) { int i, p; @@ -323,7 +323,7 @@ uint8_t *d; int j; unsigned int v; - + d = dst; for(j = 0; j < width; j++) { v = ((uint32_t *)src)[j]; @@ -356,12 +356,12 @@ { uint8_t *ptr, *last_row; int got_line; - + if (!s->interlace_type) { ptr = s->image_buf + s->image_linesize * s->y; /* need to swap bytes correctly for RGB_ALPHA */ if (s->color_type == PNG_COLOR_TYPE_RGB_ALPHA) { - png_filter_row(s->tmp_row, s->crow_buf[0], s->crow_buf + 1, + png_filter_row(s->tmp_row, s->crow_buf[0], s->crow_buf + 1, s->last_row, s->row_size, s->bpp); memcpy(s->last_row, s->tmp_row, s->row_size); convert_to_rgba32(ptr, s->tmp_row, s->width); @@ -371,8 +371,8 @@ last_row = s->last_row; else last_row = ptr - s->image_linesize; - - png_filter_row(ptr, s->crow_buf[0], s->crow_buf + 1, + + png_filter_row(ptr, s->crow_buf[0], s->crow_buf + 1, last_row, s->row_size, s->bpp); } s->y++; @@ -388,14 +388,14 @@ wait for the next one */ if (got_line) break; - png_filter_row(s->tmp_row, s->crow_buf[0], s->crow_buf + 1, + png_filter_row(s->tmp_row, s->crow_buf[0], s->crow_buf + 1, s->last_row, s->pass_row_size, s->bpp); memcpy(s->last_row, s->tmp_row, s->pass_row_size); got_line = 1; } if ((png_pass_dsp_ymask[s->pass] << (s->y & 7)) & 0x80) { /* NOTE: rgba32 is handled directly in png_put_interlaced_row */ - png_put_interlaced_row(ptr, s->width, s->bits_per_pixel, s->pass, + png_put_interlaced_row(ptr, s->width, s->bits_per_pixel, s->pass, s->color_type, s->last_row); } s->y++; @@ -407,8 +407,8 @@ } else { s->pass++; s->y = 0; - s->pass_row_size = png_pass_row_size(s->pass, - s->bits_per_pixel, + s->pass_row_size = png_pass_row_size(s->pass, + s->bits_per_pixel, s->width); s->crow_size = s->pass_row_size + 1; if (s->pass_row_size != 0) @@ -456,7 +456,7 @@ return 0; } -static int png_read(ByteIOContext *f, +static int png_read(ByteIOContext *f, int (*alloc_cb)(void *opaque, AVImageInfo *info), void *opaque) { AVImageInfo info1, *info = &info1; @@ -487,7 +487,7 @@ goto fail; tag = get_le32(f); #ifdef DEBUG - printf("png: tag=%c%c%c%c length=%u\n", + printf("png: tag=%c%c%c%c length=%u\n", (tag & 0xff), ((tag >> 8) & 0xff), ((tag >> 16) & 0xff), @@ -507,8 +507,8 @@ crc = get_be32(f); s->state |= PNG_IHDR; #ifdef DEBUG - printf("width=%d height=%d depth=%d color_type=%d compression_type=%d filter_type=%d interlace_type=%d\n", - s->width, s->height, s->bit_depth, s->color_type, + printf("width=%d height=%d depth=%d color_type=%d compression_type=%d filter_type=%d interlace_type=%d\n", + s->width, s->height, s->bit_depth, s->color_type, s->compression_type, s->filter_type, s->interlace_type); #endif break; @@ -526,16 +526,16 @@ s->bpp = (s->bits_per_pixel + 7) >> 3; s->row_size = (info->width * s->bits_per_pixel + 7) >> 3; - if (s->bit_depth == 8 && + if (s->bit_depth == 8 && s->color_type == PNG_COLOR_TYPE_RGB) { info->pix_fmt = PIX_FMT_RGB24; - } else if (s->bit_depth == 8 && + } else if (s->bit_depth == 8 && s->color_type == PNG_COLOR_TYPE_RGB_ALPHA) { info->pix_fmt = PIX_FMT_RGBA32; - } else if (s->bit_depth == 8 && + } else if (s->bit_depth == 8 && s->color_type == PNG_COLOR_TYPE_GRAY) { info->pix_fmt = PIX_FMT_GRAY8; - } else if (s->bit_depth == 1 && + } else if (s->bit_depth == 1 && s->color_type == PNG_COLOR_TYPE_GRAY) { info->pix_fmt = PIX_FMT_MONOBLACK; } else if (s->color_type == PNG_COLOR_TYPE_PALETTE) { @@ -544,7 +544,7 @@ goto fail; } ret = alloc_cb(opaque, info); - if (ret) + if (ret) goto the_end; /* compute the compressed row size */ @@ -552,13 +552,13 @@ s->crow_size = s->row_size + 1; } else { s->pass = 0; - s->pass_row_size = png_pass_row_size(s->pass, - s->bits_per_pixel, + s->pass_row_size = png_pass_row_size(s->pass, + s->bits_per_pixel, s->width); s->crow_size = s->pass_row_size + 1; } #ifdef DEBUG - printf("row_size=%d crow_size =%d\n", + printf("row_size=%d crow_size =%d\n", s->row_size, s->crow_size); #endif s->image_buf = info->pict.data[0]; @@ -592,7 +592,7 @@ case MKTAG('P', 'L', 'T', 'E'): { int n, i, r, g, b; - + if ((length % 3) != 0 || length > 256 * 3) goto skip_tag; /* read the palette */ @@ -716,7 +716,7 @@ uint8_t *ptr; uint8_t *crow_buf = NULL; uint8_t *tmp_buf = NULL; - + s->f = f; is_progressive = info->interleaved; switch(info->pix_fmt) { @@ -764,7 +764,7 @@ /* write png header */ put_buffer(f, pngsig, 8); - + to_be32(s->buf, info->width); to_be32(s->buf + 4, info->height); s->buf[8] = bit_depth; @@ -772,7 +772,7 @@ s->buf[10] = 0; /* compression type */ s->buf[11] = 0; /* filter type */ s->buf[12] = is_progressive; /* interlace type */ - + png_write_chunk(f, MKTAG('I', 'H', 'D', 'R'), s->buf, 13); /* put the palette if needed */ @@ -781,7 +781,7 @@ unsigned int v; uint32_t *palette; uint8_t *alpha_ptr; - + palette = (uint32_t *)info->pict.data[1]; ptr = s->buf; alpha_ptr = s->buf + 256 * 3; @@ -824,8 +824,8 @@ } else { ptr1 = ptr; } - png_get_interlaced_row(crow_buf + 1, pass_row_size, - bits_per_pixel, pass, + png_get_interlaced_row(crow_buf + 1, pass_row_size, + bits_per_pixel, pass, ptr1, info->width); crow_buf[0] = PNG_FILTER_VALUE_NONE; png_write_row(s, crow_buf, pass_row_size + 1); @@ -879,7 +879,7 @@ "png", png_probe, png_read, - (1 << PIX_FMT_RGBA32) | (1 << PIX_FMT_RGB24) | (1 << PIX_FMT_GRAY8) | + (1 << PIX_FMT_RGBA32) | (1 << PIX_FMT_RGB24) | (1 << PIX_FMT_GRAY8) | (1 << PIX_FMT_MONOBLACK) | (1 << PIX_FMT_PAL8), png_write, AVIMAGE_INTERLEAVED,
--- a/pnm.c Sat Dec 17 17:57:03 2005 +0000 +++ b/pnm.c Sat Dec 17 18:14:38 2005 +0000 @@ -18,16 +18,16 @@ */ #include "avformat.h" -static inline int pnm_space(int c) +static inline int pnm_space(int c) { return (c == ' ' || c == '\n' || c == '\r' || c == '\t'); } -static void pnm_get(ByteIOContext *f, char *str, int buf_size) +static void pnm_get(ByteIOContext *f, char *str, int buf_size) { char *s; int c; - + /* skip spaces and comments */ for(;;) { c = url_fgetc(f); @@ -39,7 +39,7 @@ break; } } - + s = str; while (c != URL_EOF && !pnm_space(c)) { if ((s - str) < buf_size - 1) @@ -49,7 +49,7 @@ *s = '\0'; } -static int pnm_read1(ByteIOContext *f, +static int pnm_read1(ByteIOContext *f, int (*alloc_cb)(void *opaque, AVImageInfo *info), void *opaque, int allow_yuv) { @@ -63,7 +63,7 @@ if (!strcmp(buf1, "P4")) { info->pix_fmt = PIX_FMT_MONOWHITE; } else if (!strcmp(buf1, "P5")) { - if (allow_yuv) + if (allow_yuv) info->pix_fmt = PIX_FMT_YUV420P; else info->pix_fmt = PIX_FMT_GRAY8; @@ -94,11 +94,11 @@ h /= 3; info->height = h; } - + ret = alloc_cb(opaque, info); if (ret) return ret; - + switch(info->pix_fmt) { default: return AVERROR_INVALIDDATA; @@ -145,13 +145,13 @@ return 0; } -static int pnm_read(ByteIOContext *f, +static int pnm_read(ByteIOContext *f, int (*alloc_cb)(void *opaque, AVImageInfo *info), void *opaque) { return pnm_read1(f, alloc_cb, opaque, 0); } -static int pgmyuv_read(ByteIOContext *f, +static int pgmyuv_read(ByteIOContext *f, int (*alloc_cb)(void *opaque, AVImageInfo *info), void *opaque) { return pnm_read1(f, alloc_cb, opaque, 1); @@ -186,23 +186,23 @@ default: return AVERROR_INVALIDDATA; } - snprintf(buf, sizeof(buf), + snprintf(buf, sizeof(buf), "P%c\n%d %d\n", c, info->width, h1); put_buffer(pb, buf, strlen(buf)); if (info->pix_fmt != PIX_FMT_MONOWHITE) { - snprintf(buf, sizeof(buf), + snprintf(buf, sizeof(buf), "%d\n", 255); put_buffer(pb, buf, strlen(buf)); } - + ptr = info->pict.data[0]; linesize = info->pict.linesize[0]; for(i=0;i<h;i++) { put_buffer(pb, ptr, n); ptr += linesize; } - + if (info->pix_fmt == PIX_FMT_YUV420P) { h >>= 1; n >>= 1; @@ -219,7 +219,7 @@ return 0; } -static int pam_read(ByteIOContext *f, +static int pam_read(ByteIOContext *f, int (*alloc_cb)(void *opaque, AVImageInfo *info), void *opaque) { int i, n, linesize, h, w, depth, maxval; @@ -267,7 +267,7 @@ if (depth == 1) { if (maxval == 1) info->pix_fmt = PIX_FMT_MONOWHITE; - else + else info->pix_fmt = PIX_FMT_GRAY8; } else if (depth == 3) { info->pix_fmt = PIX_FMT_RGB24; @@ -279,7 +279,7 @@ ret = alloc_cb(opaque, info); if (ret) return ret; - + switch(info->pix_fmt) { default: return AVERROR_INVALIDDATA; @@ -356,14 +356,14 @@ default: return AVERROR_INVALIDDATA; } - snprintf(buf, sizeof(buf), + snprintf(buf, sizeof(buf), "P7\nWIDTH %d\nHEIGHT %d\nDEPTH %d\nMAXVAL %d\nTUPLETYPE %s\nENDHDR\n", w, h, depth, maxval, tuple_type); put_buffer(pb, buf, strlen(buf)); - + ptr = info->pict.data[0]; linesize = info->pict.linesize[0]; - + if (info->pix_fmt == PIX_FMT_RGBA32) { int j; unsigned int v; @@ -461,7 +461,7 @@ "pam", pam_probe, pam_read, - (1 << PIX_FMT_MONOWHITE) | (1 << PIX_FMT_GRAY8) | (1 << PIX_FMT_RGB24) | + (1 << PIX_FMT_MONOWHITE) | (1 << PIX_FMT_GRAY8) | (1 << PIX_FMT_RGB24) | (1 << PIX_FMT_RGBA32), pam_write, };
--- a/psxstr.c Sat Dec 17 17:57:03 2005 +0000 +++ b/psxstr.c Sat Dec 17 18:14:38 2005 +0000 @@ -182,7 +182,7 @@ str->channels[channel].video_stream_index = st->index; st->codec->codec_type = CODEC_TYPE_VIDEO; - st->codec->codec_id = CODEC_ID_MDEC; + st->codec->codec_id = CODEC_ID_MDEC; st->codec->codec_tag = 0; /* no fourcc */ st->codec->width = str->channels[channel].width; st->codec->height = str->channels[channel].height; @@ -195,11 +195,11 @@ int fmt; str->audio_channel = channel; str->channels[channel].type = STR_AUDIO; - str->channels[channel].channels = + str->channels[channel].channels = (sector[0x13] & 0x01) ? 2 : 1; - str->channels[channel].sample_rate = + str->channels[channel].sample_rate = (sector[0x13] & 0x04) ? 18900 : 37800; - str->channels[channel].bits = + str->channels[channel].bits = (sector[0x13] & 0x10) ? 8 : 4; /* allocate a new AVStream */ @@ -212,7 +212,7 @@ fmt = sector[0x13]; st->codec->codec_type = CODEC_TYPE_AUDIO; - st->codec->codec_id = CODEC_ID_ADPCM_XA; + st->codec->codec_id = CODEC_ID_ADPCM_XA; st->codec->codec_tag = 0; /* no fourcc */ st->codec->channels = (fmt&1)?2:1; st->codec->sample_rate = (fmt&4)?18900:37800; @@ -232,7 +232,7 @@ str->channels[str->video_channel].width, str->channels[str->video_channel].height,str->channels[str->video_channel].video_stream_index); if (str->audio_channel != -1) - av_log (s, AV_LOG_DEBUG, " audio channel = %d, %d Hz, %d channels, %d bits/sample %d\n", + av_log (s, AV_LOG_DEBUG, " audio channel = %d, %d Hz, %d channels, %d bits/sample %d\n", str->audio_channel, str->channels[str->audio_channel].sample_rate, str->channels[str->audio_channel].channels, @@ -283,7 +283,7 @@ return AVERROR_IO; pkt->pos= url_ftell(pb) - RAW_CD_SECTOR_SIZE; - pkt->stream_index = + pkt->stream_index = str->channels[channel].video_stream_index; // pkt->pts = str->pts; @@ -320,7 +320,7 @@ return AVERROR_IO; memcpy(pkt->data,sector+24,2304); - pkt->stream_index = + pkt->stream_index = str->channels[channel].audio_stream_index; //pkt->pts = str->pts; return 0;
--- a/qtpalette.h Sat Dec 17 17:57:03 2005 +0000 +++ b/qtpalette.h Sat Dec 17 18:14:38 2005 +0000 @@ -11,7 +11,7 @@ 0x93, 0x65, 0x5E, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xDF, 0xD0, 0xAB, 0x00, - 0x00, 0x00, 0x00, 0x00 + 0x00, 0x00, 0x00, 0x00 }; unsigned char ff_qt_default_palette_16[16 * 4] = { @@ -30,7 +30,7 @@ 0xFF, 0xFB, 0xF9, 0x00, 0xE8, 0xCA, 0xC5, 0x00, 0x8A, 0x7C, 0x77, 0x00, - 0x00, 0x00, 0x00, 0x00 + 0x00, 0x00, 0x00, 0x00 }; unsigned char ff_qt_default_palette_256[256 * 4] = {
--- a/raw.c Sat Dec 17 17:57:03 2005 +0000 +++ b/raw.c Sat Dec 17 18:14:38 2005 +0000 @@ -1,4 +1,4 @@ -/* +/* * RAW encoder and decoder * Copyright (c) 2001 Fabrice Bellard. * Copyright (c) 2005 Alex Beregszaszi @@ -86,7 +86,7 @@ { int ret, size; // AVStream *st = s->streams[0]; - + size= RAW_PACKET_SIZE; ret= av_get_packet(&s->pb, pkt, size); @@ -109,7 +109,7 @@ if (av_new_packet(pkt, size) < 0) return AVERROR_IO; - + pkt->pos= url_ftell(&s->pb); pkt->stream_index = 0; ret = get_partial_buffer(&s->pb, pkt->data, size); @@ -125,21 +125,21 @@ static int ingenient_read_packet(AVFormatContext *s, AVPacket *pkt) { int ret, size, w, h, unk1, unk2; - + if (get_le32(&s->pb) != MKTAG('M', 'J', 'P', 'G')) return AVERROR_IO; // FIXME size = get_le32(&s->pb); - + w = get_le16(&s->pb); h = get_le16(&s->pb); - + url_fskip(&s->pb, 8); // zero + size (padded?) url_fskip(&s->pb, 2); unk1 = get_le16(&s->pb); unk2 = get_le16(&s->pb); url_fskip(&s->pb, 22); // ascii timestamp - + av_log(NULL, AV_LOG_DEBUG, "Ingenient packet: size=%d, width=%d, height=%d, unk1=%d unk2=%d\n", size, w, h, unk1, unk2); @@ -162,7 +162,7 @@ return 0; } -int pcm_read_seek(AVFormatContext *s, +int pcm_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) { AVStream *st; @@ -190,13 +190,13 @@ byte_rate = st->codec->bit_rate / 8; break; } - + if (block_align <= 0 || byte_rate <= 0) return -1; /* compute the position by aligning it to block_align */ - pos = av_rescale_rnd(timestamp * byte_rate, - st->time_base.num, + pos = av_rescale_rnd(timestamp * byte_rate, + st->time_base.num, st->time_base.den * (int64_t)block_align, (flags & AVSEEK_FLAG_BACKWARD) ? AV_ROUND_DOWN : AV_ROUND_UP); pos *= block_align; @@ -274,7 +274,7 @@ /* for mpeg4 specify it too (most mpeg4 streams dont have the fixed_vop_rate set ...)*/ if (ap && ap->time_base.num) { av_set_pts_info(st, 64, ap->time_base.num, ap->time_base.den); - } else if ( st->codec->codec_id == CODEC_ID_MJPEG || + } else if ( st->codec->codec_id == CODEC_ID_MJPEG || st->codec->codec_id == CODEC_ID_MPEG4 || st->codec->codec_id == CODEC_ID_H264) { av_set_pts_info(st, 64, 1, 25); @@ -370,7 +370,7 @@ AVOutputFormat ac3_oformat = { "ac3", "raw ac3", - "audio/x-ac3", + "audio/x-ac3", "ac3", 0, CODEC_ID_AC3, @@ -629,28 +629,28 @@ #endif -PCMDEF(s16le, "pcm signed 16 bit little endian format", +PCMDEF(s16le, "pcm signed 16 bit little endian format", LE_DEF("sw"), CODEC_ID_PCM_S16LE) -PCMDEF(s16be, "pcm signed 16 bit big endian format", +PCMDEF(s16be, "pcm signed 16 bit big endian format", BE_DEF("sw"), CODEC_ID_PCM_S16BE) -PCMDEF(u16le, "pcm unsigned 16 bit little endian format", +PCMDEF(u16le, "pcm unsigned 16 bit little endian format", LE_DEF("uw"), CODEC_ID_PCM_U16LE) -PCMDEF(u16be, "pcm unsigned 16 bit big endian format", +PCMDEF(u16be, "pcm unsigned 16 bit big endian format", BE_DEF("uw"), CODEC_ID_PCM_U16BE) -PCMDEF(s8, "pcm signed 8 bit format", +PCMDEF(s8, "pcm signed 8 bit format", "sb", CODEC_ID_PCM_S8) -PCMDEF(u8, "pcm unsigned 8 bit format", +PCMDEF(u8, "pcm unsigned 8 bit format", "ub", CODEC_ID_PCM_U8) -PCMDEF(mulaw, "pcm mu law format", +PCMDEF(mulaw, "pcm mu law format", "ul", CODEC_ID_PCM_MULAW) -PCMDEF(alaw, "pcm A law format", +PCMDEF(alaw, "pcm A law format", "al", CODEC_ID_PCM_ALAW) static int rawvideo_read_packet(AVFormatContext *s, AVPacket *pkt) @@ -749,10 +749,10 @@ av_register_input_format(&h263_iformat); av_register_output_format(&h263_oformat); - + av_register_input_format(&m4v_iformat); av_register_output_format(&m4v_oformat); - + av_register_input_format(&h264_iformat); av_register_output_format(&h264_oformat); @@ -763,7 +763,7 @@ av_register_input_format(&mjpeg_iformat); av_register_output_format(&mjpeg_oformat); - + av_register_input_format(&ingenient_iformat); av_register_input_format(&pcm_s16le_iformat);
--- a/rm.c Sat Dec 17 17:57:03 2005 +0000 +++ b/rm.c Sat Dec 17 18:14:38 2005 +0000 @@ -19,7 +19,7 @@ #include "avformat.h" /* in ms */ -#define BUFFER_DURATION 0 +#define BUFFER_DURATION 0 typedef struct { int nb_packets; @@ -69,7 +69,7 @@ } } -static void rv10_write_header(AVFormatContext *ctx, +static void rv10_write_header(AVFormatContext *ctx, int data_size, int index_pos) { RMContext *rm = ctx->priv_data; @@ -128,11 +128,11 @@ if (url_is_streamed(s)) flags |= 4; /* live broadcast */ put_be16(s, flags); - + /* comments */ put_tag(s,"CONT"); - size = strlen(ctx->title) + strlen(ctx->author) + strlen(ctx->copyright) + + size = strlen(ctx->title) + strlen(ctx->author) + strlen(ctx->copyright) + strlen(ctx->comment) + 4 * 2 + 10; put_be32(s,size); put_be16(s,0); @@ -140,12 +140,12 @@ put_str(s, ctx->author); put_str(s, ctx->copyright); put_str(s, ctx->comment); - + for(i=0;i<ctx->nb_streams;i++) { int codec_data_size; stream = &rm->streams[i]; - + if (stream->enc->codec_type == CODEC_TYPE_AUDIO) { desc = "The Audio Stream"; mimetype = "audio/x-pn-realaudio"; @@ -166,7 +166,7 @@ put_be32(s, stream->bit_rate); /* avg bit rate */ put_be32(s, stream->packet_max_size); /* max packet size */ if (stream->nb_packets > 0) - packet_avg_size = stream->packet_total_size / + packet_avg_size = stream->packet_total_size / stream->nb_packets; else packet_avg_size = 0; @@ -181,11 +181,11 @@ put_str8(s, desc); put_str8(s, mimetype); put_be32(s, codec_data_size); - + if (stream->enc->codec_type == CODEC_TYPE_AUDIO) { int coded_frame_size, fscode, sample_rate; sample_rate = stream->enc->sample_rate; - coded_frame_size = (stream->enc->bit_rate * + coded_frame_size = (stream->enc->bit_rate * stream->enc->frame_size) / (8 * sample_rate); /* audio codec info */ put_tag(s, ".ra"); @@ -224,7 +224,7 @@ put_be32(s, 0x249f0); /* unknown */ put_be16(s, 0x01); /* frame length : seems to be very important */ - put_be16(s, coded_frame_size); + put_be16(s, coded_frame_size); put_be32(s, 0); /* unknown */ put_be16(s, stream->enc->sample_rate); /* sample rate */ put_be32(s, 0x10); /* unknown */ @@ -253,10 +253,10 @@ versions seems to add a diffential DC coding as in MPEG... nothing new under the sun */ if(stream->enc->codec_id == CODEC_ID_RV10) - put_be32(s,0x10000000); + put_be32(s,0x10000000); else - put_be32(s,0x20103001); - //put_be32(s,0x10003000); + put_be32(s,0x20103001); + //put_be32(s,0x10003000); } } @@ -267,7 +267,7 @@ data_offset_ptr[1] = data_pos >> 16; data_offset_ptr[2] = data_pos >> 8; data_offset_ptr[3] = data_pos; - + /* data stream */ put_tag(s,"DATA"); put_be32(s,data_size + 10 + 8); @@ -277,7 +277,7 @@ put_be32(s,0); /* next data header */ } -static void write_packet_header(AVFormatContext *ctx, StreamInfo *stream, +static void write_packet_header(AVFormatContext *ctx, StreamInfo *stream, int length, int key_frame) { int timestamp; @@ -350,9 +350,9 @@ /* XXX: suppress this malloc */ buf1= (uint8_t*) av_malloc( size * sizeof(uint8_t) ); - + write_packet_header(s, stream, size, !!(flags & PKT_FLAG_KEY)); - + /* for AC3, the words seems to be reversed */ for(i=0;i<size;i+=2) { buf1[i] = buf[i+1]; @@ -379,25 +379,25 @@ #if 1 write_packet_header(s, stream, size + 7, key_frame); /* bit 7: '1' if final packet of a frame converted in several packets */ - put_byte(pb, 0x81); + put_byte(pb, 0x81); /* bit 7: '1' if I frame. bits 6..0 : sequence number in current frame starting from 1 */ if (key_frame) { - put_byte(pb, 0x81); + put_byte(pb, 0x81); } else { - put_byte(pb, 0x01); + put_byte(pb, 0x01); } put_be16(pb, 0x4000 + (size)); /* total frame size */ put_be16(pb, 0x4000 + (size)); /* offset from the start or the end */ #else /* full frame */ write_packet_header(s, size + 6); - put_byte(pb, 0xc0); + put_byte(pb, 0xc0); put_be16(pb, 0x4000 + size); /* total frame size */ put_be16(pb, 0x4000 + packet_number * 126); /* position in stream */ #endif - put_byte(pb, stream->nb_frames & 0xff); - + put_byte(pb, stream->nb_frames & 0xff); + put_buffer(pb, buf, size); put_flush_packet(pb); @@ -407,13 +407,13 @@ static int rm_write_packet(AVFormatContext *s, AVPacket *pkt) { - if (s->streams[pkt->stream_index]->codec->codec_type == + if (s->streams[pkt->stream_index]->codec->codec_type == CODEC_TYPE_AUDIO) return rm_write_audio(s, pkt->data, pkt->size, pkt->flags); else return rm_write_video(s, pkt->data, pkt->size, pkt->flags); } - + static int rm_write_trailer(AVFormatContext *s) { RMContext *rm = s->priv_data; @@ -429,7 +429,7 @@ put_tag(pb, "INDX"); put_be32(pb, 10 + 10 * s->nb_streams); put_be16(pb, 0); - + for(i=0;i<s->nb_streams;i++) { put_be32(pb, 0); /* zero indices */ put_be16(pb, i); /* stream number */ @@ -438,7 +438,7 @@ /* undocumented end header */ put_be32(pb, 0); put_be32(pb, 0); - + url_fseek(pb, 0, SEEK_SET); for(i=0;i<s->nb_streams;i++) rm->streams[i].total_frames = rm->streams[i].nb_frames; @@ -483,7 +483,7 @@ *q = '\0'; } -static void rm_read_audio_stream_info(AVFormatContext *s, AVStream *st, +static void rm_read_audio_stream_info(AVFormatContext *s, AVStream *st, int read_all) { RMContext *rm = s->priv_data; @@ -520,7 +520,7 @@ get_be32(pb); /* ??? */ get_be32(pb); /* ??? */ get_be32(pb); /* ??? */ - rm->sub_packet_h = sub_packet_h = get_be16(pb); /* 1 */ + rm->sub_packet_h = sub_packet_h = get_be16(pb); /* 1 */ st->codec->block_align= get_be16(pb); /* frame size */ rm->sub_packet_size = sub_packet_size = get_be16(pb); /* sub packet size */ get_be16(pb); /* ??? */ @@ -572,7 +572,7 @@ get_byte(pb); get_byte(pb); get_byte(pb); - + get_str8(pb, s->title, sizeof(s->title)); get_str8(pb, s->author, sizeof(s->author)); get_str8(pb, s->copyright, sizeof(s->copyright)); @@ -620,7 +620,7 @@ get_be16(pb); get_be32(pb); get_be32(pb); /* number of headers */ - + for(;;) { if (url_feof(pb)) goto fail; @@ -628,7 +628,7 @@ tag_size = get_be32(pb); get_be16(pb); #if 0 - printf("tag=%c%c%c%c (%08x) size=%d\n", + printf("tag=%c%c%c%c (%08x) size=%d\n", (tag) & 0xff, (tag >> 8) & 0xff, (tag >> 16) & 0xff, @@ -706,11 +706,11 @@ get_be32(pb); fps2= get_be16(pb); get_be16(pb); - + st->codec->extradata_size= codec_data_size - (url_ftell(pb) - codec_pos); st->codec->extradata= av_mallocz(st->codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE); get_buffer(pb, st->codec->extradata, st->codec->extradata_size); - + // av_log(NULL, AV_LOG_DEBUG, "fps= %d fps2= %d\n", fps, fps2); st->codec->time_base.den = fps * st->codec->time_base.num; /* modification of h263 codec version (!) */ @@ -789,14 +789,14 @@ *flags= 0; }else{ state= (state<<8) + get_byte(pb); - + if(state == MKBETAG('I', 'N', 'D', 'X')){ len = get_be16(pb) - 6; if(len<0) continue; goto skip; } - + if(state > (unsigned)0xFFFF || state < 12) continue; len=state; @@ -807,7 +807,7 @@ res= get_byte(pb); /* reserved */ *flags = get_byte(pb); /* flags */ - + len -= 12; } for(i=0;i<s->nb_streams;i++) { @@ -823,7 +823,7 @@ continue; } *stream_index= i; - + return len; } return -1; @@ -940,7 +940,7 @@ av_free_packet(pkt); goto resync; } - + pkt->stream_index = i; #if 0 @@ -999,7 +999,7 @@ return 0; } -static int64_t rm_read_dts(AVFormatContext *s, int stream_index, +static int64_t rm_read_dts(AVFormatContext *s, int stream_index, int64_t *ppos, int64_t pos_limit) { RMContext *rm = s->priv_data; @@ -1007,7 +1007,7 @@ int stream_index2, flags, len, h; pos = *ppos; - + if(rm->old_format) return AV_NOPTS_VALUE; @@ -1028,7 +1028,7 @@ seq = get_byte(&s->pb); len--; } } - + if((flags&2) && (seq&0x7F) == 1){ // av_log(s, AV_LOG_DEBUG, "%d %d-%d %Ld %d\n", flags, stream_index2, stream_index, dts, seq); av_add_index_entry(st, pos, dts, 0, AVINDEX_KEYFRAME);
--- a/rtp.c Sat Dec 17 17:57:03 2005 +0000 +++ b/rtp.c Sat Dec 17 18:14:38 2005 +0000 @@ -40,7 +40,7 @@ buffer to 'rtp_write_packet' contains all the packets for ONE frame. Each packet should have a four byte header containing the length in big endian format (same trick as - 'url_open_dyn_packet_buf') + 'url_open_dyn_packet_buf') */ /* from http://www.iana.org/assignments/rtp-parameters last updated 05 January 2005 */ @@ -197,7 +197,7 @@ MpegTSContext *ts; /* only used for MP2T payloads */ int read_buf_index; int read_buf_size; - + /* rtcp sender statistics receive */ int64_t last_rtcp_ntp_time; int64_t first_rtcp_ntp_time; @@ -268,7 +268,7 @@ /** * open a new RTP parse context for stream 'st'. 'st' can be NULL for * MPEG2TS streams to indicate that they should be demuxed inside the - * rtp demux (otherwise CODEC_ID_MPEG2TS packets are returned) + * rtp demux (otherwise CODEC_ID_MPEG2TS packets are returned) */ RTPDemuxContext *rtp_parse_open(AVFormatContext *s1, AVStream *st, int payload_type, rtp_payload_data_t *rtp_payload_data) { @@ -354,27 +354,27 @@ } /** - * Parse an RTP or RTCP packet directly sent as a buffer. + * Parse an RTP or RTCP packet directly sent as a buffer. * @param s RTP parse context. * @param pkt returned packet * @param buf input buffer or NULL to read the next packets * @param len buffer len - * @return 0 if a packet is returned, 1 if a packet is returned and more can follow + * @return 0 if a packet is returned, 1 if a packet is returned and more can follow * (use buf as NULL to read the next). -1 if no packet (error or no more packet). */ -int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt, +int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt, const uint8_t *buf, int len) { unsigned int ssrc, h; int payload_type, seq, delta_timestamp, ret; AVStream *st; uint32_t timestamp; - + if (!buf) { /* return the next packets, if any */ if (s->read_buf_index >= s->read_buf_size) return -1; - ret = mpegts_parse_packet(s->ts, pkt, s->buf + s->read_buf_index, + ret = mpegts_parse_packet(s->ts, pkt, s->buf + s->read_buf_index, s->read_buf_size - s->read_buf_index); if (ret < 0) return -1; @@ -398,13 +398,13 @@ seq = (buf[2] << 8) | buf[3]; timestamp = decode_be32(buf + 4); ssrc = decode_be32(buf + 8); - + /* NOTE: we can handle only one payload type */ if (s->payload_type != payload_type) return -1; #if defined(DEBUG) || 1 if (seq != ((s->seq + 1) & 0xffff)) { - av_log(s->st->codec, AV_LOG_ERROR, "RTP: PT=%02x: bad cseq %04x expected=%04x\n", + av_log(s->st->codec, AV_LOG_ERROR, "RTP: PT=%02x: bad cseq %04x expected=%04x\n", payload_type, seq, ((s->seq + 1) & 0xffff)); } #endif @@ -458,7 +458,7 @@ memcpy(pkt->data, buf, len); break; } - + switch(st->codec->codec_id) { case CODEC_ID_MP2: case CODEC_ID_MPEG1VIDEO: @@ -599,10 +599,10 @@ put_be16(&s1->pb, s->seq); put_be32(&s1->pb, s->timestamp); put_be32(&s1->pb, s->ssrc); - + put_buffer(&s1->pb, buf1, len); put_flush_packet(&s1->pb); - + s->seq++; s->octet_count += len; s->packet_count++; @@ -639,7 +639,7 @@ s->timestamp += n / sample_size; } } -} +} /* NOTE: we suppose that exactly one frame is given as argument here */ /* XXX: test it */ @@ -659,7 +659,7 @@ rtp_send_data(s1, s->buf, s->buf_ptr - s->buf, 0); s->buf_ptr = s->buf + 4; /* 90 KHz time stamp */ - s->timestamp = s->base_timestamp + + s->timestamp = s->base_timestamp + (s->cur_timestamp * 90000LL) / st->codec->sample_rate; } } @@ -727,7 +727,7 @@ *q++ = h >> 8; *q++ = h; } - + len = max_packet_size - (q - s->buf); if (len > size) len = size; @@ -736,7 +736,7 @@ q += len; /* 90 KHz time stamp */ - s->timestamp = s->base_timestamp + + s->timestamp = s->base_timestamp + av_rescale((int64_t)s->cur_timestamp * st->codec->time_base.num, 90000, st->codec->time_base.den); //FIXME pass timestamps rtp_send_data(s1, s->buf, q - s->buf, (len == size)); @@ -761,7 +761,7 @@ len = size; /* 90 KHz time stamp */ - s->timestamp = s->base_timestamp + + s->timestamp = s->base_timestamp + av_rescale((int64_t)s->cur_timestamp * st->codec->time_base.num, 90000, st->codec->time_base.den); //FIXME pass timestamps rtp_send_data(s1, buf1, len, (len == size)); @@ -786,7 +786,7 @@ buf1 += len; size -= len; s->buf_ptr += len; - + out_len = s->buf_ptr - s->buf; if (out_len >= s->max_payload_size) { rtp_send_data(s1, s->buf, out_len, 0); @@ -804,19 +804,19 @@ int64_t ntp_time; int size= pkt->size; uint8_t *buf1= pkt->data; - + #ifdef DEBUG printf("%d: write len=%d\n", pkt->stream_index, size); #endif /* XXX: mpeg pts hardcoded. RTCP send every 0.5 seconds */ - rtcp_bytes = ((s->octet_count - s->last_octet_count) * RTCP_TX_RATIO_NUM) / + rtcp_bytes = ((s->octet_count - s->last_octet_count) * RTCP_TX_RATIO_NUM) / RTCP_TX_RATIO_DEN; if (s->first_packet || rtcp_bytes >= 28) { /* compute NTP time */ /* XXX: 90 kHz timestamp hardcoded */ ntp_time = (pkt->pts << 28) / 5625; - rtcp_send_sr(s1, ntp_time); + rtcp_send_sr(s1, ntp_time); s->last_octet_count = s->octet_count; s->first_packet = 0; }
--- a/rtp.h Sat Dec 17 17:57:03 2005 +0000 +++ b/rtp.h Sat Dec 17 18:14:38 2005 +0000 @@ -29,7 +29,7 @@ typedef struct RTPDemuxContext RTPDemuxContext; typedef struct rtp_payload_data_s rtp_payload_data_s; RTPDemuxContext *rtp_parse_open(AVFormatContext *s1, AVStream *st, int payload_type, rtp_payload_data_s *rtp_payload_data); -int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt, +int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt, const uint8_t *buf, int len); void rtp_parse_close(RTPDemuxContext *s);
--- a/rtpproto.c Sat Dec 17 17:57:03 2005 +0000 +++ b/rtpproto.c Sat Dec 17 18:14:38 2005 +0000 @@ -56,8 +56,8 @@ char buf[1024]; char path[1024]; - - url_split(NULL, 0, NULL, 0, hostname, sizeof(hostname), &port, + + url_split(NULL, 0, NULL, 0, hostname, sizeof(hostname), &port, path, sizeof(path), uri); snprintf(buf, sizeof(buf), "udp://%s:%d%s", hostname, port, path); @@ -101,7 +101,7 @@ /* * url syntax: rtp://host:port[?option=val...] - * option: 'multicast=1' : enable multicast + * option: 'multicast=1' : enable multicast * 'ttl=n' : set the ttl value (for multicast only) * 'localport=n' : set the local port to n * @@ -114,15 +114,15 @@ char buf[1024]; char path[1024]; const char *p; - + is_output = (flags & URL_WRONLY); s = av_mallocz(sizeof(RTPContext)); if (!s) return -ENOMEM; h->priv_data = s; - - url_split(NULL, 0, NULL, 0, hostname, sizeof(hostname), &port, + + url_split(NULL, 0, NULL, 0, hostname, sizeof(hostname), &port, path, sizeof(path), uri); /* extract parameters */ is_multicast = 0; @@ -147,18 +147,18 @@ /* XXX: need to open another connexion if the port is not even */ /* well, should suppress localport in path */ - + build_udp_url(buf, sizeof(buf), hostname, port + 1, local_port + 1, is_multicast, ttl); if (url_open(&s->rtcp_hd, buf, flags) < 0) goto fail; - + /* just to ease handle access. XXX: need to suppress direct handle access */ s->rtp_fd = udp_get_file_handle(s->rtp_hd); s->rtcp_fd = udp_get_file_handle(s->rtcp_hd); - h->max_packet_size = url_get_max_packet_size(s->rtp_hd); + h->max_packet_size = url_get_max_packet_size(s->rtp_hd); h->is_streamed = 1; return 0; @@ -235,7 +235,7 @@ RTPContext *s = h->priv_data; int ret; URLContext *hd; - + if (buf[1] >= 200 && buf[1] <= 204) { /* RTCP payload type */ hd = s->rtcp_hd;
--- a/rtsp.c Sat Dec 17 17:57:03 2005 +0000 +++ b/rtsp.c Sat Dec 17 18:14:38 2005 +0000 @@ -41,10 +41,10 @@ URLContext *rtsp_hd; /* RTSP TCP connexion handle */ int nb_rtsp_streams; struct RTSPStream **rtsp_streams; - + enum RTSPClientState state; int64_t seek_timestamp; - + /* XXX: currently we use unbuffered input */ // ByteIOContext rtsp_gb; int seq; /* RTSP command sequence number */ @@ -57,7 +57,7 @@ typedef struct RTSPStream { URLContext *rtp_handle; /* RTP stream handle */ RTPDemuxContext *rtp_ctx; /* RTP parse context */ - + int stream_index; /* corresponding stream index, if any. -1 if none (MPEG2TS case) */ int interleaved_min, interleaved_max; /* interleave ids, if TCP transport */ char control_url[1024]; /* url for this stream (from SDP) */ @@ -99,7 +99,7 @@ *pp = p; } -static void get_word_sep(char *buf, int buf_size, const char *sep, +static void get_word_sep(char *buf, int buf_size, const char *sep, const char **pp) { const char *p; @@ -291,7 +291,7 @@ if (*p == '\0') break; get_word_sep(attr, sizeof(attr), "=", &p); - if (*p == '=') + if (*p == '=') p++; get_word_sep(value, sizeof(value), ";", &p); if (*p == ';') @@ -392,7 +392,7 @@ rtsp_st->sdp_port = atoi(buf1); get_word(buf1, sizeof(buf1), &p); /* protocol (ignored) */ - + /* XXX: handle list of formats */ get_word(buf1, sizeof(buf1), &p); /* format list */ rtsp_st->sdp_payload_type = atoi(buf1); @@ -420,7 +420,7 @@ /* get the control url */ st = s->streams[s->nb_streams - 1]; rtsp_st = st->priv_data; - + /* XXX: may need to add full url resolution */ url_split(proto, sizeof(proto), NULL, 0, NULL, 0, NULL, NULL, 0, p); if (proto[0] == '\0') { @@ -432,7 +432,7 @@ } } else if (strstart(p, "rtpmap:", &p)) { /* NOTE: rtpmap is only supported AFTER the 'm=' tag */ - get_word(buf1, sizeof(buf1), &p); + get_word(buf1, sizeof(buf1), &p); payload_type = atoi(buf1); for(i = 0; i < s->nb_streams;i++) { st = s->streams[i]; @@ -443,7 +443,7 @@ } } else if (strstart(p, "fmtp:", &p)) { /* NOTE: fmtp is only supported AFTER the 'a=rtpmap:xxx' tag */ - get_word(buf1, sizeof(buf1), &p); + get_word(buf1, sizeof(buf1), &p); payload_type = atoi(buf1); for(i = 0; i < s->nb_streams;i++) { st = s->streams[i]; @@ -463,7 +463,7 @@ int letter; char buf[1024], *q; SDPParseState sdp_parse_state, *s1 = &sdp_parse_state; - + memset(s1, 0, sizeof(SDPParseState)); p = content; for(;;) { @@ -522,9 +522,9 @@ char parameter[16]; RTSPTransportField *th; char buf[256]; - + reply->nb_transports = 0; - + for(;;) { skip_spaces(&p); if (*p == '\0') @@ -532,7 +532,7 @@ th = &reply->transports[reply->nb_transports]; - get_word_sep(transport_protocol, sizeof(transport_protocol), + get_word_sep(transport_protocol, sizeof(transport_protocol), "/", &p); if (*p == '/') p++; @@ -540,14 +540,14 @@ lower_transport[0] = '\0'; if (*p == '/') { p++; - get_word_sep(lower_transport, sizeof(lower_transport), + get_word_sep(lower_transport, sizeof(lower_transport), ";,", &p); } if (!strcasecmp(lower_transport, "TCP")) th->protocol = RTSP_PROTOCOL_RTP_TCP; else th->protocol = RTSP_PROTOCOL_RTP_UDP; - + if (*p == ';') p++; /* get each parameter */ @@ -561,19 +561,19 @@ } else if (!strcmp(parameter, "client_port")) { if (*p == '=') { p++; - rtsp_parse_range(&th->client_port_min, + rtsp_parse_range(&th->client_port_min, &th->client_port_max, &p); } } else if (!strcmp(parameter, "server_port")) { if (*p == '=') { p++; - rtsp_parse_range(&th->server_port_min, + rtsp_parse_range(&th->server_port_min, &th->server_port_max, &p); } } else if (!strcmp(parameter, "interleaved")) { if (*p == '=') { p++; - rtsp_parse_range(&th->interleaved_min, + rtsp_parse_range(&th->interleaved_min, &th->interleaved_max, &p); } } else if (!strcmp(parameter, "multicast")) { @@ -590,7 +590,7 @@ if (*p == '=') { p++; get_word_sep(buf, sizeof(buf), ";,", &p); - if (inet_aton(buf, &ipaddr)) + if (inet_aton(buf, &ipaddr)) th->destination = ntohl(ipaddr.s_addr); } } @@ -616,7 +616,7 @@ reply->range_start = AV_NOPTS_VALUE; reply->range_end = AV_NOPTS_VALUE; - + get_word_sep(buf, sizeof(buf), "-", &p); reply->range_start = parse_date(buf, 1); if (*p == '-') { @@ -685,8 +685,8 @@ } } -static void rtsp_send_cmd(AVFormatContext *s, - const char *cmd, RTSPHeader *reply, +static void rtsp_send_cmd(AVFormatContext *s, + const char *cmd, RTSPHeader *reply, unsigned char **content_ptr) { RTSPState *rt = s->priv_data; @@ -750,10 +750,10 @@ } line_count++; } - + if (rt->session_id[0] == '\0' && reply->session_id[0] != '\0') pstrcpy(rt->session_id, sizeof(rt->session_id), reply->session_id); - + content_length = reply->content_length; if (content_length > 0) { /* leave some room for a trailing '\0' (useful for simple parsing) */ @@ -817,9 +817,9 @@ return AVERROR_IO; rt->rtsp_hd = rtsp_hd; rt->seq = 0; - + /* describe the stream */ - snprintf(cmd, sizeof(cmd), + snprintf(cmd, sizeof(cmd), "DESCRIBE %s RTSP/1.0\r\n" "Accept: application/sdp\r\n", s->filename); @@ -832,7 +832,7 @@ err = AVERROR_INVALIDDATA; goto fail; } - + /* now we got the SDP description, we parse it */ ret = sdp_parse(s, (const char *)content); av_freep(&content); @@ -840,7 +840,7 @@ err = AVERROR_INVALIDDATA; goto fail; } - + protocol_mask = rtsp_default_protocols; /* for each stream, make the setup request */ @@ -897,11 +897,11 @@ else if (protocol_mask & (1 << RTSP_PROTOCOL_RTP_UDP_MULTICAST)) { if (transport[0] != '\0') pstrcat(transport, sizeof(transport), ","); - snprintf(transport + strlen(transport), + snprintf(transport + strlen(transport), sizeof(transport) - strlen(transport) - 1, "RTP/AVP/UDP;multicast"); } - snprintf(cmd, sizeof(cmd), + snprintf(cmd, sizeof(cmd), "SETUP %s RTSP/1.0\r\n" "Transport: %s\r\n", rtsp_st->control_url, transport); @@ -934,13 +934,13 @@ rtsp_st->interleaved_min = reply->transports[0].interleaved_min; rtsp_st->interleaved_max = reply->transports[0].interleaved_max; break; - + case RTSP_PROTOCOL_RTP_UDP: { char url[1024]; - + /* XXX: also use address if specified */ - snprintf(url, sizeof(url), "rtp://%s:%d", + snprintf(url, sizeof(url), "rtp://%s:%d", host, reply->transports[0].server_port_min); if (rtp_set_remote_url(rtsp_st->rtp_handle, url) < 0) { err = AVERROR_INVALIDDATA; @@ -956,8 +956,8 @@ ttl = reply->transports[0].ttl; if (!ttl) ttl = 16; - snprintf(url, sizeof(url), "rtp://%s:%d?multicast=1&ttl=%d", - host, + snprintf(url, sizeof(url), "rtp://%s:%d?multicast=1&ttl=%d", + host, reply->transports[0].server_port_min, ttl); if (url_open(&rtsp_st->rtp_handle, url, URL_RDONLY) < 0) { @@ -983,13 +983,13 @@ /* use callback if available to extend setup */ if (ff_rtsp_callback) { - if (ff_rtsp_callback(RTSP_ACTION_CLIENT_SETUP, rt->session_id, + if (ff_rtsp_callback(RTSP_ACTION_CLIENT_SETUP, rt->session_id, NULL, 0, rt->last_reply) < 0) { err = AVERROR_INVALIDDATA; goto fail; } } - + rt->state = RTSP_STATE_IDLE; rt->seek_timestamp = 0; /* default is to start stream at position @@ -1045,12 +1045,12 @@ ret = url_readbuf(rt->rtsp_hd, buf, len); if (ret != len) return -1; - + /* find the matching stream */ for(i = 0; i < rt->nb_rtsp_streams; i++) { rtsp_st = rt->rtsp_streams[i]; - if (id >= rtsp_st->interleaved_min && - id <= rtsp_st->interleaved_max) + if (id >= rtsp_st->interleaved_min && + id <= rtsp_st->interleaved_max) goto found; } goto redo; @@ -1059,7 +1059,7 @@ return len; } -static int udp_read_packet(AVFormatContext *s, RTSPStream **prtsp_st, +static int udp_read_packet(AVFormatContext *s, RTSPStream **prtsp_st, uint8_t *buf, int buf_size) { RTSPState *rt = s->priv_data; @@ -1154,11 +1154,11 @@ av_log(s, AV_LOG_DEBUG, "hello state=%d\n", rt->state); if (rt->state == RTSP_STATE_PAUSED) { - snprintf(cmd, sizeof(cmd), + snprintf(cmd, sizeof(cmd), "PLAY %s RTSP/1.0\r\n", s->filename); } else { - snprintf(cmd, sizeof(cmd), + snprintf(cmd, sizeof(cmd), "PLAY %s RTSP/1.0\r\n" "Range: npt=%0.3f-\r\n", s->filename, @@ -1181,11 +1181,11 @@ char cmd[1024]; rt = s->priv_data; - + if (rt->state != RTSP_STATE_PLAYING) return 0; - snprintf(cmd, sizeof(cmd), + snprintf(cmd, sizeof(cmd), "PAUSE %s RTSP/1.0\r\n", s->filename); rtsp_send_cmd(s, cmd, reply, NULL); @@ -1197,11 +1197,11 @@ } } -static int rtsp_read_seek(AVFormatContext *s, int stream_index, +static int rtsp_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) { RTSPState *rt = s->priv_data; - + rt->seek_timestamp = timestamp; switch(rt->state) { default: @@ -1230,13 +1230,13 @@ url_fclose(&rt->rtsp_gb); } #endif - snprintf(cmd, sizeof(cmd), + snprintf(cmd, sizeof(cmd), "TEARDOWN %s RTSP/1.0\r\n", s->filename); rtsp_send_cmd(s, cmd, reply, NULL); if (ff_rtsp_callback) { - ff_rtsp_callback(RTSP_ACTION_CLIENT_TEARDOWN, rt->session_id, + ff_rtsp_callback(RTSP_ACTION_CLIENT_TEARDOWN, rt->session_id, NULL, 0, NULL); } @@ -1305,9 +1305,9 @@ /* open each RTP stream */ for(i=0;i<rt->nb_rtsp_streams;i++) { rtsp_st = rt->rtsp_streams[i]; - - snprintf(url, sizeof(url), "rtp://%s:%d?multicast=1&ttl=%d", - inet_ntoa(rtsp_st->sdp_ip), + + snprintf(url, sizeof(url), "rtp://%s:%d?multicast=1&ttl=%d", + inet_ntoa(rtsp_st->sdp_ip), rtsp_st->sdp_port, rtsp_st->sdp_ttl); if (url_open(&rtsp_st->rtp_handle, url, URL_RDONLY) < 0) {
--- a/rtsp.h Sat Dec 17 17:57:03 2005 +0000 +++ b/rtsp.h Sat Dec 17 18:14:38 2005 +0000 @@ -55,7 +55,7 @@ enum RTSPStatusCode status_code; /* response code from server */ int nb_transports; /* in AV_TIME_BASE unit, AV_NOPTS_VALUE if not used */ - int64_t range_start, range_end; + int64_t range_start, range_end; RTSPTransportField transports[RTSP_MAX_TRANSPORTS]; int seq; /* sequence number */ char session_id[512]; @@ -74,7 +74,7 @@ char transport_option[512]; } RTSPActionServerSetup; -typedef int FFRTSPCallback(enum RTSPCallbackAction action, +typedef int FFRTSPCallback(enum RTSPCallbackAction action, const char *session_id, char *buf, int buf_size, void *arg);
--- a/segafilm.c Sat Dec 17 17:57:03 2005 +0000 +++ b/segafilm.c Sat Dec 17 18:14:38 2005 +0000 @@ -160,7 +160,7 @@ st->codec->sample_rate = film->audio_samplerate; st->codec->bit_rate = st->codec->channels * st->codec->sample_rate * st->codec->bits_per_sample; - st->codec->block_align = st->codec->channels * + st->codec->block_align = st->codec->channels * st->codec->bits_per_sample / 8; } @@ -174,10 +174,10 @@ if(film->sample_count >= UINT_MAX / sizeof(film_sample_t)) return -1; film->sample_table = av_malloc(film->sample_count * sizeof(film_sample_t)); - + for(i=0; i<s->nb_streams; i++) av_set_pts_info(s->streams[i], 33, 1, film->base_clock); - + audio_frame_counter = 0; for (i = 0; i < film->sample_count; i++) { /* load the next sample record and transfer it to an internal struct */ @@ -185,7 +185,7 @@ av_free(film->sample_table); return AVERROR_IO; } - film->sample_table[i].sample_offset = + film->sample_table[i].sample_offset = data_offset + BE_32(&scratch[0]); film->sample_table[i].sample_size = BE_32(&scratch[4]); if (BE_32(&scratch[8]) == 0xFFFFFFFF) { @@ -227,7 +227,7 @@ url_fseek(pb, sample->sample_offset, SEEK_SET); /* do a special song and dance when loading FILM Cinepak chunks */ - if ((sample->stream == film->video_stream_index) && + if ((sample->stream == film->video_stream_index) && (film->video_type == CODEC_ID_CINEPAK)) { if (av_new_packet(pkt, sample->sample_size - film->cvid_extra_bytes)) return AVERROR_NOMEM; @@ -237,7 +237,7 @@ ret = get_buffer(pb, pkt->data, 10); /* skip the non-spec CVID bytes */ url_fseek(pb, film->cvid_extra_bytes, SEEK_CUR); - ret += get_buffer(pb, pkt->data + 10, + ret += get_buffer(pb, pkt->data + 10, sample->sample_size - 10 - film->cvid_extra_bytes); if (ret != sample->sample_size - film->cvid_extra_bytes) ret = AVERROR_IO;
--- a/sgi.c Sat Dec 17 17:57:03 2005 +0000 +++ b/sgi.c Sat Dec 17 18:14:38 2005 +0000 @@ -65,8 +65,8 @@ info->xsize = (unsigned short) get_be16(f); info->ysize = (unsigned short) get_be16(f); info->zsize = (unsigned short) get_be16(f); - - if(info->zsize > 4096) + + if(info->zsize > 4096) info->zsize= 0; #ifdef DEBUG @@ -85,13 +85,13 @@ /* read an uncompressed sgi image */ -static int read_uncompressed_sgi(const SGIInfo *si, +static int read_uncompressed_sgi(const SGIInfo *si, AVPicture *pict, ByteIOContext *f) { int x, y, z, chan_offset, ret = 0; uint8_t *dest_row; - /* skip header */ + /* skip header */ url_fseek(f, SGI_HEADER_SIZE, SEEK_SET); pict->linesize[0] = si->xsize; @@ -100,17 +100,17 @@ #ifndef WORDS_BIGENDIAN /* rgba -> bgra for rgba32 on little endian cpus */ - if (si->zsize == 4 && z != 3) + if (si->zsize == 4 && z != 3) chan_offset = 2 - z; else #endif chan_offset = z; - + for (y = si->ysize - 1; y >= 0; y--) { dest_row = pict->data[0] + (y * si->xsize * si->zsize); for (x = 0; x < si->xsize; x++) { - dest_row[chan_offset] = get_byte(f); + dest_row[chan_offset] = get_byte(f); dest_row += si->zsize; } } @@ -126,14 +126,14 @@ { unsigned char pixel, count; int length = 0; - + #ifndef WORDS_BIGENDIAN /* rgba -> bgra for rgba32 on little endian cpus */ if (pixelstride == 4 && chan_offset != 3) { chan_offset = 2 - chan_offset; } #endif - + optr += chan_offset; while (1) { @@ -162,12 +162,12 @@ /* read a run length encoded sgi image */ -static int read_rle_sgi(const SGIInfo *sgi_info, +static int read_rle_sgi(const SGIInfo *sgi_info, AVPicture *pict, ByteIOContext *f) { uint8_t *dest_row; unsigned long *start_table; - int y, z, xsize, ysize, zsize, tablen; + int y, z, xsize, ysize, zsize, tablen; long start_offset; int ret = 0; @@ -175,7 +175,7 @@ ysize = sgi_info->ysize; zsize = sgi_info->zsize; - /* skip header */ + /* skip header */ url_fseek(f, SGI_HEADER_SIZE, SEEK_SET); /* size of rle offset and length tables */ @@ -188,7 +188,7 @@ goto fail; } - /* skip run length table */ + /* skip run length table */ url_fseek(f, tablen, SEEK_CUR); for (z = 0; z < zsize; z++) { @@ -216,7 +216,7 @@ } -static int sgi_read(ByteIOContext *f, +static int sgi_read(ByteIOContext *f, int (*alloc_cb)(void *opaque, AVImageInfo *info), void *opaque) { SGIInfo sgi_info, *s = &sgi_info; @@ -267,23 +267,23 @@ put_be16(f, SGI_MAGIC); put_byte(f, info->rle); - put_byte(f, info->bytes_per_channel); + put_byte(f, info->bytes_per_channel); put_be16(f, info->dimension); put_be16(f, info->xsize); put_be16(f, info->ysize); put_be16(f, info->zsize); /* The rest are constant in this implementation */ - put_be32(f, 0L); /* pixmin */ - put_be32(f, 255L); /* pixmax */ - put_be32(f, 0L); /* dummy */ + put_be32(f, 0L); /* pixmin */ + put_be32(f, 255L); /* pixmax */ + put_be32(f, 0L); /* dummy */ /* name */ for (i = 0; i < 80; i++) { put_byte(f, 0); } - put_be32(f, 0L); /* colormap */ + put_be32(f, 0L); /* colormap */ /* The rest of the 512 byte header is unused. */ for (i = 0; i < 404; i++) { @@ -302,7 +302,7 @@ row += (2 * stride); x -= 2; - while (x > 0 && (row[-2 * stride] != row[-1 * stride] || + while (x > 0 && (row[-2 * stride] != row[-1 * stride] || row[-1 * stride] != row[0])) { row += stride; x--; @@ -316,7 +316,7 @@ i = count > 126 ? 126 : count; count -= i; - put_byte(f, 0x80 | i); + put_byte(f, 0x80 | i); length++; while (i > 0) { @@ -350,14 +350,14 @@ put_byte(f, i); length++; - put_byte(f, repeat); + put_byte(f, repeat); length++; }; }; length++; - put_byte(f, 0); + put_byte(f, 0); return (length); } @@ -374,7 +374,7 @@ si->ysize = info->height; si->rle = 1; si->bytes_per_channel = 1; - + switch(info->pix_fmt) { case PIX_FMT_GRAY8: si->dimension = SGI_SINGLE_CHAN; @@ -392,14 +392,14 @@ return AVERROR_INVALIDDATA; } - write_sgi_header(pb, si); + write_sgi_header(pb, si); tablesize = si->zsize * si->ysize * sizeof(long); - + /* skip rle offset and length tables, write them at the end. */ url_fseek(pb, tablesize * 2, SEEK_CUR); put_flush_packet(pb); - + lengthtab = av_malloc(tablesize); offsettab = av_malloc(tablesize); @@ -407,36 +407,36 @@ #ifndef WORDS_BIGENDIAN /* rgba -> bgra for rgba32 on little endian cpus */ - if (si->zsize == 4 && z != 3) + if (si->zsize == 4 && z != 3) chan_offset = 2 - z; else #endif chan_offset = z; - + srcrow = info->pict.data[0] + chan_offset; - + for (y = si->ysize -1; y >= 0; y--) { offsettab[(z * si->ysize) + y] = url_ftell(pb); lengthtab[(z * si->ysize) + y] = rle_row(pb, srcrow, si->zsize, si->xsize); - srcrow += info->pict.linesize[0]; + srcrow += info->pict.linesize[0]; } } url_fseek(pb, 512, SEEK_SET); - + /* write offset table */ for (i = 0; i < (si->ysize * si->zsize); i++) { put_be32(pb, offsettab[i]); } - + /* write length table */ for (i = 0; i < (si->ysize * si->zsize); i++) { put_be32(pb, lengthtab[i]); } put_flush_packet(pb); - + av_free(lengthtab); av_free(offsettab); @@ -449,7 +449,7 @@ "sgi,rgb,rgba,bw", sgi_probe, sgi_read, - (1 << PIX_FMT_GRAY8) | (1 << PIX_FMT_RGB24) | (1 << PIX_FMT_RGBA32), + (1 << PIX_FMT_GRAY8) | (1 << PIX_FMT_RGB24) | (1 << PIX_FMT_RGBA32), #ifdef CONFIG_MUXERS sgi_write, #else
--- a/sierravmd.c Sat Dec 17 17:57:03 2005 +0000 +++ b/sierravmd.c Sat Dec 17 18:14:38 2005 +0000 @@ -153,7 +153,7 @@ st->codec->codec_tag = 0; /* no codec tag */ st->codec->channels = (vmd->vmd_header[811] & 0x80) ? 2 : 1; st->codec->sample_rate = vmd->sample_rate; - st->codec->block_align = vmd->audio_block_align = + st->codec->block_align = vmd->audio_block_align = LE_16(&vmd->vmd_header[806]); if (st->codec->block_align & 0x8000) { st->codec->bits_per_sample = 16; @@ -161,11 +161,11 @@ } else st->codec->bits_per_sample = 16; // st->codec->bits_per_sample = 8; - st->codec->bit_rate = st->codec->sample_rate * + st->codec->bit_rate = st->codec->sample_rate * st->codec->bits_per_sample * st->codec->channels; /* for calculating pts */ - vmd->audio_frame_divisor = st->codec->bits_per_sample / 8 / + vmd->audio_frame_divisor = st->codec->bits_per_sample / 8 / st->codec->channels; video_pts_inc = 90000; @@ -176,8 +176,8 @@ video_pts_inc = 90000 / 10; } - /* skip over the offset table and load the table of contents; don't - * care about the offset table since demuxer will calculate those + /* skip over the offset table and load the table of contents; don't + * care about the offset table since demuxer will calculate those * independently */ toc_offset = LE_32(&vmd->vmd_header[812]); vmd->frame_count = LE_16(&vmd->vmd_header[6]); @@ -197,7 +197,7 @@ av_free(vmd->frame_table); return AVERROR_NOMEM; } - if (get_buffer(pb, raw_frame_table, raw_frame_table_size) != + if (get_buffer(pb, raw_frame_table, raw_frame_table_size) != raw_frame_table_size) { av_free(raw_frame_table); av_free(vmd->frame_table); @@ -213,7 +213,7 @@ /* if the frame size is 0, do not count the frame and bring the * total frame count down */ // note, we limit the size to 1Gb to ensure that we dont end up overflowing the size integer used to allocate the memory - vmd->frame_table[i].frame_size = LE_32(¤t_frame_record[2]) & 0x3FFFFFFF; + vmd->frame_table[i].frame_size = LE_32(¤t_frame_record[2]) & 0x3FFFFFFF; /* this logic is present so that 0-length audio chunks are not * accounted */ @@ -271,7 +271,7 @@ return AVERROR_NOMEM; pkt->pos= url_ftell(pb); memcpy(pkt->data, frame->frame_record, BYTES_PER_FRAME_RECORD); - ret = get_buffer(pb, pkt->data + BYTES_PER_FRAME_RECORD, + ret = get_buffer(pb, pkt->data + BYTES_PER_FRAME_RECORD, frame->frame_size); if (ret != frame->frame_size) {
--- a/sol.c Sat Dec 17 17:57:03 2005 +0000 +++ b/sol.c Sat Dec 17 18:14:38 2005 +0000 @@ -1,4 +1,4 @@ -/* +/* * Sierra SOL decoder * Copyright Konstantin Shishkov. * @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* +/* * Based on documents from Game Audio Player and own research */ @@ -81,7 +81,7 @@ if (magic == 0x0B8D || !(type & SOL_STEREO)) return 1; return 2; } - + static int sol_read_header(AVFormatContext *s, AVFormatParameters *ap) { @@ -101,14 +101,14 @@ size = get_le32(pb); if (magic != 0x0B8D) get_byte(pb); /* newer SOLs contain padding byte */ - + codec = sol_codec_id(magic, type); channels = sol_channels(magic, type); - + if (codec == CODEC_ID_SOL_DPCM) id = sol_codec_type(magic, type); else id = 0; - + /* now we are ready: build format streams */ st = av_new_stream(s, 0); if (!st) @@ -117,7 +117,7 @@ st->codec->codec_tag = id; st->codec->codec_id = codec; st->codec->channels = channels; - st->codec->sample_rate = rate; + st->codec->sample_rate = rate; av_set_pts_info(st, 64, 1, rate); return 0; }
--- a/swf.c Sat Dec 17 17:57:03 2005 +0000 +++ b/swf.c Sat Dec 17 18:14:38 2005 +0000 @@ -61,7 +61,7 @@ offset_t duration_pos; offset_t tag_pos; - + int samples_per_frame; int sound_samples; int video_samples; @@ -120,7 +120,7 @@ int bitRate = 0; int bitsPerSlot = sBitsPerSlot[layerID]; int isPadded = ((header >> 9) & 0x01); - + if ( (( header >> 21 ) & 0x7ff) != 0x7ff ) { return 0; } @@ -203,7 +203,7 @@ *nbits_ptr = n; } -static void put_swf_rect(ByteIOContext *pb, +static void put_swf_rect(ByteIOContext *pb, int xmin, int xmax, int ymin, int ymax) { PutBitContext p; @@ -211,7 +211,7 @@ int nbits, mask; init_put_bits(&p, buf, sizeof(buf)); - + nbits = 0; max_nbits(&nbits, xmin); max_nbits(&nbits, xmax); @@ -225,7 +225,7 @@ put_bits(&p, nbits, xmax & mask); put_bits(&p, nbits, ymin & mask); put_bits(&p, nbits, ymax & mask); - + flush_put_bits(&p); put_buffer(pb, buf, pbBufPtr(&p) - p.buf); } @@ -243,15 +243,15 @@ mask = (1 << nbits) - 1; put_bits(pb, 4, nbits - 2); /* 16 bits precision */ if (dx == 0) { - put_bits(pb, 1, 0); - put_bits(pb, 1, 1); + put_bits(pb, 1, 0); + put_bits(pb, 1, 1); put_bits(pb, nbits, dy & mask); } else if (dy == 0) { - put_bits(pb, 1, 0); - put_bits(pb, 1, 0); + put_bits(pb, 1, 0); + put_bits(pb, 1, 0); put_bits(pb, nbits, dx & mask); } else { - put_bits(pb, 1, 1); + put_bits(pb, 1, 1); put_bits(pb, nbits, dx & mask); put_bits(pb, nbits, dy & mask); } @@ -268,7 +268,7 @@ int nbits; init_put_bits(&p, buf, sizeof(buf)); - + put_bits(&p, 1, 1); /* a, d present */ nbits = 1; max_nbits(&nbits, a); @@ -276,7 +276,7 @@ put_bits(&p, 5, nbits); /* nb bits */ put_bits(&p, nbits, a); put_bits(&p, nbits, d); - + put_bits(&p, 1, 1); /* b, c present */ nbits = 1; max_nbits(&nbits, c); @@ -366,14 +366,14 @@ } else { put_byte(pb, 4); /* version (should use 4 for mpeg audio support) */ } - put_le32(pb, DUMMY_FILE_SIZE); /* dummy size - (will be patched if not streamed) */ + put_le32(pb, DUMMY_FILE_SIZE); /* dummy size + (will be patched if not streamed) */ put_swf_rect(pb, 0, width * 20, 0, height * 20); put_le16(pb, (rate * 256) / rate_base); /* frame rate */ swf->duration_pos = url_ftell(pb); put_le16(pb, (uint16_t)(DUMMY_DURATION * (int64_t)rate / rate_base)); /* frame count */ - + /* define a shape with the jpeg inside */ if ( video_enc && video_enc->codec_id == CODEC_ID_FLV1 ) { } else if ( video_enc && video_enc->codec_id == CODEC_ID_MJPEG ) { @@ -387,28 +387,28 @@ put_byte(pb, 0x41); /* clipped bitmap fill */ put_le16(pb, BITMAP_ID); /* bitmap ID */ /* position of the bitmap */ - put_swf_matrix(pb, (int)(1.0 * (1 << FRAC_BITS)), 0, + put_swf_matrix(pb, (int)(1.0 * (1 << FRAC_BITS)), 0, 0, (int)(1.0 * (1 << FRAC_BITS)), 0, 0); put_byte(pb, 0); /* no line style */ - + /* shape drawing */ init_put_bits(&p, buf1, sizeof(buf1)); put_bits(&p, 4, 1); /* one fill bit */ put_bits(&p, 4, 0); /* zero line bit */ - + put_bits(&p, 1, 0); /* not an edge */ put_bits(&p, 5, FLAG_MOVETO | FLAG_SETFILL0); put_bits(&p, 5, 1); /* nbits */ put_bits(&p, 1, 0); /* X */ put_bits(&p, 1, 0); /* Y */ put_bits(&p, 1, 1); /* set fill style 1 */ - + /* draw the rectangle ! */ put_swf_line_edge(&p, width, 0); put_swf_line_edge(&p, 0, height); put_swf_line_edge(&p, -width, 0); put_swf_line_edge(&p, 0, -height); - + /* end of shape */ put_bits(&p, 1, 0); /* not an edge */ put_bits(&p, 5, 0); @@ -418,7 +418,7 @@ put_swf_end_tag(s); } - + if (audio_enc && audio_enc->codec_id == CODEC_ID_MP3 ) { int v; @@ -450,7 +450,7 @@ put_byte(&s->pb, v); put_le16(&s->pb, swf->samples_per_frame); /* avg samples per frame */ put_le16(&s->pb, 0); - + put_swf_end_tag(s); } @@ -458,7 +458,7 @@ return 0; } -static int swf_write_video(AVFormatContext *s, +static int swf_write_video(AVFormatContext *s, AVCodecContext *enc, const uint8_t *buf, int size) { SWFContext *swf = s->priv_data; @@ -466,7 +466,7 @@ int c = 0; int outSize = 0; int outSamples = 0; - + /* Flash Player limit */ if ( swf->swf_frame_number == 16000 ) { av_log(enc, AV_LOG_INFO, "warning: Flash Player limit of 16000 frames reached\n"); @@ -480,13 +480,13 @@ int mp3SampleRate = 0; int mp3IsMono = 0; int mp3SamplesPerFrame = 0; - + /* copy out mp3 header from ring buffer */ uint8_t header[4]; for (c=0; c<4; c++) { header[c] = swf->audio_fifo[(swf->audio_in_pos+outSize+c) % AUDIO_FIFO_SIZE]; } - + if ( swf_mp3_info(header,&mp3FrameSize,&mp3SamplesPerFrame,&mp3SampleRate,&mp3IsMono) ) { if ( ( swf->audio_size-outSize ) >= mp3FrameSize ) { outSize += mp3FrameSize; @@ -497,7 +497,7 @@ } } else { /* invalid mp3 data, skip forward - we need to do this since the Flash Player + we need to do this since the Flash Player does not like custom headers */ swf->audio_in_pos ++; swf->audio_size --; @@ -505,7 +505,7 @@ goto retry_swf_audio_packet; } } - + /* audio stream is behind video stream, bail */ if ( ( swf->sound_samples + outSamples + swf->samples_per_frame ) < swf->video_samples ) { return 0; @@ -523,7 +523,7 @@ put_byte(pb, 0); put_byte(pb, SWF_VIDEO_CODEC_FLV1); put_swf_end_tag(s); - + /* place the video object for the first time */ put_swf_tag(s, TAG_PLACEOBJECT2); put_byte(pb, 0x36); @@ -546,10 +546,10 @@ put_le16(pb, swf->video_frame_number ); put_swf_end_tag(s); } - + /* set video frame data */ put_swf_tag(s, TAG_VIDEOFRAME | TAG_LONG); - put_le16(pb, VIDEO_ID); + put_le16(pb, VIDEO_ID); put_le16(pb, swf->video_frame_number++ ); put_buffer(pb, buf, size); put_swf_end_tag(s); @@ -560,29 +560,29 @@ put_le16(pb, SHAPE_ID); /* shape ID */ put_le16(pb, 1); /* depth */ put_swf_end_tag(s); - + /* free the bitmap */ put_swf_tag(s, TAG_FREECHARACTER); put_le16(pb, BITMAP_ID); put_swf_end_tag(s); } - + put_swf_tag(s, TAG_JPEG2 | TAG_LONG); - + put_le16(pb, BITMAP_ID); /* ID of the image */ - + /* a dummy jpeg header seems to be required */ - put_byte(pb, 0xff); + put_byte(pb, 0xff); put_byte(pb, 0xd8); put_byte(pb, 0xff); put_byte(pb, 0xd9); /* write the jpeg image */ put_buffer(pb, buf, size); - + put_swf_end_tag(s); - + /* draw the shape */ - + put_swf_tag(s, TAG_PLACEOBJECT); put_le16(pb, SHAPE_ID); /* shape ID */ put_le16(pb, 1); /* depth */ @@ -591,7 +591,7 @@ } else { /* invalid codec */ } - + swf->swf_frame_number ++; swf->video_samples += swf->samples_per_frame; @@ -605,7 +605,7 @@ put_byte(pb,swf->audio_fifo[(swf->audio_in_pos+c) % AUDIO_FIFO_SIZE]); } put_swf_end_tag(s); - + /* update FIFO */ swf->sound_samples += outSamples; swf->audio_in_pos += outSize; @@ -616,13 +616,13 @@ /* output the frame */ put_swf_tag(s, TAG_SHOWFRAME); put_swf_end_tag(s); - + put_flush_packet(&s->pb); - + return 0; } -static int swf_write_audio(AVFormatContext *s, +static int swf_write_audio(AVFormatContext *s, AVCodecContext *enc, const uint8_t *buf, int size) { SWFContext *swf = s->priv_data; @@ -675,7 +675,7 @@ put_swf_tag(s, TAG_END); put_swf_end_tag(s); - + put_flush_packet(&s->pb); /* patch file size and number of frames if not streamed */ @@ -686,7 +686,7 @@ url_fseek(pb, swf->duration_pos, SEEK_SET); put_le16(pb, video_enc->frame_number); } - + av_free(swf->audio_fifo); return 0; @@ -697,13 +697,13 @@ /* Extract FLV encoded frame and MP3 from swf Note that the detection of the real frame is inaccurate at this point as it can be - quite tricky to determine, you almost certainly + quite tricky to determine, you almost certainly will get a bad audio/video sync */ static int get_swf_tag(ByteIOContext *pb, int *len_ptr) { int tag, len; - + if (url_feof(pb)) return -1; @@ -761,9 +761,9 @@ url_fskip(pb, len); frame_rate = get_le16(pb); get_le16(pb); /* frame count */ - - /* The Flash Player converts 8.8 frame rates - to milliseconds internally. Do the same to get + + /* The Flash Player converts 8.8 frame rates + to milliseconds internally. Do the same to get a correct framerate */ swf->ms_per_frame = ( 1000 * 256 ) / frame_rate; swf->samples_per_frame = 0; @@ -793,7 +793,7 @@ if ( get_byte(pb) == SWF_VIDEO_CODEC_FLV1 ) { vst = av_new_stream(s, 0); av_set_pts_info(vst, 24, 1, 1000); /* 24 bit pts in ms */ - + vst->codec->codec_type = CODEC_TYPE_VIDEO; vst->codec->codec_id = CODEC_ID_FLV1; if ( swf->samples_per_frame ) { @@ -845,7 +845,7 @@ } } url_fseek(pb, firstTagOff, SEEK_SET); - + return 0; } @@ -855,10 +855,10 @@ ByteIOContext *pb = &s->pb; AVStream *st = 0; int tag, len, i, frame; - + for(;;) { tag = get_swf_tag(pb, &len); - if (tag < 0) + if (tag < 0) return AVERROR_IO; if (tag == TAG_VIDEOFRAME) { for( i=0; i<s->nb_streams; i++ ) { @@ -875,7 +875,7 @@ continue; } } - } + } url_fskip(pb, len); } else if (tag == TAG_STREAMBLOCK) { for( i=0; i<s->nb_streams; i++ ) {
--- a/tcp.c Sat Dec 17 17:57:03 2005 +0000 +++ b/tcp.c Sat Dec 17 18:14:38 2005 +0000 @@ -68,15 +68,15 @@ &port, path, sizeof(path), uri); // PETR: use url_split if (strcmp(proto,"tcp")) goto fail; // PETR: check protocol if ((q = strchr(hostname,'@'))) { strcpy(tmp,q+1); strcpy(hostname,tmp); } // PETR: take only the part after '@' for tcp protocol - + s = av_malloc(sizeof(TCPContext)); if (!s) return -ENOMEM; h->priv_data = s; - + if (port <= 0 || port >= 65536) goto fail; - + dest_addr.sin_family = AF_INET; dest_addr.sin_port = htons(port); if (resolve_host(&dest_addr.sin_addr, hostname) < 0) @@ -86,9 +86,9 @@ if (fd < 0) goto fail; fcntl(fd, F_SETFL, O_NONBLOCK); - + redo: - ret = connect(fd, (struct sockaddr *)&dest_addr, + ret = connect(fd, (struct sockaddr *)&dest_addr, sizeof(dest_addr)); if (ret < 0) { if (errno == EINTR) @@ -111,7 +111,7 @@ if (ret > 0 && FD_ISSET(fd, &wfds)) break; } - + /* test error */ optlen = sizeof(ret); getsockopt (fd, SOL_SOCKET, SO_ERROR, &ret, &optlen);
--- a/udp.c Sat Dec 17 17:57:03 2005 +0000 +++ b/udp.c Sat Dec 17 18:14:38 2005 +0000 @@ -53,9 +53,9 @@ int udp_ipv6_is_multicast_address(const struct sockaddr *addr) { if (addr->sa_family == AF_INET) - return IN_MULTICAST(ntohl(((struct sockaddr_in *)addr)->sin_addr.s_addr)); + return IN_MULTICAST(ntohl(((struct sockaddr_in *)addr)->sin_addr.s_addr)); if (addr->sa_family == AF_INET6) - return IN6_IS_ADDR_MULTICAST(&((struct sockaddr_in6 *)addr)->sin6_addr); + return IN6_IS_ADDR_MULTICAST(&((struct sockaddr_in6 *)addr)->sin6_addr); return -1; } @@ -77,7 +77,7 @@ int udp_ipv6_join_multicast_group(int sockfd, struct sockaddr *addr) { struct ip_mreq mreq; - struct ipv6_mreq mreq6; + struct ipv6_mreq mreq6; if (addr->sa_family == AF_INET) { mreq.imr_multiaddr.s_addr = ((struct sockaddr_in *)addr)->sin_addr.s_addr; mreq.imr_interface.s_addr= INADDR_ANY; @@ -99,7 +99,7 @@ int udp_ipv6_leave_multicast_group(int sockfd, struct sockaddr *addr) { struct ip_mreq mreq; - struct ipv6_mreq mreq6; + struct ipv6_mreq mreq6; if (addr->sa_family == AF_INET) { mreq.imr_multiaddr.s_addr = ((struct sockaddr_in *)addr)->sin_addr.s_addr; mreq.imr_interface.s_addr= INADDR_ANY; @@ -136,7 +136,7 @@ memset(&hints, 0, sizeof(hints)); hints.ai_socktype = type; hints.ai_family = family; - hints.ai_flags = flags; + hints.ai_flags = flags; if ((error = getaddrinfo(node, service, &hints, &res))) { av_log(NULL, AV_LOG_ERROR, "udp_ipv6_resolve_host: %s\n", gai_strerror(error)); } @@ -166,25 +166,25 @@ char sbuf[NI_MAXSERV]; char hbuf[NI_MAXHOST]; struct addrinfo *res0 = NULL, *res = NULL; - - if (s->local_port != 0) { + + if (s->local_port != 0) { res0 = udp_ipv6_resolve_host(0, s->local_port, SOCK_DGRAM, AF_UNSPEC, AI_PASSIVE); if (res0 == 0) goto fail; - for (res = res0; res; res=res->ai_next) { + for (res = res0; res; res=res->ai_next) { udp_fd = socket(res->ai_family, SOCK_DGRAM, 0); if (udp_fd > 0) break; perror("socket"); } } else { udp_fd = socket(s->dest_addr.ss_family, SOCK_DGRAM, 0); - if (udp_fd < 0) + if (udp_fd < 0) perror("socket"); } if (udp_fd < 0) goto fail; - + if (s->local_port != 0) { if (bind(udp_fd, res0->ai_addr, res0->ai_addrlen) < 0) { perror("bind"); @@ -192,7 +192,7 @@ } freeaddrinfo(res0); res0 = NULL; - } + } addrlen = sizeof(clientaddr); if (getsockname(udp_fd, (struct sockaddr *)&clientaddr, &addrlen) < 0) { @@ -206,9 +206,9 @@ } s->local_port = strtol(sbuf, NULL, 10); - + return udp_fd; - + fail: if (udp_fd >= 0) #ifdef CONFIG_BEOS_NETSERVER @@ -230,7 +230,7 @@ * the remote server address. * * url syntax: udp://host:port[?option=val...] - * option: 'multicast=1' : enable multicast + * option: 'multicast=1' : enable multicast * 'ttl=n' : set the ttl value (for multicast only) * 'localport=n' : set the local port * 'pkt_size=n' : set max packet size @@ -247,7 +247,7 @@ UDPContext *s = h->priv_data; char hostname[256]; int port; - + url_split(NULL, 0, NULL, 0, hostname, sizeof(hostname), &port, NULL, 0, uri); /* set the destination address */ @@ -300,7 +300,7 @@ h->max_packet_size = 1472; is_output = (flags & URL_WRONLY); - + s = av_malloc(sizeof(UDPContext)); if (!s) return -ENOMEM; @@ -325,7 +325,7 @@ /* fill the dest addr */ url_split(NULL, 0, NULL, 0, hostname, sizeof(hostname), &port, NULL, 0, uri); - + /* XXX: fix url_split */ if (hostname[0] == '\0' || hostname[0] == '?') { /* only accepts null hostname if input */ @@ -350,7 +350,7 @@ } /* the bind is needed to give a port to the socket now */ - if (bind(udp_fd,(struct sockaddr *)&my_addr, sizeof(my_addr)) < 0) + if (bind(udp_fd,(struct sockaddr *)&my_addr, sizeof(my_addr)) < 0) goto fail; len = sizeof(my_addr1); @@ -361,7 +361,7 @@ if (s->is_multicast) { if (h->flags & URL_WRONLY) { /* output */ - if (setsockopt(udp_fd, IPPROTO_IP, IP_MULTICAST_TTL, + if (setsockopt(udp_fd, IPPROTO_IP, IP_MULTICAST_TTL, &s->ttl, sizeof(s->ttl)) < 0) { perror("IP_MULTICAST_TTL"); goto fail; @@ -371,7 +371,7 @@ memset(&s->mreq, 0, sizeof(s->mreq)); s->mreq.imr_multiaddr = s->dest_addr.sin_addr; s->mreq.imr_interface.s_addr = htonl (INADDR_ANY); - if (setsockopt(udp_fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, + if (setsockopt(udp_fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &s->mreq, sizeof(s->mreq)) < 0) { perror("rtp: IP_ADD_MEMBERSHIP"); goto fail; @@ -395,7 +395,7 @@ goto fail; } } -#endif +#endif #endif if (is_output) { @@ -450,7 +450,7 @@ int ret; for(;;) { - ret = sendto (s->udp_fd, buf, size, 0, + ret = sendto (s->udp_fd, buf, size, 0, (struct sockaddr *) &s->dest_addr, #ifndef CONFIG_IPV6 sizeof (s->dest_addr)); @@ -474,7 +474,7 @@ #ifndef CONFIG_BEOS_NETSERVER #ifndef CONFIG_IPV6 if (s->is_multicast && !(h->flags & URL_WRONLY)) { - if (setsockopt(s->udp_fd, IPPROTO_IP, IP_DROP_MEMBERSHIP, + if (setsockopt(s->udp_fd, IPPROTO_IP, IP_DROP_MEMBERSHIP, &s->mreq, sizeof(s->mreq)) < 0) { perror("IP_DROP_MEMBERSHIP"); }
--- a/utils.c Sat Dec 17 17:57:03 2005 +0000 +++ b/utils.c Sat Dec 17 18:14:38 2005 +0000 @@ -58,19 +58,19 @@ if(!filename) return 0; - + ext = strrchr(filename, '.'); if (ext) { ext++; p = extensions; for(;;) { q = ext1; - while (*p != '\0' && *p != ',' && q-ext1<sizeof(ext1)-1) + while (*p != '\0' && *p != ',' && q-ext1<sizeof(ext1)-1) *q++ = *p++; *q = '\0'; - if (!strcasecmp(ext1, ext)) + if (!strcasecmp(ext1, ext)) return 1; - if (*p == '\0') + if (*p == '\0') break; p++; } @@ -78,19 +78,19 @@ return 0; } -AVOutputFormat *guess_format(const char *short_name, const char *filename, +AVOutputFormat *guess_format(const char *short_name, const char *filename, const char *mime_type) { AVOutputFormat *fmt, *fmt_found; int score_max, score; /* specific test for image sequences */ - if (!short_name && filename && + if (!short_name && filename && filename_number_test(filename) >= 0 && av_guess_image2_codec(filename) != CODEC_ID_NONE) { return guess_format("image2", NULL, NULL); } - if (!short_name && filename && + if (!short_name && filename && filename_number_test(filename) >= 0 && guess_image_format(filename)) { return guess_format("image", NULL, NULL); @@ -106,7 +106,7 @@ score += 100; if (fmt->mime_type && mime_type && !strcmp(fmt->mime_type, mime_type)) score += 10; - if (filename && fmt->extensions && + if (filename && fmt->extensions && match_ext(filename, fmt->extensions)) { score += 5; } @@ -117,9 +117,9 @@ fmt = fmt->next; } return fmt_found; -} - -AVOutputFormat *guess_stream_format(const char *short_name, const char *filename, +} + +AVOutputFormat *guess_stream_format(const char *short_name, const char *filename, const char *mime_type) { AVOutputFormat *fmt = guess_format(short_name, filename, mime_type); @@ -141,7 +141,7 @@ /** * Guesses the codec id based upon muxer and filename. */ -enum CodecID av_guess_codec(AVOutputFormat *fmt, const char *short_name, +enum CodecID av_guess_codec(AVOutputFormat *fmt, const char *short_name, const char *filename, const char *mime_type, enum CodecType type){ if(type == CODEC_TYPE_VIDEO){ enum CodecID codec_id= CODEC_ID_NONE; @@ -193,14 +193,14 @@ { void *data; if((unsigned)size > (unsigned)size + FF_INPUT_BUFFER_PADDING_SIZE) - return AVERROR_NOMEM; + return AVERROR_NOMEM; data = av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE); if (!data) return AVERROR_NOMEM; memset(data + size, 0, FF_INPUT_BUFFER_PADDING_SIZE); av_init_packet(pkt); - pkt->data = data; + pkt->data = data; pkt->size = size; pkt->destruct = av_destruct_packet; return 0; @@ -240,7 +240,7 @@ /* we duplicate the packet and don't forget to put the padding again */ if((unsigned)pkt->size > (unsigned)pkt->size + FF_INPUT_BUFFER_PADDING_SIZE) - return AVERROR_NOMEM; + return AVERROR_NOMEM; data = av_malloc(pkt->size + FF_INPUT_BUFFER_PADDING_SIZE); if (!data) { return AVERROR_NOMEM; @@ -273,7 +273,7 @@ int fifo_size(FifoBuffer *f, uint8_t *rptr) { int size; - + if(!rptr) rptr= f->rptr; @@ -302,7 +302,7 @@ } else { size = (f->end - rptr) + (f->wptr - f->buffer); } - + if (size < buf_size) return -1; while (buf_size > 0) { @@ -325,7 +325,7 @@ */ void fifo_realloc(FifoBuffer *f, unsigned int new_size){ unsigned int old_size= f->end - f->buffer; - + if(old_size < new_size){ uint8_t *old= f->buffer; @@ -376,7 +376,7 @@ } else { size = (f->end - rptr) + (f->wptr - f->buffer); } - + if (size < buf_size) return -1; while (buf_size > 0) { @@ -421,7 +421,7 @@ if (match_ext(pd->filename, fmt1->extensions)) { score = 50; } - } + } if (score > score_max) { score_max = score; fmt = fmt1; @@ -459,8 +459,8 @@ * Allocates all the structures needed to read an input stream. * This does not open the needed codecs for decoding the stream[s]. */ -int av_open_input_stream(AVFormatContext **ic_ptr, - ByteIOContext *pb, const char *filename, +int av_open_input_stream(AVFormatContext **ic_ptr, + ByteIOContext *pb, const char *filename, AVInputFormat *fmt, AVFormatParameters *ap) { int err; @@ -521,7 +521,7 @@ * @param ap additionnal parameters needed when opening the file (NULL if default) * @return 0 if OK. AVERROR_xxx otherwise. */ -int av_open_input_file(AVFormatContext **ic_ptr, const char *filename, +int av_open_input_file(AVFormatContext **ic_ptr, const char *filename, AVInputFormat *fmt, int buf_size, AVFormatParameters *ap) @@ -530,7 +530,7 @@ uint8_t buf[PROBE_BUF_SIZE]; AVProbeData probe_data, *pd = &probe_data; ByteIOContext pb1, *pb = &pb1; - + file_opened = 0; pd->filename = ""; if (filename) @@ -573,7 +573,7 @@ } } } - + /* guess file format */ if (!fmt) { fmt = av_probe_input_format(pd, 1); @@ -584,7 +584,7 @@ err = AVERROR_NOFMT; goto fail; } - + /* XXX: suppress this hack for redirectors */ #ifdef CONFIG_NETWORK if (fmt == &redir_demux) { @@ -596,7 +596,7 @@ /* check filename in case of an image number is expected */ if (fmt->flags & AVFMT_NEEDNUMBER) { - if (filename_number_test(filename) < 0) { + if (filename_number_test(filename) < 0) { err = AVERROR_NUMEXPECTED; goto fail; } @@ -610,7 +610,7 @@ url_fclose(pb); *ic_ptr = NULL; return err; - + } /*******************************************************/ @@ -620,10 +620,10 @@ * * This function is absolete and should never be used. * Use av_read_frame() instead. - * + * * @param s media file handle - * @param pkt is filled - * @return 0 if OK. AVERROR_xxx if error. + * @param pkt is filled + * @return 0 if OK. AVERROR_xxx if error. */ int av_read_packet(AVFormatContext *s, AVPacket *pkt) { @@ -693,7 +693,7 @@ /** * Return the frame duration in seconds, return 0 if not available. */ -static void compute_frame_duration(int *pnum, int *pden, AVStream *st, +static void compute_frame_duration(int *pnum, int *pden, AVStream *st, AVCodecParserContext *pc, AVPacket *pkt) { int frame_size; @@ -754,7 +754,7 @@ return ((lsb - delta)&mask) + delta; } -static void compute_pkt_fields(AVFormatContext *s, AVStream *st, +static void compute_pkt_fields(AVFormatContext *s, AVStream *st, AVCodecParserContext *pc, AVPacket *pkt) { int num, den, presentation_delayed; @@ -765,7 +765,7 @@ if(pkt->dts != AV_NOPTS_VALUE) pkt->dts= lsb2full(pkt->dts, st->cur_dts, st->pts_wrap_bits); } - + if (pkt->duration == 0) { compute_frame_duration(&num, &den, st, pc, pkt); if (den && num) { @@ -781,15 +781,15 @@ if (st->codec->codec_type == CODEC_TYPE_VIDEO) { /* XXX: need has_b_frame, but cannot get it if the codec is not initialized */ - if (( st->codec->codec_id == CODEC_ID_H264 - || st->codec->has_b_frames) && + if (( st->codec->codec_id == CODEC_ID_H264 + || st->codec->has_b_frames) && pc && pc->pict_type != FF_B_TYPE) presentation_delayed = 1; /* this may be redundant, but it shouldnt hurt */ if(pkt->dts != AV_NOPTS_VALUE && pkt->pts != AV_NOPTS_VALUE && pkt->pts > pkt->dts) presentation_delayed = 1; } - + if(st->cur_dts == AV_NOPTS_VALUE){ if(presentation_delayed) st->cur_dts = -pkt->duration; else st->cur_dts = 0; @@ -828,7 +828,7 @@ // av_log(NULL, AV_LOG_DEBUG, "id:%d old:%Ld new:%Ld dur:%d cur:%Ld size:%d\n", pkt->stream_index, old_diff, new_diff, pkt->duration, st->cur_dts, pkt->size); } } - + /* presentation is not delayed : PTS and DTS are the same */ if (pkt->pts == AV_NOPTS_VALUE) { if (pkt->dts == AV_NOPTS_VALUE) { @@ -846,7 +846,7 @@ st->cur_dts += pkt->duration; } // av_log(NULL, AV_LOG_DEBUG, "OUTdelayed:%d pts:%lld, dts:%lld cur_dts:%lld\n", presentation_delayed, pkt->pts, pkt->dts, st->cur_dts); - + /* update flags */ if (pc) { pkt->flags = 0; @@ -887,7 +887,7 @@ s->cur_st = NULL; return 0; } else if (s->cur_len > 0 && st->discard < AVDISCARD_ALL) { - len = av_parser_parse(st->parser, st->codec, &pkt->data, &pkt->size, + len = av_parser_parse(st->parser, st->codec, &pkt->data, &pkt->size, s->cur_ptr, s->cur_len, s->cur_pkt.pts, s->cur_pkt.dts); s->cur_pkt.pts = AV_NOPTS_VALUE; @@ -895,7 +895,7 @@ /* increment read pointer */ s->cur_ptr += len; s->cur_len -= len; - + /* return packet if any */ if (pkt->size) { got_packet: @@ -909,7 +909,7 @@ } } else { /* free packet */ - av_free_packet(&s->cur_pkt); + av_free_packet(&s->cur_pkt); s->cur_st = NULL; } } else { @@ -922,9 +922,9 @@ for(i = 0; i < s->nb_streams; i++) { st = s->streams[i]; if (st->parser && st->need_parsing) { - av_parser_parse(st->parser, st->codec, - &pkt->data, &pkt->size, - NULL, 0, + av_parser_parse(st->parser, st->codec, + &pkt->data, &pkt->size, + NULL, 0, AV_NOPTS_VALUE, AV_NOPTS_VALUE); if (pkt->size) goto got_packet; @@ -933,7 +933,7 @@ /* no more packets: really terminates parsing */ return ret; } - + st = s->streams[s->cur_pkt.stream_index]; s->cur_st = st; @@ -962,13 +962,13 @@ * frames if each frame has a known fixed size (e.g. PCM or ADPCM * data). If the audio frames have a variable size (e.g. MPEG audio), * then it contains one frame. - * + * * pkt->pts, pkt->dts and pkt->duration are always set to correct * values in AV_TIME_BASE unit (and guessed if the format cannot * provided them). pkt->pts can be AV_NOPTS_VALUE if the video format * has B frames, so it is better to rely on pkt->dts if you do not * decompress the payload. - * + * * @return 0 if OK, < 0 if error or end of file. */ int av_read_frame(AVFormatContext *s, AVPacket *pkt) @@ -984,7 +984,7 @@ if(genpts && next_pkt->dts != AV_NOPTS_VALUE){ while(pktl && next_pkt->pts == AV_NOPTS_VALUE){ - if( pktl->pkt.stream_index == next_pkt->stream_index + if( pktl->pkt.stream_index == next_pkt->stream_index && next_pkt->dts < pktl->pkt.dts && pktl->pkt.pts != pktl->pkt.dts //not b frame /*&& pktl->pkt.dts != AV_NOPTS_VALUE*/){ @@ -994,9 +994,9 @@ } pktl = s->packet_buffer; } - - if( next_pkt->pts != AV_NOPTS_VALUE - || next_pkt->dts == AV_NOPTS_VALUE + + if( next_pkt->pts != AV_NOPTS_VALUE + || next_pkt->dts == AV_NOPTS_VALUE || !genpts || eof){ /* read packet from packet buffer, if there is data */ *pkt = *next_pkt; @@ -1015,20 +1015,20 @@ }else return ret; } - + /* duplicate the packet */ if (av_dup_packet(pkt) < 0) return AVERROR_NOMEM; while(*plast_pktl) plast_pktl= &(*plast_pktl)->next; //FIXME maybe maintain pointer to the last? - + pktl = av_mallocz(sizeof(AVPacketList)); if (!pktl) return AVERROR_NOMEM; - + /* add the packet in the buffered packet list */ *plast_pktl = pktl; - pktl->pkt= *pkt; + pktl->pkt= *pkt; }else{ assert(!s->packet_buffer); return av_read_frame_internal(s, pkt); @@ -1043,7 +1043,7 @@ for(;;) { pktl = s->packet_buffer; - if (!pktl) + if (!pktl) break; s->packet_buffer = pktl->next; av_free_packet(&pktl->pkt); @@ -1089,11 +1089,11 @@ /* fail safe */ s->cur_ptr = NULL; s->cur_len = 0; - + /* for each stream, reset read state */ for(i = 0; i < s->nb_streams; i++) { st = s->streams[i]; - + if (st->parser) { av_parser_close(st->parser); st->parser = NULL; @@ -1117,7 +1117,7 @@ for(i = 0; i < s->nb_streams; i++) { AVStream *st = s->streams[i]; - st->cur_dts = av_rescale(timestamp, + st->cur_dts = av_rescale(timestamp, st->time_base.den * (int64_t)ref_st->time_base.num, st->time_base.num * (int64_t)ref_st->time_base.den); } @@ -1133,13 +1133,13 @@ { AVIndexEntry *entries, *ie; int index; - + if((unsigned)st->nb_index_entries + 1 >= UINT_MAX / sizeof(AVIndexEntry)) return -1; - + entries = av_fast_realloc(st->index_entries, &st->index_entries_allocated_size, - (st->nb_index_entries + 1) * + (st->nb_index_entries + 1) * sizeof(AVIndexEntry)); if(!entries) return -1; @@ -1167,7 +1167,7 @@ ie->timestamp = timestamp; ie->min_distance= distance; ie->flags = flags; - + return index; } @@ -1190,7 +1190,7 @@ break; if (pkt->stream_index == 0 && st->parser && (pkt->flags & PKT_FLAG_KEY)) { - av_add_index_entry(st, st->parser->frame_offset, pkt->dts, + av_add_index_entry(st, st->parser->frame_offset, pkt->dts, 0, AVINDEX_KEYFRAME); } av_free_packet(pkt); @@ -1216,8 +1216,8 @@ /** * Gets the index for a specific timestamp. - * @param flags if AVSEEK_FLAG_BACKWARD then the returned index will correspond to - * the timestamp which is <= the requested one, if backward is 0 + * @param flags if AVSEEK_FLAG_BACKWARD then the returned index will correspond to + * the timestamp which is <= the requested one, if backward is 0 * then it will be >= * if AVSEEK_FLAG_ANY seek to any frame, only keyframes otherwise * @return < 0 if no such timestamp could be found @@ -1242,14 +1242,14 @@ a = m; } m= (flags & AVSEEK_FLAG_BACKWARD) ? a : b; - + if(!(flags & AVSEEK_FLAG_ANY)){ while(m>=0 && m<nb_entries && !(entries[m].flags & AVINDEX_KEYFRAME)){ m += (flags & AVSEEK_FLAG_BACKWARD) ? -1 : 1; } } - if(m == nb_entries) + if(m == nb_entries) return -1; return m; } @@ -1272,7 +1272,7 @@ if (stream_index < 0) return -1; - + #ifdef DEBUG_SEEK av_log(s, AV_LOG_DEBUG, "read_seek: %d %"PRId64"\n", stream_index, target_ts); #endif @@ -1293,14 +1293,14 @@ pos_min= e->pos; ts_min= e->timestamp; #ifdef DEBUG_SEEK - av_log(s, AV_LOG_DEBUG, "using cached pos_min=0x%"PRIx64" dts_min=%"PRId64"\n", + av_log(s, AV_LOG_DEBUG, "using cached pos_min=0x%"PRIx64" dts_min=%"PRId64"\n", pos_min,ts_min); #endif }else{ assert(index==0); } - - index= av_index_search_timestamp(st, target_ts, flags & ~AVSEEK_FLAG_BACKWARD); + + index= av_index_search_timestamp(st, target_ts, flags & ~AVSEEK_FLAG_BACKWARD); assert(index < st->nb_index_entries); if(index >= 0){ e= &st->index_entries[index]; @@ -1309,7 +1309,7 @@ ts_max= e->timestamp; pos_limit= pos_max - e->min_distance; #ifdef DEBUG_SEEK - av_log(s, AV_LOG_DEBUG, "using cached pos_max=0x%"PRIx64" pos_limit=0x%"PRIx64" dts_max=%"PRId64"\n", + av_log(s, AV_LOG_DEBUG, "using cached pos_max=0x%"PRIx64" pos_limit=0x%"PRIx64" dts_max=%"PRId64"\n", pos_max,pos_limit, ts_max); #endif } @@ -1333,7 +1333,7 @@ }while(ts_max == AV_NOPTS_VALUE && pos_max >= step); if (ts_max == AV_NOPTS_VALUE) return -1; - + for(;;){ int64_t tmp_pos= pos_max + 1; int64_t tmp_ts= avif->read_timestamp(s, stream_index, &tmp_pos, INT64_MAX); @@ -1350,7 +1350,7 @@ no_change=0; while (pos_min < pos_limit) { #ifdef DEBUG_SEEK - av_log(s, AV_LOG_DEBUG, "pos_min=0x%"PRIx64" pos_max=0x%"PRIx64" dts_min=%"PRId64" dts_max=%"PRId64"\n", + av_log(s, AV_LOG_DEBUG, "pos_min=0x%"PRIx64" pos_max=0x%"PRIx64" dts_min=%"PRId64" dts_max=%"PRId64"\n", pos_min, pos_max, ts_min, ts_max); #endif @@ -1393,7 +1393,7 @@ ts_min = ts; } } - + pos = (flags & AVSEEK_FLAG_BACKWARD) ? pos_min : pos_max; ts = (flags & AVSEEK_FLAG_BACKWARD) ? ts_min : ts_max; #ifdef DEBUG_SEEK @@ -1401,7 +1401,7 @@ ts_min = avif->read_timestamp(s, stream_index, &pos_min, INT64_MAX); pos_min++; ts_max = avif->read_timestamp(s, stream_index, &pos_min, INT64_MAX); - av_log(s, AV_LOG_DEBUG, "pos=0x%"PRIx64" %"PRId64"<=%"PRId64"<=%"PRId64"\n", + av_log(s, AV_LOG_DEBUG, "pos=0x%"PRIx64" %"PRId64"<=%"PRId64"<=%"PRId64"\n", pos, ts_min, target_ts, ts_max); #endif /* do the seek */ @@ -1437,7 +1437,7 @@ return 0; } -static int av_seek_frame_generic(AVFormatContext *s, +static int av_seek_frame_generic(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) { int index; @@ -1472,7 +1472,7 @@ * Seek to the key frame at timestamp. * 'timestamp' in 'stream_index'. * @param stream_index If stream_index is (-1), a default - * stream is selected, and timestamp is automatically converted + * stream is selected, and timestamp is automatically converted * from AV_TIME_BASE units to the stream specific time_base. * @param timestamp timestamp in AVStream.time_base units * or if there is no stream specified then in AV_TIME_BASE units @@ -1483,17 +1483,17 @@ { int ret; AVStream *st; - + av_read_frame_flush(s); - + if(flags & AVSEEK_FLAG_BYTE) return av_seek_frame_byte(s, stream_index, timestamp, flags); - + if(stream_index < 0){ stream_index= av_find_default_stream_index(s); if(stream_index < 0) return -1; - + st= s->streams[stream_index]; /* timestamp for default must be expressed in AV_TIME_BASE units */ timestamp = av_rescale(timestamp, st->time_base.den, AV_TIME_BASE * (int64_t)st->time_base.num); @@ -1569,7 +1569,7 @@ ic->duration = end_time - start_time; if (ic->file_size > 0) { /* compute the bit rate */ - ic->bit_rate = (double)ic->file_size * 8.0 * AV_TIME_BASE / + ic->bit_rate = (double)ic->file_size * 8.0 * AV_TIME_BASE / (double)ic->duration; } } @@ -1611,8 +1611,8 @@ } /* if duration is already set, we believe it */ - if (ic->duration == AV_NOPTS_VALUE && - ic->bit_rate != 0 && + if (ic->duration == AV_NOPTS_VALUE && + ic->bit_rate != 0 && ic->file_size != 0) { filesize = ic->file_size; if (filesize > 0) { @@ -1639,10 +1639,10 @@ int read_size, i, ret; int64_t end_time; int64_t filesize, offset, duration; - + /* free previous packet */ if (ic->cur_st && ic->cur_st->parser) - av_free_packet(&ic->cur_pkt); + av_free_packet(&ic->cur_pkt); ic->cur_st = NULL; /* flush packet queue */ @@ -1655,7 +1655,7 @@ st->parser= NULL; } } - + /* we read the first packets to get the first PTS (not fully accurate, but it is enough now) */ url_fseek(&ic->pb, 0, SEEK_SET); @@ -1704,7 +1704,7 @@ } if (i == ic->nb_streams) break; - + ret = av_read_packet(ic, pkt); if (ret != 0) break; @@ -1721,7 +1721,7 @@ } av_free_packet(pkt); } - + fill_all_stream_timings(ic); url_fseek(&ic->pb, 0, SEEK_SET); @@ -1760,12 +1760,12 @@ AVStream *st; for(i = 0;i < ic->nb_streams; i++) { st = ic->streams[i]; - printf("%d: start_time: %0.3f duration: %0.3f\n", - i, (double)st->start_time / AV_TIME_BASE, + printf("%d: start_time: %0.3f duration: %0.3f\n", + i, (double)st->start_time / AV_TIME_BASE, (double)st->duration / AV_TIME_BASE); } - printf("stream: start_time: %0.3f duration: %0.3f bitrate=%d kb/s\n", - (double)ic->start_time / AV_TIME_BASE, + printf("stream: start_time: %0.3f duration: %0.3f bitrate=%d kb/s\n", + (double)ic->start_time / AV_TIME_BASE, (double)ic->duration / AV_TIME_BASE, ic->bit_rate / 1000); } @@ -1795,7 +1795,7 @@ AVCodec *codec; int got_picture, ret=0; AVFrame picture; - + if(!st->codec->codec){ codec = avcodec_find_decoder(st->codec->codec_id); if (!codec) @@ -1808,14 +1808,14 @@ if(!has_codec_parameters(st->codec)){ switch(st->codec->codec_type) { case CODEC_TYPE_VIDEO: - ret = avcodec_decode_video(st->codec, &picture, + ret = avcodec_decode_video(st->codec, &picture, &got_picture, (uint8_t *)data, size); break; case CODEC_TYPE_AUDIO: samples = av_malloc(AVCODEC_MAX_AUDIO_FRAME_SIZE); if (!samples) goto fail; - ret = avcodec_decode_audio(st->codec, samples, + ret = avcodec_decode_audio(st->codec, samples, &got_picture, (uint8_t *)data, size); av_free(samples); break; @@ -1840,7 +1840,7 @@ * frame mode. * * @param ic media file handle - * @return >=0 if OK. AVERROR_xxx if error. + * @return >=0 if OK. AVERROR_xxx if error. * @todo let user decide somehow what information is needed so we dont waste time geting stuff the user doesnt need */ int av_find_stream_info(AVFormatContext *ic) @@ -1874,7 +1874,7 @@ last_dts[i]= AV_NOPTS_VALUE; duration_sum[i]= INT64_MAX; } - + count = 0; read_size = 0; ppktl = &ic->packet_buffer; @@ -1936,7 +1936,7 @@ pkt = &pktl->pkt; *pkt = pkt1; - + /* duplicate the packet */ if (av_dup_packet(pkt) < 0) { ret = AVERROR_NOMEM; @@ -1977,7 +1977,7 @@ memcpy(st->codec->extradata, pkt->data, st->codec->extradata_size); } } - + /* if still no information, we try to open the codec and to decompress the frame. We try to avoid that in most cases as it takes longer and uses more memory. For MPEG4, we need to @@ -1998,7 +1998,7 @@ st->codec->codec_id == CODEC_ID_SHORTEN || (st->codec->codec_id == CODEC_ID_MPEG4 && !st->need_parsing))*/) try_decode_frame(st, pkt->data, pkt->size); - + if (av_rescale_q(st->codec_info_duration, st->time_base, AV_TIME_BASE_Q) >= MAX_STREAM_DURATION) { break; } @@ -2024,7 +2024,7 @@ num= st->time_base.den*duration_count[i]; den= st->time_base.num*duration_sum[i]; - + av_reduce(&fps1.num, &fps1.den, num*1001, den*1000, FFMAX(st->time_base.den, st->time_base.num)/4); av_reduce(&st->r_frame_rate.num, &st->r_frame_rate.den, num, den, FFMAX(st->time_base.den, st->time_base.num)/4); if(fps1.num < st->r_frame_rate.num && fps1.den == 1 && (fps1.num==24 || fps1.num==30)){ //FIXME better decission @@ -2040,17 +2040,17 @@ st->codec->sub_id == 2) { if (st->codec_info_nb_frames >= 20) { float coded_frame_rate, est_frame_rate; - est_frame_rate = ((double)st->codec_info_nb_frames * AV_TIME_BASE) / + est_frame_rate = ((double)st->codec_info_nb_frames * AV_TIME_BASE) / (double)st->codec_info_duration ; coded_frame_rate = 1.0/av_q2d(st->codec->time_base); #if 0 - printf("telecine: coded_frame_rate=%0.3f est_frame_rate=%0.3f\n", + printf("telecine: coded_frame_rate=%0.3f est_frame_rate=%0.3f\n", coded_frame_rate, est_frame_rate); #endif /* if we detect that it could be a telecine, we signal it. It would be better to do it at a higher level as it can change in a film */ - if (coded_frame_rate >= 24.97 && + if (coded_frame_rate >= 24.97 && (est_frame_rate >= 23.5 && est_frame_rate < 24.5)) { st->r_frame_rate = (AVRational){24000, 1001}; } @@ -2096,7 +2096,7 @@ /** * start playing a network based stream (e.g. RTSP stream) at the - * current position + * current position */ int av_read_play(AVFormatContext *s) { @@ -2129,7 +2129,7 @@ /* free previous packet */ if (s->cur_st && s->cur_st->parser) - av_free_packet(&s->cur_pkt); + av_free_packet(&s->cur_pkt); if (s->iformat->read_close) s->iformat->read_close(s); @@ -2163,7 +2163,7 @@ * can be added in read_packet too. * * @param s media file handle - * @param id file format dependent stream id + * @param id file format dependent stream id */ AVStream *av_new_stream(AVFormatContext *s, int id) { @@ -2175,7 +2175,7 @@ st = av_mallocz(sizeof(AVStream)); if (!st) return NULL; - + st->codec= avcodec_alloc_context(); if (s->iformat) { /* no default bitrate if decoding */ @@ -2201,14 +2201,14 @@ int av_set_parameters(AVFormatContext *s, AVFormatParameters *ap) { int ret; - + if (s->oformat->priv_data_size > 0) { s->priv_data = av_mallocz(s->oformat->priv_data_size); if (!s->priv_data) return AVERROR_NOMEM; } else s->priv_data = NULL; - + if (s->oformat->set_parameters) { ret = s->oformat->set_parameters(s, ap); if (ret < 0) @@ -2222,7 +2222,7 @@ * output media file * * @param s media file handle - * @return 0 if OK. AVERROR_xxx if error. + * @return 0 if OK. AVERROR_xxx if error. */ int av_write_header(AVFormatContext *s) { @@ -2289,10 +2289,10 @@ int num, den, frame_size; // av_log(NULL, AV_LOG_DEBUG, "av_write_frame: pts:%lld dts:%lld cur_dts:%lld b:%d size:%d st:%d\n", pkt->pts, pkt->dts, st->cur_dts, b_frames, pkt->size, pkt->stream_index); - + /* if(pkt->pts == AV_NOPTS_VALUE && pkt->dts == AV_NOPTS_VALUE) return -1;*/ - + /* duration field */ if (pkt->duration == 0) { compute_frame_duration(&num, &den, st, NULL, pkt); @@ -2308,7 +2308,7 @@ pkt->pts= st->pts.val; } - //calculate dts from pts + //calculate dts from pts if(pkt->pts != AV_NOPTS_VALUE && pkt->dts == AV_NOPTS_VALUE){ if(b_frames){ if(st->last_IP_pts == AV_NOPTS_VALUE){ @@ -2322,7 +2322,7 @@ }else pkt->dts= pkt->pts; } - + if(st->cur_dts && st->cur_dts != AV_NOPTS_VALUE && st->cur_dts >= pkt->dts){ av_log(NULL, AV_LOG_ERROR, "error, non monotone timestamps %"PRId64" >= %"PRId64"\n", st->cur_dts, pkt->dts); return -1; @@ -2358,10 +2358,10 @@ static void truncate_ts(AVStream *st, AVPacket *pkt){ int64_t pts_mask = (2LL << (st->pts_wrap_bits-1)) - 1; - + // if(pkt->dts < 0) // pkt->dts= 0; //this happens for low_delay=0 and b frames, FIXME, needs further invstigation about what we should do here - + pkt->pts &= pts_mask; pkt->dts &= pts_mask; } @@ -2382,7 +2382,7 @@ ret=compute_pkt_fields2(s->streams[pkt->stream_index], pkt); if(ret<0) return ret; - + truncate_ts(s->streams[pkt->stream_index], pkt); ret= s->oformat->write_packet(s, pkt); @@ -2393,7 +2393,7 @@ /** * interleave_packet implementation which will interleave per DTS. - * packets with pkt->destruct == av_destruct_packet will be freed inside this function. + * packets with pkt->destruct == av_destruct_packet will be freed inside this function. * so they cannot be used after it, note calling av_free_packet() on them is still safe */ static int av_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out, AVPacket *pkt, int flush){ @@ -2425,7 +2425,7 @@ this_pktl->next= *next_point; *next_point= this_pktl; } - + memset(streams, 0, sizeof(streams)); pktl= s->packet_buffer; while(pktl){ @@ -2435,12 +2435,12 @@ streams[ pktl->pkt.stream_index ]++; pktl= pktl->next; } - + if(s->nb_streams == stream_count || (flush && stream_count)){ pktl= s->packet_buffer; *out= pktl->pkt; - - s->packet_buffer= pktl->next; + + s->packet_buffer= pktl->next; av_freep(&pktl); return 1; }else{ @@ -2455,7 +2455,7 @@ * @param in the input packet * @param flush 1 if no further packets are available as input and all * remaining packets should be output - * @return 1 if a packet was output, 0 if no packet could be output, + * @return 1 if a packet was output, 0 if no packet could be output, * < 0 if an error occured */ static int av_interleave_packet(AVFormatContext *s, AVPacket *out, AVPacket *in, int flush){ @@ -2489,7 +2489,7 @@ //av_log(NULL, AV_LOG_DEBUG, "av_interleaved_write_frame %d %Ld %Ld\n", pkt->size, pkt->dts, pkt->pts); if(compute_pkt_fields2(st, pkt) < 0) return -1; - + if(pkt->dts == AV_NOPTS_VALUE) return -1; @@ -2498,13 +2498,13 @@ int ret= av_interleave_packet(s, &opkt, pkt, 0); if(ret<=0) //FIXME cleanup needed for ret<0 ? return ret; - + truncate_ts(s->streams[opkt.stream_index], &opkt); ret= s->oformat->write_packet(s, &opkt); - + av_free_packet(&opkt); pkt= NULL; - + if(ret<0) return ret; if(url_ferror(&s->pb)) @@ -2522,7 +2522,7 @@ int av_write_trailer(AVFormatContext *s) { int ret, i; - + for(;;){ AVPacket pkt; ret= av_interleave_packet(s, &pkt, NULL, 1); @@ -2530,12 +2530,12 @@ goto fail; if(!ret) break; - + truncate_ts(s->streams[pkt.stream_index], &pkt); ret= s->oformat->write_packet(s, &pkt); - + av_free_packet(&pkt); - + if(ret<0) goto fail; if(url_ferror(&s->pb)) @@ -2556,17 +2556,17 @@ /* "user interface" functions */ void dump_format(AVFormatContext *ic, - int index, + int index, const char *url, int is_output) { int i, flags; char buf[256]; - av_log(NULL, AV_LOG_INFO, "%s #%d, %s, %s '%s':\n", + av_log(NULL, AV_LOG_INFO, "%s #%d, %s, %s '%s':\n", is_output ? "Output" : "Input", - index, - is_output ? ic->oformat->name : ic->iformat->name, + index, + is_output ? ic->oformat->name : ic->iformat->name, is_output ? "to" : "from", url); if (!is_output) { av_log(NULL, AV_LOG_INFO, " Duration: "); @@ -2578,7 +2578,7 @@ secs %= 60; hours = mins / 60; mins %= 60; - av_log(NULL, AV_LOG_INFO, "%02d:%02d:%02d.%01d", hours, mins, secs, + av_log(NULL, AV_LOG_INFO, "%02d:%02d:%02d.%01d", hours, mins, secs, (10 * us) / AV_TIME_BASE); } else { av_log(NULL, AV_LOG_INFO, "N/A"); @@ -2692,7 +2692,7 @@ { int i; char* cp; - + /* First, we check our abbreviation table */ for (i = 0; i < sizeof(frame_abvs)/sizeof(*frame_abvs); ++i) if (!strcmp(frame_abvs[i].abv, arg)) { @@ -2708,11 +2708,11 @@ if (cp) { char* cpp; *frame_rate = strtol(arg, &cpp, 10); - if (cpp != arg || cpp == cp) + if (cpp != arg || cpp == cp) *frame_rate_base = strtol(cp+1, &cpp, 10); else *frame_rate = 0; - } + } else { /* Finally we give up and parse it as double */ *frame_rate_base = DEFAULT_FRAME_RATE_BASE; //FIXME use av_d2q() @@ -2732,7 +2732,7 @@ * - If not a duration: * [{YYYY-MM-DD|YYYYMMDD}]{T| }{HH[:MM[:SS[.m...]]][Z]|HH[MM[SS[.m...]]][Z]} * Time is localtime unless Z is suffixed to the end. In this case GMT - * Return the date in micro seconds since 1970 + * Return the date in micro seconds since 1970 * * - If a duration: * HH[:MM[:SS[.m...]]] @@ -2838,7 +2838,7 @@ int val, n; q++; for (val = 0, n = 100000; n >= 1; n /= 10, q++) { - if (!isdigit(*q)) + if (!isdigit(*q)) break; val += n * (*q - '0'); } @@ -2883,7 +2883,7 @@ } *q = '\0'; } - if (!strcmp(tag, tag1)) + if (!strcmp(tag, tag1)) return 1; if (*p != '&') break; @@ -3089,10 +3089,10 @@ /** * Set the pts for a given stream. * - * @param s stream + * @param s stream * @param pts_wrap_bits number of bits effectively used by the pts - * (used for wrap control, 33 is the value for MPEG) - * @param pts_num numerator to convert to seconds (MPEG: 1) + * (used for wrap control, 33 is the value for MPEG) + * @param pts_num numerator to convert to seconds (MPEG: 1) * @param pts_den denominator to convert to seconds (MPEG: 90000) */ void av_set_pts_info(AVStream *s, int pts_wrap_bits, @@ -3113,7 +3113,7 @@ * @param f fractional number * @param val integer value * @param num must be >= 0 - * @param den must be >= 1 + * @param den must be >= 1 */ void av_frac_init(AVFrac *f, int64_t val, int64_t num, int64_t den) { @@ -3213,7 +3213,7 @@ } /** - * Read an image from a stream. + * Read an image from a stream. * @param gb byte stream containing the image * @param fmt image format, NULL if probing is required */
--- a/wav.c Sat Dec 17 17:57:03 2005 +0000 +++ b/wav.c Sat Dec 17 18:14:38 2005 +0000 @@ -1,4 +1,4 @@ -/* +/* * WAV encoder and decoder * Copyright (c) 2001, 2002 Fabrice Bellard. * @@ -78,7 +78,7 @@ } else { bps = 16; } - + if (enc->codec_id == CODEC_ID_MP2 || enc->codec_id == CODEC_ID_MP3) { blkalign = enc->frame_size; //this is wrong, but seems many demuxers dont work if this is set correctly //blkalign = 144 * enc->bit_rate/enc->sample_rate; @@ -145,7 +145,7 @@ * WAVEFORMATEX adds 'WORD cbSize' and basically makes itself * an openended structure. */ -void get_wav_header(ByteIOContext *pb, AVCodecContext *codec, int size) +void get_wav_header(ByteIOContext *pb, AVCodecContext *codec, int size) { int id; @@ -161,7 +161,7 @@ }else codec->bits_per_sample = get_le16(pb); codec->codec_id = wav_codec_get_id(id, codec->bits_per_sample); - + if (size > 16) { /* We're obviously dealing with WAVEFORMATEX */ codec->extradata_size = get_le16(pb); if (codec->extradata_size > 0) { @@ -171,7 +171,7 @@ get_buffer(pb, codec->extradata, codec->extradata_size); } else codec->extradata_size = 0; - + /* It is possible for the chunk to contain garbage at the end */ if (size - codec->extradata_size - 18 > 0) url_fskip(pb, size - codec->extradata_size - 18); @@ -222,7 +222,7 @@ /* data header */ wav->data = start_tag(pb, "data"); - + put_flush_packet(pb); return 0; @@ -309,7 +309,7 @@ tag = get_le32(pb); if (tag != MKTAG('W', 'A', 'V', 'E')) return -1; - + /* parse fmt header */ size = find_tag(pb, MKTAG('f', 'm', 't', ' ')); if (size < 0) @@ -365,7 +365,7 @@ return 0; } -static int wav_read_seek(AVFormatContext *s, +static int wav_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) { AVStream *st;
--- a/wc3movie.c Sat Dec 17 17:57:03 2005 +0000 +++ b/wc3movie.c Sat Dec 17 18:14:38 2005 +0000 @@ -73,37 +73,37 @@ /* bizarre palette lookup table */ static const unsigned char wc3_pal_lookup[] = { - 0x00, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0E, + 0x00, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0E, 0x10, 0x12, 0x13, 0x15, 0x16, 0x18, 0x19, 0x1A, - 0x1C, 0x1D, 0x1F, 0x20, 0x21, 0x23, 0x24, 0x25, + 0x1C, 0x1D, 0x1F, 0x20, 0x21, 0x23, 0x24, 0x25, 0x27, 0x28, 0x29, 0x2A, 0x2C, 0x2D, 0x2E, 0x2F, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x38, 0x39, + 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3F, 0x40, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x48, 0x49, 0x4A, 0x4B, + 0x43, 0x44, 0x45, 0x46, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, - 0x54, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, + 0x54, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, - 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, + 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, - 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, + 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7D, 0x7E, 0x7F, 0x80, 0x81, 0x82, 0x83, - 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, + 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, - 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x99, + 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, - 0xA2, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, + 0xA2, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, - 0xB0, 0xB1, 0xB2, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, + 0xB0, 0xB1, 0xB2, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, - 0xBE, 0xBF, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, + 0xBE, 0xBF, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, - 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD0, 0xD1, + 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE4, 0xE5, - 0xE6, 0xE7, 0xE8, 0xE9, 0xE9, 0xEA, 0xEB, 0xEC, + 0xE6, 0xE7, 0xE8, 0xE9, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF1, 0xF2, - 0xF3, 0xF4, 0xF5, 0xF6, 0xF6, 0xF7, 0xF8, 0xF9, + 0xF3, 0xF4, 0xF5, 0xF6, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFA, 0xFB, 0xFC, 0xFD, 0xFD, 0xFD, 0xFD }; @@ -148,7 +148,7 @@ /* traverse through the chunks and load the header information before * the first BRCH tag */ - if ((ret = get_buffer(pb, preamble, WC3_PREAMBLE_SIZE)) != + if ((ret = get_buffer(pb, preamble, WC3_PREAMBLE_SIZE)) != WC3_PREAMBLE_SIZE) return AVERROR_IO; fourcc_tag = LE_32(&preamble[0]); @@ -188,7 +188,7 @@ case SIZE_TAG: /* video resolution override */ - if ((ret = get_buffer(pb, preamble, WC3_PREAMBLE_SIZE)) != + if ((ret = get_buffer(pb, preamble, WC3_PREAMBLE_SIZE)) != WC3_PREAMBLE_SIZE) return AVERROR_IO; wc3->width = LE_32(&preamble[0]); @@ -199,8 +199,8 @@ /* one of several palettes */ if ((unsigned)current_palette >= wc3->palette_count) return AVERROR_INVALIDDATA; - if ((ret = get_buffer(pb, - &wc3->palettes[current_palette * PALETTE_SIZE], + if ((ret = get_buffer(pb, + &wc3->palettes[current_palette * PALETTE_SIZE], PALETTE_SIZE)) != PALETTE_SIZE) return AVERROR_IO; @@ -209,7 +209,7 @@ i < (current_palette + 1) * PALETTE_SIZE; i++) { /* rotate each palette component left by 2 and use the result * as an index into the color component table */ - rotate = ((wc3->palettes[i] << 2) & 0xFF) | + rotate = ((wc3->palettes[i] << 2) & 0xFF) | ((wc3->palettes[i] >> 6) & 0xFF); wc3->palettes[i] = wc3_pal_lookup[rotate]; } @@ -224,7 +224,7 @@ break; } - if ((ret = get_buffer(pb, preamble, WC3_PREAMBLE_SIZE)) != + if ((ret = get_buffer(pb, preamble, WC3_PREAMBLE_SIZE)) != WC3_PREAMBLE_SIZE) return AVERROR_IO; fourcc_tag = LE_32(&preamble[0]);
--- a/westwood.c Sat Dec 17 17:57:03 2005 +0000 +++ b/westwood.c Sat Dec 17 18:14:38 2005 +0000 @@ -101,7 +101,7 @@ if ((field < 8000) || (field > 48000)) return 0; - /* note: only check for WS IMA (type 99) right now since there is no + /* note: only check for WS IMA (type 99) right now since there is no * support for type 1 */ if (p->buf[11] != 99) return 0; @@ -332,7 +332,7 @@ pkt->pts /= wsvqa->audio_samplerate; /* 2 samples/byte, 1 or 2 samples per frame depending on stereo */ - wsvqa->audio_frame_counter += (chunk_size * 2) / + wsvqa->audio_frame_counter += (chunk_size * 2) / wsvqa->audio_channels; } else { pkt->stream_index = wsvqa->video_stream_index;
--- a/yuv.c Sat Dec 17 17:57:03 2005 +0000 +++ b/yuv.c Sat Dec 17 18:14:38 2005 +0000 @@ -53,7 +53,7 @@ int size; URLContext *h; AVImageInfo info1, *info = &info1; - + img_size = url_fsize(f); /* XXX: hack hack */ @@ -64,26 +64,26 @@ return AVERROR_IO; } info->pix_fmt = PIX_FMT_YUV420P; - + ret = alloc_cb(opaque, info); if (ret) return ret; - + size = info->width * info->height; - + p = strrchr(fname, '.'); if (!p || p[1] != 'Y') return AVERROR_IO; get_buffer(f, info->pict.data[0], size); - + p[1] = 'U'; if (url_fopen(pb, fname, URL_RDONLY) < 0) return AVERROR_IO; get_buffer(pb, info->pict.data[1], size / 4); url_fclose(pb); - + p[1] = 'V'; if (url_fopen(pb, fname, URL_RDONLY) < 0) return AVERROR_IO; @@ -101,7 +101,7 @@ uint8_t *ptr; URLContext *h; static const char *ext = "YUV"; - + /* XXX: hack hack */ h = url_fileno(pb2); url_get_filename(h, fname, sizeof(fname)); @@ -127,7 +127,7 @@ } else { pb = pb2; } - + ptr = info->pict.data[i]; for(j=0;j<height;j++) { put_buffer(pb, ptr, width); @@ -140,7 +140,7 @@ } return 0; } - + static int yuv_probe(AVProbeData *pd) { if (match_ext(pd->filename, "Y"))
--- a/yuv4mpeg.c Sat Dec 17 17:57:03 2005 +0000 +++ b/yuv4mpeg.c Sat Dec 17 18:14:38 2005 +0000 @@ -37,10 +37,10 @@ height = st->codec->height; av_reduce(&raten, &rated, st->codec->time_base.den, st->codec->time_base.num, (1UL<<31)-1); - + aspectn = st->codec->sample_aspect_ratio.num; aspectd = st->codec->sample_aspect_ratio.den; - + if ( aspectn == 0 && aspectd == 1 ) aspectd = 0; // 0:0 means unknown inter = 'p'; /* progressive is the default */ @@ -75,7 +75,7 @@ inter, aspectn, aspectd, colorspace); - + return n; } @@ -100,18 +100,18 @@ av_log(s, AV_LOG_ERROR, "Error. YUV4MPEG stream header write failed.\n"); return AVERROR_IO; } else { - put_buffer(pb, buf2, strlen(buf2)); + put_buffer(pb, buf2, strlen(buf2)); } } /* construct frame header */ - + m = snprintf(buf1, sizeof(buf1), "%s\n", Y4M_FRAME_MAGIC); put_buffer(pb, buf1, strlen(buf1)); width = st->codec->width; height = st->codec->height; - + ptr = picture->data[0]; for(i=0;i<height;i++) { put_buffer(pb, ptr, width); @@ -142,21 +142,21 @@ static int yuv4_write_header(AVFormatContext *s) { int* first_pkt = s->priv_data; - + if (s->nb_streams != 1) return AVERROR_IO; - + if (s->streams[0]->codec->pix_fmt == PIX_FMT_YUV411P) { av_log(s, AV_LOG_ERROR, "Warning: generating rarely used 4:1:1 YUV stream, some mjpegtools might not work.\n"); - } - else if ((s->streams[0]->codec->pix_fmt != PIX_FMT_YUV420P) && - (s->streams[0]->codec->pix_fmt != PIX_FMT_YUV422P) && - (s->streams[0]->codec->pix_fmt != PIX_FMT_GRAY8) && + } + else if ((s->streams[0]->codec->pix_fmt != PIX_FMT_YUV420P) && + (s->streams[0]->codec->pix_fmt != PIX_FMT_YUV422P) && + (s->streams[0]->codec->pix_fmt != PIX_FMT_GRAY8) && (s->streams[0]->codec->pix_fmt != PIX_FMT_YUV444P)) { av_log(s, AV_LOG_ERROR, "ERROR: yuv4mpeg only handles yuv444p, yuv422p, yuv420p, yuv411p and gray pixel formats. Use -pix_fmt to select one.\n"); return AVERROR_IO; } - + *first_pkt = 1; return 0; } @@ -194,7 +194,7 @@ int width=-1, height=-1, raten=0, rated=0, aspectn=0, aspectd=0,interlaced_frame=0,top_field_first=0; enum PixelFormat pix_fmt=PIX_FMT_NONE,alt_pix_fmt=PIX_FMT_NONE; AVStream *st; - + for (i=0; i<MAX_YUV4_HEADER; i++) { header[i] = get_byte(pb); if (header[i] == '\n') { @@ -293,13 +293,13 @@ while(tokstart<header_end&&*tokstart!=0x20) tokstart++; break; } - } + } if ((width == -1) || (height == -1)) { av_log(s, AV_LOG_ERROR, "YUV4MPEG has invalid header.\n"); - return -1; + return -1; } - + if (pix_fmt == PIX_FMT_NONE) { if (alt_pix_fmt == PIX_FMT_NONE) pix_fmt = PIX_FMT_YUV420P; @@ -317,7 +317,7 @@ // Pixel aspect unknown aspectd = 1; } - + st = av_new_stream(s, 0); st = s->streams[0]; st->codec->width = width; @@ -348,7 +348,7 @@ } if (i == MAX_FRAME_HEADER) return -1; if (strncmp(header, Y4M_FRAME_MAGIC, strlen(Y4M_FRAME_MAGIC))) return -1; - + width = st->codec->width; height = st->codec->height;