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 | 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) { |