Up until now, the initialization of AMV's matrices happened after the initialization for MJPEG matrices, overwriting the earlier data. This commit changes this.
Unified · Split
| @@ -3839,6 +3839,7 @@ static int encode_picture(MpegEncContext *s, const AVPacket *pkt) · 3838 unmodified lines | ||
| 3839 | 3839 | if (ret < 0) |
| 3840 | 3840 | return ret; |
| 3841 | 3841 | |
| 3842 | + if (s->codec_id != AV_CODEC_ID_AMV) { | |
| 3842 | 3843 | if (s->avctx->intra_matrix) { |
| 3843 | 3844 | chroma_matrix = |
| 3844 | 3845 | luma_matrix = s->avctx->intra_matrix; |
| @@ -3857,13 +3858,7 @@ static int encode_picture(MpegEncContext *s, const AVPacket *pkt) · 12 unmodified lines | ||
| 3857 | 3858 | s->c_dc_scale_table = ff_mpeg12_dc_scale_table[s->intra_dc_precision]; |
| 3858 | 3859 | s->chroma_intra_matrix[0] = |
| 3859 | 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 | − 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) { | |
| 3861 | + } else { | |
| 3867 | 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 | 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 | 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 | 3871 | s->c_dc_scale_table = c; |
| 3877 | 3872 | s->intra_matrix[0] = 13; |
| 3878 | 3873 | s->chroma_intra_matrix[0] = 14; |
| 3874 | + } | |
| 3879 | 3875 | ff_convert_matrix(s, s->q_intra_matrix, s->q_intra_matrix16, |
| 3880 | 3876 | s->intra_matrix, s->intra_quant_bias, 8, 8, 1); |
| 3881 | 3877 | ff_convert_matrix(s, s->q_chroma_intra_matrix, s->q_chroma_intra_matrix16, |
| 3882 | 3878 | s->chroma_intra_matrix, s->intra_quant_bias, 8, 8, 1); |
| 3883 | 3879 | s->qscale = 8; |
| 3884 | − } | |
| 3885 | 3880 | } |
| 3886 | 3881 | |
| 3887 | 3882 | if (s->pict_type == AV_PICTURE_TYPE_I) { |