History

avcodec/mpegvideo_enc: Don't do unnecessary work for AMV

Up until now, the initialization of AMV's matrices happened after the initialization for MJPEG matrices, overwriting the earlier data. This commit changes this.

Andreas Rheinhardt committed 1 year ago

Commit 772df651 parent 8d871621 file · +3 −8Browse files

Unified · Split

libavcodec/mpegvideo_enc.c+3−8
@@ -3839,6 +3839,7 @@ static int encode_picture(MpegEncContext *s, const AVPacket *pkt) · 3838 unmodified lines
3839 if (ret < 0)3839 if (ret < 0)
3840 return ret;3840 return ret;
3841 3841
3842 if (s->codec_id != AV_CODEC_ID_AMV) {
3842 if (s->avctx->intra_matrix) {3843 if (s->avctx->intra_matrix) {
3843 chroma_matrix =3844 chroma_matrix =
3844 luma_matrix = s->avctx->intra_matrix;3845 luma_matrix = s->avctx->intra_matrix;
@@ -3857,13 +3858,7 @@ static int encode_picture(MpegEncContext *s, const AVPacket *pkt) · 12 unmodified lines
3857 s->c_dc_scale_table = ff_mpeg12_dc_scale_table[s->intra_dc_precision];3858 s->c_dc_scale_table = ff_mpeg12_dc_scale_table[s->intra_dc_precision];
3858 s->chroma_intra_matrix[0] =3859 s->chroma_intra_matrix[0] =
3859 s->intra_matrix[0] = ff_mpeg12_dc_scale_table[s->intra_dc_precision][8];3860 s->intra_matrix[0] = ff_mpeg12_dc_scale_table[s->intra_dc_precision][8];
3860 ff_convert_matrix(s, s->q_intra_matrix, s->q_intra_matrix16,3861 } else {
3861 s->intra_matrix, s->intra_quant_bias, 8, 8, 1);
3862 ff_convert_matrix(s, s->q_chroma_intra_matrix, s->q_chroma_intra_matrix16,
3863 s->chroma_intra_matrix, s->intra_quant_bias, 8, 8, 1);
3864 s->qscale= 8;
3865
3866 if (s->codec_id == AV_CODEC_ID_AMV) {
3867 static const uint8_t y[32] = {13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13};3862 static const uint8_t y[32] = {13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13};
3868 static const uint8_t c[32] = {14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14};3863 static const uint8_t c[32] = {14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14};
3869 for (int i = 1; i < 64; i++) {3864 for (int i = 1; i < 64; i++) {
@@ -3876,12 +3871,12 @@ static int encode_picture(MpegEncContext *s, const AVPacket *pkt) · 6 unmodified lines
3876 s->c_dc_scale_table = c;3871 s->c_dc_scale_table = c;
3877 s->intra_matrix[0] = 13;3872 s->intra_matrix[0] = 13;
3878 s->chroma_intra_matrix[0] = 14;3873 s->chroma_intra_matrix[0] = 14;
3874 }
3879 ff_convert_matrix(s, s->q_intra_matrix, s->q_intra_matrix16,3875 ff_convert_matrix(s, s->q_intra_matrix, s->q_intra_matrix16,
3880 s->intra_matrix, s->intra_quant_bias, 8, 8, 1);3876 s->intra_matrix, s->intra_quant_bias, 8, 8, 1);
3881 ff_convert_matrix(s, s->q_chroma_intra_matrix, s->q_chroma_intra_matrix16,3877 ff_convert_matrix(s, s->q_chroma_intra_matrix, s->q_chroma_intra_matrix16,
3882 s->chroma_intra_matrix, s->intra_quant_bias, 8, 8, 1);3878 s->chroma_intra_matrix, s->intra_quant_bias, 8, 8, 1);
3883 s->qscale = 8;3879 s->qscale = 8;
3884 }
3885 }3880 }
3886 3881
3887 if (s->pict_type == AV_PICTURE_TYPE_I) {3882 if (s->pict_type == AV_PICTURE_TYPE_I) {

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t