Browse code

Split RMContext into RMDemux/MuxContext and make them private in rmdec/enc.c. Reason for this is that there are no shared entries in the demuxer/muxer context, making it a mystery as to why it was shared between the two. See "[PATCH] clean rmdemux/muxcontext" patch on mailinglist.

Originally committed as revision 16111 to svn://svn.ffmpeg.org/ffmpeg/trunk

Ronald S. Bultje authored on 2008/12/14 06:40:20
Showing 3 changed files
... ...
@@ -24,45 +24,6 @@
24 24
 
25 25
 #include "avformat.h"
26 26
 
27
-
28
-typedef struct {
29
-    int nb_packets;
30
-    int packet_total_size;
31
-    int packet_max_size;
32
-    /* codec related output */
33
-    int bit_rate;
34
-    float frame_rate;
35
-    int nb_frames;    /* current frame number */
36
-    int total_frames; /* total number of frames */
37
-    int num;
38
-    AVCodecContext *enc;
39
-} StreamInfo;
40
-
41
-typedef struct {
42
-    StreamInfo streams[2];
43
-    StreamInfo *audio_stream, *video_stream;
44
-    int data_pos; /* position of the data after the header */
45
-    int nb_packets;
46
-    int old_format;
47
-    int current_stream;
48
-    int remaining_len;
49
-    uint8_t *videobuf; ///< place to store merged video frame
50
-    int videobufsize;  ///< current assembled frame size
51
-    int videobufpos;   ///< position for the next slice in the video buffer
52
-    int curpic_num;    ///< picture number of current frame
53
-    int cur_slice, slices;
54
-    int64_t pktpos;    ///< first slice position in file
55
-    /// Audio descrambling matrix parameters
56
-    uint8_t *audiobuf; ///< place to store reordered audio data
57
-    int64_t audiotimestamp; ///< Audio packet timestamp
58
-    int sub_packet_cnt; // Subpacket counter, used while reading
59
-    int sub_packet_size, sub_packet_h, coded_framesize; ///< Descrambling parameters from container
60
-    int audio_stream_num; ///< Stream number for audio packets
61
-    int audio_pkt_cnt; ///< Output packet counter
62
-    int audio_framesize; /// Audio frame size from container
63
-    int sub_packet_lengths[16]; /// Length of each aac subpacket
64
-} RMContext;
65
-
66 27
 /*< input format for Realmedia-style RTSP streams */
67 28
 extern AVInputFormat rdt_demuxer;
68 29
 
... ...
@@ -21,7 +21,28 @@
21 21
 
22 22
 #include "libavutil/avstring.h"
23 23
 #include "avformat.h"
24
-#include "rm.h"
24
+
25
+typedef struct {
26
+    int nb_packets;
27
+    int old_format;
28
+    int current_stream;
29
+    int remaining_len;
30
+    uint8_t *videobuf; ///< place to store merged video frame
31
+    int videobufsize;  ///< current assembled frame size
32
+    int videobufpos;   ///< position for the next slice in the video buffer
33
+    int curpic_num;    ///< picture number of current frame
34
+    int cur_slice, slices;
35
+    int64_t pktpos;    ///< first slice position in file
36
+    /// Audio descrambling matrix parameters
37
+    uint8_t *audiobuf; ///< place to store reordered audio data
38
+    int64_t audiotimestamp; ///< Audio packet timestamp
39
+    int sub_packet_cnt; // Subpacket counter, used while reading
40
+    int sub_packet_size, sub_packet_h, coded_framesize; ///< Descrambling parameters from container
41
+    int audio_stream_num; ///< Stream number for audio packets
42
+    int audio_pkt_cnt; ///< Output packet counter
43
+    int audio_framesize; /// Audio frame size from container
44
+    int sub_packet_lengths[16]; /// Length of each aac subpacket
45
+} RMDemuxContext;
25 46
 
26 47
 static inline void get_strl(ByteIOContext *pb, char *buf, int buf_size, int len)
