Mercurial > libavformat.hg
comparison raw.c @ 3926:14020f10caf7 libavformat
write number of samples in FLAC extradata.
based on a patch by Mathieu Velten (matmaul gmail com).
author | jbr |
---|---|
date | Sun, 14 Sep 2008 20:00:36 +0000 |
parents | f55b5e474321 |
children | 549a09cf23fe |
comparison
equal
deleted
inserted
replaced
3925:dfd3033e7de7 | 3926:14020f10caf7 |
---|---|
40 put_buffer(s->pb, header, 8); | 40 put_buffer(s->pb, header, 8); |
41 put_buffer(s->pb, streaminfo, len); | 41 put_buffer(s->pb, streaminfo, len); |
42 } | 42 } |
43 return 0; | 43 return 0; |
44 } | 44 } |
45 | |
46 static int flac_write_trailer(struct AVFormatContext *s) | |
47 { | |
48 ByteIOContext *pb = s->pb; | |
49 uint8_t *streaminfo = s->streams[0]->codec->extradata; | |
50 int len = s->streams[0]->codec->extradata_size; | |
51 offset_t file_size; | |
52 | |
53 if (streaminfo && len > 0 && !url_is_streamed(s->pb)) { | |
54 file_size = url_ftell(pb); | |
55 url_fseek(pb, 8, SEEK_SET); | |
56 put_buffer(pb, streaminfo, len); | |
57 url_fseek(pb, file_size, SEEK_SET); | |
58 put_flush_packet(pb); | |
59 } | |
60 return 0; | |
61 } | |
45 #endif | 62 #endif |
46 | 63 |
47 #ifdef CONFIG_ROQ_MUXER | 64 #ifdef CONFIG_ROQ_MUXER |
48 static int roq_write_header(struct AVFormatContext *s) | 65 static int roq_write_header(struct AVFormatContext *s) |
49 { | 66 { |
703 0, | 720 0, |
704 CODEC_ID_FLAC, | 721 CODEC_ID_FLAC, |
705 CODEC_ID_NONE, | 722 CODEC_ID_NONE, |
706 flac_write_header, | 723 flac_write_header, |
707 raw_write_packet, | 724 raw_write_packet, |
725 flac_write_trailer, | |
708 .flags= AVFMT_NOTIMESTAMPS, | 726 .flags= AVFMT_NOTIMESTAMPS, |
709 }; | 727 }; |
710 #endif | 728 #endif |
711 | 729 |
712 #ifdef CONFIG_GSM_DEMUXER | 730 #ifdef CONFIG_GSM_DEMUXER |