annotate ffm.h @ 4387:5c42816e12c6 libavformat

Add "AVFormatContext *ctx" (that being the RTSP demuxer's) as first argument to the parse_packet() function pointer in RTPDynamicProtocolHandlers. This allows these functions to peek back and retrieve values from the demuxer's context (or RTSPState). The ASF/RTP payload parser will use this to be able to parse SDP values (which occur even before the payload ID is given), store them in the RTSPState and then retrieve them while parsing payload data. See "[PATCH] RTSP-MS 13/15: add RTSP demuxer AVFormatContext to parse_packet() function pointer (was: transport context)" mailinglist thread.
author rbultje
date Fri, 06 Feb 2009 01:37:19 +0000
parents 77e0c7511d41
children
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
4251
77e0c7511d41 cosmetics: Remove pointless period after copyright statement non-sentences.
diego
parents: 3973
diff changeset
3 * Copyright (c) 2001 Fabrice Bellard
0
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 */