annotate ffm.h @ 4017:b2a3ed76122e libavformat

OGG: correct PTS with old theora streams
author mru
date Thu, 06 Nov 2008 01:57:17 +0000
parents 549a09cf23fe
children 77e0c7511d41
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
1 /*
3348
4d492fccf79b split ffm de/muxer
bcoudurier
parents: 3347
diff changeset
2 * FFM (ffserver live feed) common header
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
3 * Copyright (c) 2001 Fabrice Bellard.
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
4 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1169
diff changeset
5 * This file is part of FFmpeg.
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1169
diff changeset
6 *
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1169
diff changeset
7 * FFmpeg is free software; you can redistribute it and/or
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
8 * modify it under the terms of the GNU Lesser General Public
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
9 * License as published by the Free Software Foundation; either
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1169
diff changeset
10 * version 2.1 of the License, or (at your option) any later version.
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
11 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1169
diff changeset
12 * FFmpeg is distributed in the hope that it will be useful,
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
15 * Lesser General Public License for more details.
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
16 *
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
17 * You should have received a copy of the GNU Lesser General Public
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1169
diff changeset
18 * License along with FFmpeg; if not, write to the Free Software
896
edbe5c3717f9 Update licensing information: The FSF changed postal address.
diego
parents: 887
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
20 */
3348
4d492fccf79b split ffm de/muxer
bcoudurier
parents: 3347
diff changeset
21
3852
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3618
diff changeset
22 #ifndef AVFORMAT_FFM_H
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3618
diff changeset
23 #define AVFORMAT_FFM_H
3348
4d492fccf79b split ffm de/muxer
bcoudurier
parents: 3347
diff changeset
24
3618
e77025bff589 Recommit r14497
michael
parents: 3617
diff changeset
25 #include <stdint.h>
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
26 #include "avformat.h"
3618
e77025bff589 Recommit r14497
michael
parents: 3617
diff changeset
27 #include "avio.h"
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
28
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
29 /* The FFM file is made of blocks of fixed size */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
30 #define FFM_HEADER_SIZE 14
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
31 #define PACKET_ID 0x666d
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
32
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
33 /* each packet contains frames (which can span several packets */
3442
a6f4d53b738d pass dts and pts through ffm, should fix streaming b frames
bcoudurier
parents: 3440
diff changeset
34 #define FRAME_HEADER_SIZE 16
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
35 #define FLAG_KEY_FRAME 0x01
3442
a6f4d53b738d pass dts and pts through ffm, should fix streaming b frames
bcoudurier
parents: 3440
diff changeset
36 #define FLAG_DTS 0x02
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
37
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
38 enum {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
39 READ_HEADER,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
40 READ_DATA,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
41 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
42
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
43 typedef struct FFMContext {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
44 /* only reading mode */
3973
549a09cf23fe Remove offset_t typedef and use int64_t directly instead.
diego
parents: 3852
diff changeset
45 int64_t write_index, file_size;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
46 int read_state;
3442
a6f4d53b738d pass dts and pts through ffm, should fix streaming b frames
bcoudurier
parents: 3440
diff changeset
47 uint8_t header[FRAME_HEADER_SIZE+4];
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
48
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
49 /* read and write */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
50 int first_packet; /* true if first packet, needed to set the discontinuity tag */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
51 int packet_size;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
52 int frame_offset;
3492
6facc89bece8 cosmetics, pts->dts
bcoudurier
parents: 3442
diff changeset
53 int64_t dts;
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 34
diff changeset
54 uint8_t *packet_ptr, *packet_end;
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 34
diff changeset
55 uint8_t packet[FFM_PACKET_SIZE];
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
56 } FFMContext;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
57
3852
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3618
diff changeset
58 #endif /* AVFORMAT_FFM_H */