diff options
Diffstat (limited to 'DOCS/tech/realcodecs')
-rw-r--r-- | DOCS/tech/realcodecs/audio-codecs.txt | 28 | ||||
-rw-r--r-- | DOCS/tech/realcodecs/streaming.txt | 4 | ||||
-rw-r--r-- | DOCS/tech/realcodecs/video-codecs.txt | 96 |
3 files changed, 64 insertions, 64 deletions
diff --git a/DOCS/tech/realcodecs/audio-codecs.txt b/DOCS/tech/realcodecs/audio-codecs.txt index 8a0d958354..fd28ab2a16 100644 --- a/DOCS/tech/realcodecs/audio-codecs.txt +++ b/DOCS/tech/realcodecs/audio-codecs.txt @@ -38,17 +38,17 @@ ulong result=RAOpenCodec2(ra_main_t *raMain); ulong result=RAInitDecoder(ra_main_t *raMain, ra_init_struct *raInit); struct ra_init_struct { - ulong sample_rate; - ushort bits_per_sample; // unused by RAInitDecoder - ushort number_of_channels; - ushort unknown1; // 0 - ushort unknown2; // also unused (100) - ulong leaf_size; // leaf size (used for interleaving, but - // exists in audio stream description header (ASDH)) - ulong block_align; // packet size - ulong bits_per_sample; // unused (always 16) - char *ext_data; // 16 bytes located at the end of the - // ASDH + ulong sample_rate; + ushort bits_per_sample; // unused by RAInitDecoder + ushort number_of_channels; + ushort unknown1; // 0 + ushort unknown2; // also unused (100) + ulong leaf_size; // leaf size (used for interleaving, but + // exists in audio stream description header (ASDH)) + ulong block_align; // packet size + ulong bits_per_sample; // unused (always 16) + char *ext_data; // 16 bytes located at the end of the + // ASDH }; There are some information missing that you usually need for playback, @@ -61,7 +61,7 @@ following command: void *GetRAFlavorProperty(ra_main_t *raMain, ulong flavor, ulong property, - short *property_length_in_bytes); + short *property_length_in_bytes); returns property data for a specific data This is not important, because it's just a read only function. @@ -69,8 +69,8 @@ These flavor properties don't seem to exist in ulong RADecode(ra_main_t *raMain, char *input_buffer, - ulong input_buffer_size, char *output_buffer, - ulong *decoded_bytes, ulong p6=-1); + ulong input_buffer_size, char *output_buffer, + ulong *decoded_bytes, ulong p6=-1); RAFreeDecoder(ra_main_t *); diff --git a/DOCS/tech/realcodecs/streaming.txt b/DOCS/tech/realcodecs/streaming.txt index 091d0d671f..a4af485b9b 100644 --- a/DOCS/tech/realcodecs/streaming.txt +++ b/DOCS/tech/realcodecs/streaming.txt @@ -38,8 +38,8 @@ cccc: mask 3FFF: _total_ length of the packet dddd: when it's 0, {} exists (only in this case) mask 3FFF: offset of fragment inside the whole packet. it's counted from the beginning of the packet, except when hdr&0x80, - hten it's relative to the _end_ of the packet, so it's - equal to fragment size! + hten it's relative to the _end_ of the packet, so it's + equal to fragment size! mask C000: like cccc, except the first case (always 4000) when it's all 0000, it indicates value >=0x4000, you should read {eeee} and use all 16 bits of it. dunno what happens when length>=65536... diff --git a/DOCS/tech/realcodecs/video-codecs.txt b/DOCS/tech/realcodecs/video-codecs.txt index 2bef957172..af2152061a 100644 --- a/DOCS/tech/realcodecs/video-codecs.txt +++ b/DOCS/tech/realcodecs/video-codecs.txt @@ -40,12 +40,12 @@ anything and is only called in the beginning. result=RV20toYUV420Init(struct init_data *, struct rvyuvMain **); struct init_data { - short constant=0xb; - short width, height; - short 0, 0, 0; - ulong format1; - long 1; - ulong format2; + short constant=0xb; + short width, height; + short 0, 0, 0; + ulong format1; + long 1; + ulong format2; }; format1 and format2 are stored in the .rm file's stream headers. @@ -53,22 +53,22 @@ format1 and format2 are stored in the .rm file's stream headers. it's the only difference between low and high bitrate files. result=RV20toYUV420Transform(char *input_stream, char *output_data, - struct transin *, struct transout *, struct rvyuvMain *); + struct transin *, struct transout *, struct rvyuvMain *); struct transin { - ulong length_of_input_data; - ulong null; - ulong num_sub_packets_in_block_minus_one; - ulong *sub_packets_list; - ulong another_null; - ulong timestamp_from_stream; + ulong length_of_input_data; + ulong null; + ulong num_sub_packets_in_block_minus_one; + ulong *sub_packets_list; + ulong another_null; + ulong timestamp_from_stream; }; struct transout { - ulong flag1; // ((var_94&2!=0)&&(result==0))?1:0 - ulong flag2; // 4 LBS from var_94 - ulong zero; - ulong width, height; + ulong flag1; // ((var_94&2!=0)&&(result==0))?1:0 + ulong flag2; // 4 LBS from var_94 + ulong zero; + ulong width, height; }; The length of output_stream is 1.5*width*height (I420 planar yuv 4:2:0). @@ -131,37 +131,37 @@ DWORDS (the entries are not always constant) there are two w/h pairs at 05C. the first is the size of the unscaled video stream, the second possibly image size -000 1 6 3 1 -010 1 0 AEBFC0D1(magic) 0 -020 0 ptr->? 0 0 -030 0 0 ->rvyuvMain+0x050 ? -040 width height 0x17 0x479 -050 ->rvyuvMain 0x17 0x17 width -060 height width height 0 -070 0 1 0 0 -080 0 0xb w h -090 w h 0 0 -0A0 1 0xb0(w?) 0x58 0x58 -0B0 ptr->? 0 0 1 -0C0 0x32 1 0 0 -0D0 0 0 0 0 -0E0 0 0 0 0 -0F0 0 0 0 0 -100 0 0 0 0 -110 p p p p p are pointers to several function, for -120 p p p p example to the actual public functions -130 p p p p (except init, the others are some kind of -140 p p p p interfaces) -150 p 0 0 0 -160 0 0x2000 1 0 -170 0 0 0 0 -180 1 1 0 0 -190 0 0 0 0 -1A0 0 0 0 0 -1B0 1 0 ptr->? ptr->? -1C0 1 0 0 0 -1D0 0 0 0 0 -1E0 0 0 0 0 +000 1 6 3 1 +010 1 0 AEBFC0D1(magic) 0 +020 0 ptr->? 0 0 +030 0 0 ->rvyuvMain+0x050 ? +040 width height 0x17 0x479 +050 ->rvyuvMain 0x17 0x17 width +060 height width height 0 +070 0 1 0 0 +080 0 0xb w h +090 w h 0 0 +0A0 1 0xb0(w?) 0x58 0x58 +0B0 ptr->? 0 0 1 +0C0 0x32 1 0 0 +0D0 0 0 0 0 +0E0 0 0 0 0 +0F0 0 0 0 0 +100 0 0 0 0 +110 p p p p p are pointers to several function, for +120 p p p p example to the actual public functions +130 p p p p (except init, the others are some kind of +140 p p p p interfaces) +150 p 0 0 0 +160 0 0x2000 1 0 +170 0 0 0 0 +180 1 1 0 0 +190 0 0 0 0 +1A0 0 0 0 0 +1B0 1 0 ptr->? ptr->? +1C0 1 0 0 0 +1D0 0 0 0 0 +1E0 0 0 0 0 ... |