summaryrefslogtreecommitdiff
path: root/libavcodec/mpegvideo.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/mpegvideo.c')
-rw-r--r--libavcodec/mpegvideo.c71
1 files changed, 6 insertions, 65 deletions
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index 12ce8a6a0a..ed1e6b7c71 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -53,10 +53,6 @@ static void dct_unquantize_h263_intra_c(MpegEncContext *s,
DCTELEM *block, int n, int qscale);
static void dct_unquantize_h263_inter_c(MpegEncContext *s,
DCTELEM *block, int n, int qscale);
-static void dct_unquantize_h261_intra_c(MpegEncContext *s,
- DCTELEM *block, int n, int qscale);
-static void dct_unquantize_h261_inter_c(MpegEncContext *s,
- DCTELEM *block, int n, int qscale);
static void draw_edges_c(uint8_t *buf, int wrap, int width, int height, int w);
#ifdef CONFIG_ENCODERS
static int dct_quantize_c(MpegEncContext *s, DCTELEM *block, int n, int qscale, int *overflow);
@@ -219,8 +215,6 @@ int DCT_common_init(MpegEncContext *s)
{
s->dct_unquantize_h263_intra = dct_unquantize_h263_intra_c;
s->dct_unquantize_h263_inter = dct_unquantize_h263_inter_c;
- s->dct_unquantize_h261_intra = dct_unquantize_h261_intra_c;
- s->dct_unquantize_h261_inter = dct_unquantize_h261_inter_c;
s->dct_unquantize_mpeg1_intra = dct_unquantize_mpeg1_intra_c;
s->dct_unquantize_mpeg1_inter = dct_unquantize_mpeg1_inter_c;
s->dct_unquantize_mpeg2_intra = dct_unquantize_mpeg2_intra_c;
@@ -1482,12 +1476,9 @@ alloc:
if(s->mpeg_quant || s->codec_id == CODEC_ID_MPEG2VIDEO){
s->dct_unquantize_intra = s->dct_unquantize_mpeg2_intra;
s->dct_unquantize_inter = s->dct_unquantize_mpeg2_inter;
- }else if(s->out_format == FMT_H263){
+ }else if(s->out_format == FMT_H263 || s->out_format == FMT_H261){
s->dct_unquantize_intra = s->dct_unquantize_h263_intra;
s->dct_unquantize_inter = s->dct_unquantize_h263_inter;
- }else if(s->out_format == FMT_H261){
- s->dct_unquantize_intra = s->dct_unquantize_h261_intra;
- s->dct_unquantize_inter = s->dct_unquantize_h261_inter;
}else{
s->dct_unquantize_intra = s->dct_unquantize_mpeg1_intra;
s->dct_unquantize_inter = s->dct_unquantize_mpeg1_inter;
@@ -4517,6 +4508,7 @@ static int encode_thread(AVCodecContext *c, void *arg){
if(s->codec_id == CODEC_ID_H261){
ff_h261_reorder_mb_index(s);
xy= s->mb_y*s->mb_stride + s->mb_x;
+ mb_type= s->mb_type[xy];
}
/* write gob / video packet header */
@@ -4990,8 +4982,10 @@ static int encode_thread(AVCodecContext *c, void *arg){
s, s->new_picture .data[2] + s->mb_x*8 + s->mb_y*s->uvlinesize*8,
s->dest[2], w>>1, h>>1, s->uvlinesize);
}
- if(s->loop_filter)
- ff_h263_loop_filter(s);
+ if(s->loop_filter){
+ if(s->out_format == FMT_H263)
+ ff_h263_loop_filter(s);
+ }
//printf("MB %d %d bits\n", s->mb_x+s->mb_y*s->mb_stride, put_bits_count(&s->pb));
}
}
@@ -6250,59 +6244,6 @@ static void dct_unquantize_h263_inter_c(MpegEncContext *s,
}
}
-static void dct_unquantize_h261_intra_c(MpegEncContext *s,
- DCTELEM *block, int n, int qscale)
-{
- int i, level, even;
- int nCoeffs;
-
- assert(s->block_last_index[n]>=0);
-
- if (n < 4)
- block[0] = block[0] * s->y_dc_scale;
- else
- block[0] = block[0] * s->c_dc_scale;
- even = (qscale & 1)^1;
- nCoeffs= s->inter_scantable.raster_end[ s->block_last_index[n] ];
-
- for(i=1; i<=nCoeffs; i++){
- level = block[i];
- if (level){
- if (level < 0){
- level = qscale * ((level << 1) - 1) + even;
- }else{
- level = qscale * ((level << 1) + 1) - even;
- }
- }
- block[i] = level;
- }
-}
-
-static void dct_unquantize_h261_inter_c(MpegEncContext *s,
- DCTELEM *block, int n, int qscale)
-{
- int i, level, even;
- int nCoeffs;
-
- assert(s->block_last_index[n]>=0);
-
- even = (qscale & 1)^1;
-
- nCoeffs= s->inter_scantable.raster_end[ s->block_last_index[n] ];
-
- for(i=0; i<=nCoeffs; i++){
- level = block[i];
- if (level){
- if (level < 0){
- level = qscale * ((level << 1) - 1) + even;
- }else{
- level = qscale * ((level << 1) + 1) - even;
- }
- }
- block[i] = level;
- }
-}
-
static const AVOption mpeg4_options[] =
{
AVOPTION_CODEC_INT("bitrate", "desired video bitrate", bit_rate, 4, 240000000, 800000),