Showing the changes to libavcodec (1 of 1 file). Show all
Unified · Split
| @@ -3832,32 +3832,32 @@ static int encode_picture(MpegEncContext *s, const AVPacket *pkt) · 3831 unmodified lines | |||
| 3832 | s->qscale= 3; //reduce clipping problems | 3832 | s->qscale= 3; //reduce clipping problems |
| 3833 | 3833 | ||
| 3834 | if (s->out_format == FMT_MJPEG) { | 3834 | if (s->out_format == FMT_MJPEG) { |
| 3835 | const uint16_t * luma_matrix = ff_mpeg1_default_intra_matrix; | ||
| 3836 | const uint16_t *chroma_matrix = ff_mpeg1_default_intra_matrix; | ||
| 3837 | |||
| 3838 | ret = ff_check_codec_matrices(s->avctx, FF_MATRIX_TYPE_INTRA | FF_MATRIX_TYPE_CHROMA_INTRA, (7 + s->qscale) / s->qscale, 65535); | 3835 | ret = ff_check_codec_matrices(s->avctx, FF_MATRIX_TYPE_INTRA | FF_MATRIX_TYPE_CHROMA_INTRA, (7 + s->qscale) / s->qscale, 65535); |
| 3839 | if (ret < 0) | 3836 | if (ret < 0) |
| 3840 | return ret; | 3837 | return ret; |
| 3841 | 3838 | ||
| 3842 | if (s->codec_id != AV_CODEC_ID_AMV) { | 3839 | if (s->codec_id != AV_CODEC_ID_AMV) { |
| 3843 | if (s->avctx->intra_matrix) { | 3840 | const uint16_t * luma_matrix = ff_mpeg1_default_intra_matrix; |
| 3844 | chroma_matrix = | 3841 | const uint16_t *chroma_matrix = ff_mpeg1_default_intra_matrix; |
| 3845 | luma_matrix = s->avctx->intra_matrix; | ||
| 3846 | } | ||
| 3847 | if (s->avctx->chroma_intra_matrix) | ||
| 3848 | chroma_matrix = s->avctx->chroma_intra_matrix; | ||
| 3849 | 3842 | ||
| 3850 | /* for mjpeg, we do include qscale in the matrix */ | 3843 | if (s->avctx->intra_matrix) { |
| 3851 | for(i=1;i<64;i++){ | 3844 | chroma_matrix = |
| 3852 | int j = s->idsp.idct_permutation[i]; | 3845 | luma_matrix = s->avctx->intra_matrix; |
| 3846 | } | ||
| 3847 | if (s->avctx->chroma_intra_matrix) | ||
| 3848 | chroma_matrix = s->avctx->chroma_intra_matrix; | ||
| 3853 | 3849 | ||
| 3854 | s->chroma_intra_matrix[j] = av_clip_uint8((chroma_matrix[i] * s->qscale) >> 3); | 3850 | /* for mjpeg, we do include qscale in the matrix */ |
| 3855 | s-> intra_matrix[j] = av_clip_uint8(( luma_matrix[i] * s->qscale) >> 3); | 3851 | for (int i = 1; i < 64; i++) { |
| 3856 | } | 3852 | int j = s->idsp.idct_permutation[i]; |
| 3857 | s->y_dc_scale_table= | 3853 | |
| 3858 | s->c_dc_scale_table = ff_mpeg12_dc_scale_table[s->intra_dc_precision]; | 3854 | s->chroma_intra_matrix[j] = av_clip_uint8((chroma_matrix[i] * s->qscale) >> 3); |
| 3859 | s->chroma_intra_matrix[0] = | 3855 | s-> intra_matrix[j] = av_clip_uint8(( luma_matrix[i] * s->qscale) >> 3); |
| 3860 | s->intra_matrix[0] = ff_mpeg12_dc_scale_table[s->intra_dc_precision][8]; | 3856 | } |
| 3857 | s->y_dc_scale_table = | ||
| 3858 | s->c_dc_scale_table = ff_mpeg12_dc_scale_table[s->intra_dc_precision]; | ||
| 3859 | s->chroma_intra_matrix[0] = | ||
| 3860 | s->intra_matrix[0] = ff_mpeg12_dc_scale_table[s->intra_dc_precision][8]; | ||
| 3861 | } else { | 3861 | } else { |
| 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}; | 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}; |
| 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}; | 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}; |
| @@ -3872,11 +3872,11 @@ static int encode_picture(MpegEncContext *s, const AVPacket *pkt) · 8 unmodified lines | |||
| 3872 | s->intra_matrix[0] = 13; | 3872 | s->intra_matrix[0] = 13; |
| 3873 | s->chroma_intra_matrix[0] = 14; | 3873 | s->chroma_intra_matrix[0] = 14; |
| 3874 | } | 3874 | } |
| 3875 | 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, |
| 3876 | s->intra_matrix, s->intra_quant_bias, 8, 8, 1); | 3876 | s->intra_matrix, s->intra_quant_bias, 8, 8, 1); |
| 3877 | 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, |
| 3878 | s->chroma_intra_matrix, s->intra_quant_bias, 8, 8, 1); | 3878 | s->chroma_intra_matrix, s->intra_quant_bias, 8, 8, 1); |
| 3879 | s->qscale = 8; | 3879 | s->qscale = 8; |
| 3880 | } | 3880 | } |
| 3881 | 3881 | ||
| 3882 | if (s->pict_type == AV_PICTURE_TYPE_I) { | 3882 | if (s->pict_type == AV_PICTURE_TYPE_I) { |