27 48
 {
... ...
@@ -50,7 +71,7 @@ static void get_str8(ByteIOContext *pb, char *buf, int buf_size)
50 50
 static int rm_read_audio_stream_info(AVFormatContext *s, ByteIOContext *pb,
51 51
                                      AVStream *st, int read_all)
52 52
 {
53
-    RMContext *rm = s->priv_data;
53
+    RMDemuxContext *rm = s->priv_data;
54 54
     char buf[256];
55 55
     uint32_t version;
56 56
     int i;
... ...
@@ -267,7 +288,7 @@ skip:
267 267
 
268 268
 static int rm_read_header_old(AVFormatContext *s, AVFormatParameters *ap)
269 269
 {
270
-    RMContext *rm = s->priv_data;
270
+    RMDemuxContext *rm = s->priv_data;
271 271
     AVStream *st;
272 272
 
273 273
     rm->old_format = 1;
... ...
@@ -279,7 +300,7 @@ static int rm_read_header_old(AVFormatContext *s, AVFormatParameters *ap)
279 279
 
280 280
 static int rm_read_header(AVFormatContext *s, AVFormatParameters *ap)
281 281
 {
282
-    RMContext *rm = s->priv_data;
282
+    RMDemuxContext *rm = s->priv_data;
283 283
     AVStream *st;
284 284
     ByteIOContext *pb = s->pb;
285 285
     unsigned int tag;
... ...
@@ -396,7 +417,7 @@ static int get_num(ByteIOContext *pb, int *len)
396 396
 #define RAW_PACKET_SIZE 1000
397 397
 
398 398
 static int sync(AVFormatContext *s, int64_t *timestamp, int *flags, int *stream_index, int64_t *pos){
399
-    RMContext *rm = s->priv_data;
399
+    RMDemuxContext *rm = s->priv_data;
400 400
     ByteIOContext *pb = s->pb;
401 401
     int len, num, res, i;
402 402
     AVStream *st;
... ...
@@ -452,7 +473,7 @@ skip:
452 452
 }
453 453
 
454 454
 static int rm_assemble_video_frame(AVFormatContext *s, ByteIOContext *pb,
455
-                                   RMContext *rm, AVPacket *pkt, int len)
455
+                                   RMDemuxContext *rm, AVPacket *pkt, int len)
456 456
 {
457 457
     int hdr, seq, pic_num, len2, pos;
458 458
     int type;
... ...
@@ -553,7 +574,7 @@ ff_rm_parse_packet (AVFormatContext *s, ByteIOContext *pb,
553 553
                     AVStream *st, int len, AVPacket *pkt,
554 554
                     int *seq, int *flags, int64_t *timestamp)
555 555
 {
556
-    RMContext *rm = s->priv_data;
556
+    RMDemuxContext *rm = s->priv_data;
557 557
 
558 558
     if (st->codec->codec_type == CODEC_TYPE_VIDEO) {
559 559
         rm->current_stream= st->id;
... ...
@@ -651,7 +672,7 @@ void
651 651
 ff_rm_retrieve_cache (AVFormatContext *s, ByteIOContext *pb,
652 652
                       AVStream *st, AVPacket *pkt)
653 653
 {
654
-    RMContext *rm = s->priv_data;
654
+    RMDemuxContext *rm = s->priv_data;
655 655
 
656 656
     assert (rm->audio_pkt_cnt > 0);
657 657
 
... ...
@@ -670,7 +691,7 @@ ff_rm_retrieve_cache (AVFormatContext *s, ByteIOContext *pb,
670 670
 
671 671
 static int rm_read_packet(AVFormatContext *s, AVPacket *pkt)
672 672
 {
673
-    RMContext *rm = s->priv_data;
673
+    RMDemuxContext *rm = s->priv_data;
674 674
     ByteIOContext *pb = s->pb;
675 675
     AVStream *st;
676 676
     int i, len;
... ...
@@ -728,7 +749,7 @@ resync:
728 728
 
729 729
 static int rm_read_close(AVFormatContext *s)
730 730
 {
731
-    RMContext *rm = s->priv_data;
731
+    RMDemuxContext *rm = s->priv_data;
732 732
 
733 733
     av_free(rm->audiobuf);
734 734
     av_free(rm->videobuf);
... ...
@@ -751,7 +772,7 @@ static int rm_probe(AVProbeData *p)
751 751
 static int64_t rm_read_dts(AVFormatContext *s, int stream_index,
752 752
                                int64_t *ppos, int64_t pos_limit)
753 753
 {
754
-    RMContext *rm = s->priv_data;
754
+    RMDemuxContext *rm = s->priv_data;
755 755
     int64_t pos, dts;
756 756
     int stream_index2, flags, len, h;
757 757
 
... ...
@@ -794,7 +815,7 @@ static int64_t rm_read_dts(AVFormatContext *s, int stream_index,
794 794
 AVInputFormat rm_demuxer = {
795 795
     "rm",
796 796
     NULL_IF_CONFIG_SMALL("RM format"),
797
-    sizeof(RMContext),
797
+    sizeof(RMDemuxContext),
798 798
     rm_probe,
799 799
     rm_read_header,
800 800
     rm_read_packet,
... ...
@@ -806,6 +827,6 @@ AVInputFormat rm_demuxer = {
806 806
 AVInputFormat rdt_demuxer = {
807 807
     "rdt",
808 808
     NULL_IF_CONFIG_SMALL("RDT demuxer"),
809
-    sizeof(RMContext),
809
+    sizeof(RMDemuxContext),
810 810
     NULL, NULL, NULL, rm_read_close, NULL, NULL
811 811
 };
... ...
@@ -21,6 +21,25 @@
21 21
 #include "avformat.h"
22 22
 #include "rm.h"
23 23
 
24
+typedef struct {
25
+    int nb_packets;
26
+    int packet_total_size;
27
+    int packet_max_size;
28
+    /* codec related output */
29
+    int bit_rate;
30
+    float frame_rate;
31
+    int nb_frames;    /* current frame number */
32
+    int total_frames; /* total number of frames */
33
+    int num;
34
+    AVCodecContext *enc;
35
+} StreamInfo;
36
+
37
+typedef struct {
38
+    StreamInfo streams[2];
39
+    StreamInfo *audio_stream, *video_stream;
40
+    int data_pos; /* position of the data after the header */
41
+} RMMuxContext;
42
+
24 43
 /* in ms */
25 44
 #define BUFFER_DURATION 0
26 45
 
... ...
@@ -44,7 +63,7 @@ static void put_str8(ByteIOContext *s, const char *tag)
44 44
 static void rv10_write_header(AVFormatContext *ctx,
45 45
                               int data_size, int index_pos)
46 46
 {
47
-    RMContext *rm = ctx->priv_data;
47
+    RMMuxContext *rm = ctx->priv_data;
48 48
     ByteIOContext *s = ctx->pb;
49 49
     StreamInfo *stream;
50 50
     unsigned char *data_offset_ptr, *start_ptr;
... ...
@@ -271,7 +290,7 @@ static void write_packet_header(AVFormatContext *ctx, StreamInfo *stream,
271 271
 
272 272
 static int rm_write_header(AVFormatContext *s)
273 273
 {
274
-    RMContext *rm = s->priv_data;
274
+    RMMuxContext *rm = s->priv_data;
275 275
     StreamInfo *stream;
276 276
     int n;
277 277
     AVCodecContext *codec;
... ...
@@ -315,7 +334,7 @@ static int rm_write_header(AVFormatContext *s)
315 315
 static int rm_write_audio(AVFormatContext *s, const uint8_t *buf, int size, int flags)
316 316
 {
317 317
     uint8_t *buf1;
318
-    RMContext *rm = s->priv_data;
318
+    RMMuxContext *rm = s->priv_data;
319 319
     ByteIOContext *pb = s->pb;
320 320
     StreamInfo *stream = rm->audio_stream;
321 321
     int i;
... ...
@@ -339,7 +358,7 @@ static int rm_write_audio(AVFormatContext *s, const uint8_t *buf, int size, int
339 339
 
340 340
 static int rm_write_video(AVFormatContext *s, const uint8_t *buf, int size, int flags)
341 341
 {
342
-    RMContext *rm = s->priv_data;
342
+    RMMuxContext *rm = s->priv_data;
343 343
     ByteIOContext *pb = s->pb;
344 344
     StreamInfo *stream = rm->video_stream;
345 345
     int key_frame = !!(flags & PKT_FLAG_KEY);
... ...
@@ -393,7 +412,7 @@ static int rm_write_packet(AVFormatContext *s, AVPacket *pkt)
393 393
 
394 394
 static int rm_write_trailer(AVFormatContext *s)
395 395
 {
396
-    RMContext *rm = s->priv_data;
396
+    RMMuxContext *rm = s->priv_data;
397 397
     int data_size, index_pos, i;
398 398
     ByteIOContext *pb = s->pb;
399 399
 
... ...
@@ -435,7 +454,7 @@ AVOutputFormat rm_muxer = {
435 435
     NULL_IF_CONFIG_SMALL("RM format"),
436 436
     "application/vnd.rn-realmedia",
437 437
     "rm,ra",
438
-    sizeof(RMContext),
438
+    sizeof(RMMuxContext),
439 439
     CODEC_ID_AC3,
440 440
     CODEC_ID_RV10,
441 441
     rm_write_header,