summaryrefslogtreecommitdiff
path: root/libavcodec/mpeg12.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2004-09-10 18:54:02 +0000
committerMichael Niedermayer <michaelni@gmx.at>2004-09-10 18:54:02 +0000
commitc32b14bb9c1c5baec0bd571e1bb6767e9f052aff (patch)
tree53fcba49e12b2f9d61f2e3bd7ddd2b3768b9d344 /libavcodec/mpeg12.c
parentd58a6d8537a6f34941973c5c3be93d484a4d62ed (diff)
mess cleanup
Originally committed as revision 3449 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/mpeg12.c')
-rw-r--r--libavcodec/mpeg12.c29
1 files changed, 14 insertions, 15 deletions
diff --git a/libavcodec/mpeg12.c b/libavcodec/mpeg12.c
index 569ed1e1b0..7a76d55c66 100644
--- a/libavcodec/mpeg12.c
+++ b/libavcodec/mpeg12.c
@@ -1914,6 +1914,7 @@ typedef struct Mpeg1Context {
int slice_count;
int swap_uv;//indicate VCR2
int save_aspect_info;
+ AVRational frame_rate_ext; ///< MPEG-2 specific framerate modificator
} Mpeg1Context;
@@ -1946,8 +1947,8 @@ static int mpeg_decode_init(AVCodecContext *avctx)
static void quant_matrix_rebuild(uint16_t *matrix, const uint8_t *old_perm,
const uint8_t *new_perm){
-uint16_t temp_matrix[64];
-int i;
+ uint16_t temp_matrix[64];
+ int i;
memcpy(temp_matrix,matrix,64*sizeof(uint16_t));
@@ -1959,10 +1960,9 @@ int i;
//Call this function when we know all parameters
//it may be called in different places for mpeg1 and mpeg2
static int mpeg_decode_postinit(AVCodecContext *avctx){
-Mpeg1Context *s1 = avctx->priv_data;
-MpegEncContext *s = &s1->mpeg_enc_ctx;
-uint8_t old_permutation[64];
-
+ Mpeg1Context *s1 = avctx->priv_data;
+ MpegEncContext *s = &s1->mpeg_enc_ctx;
+ uint8_t old_permutation[64];
if (
(s1->mpeg_enc_ctx_allocated == 0)||
@@ -2001,8 +2001,8 @@ uint8_t old_permutation[64];
av_reduce(
&s->avctx->frame_rate,
&s->avctx->frame_rate_base,
- frame_rate_tab[s->frame_rate_index].num * (s->frame_rate_ext_n+1),
- frame_rate_tab[s->frame_rate_index].den * (s->frame_rate_ext_d+1),
+ frame_rate_tab[s->frame_rate_index].num * s1->frame_rate_ext.num,
+ frame_rate_tab[s->frame_rate_index].den * s1->frame_rate_ext.den,
1<<30);
//mpeg2 aspect
if(s->aspect_ratio_info > 1){
@@ -2131,8 +2131,9 @@ static int mpeg1_decode_picture(AVCodecContext *avctx,
return 0;
}
-static void mpeg_decode_sequence_extension(MpegEncContext *s)
+static void mpeg_decode_sequence_extension(Mpeg1Context *s1)
{
+ MpegEncContext *s= &s1->mpeg_enc_ctx;
int horiz_size_ext, vert_size_ext;
int bit_rate_ext;
@@ -2153,8 +2154,8 @@ static void mpeg_decode_sequence_extension(MpegEncContext *s)
s->low_delay = get_bits1(&s->gb);
if(s->flags & CODEC_FLAG_LOW_DELAY) s->low_delay=1;
- s->frame_rate_ext_n = get_bits(&s->gb, 2);
- s->frame_rate_ext_d = get_bits(&s->gb, 5);
+ s1->frame_rate_ext.num = get_bits(&s->gb, 2)+1;
+ s1->frame_rate_ext.den = get_bits(&s->gb, 5)+1;
dprintf("sequence extension\n");
s->codec_id= s->avctx->codec_id= CODEC_ID_MPEG2VIDEO;
@@ -2320,7 +2321,7 @@ static void mpeg_decode_extension(AVCodecContext *avctx,
ext_type = get_bits(&s->gb, 4);
switch(ext_type) {
case 0x1:
- mpeg_decode_sequence_extension(s);
+ mpeg_decode_sequence_extension(s1);
break;
case 0x2:
mpeg_decode_sequence_display_extension(s1);
@@ -2338,9 +2339,7 @@ static void mpeg_decode_extension(AVCodecContext *avctx,
}
static void exchange_uv(MpegEncContext *s){
-short * tmp;
-
- tmp = s->pblocks[4];
+ short * tmp = s->pblocks[4];
s->pblocks[4] = s->pblocks[5];
s->pblocks[5] = tmp;
}