[FFmpeg-cvslog] MAINTAINERS: update list of releases i maintain
ffmpeg | branch: master | Michael Niedermayer | Mon Jul 28 06:16:34 2014 +0200| [5003b8b9c3bacc4e542c923a7766c2ff46e0b1e8] | committer: Michael Niedermayer MAINTAINERS: update list of releases i maintain Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5003b8b9c3bacc4e542c923a7766c2ff46e0b1e8 --- MAINTAINERS |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 392d509..c383d3f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -528,8 +528,8 @@ x86 Michael Niedermayer Releases +2.3 Michael Niedermayer 2.2 Michael Niedermayer -2.1 Michael Niedermayer 1.2 Michael Niedermayer If you want to maintain an older release, please contact us ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'c5fca0174db9ed45be821177f49bd9633152704d'
ffmpeg | branch: master | Michael Niedermayer | Mon Jul 28 12:36:28 2014 +0200| [2e5c8b06491b3713405421e1dcbcdf9bb1e7dfea] | committer: Michael Niedermayer Merge commit 'c5fca0174db9ed45be821177f49bd9633152704d' * commit 'c5fca0174db9ed45be821177f49bd9633152704d': lavc: add a property for marking codecs that support frame reordering Conflicts: doc/APIchanges libavcodec/avcodec.h libavcodec/codec_desc.c libavcodec/version.h Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2e5c8b06491b3713405421e1dcbcdf9bb1e7dfea --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] lavc: add a property for marking codecs that support frame reordering
ffmpeg | branch: master | Anton Khirnov | Sun Jul 20 11:26:13 2014 +| [c5fca0174db9ed45be821177f49bd9633152704d] | committer: Anton Khirnov lavc: add a property for marking codecs that support frame reordering > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c5fca0174db9ed45be821177f49bd9633152704d --- doc/APIchanges |3 +++ libavcodec/avcodec.h| 10 ++ libavcodec/codec_desc.c | 32 libavcodec/version.h|2 +- 4 files changed, 30 insertions(+), 17 deletions(-) diff --git a/doc/APIchanges b/doc/APIchanges index 9535b88..8fb0c23 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -13,6 +13,9 @@ libavutil: 2013-12-xx API changes, most recent first: +2014-xx-xx - xxx - lavc 55.57.0 - avcodec.h + Add AV_CODEC_PROP_REORDER to mark codecs supporting frame reordering. + 2014-07-xx - xxx - lavu 53.18.0 - display.h Add av_display_matrix_flip() to flip the transformation matrix. diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 8f93911..7385dd3 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -509,6 +509,16 @@ typedef struct AVCodecDescriptor { * Codec supports lossless compression. Audio and video codecs only. */ #define AV_CODEC_PROP_LOSSLESS (1 << 2) +/** + * Codec supports frame reordering. That is, the coded order (the order in which + * the encoded packets are output by the encoders / stored / input to the + * decoders) may be different from the presentation order of the corresponding + * frames. + * + * For codecs that do not have this property set, PTS and DTS should always be + * equal. + */ +#define AV_CODEC_PROP_REORDER (1 << 3) /** * @ingroup lavc_decoding diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c index f0a6dad..548c508 100644 --- a/libavcodec/codec_desc.c +++ b/libavcodec/codec_desc.c @@ -30,14 +30,14 @@ static const AVCodecDescriptor codec_descriptors[] = { .type = AVMEDIA_TYPE_VIDEO, .name = "mpeg1video", .long_name = NULL_IF_CONFIG_SMALL("MPEG-1 video"), -.props = AV_CODEC_PROP_LOSSY, +.props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER, }, { .id= AV_CODEC_ID_MPEG2VIDEO, .type = AVMEDIA_TYPE_VIDEO, .name = "mpeg2video", .long_name = NULL_IF_CONFIG_SMALL("MPEG-1 video"), -.props = AV_CODEC_PROP_LOSSY, +.props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER, }, #if FF_API_XVMC { @@ -60,7 +60,7 @@ static const AVCodecDescriptor codec_descriptors[] = { .type = AVMEDIA_TYPE_VIDEO, .name = "h263", .long_name = NULL_IF_CONFIG_SMALL("H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2"), -.props = AV_CODEC_PROP_LOSSY, +.props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER, }, { .id= AV_CODEC_ID_RV10, @@ -74,7 +74,7 @@ static const AVCodecDescriptor codec_descriptors[] = { .type = AVMEDIA_TYPE_VIDEO, .name = "rv20", .long_name = NULL_IF_CONFIG_SMALL("RealVideo 1.0"), -.props = AV_CODEC_PROP_LOSSY, +.props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER, }, { .id= AV_CODEC_ID_MJPEG, @@ -95,7 +95,7 @@ static const AVCodecDescriptor codec_descriptors[] = { .type = AVMEDIA_TYPE_VIDEO, .name = "mpeg4", .long_name = NULL_IF_CONFIG_SMALL("MPEG-4 part 2"), -.props = AV_CODEC_PROP_LOSSY, +.props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER, }, { .id= AV_CODEC_ID_RAWVIDEO, @@ -144,14 +144,14 @@ static const AVCodecDescriptor codec_descriptors[] = { .type = AVMEDIA_TYPE_VIDEO, .name = "h263p", .long_name = NULL_IF_CONFIG_SMALL("H.263+ / H.263-1998 / H.263 version 2"), -.props = AV_CODEC_PROP_LOSSY, +.props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER, }, { .id= AV_CODEC_ID_H263I, .type = AVMEDIA_TYPE_VIDEO, .name = "h263i", .long_name = NULL_IF_CONFIG_SMALL("Intel H.263"), -.props = AV_CODEC_PROP_LOSSY, +.props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER, }, { .id= AV_CODEC_ID_FLV1, @@ -172,7 +172,7 @@ static const AVCodecDescriptor codec_descriptors[] = { .type = AVMEDIA_TYPE_VIDEO, .name = "svq3", .long_name = NULL_IF_CONFIG_SMALL("Sorenson Vector Quantizer 3 / Sorenson Video 3 / SVQ3"), -.props = AV_CODEC_PROP_LOSSY, +.props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER, }, { .id= AV_CODEC_ID_DVVIDEO, @@ -200,7 +200,7 @@ static const AVCodecDescriptor codec_descriptors[] = { .type = AVMEDIA_TYPE_VIDEO, .name = "h264",
[FFmpeg-cvslog] codec_desc: fix some typos in long codec names
ffmpeg | branch: master | Anton Khirnov | Sun Jul 20 11:34:30 2014 +| [4b169321b84502302f2badb056ebee4fdaea94fa] | committer: Anton Khirnov codec_desc: fix some typos in long codec names The rv20 typo spotted by Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4b169321b84502302f2badb056ebee4fdaea94fa --- libavcodec/codec_desc.c |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c index 548c508..c21c57e 100644 --- a/libavcodec/codec_desc.c +++ b/libavcodec/codec_desc.c @@ -36,7 +36,7 @@ static const AVCodecDescriptor codec_descriptors[] = { .id= AV_CODEC_ID_MPEG2VIDEO, .type = AVMEDIA_TYPE_VIDEO, .name = "mpeg2video", -.long_name = NULL_IF_CONFIG_SMALL("MPEG-1 video"), +.long_name = NULL_IF_CONFIG_SMALL("MPEG-2 video"), .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER, }, #if FF_API_XVMC @@ -73,7 +73,7 @@ static const AVCodecDescriptor codec_descriptors[] = { .id= AV_CODEC_ID_RV20, .type = AVMEDIA_TYPE_VIDEO, .name = "rv20", -.long_name = NULL_IF_CONFIG_SMALL("RealVideo 1.0"), +.long_name = NULL_IF_CONFIG_SMALL("RealVideo 2.0"), .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER, }, { ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '4b169321b84502302f2badb056ebee4fdaea94fa'
ffmpeg | branch: master | Michael Niedermayer | Mon Jul 28 12:45:19 2014 +0200| [c11255ae8b1a6239cfde38bb6d44dde35eee9648] | committer: Michael Niedermayer Merge commit '4b169321b84502302f2badb056ebee4fdaea94fa' * commit '4b169321b84502302f2badb056ebee4fdaea94fa': codec_desc: fix some typos in long codec names See: 60b59d657e4d2c710391b8238533c2f3a51086f7 See: c3ca70204bd816bcef59c3d278b3d8607e2525ca Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c11255ae8b1a6239cfde38bb6d44dde35eee9648 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'e36a2f4c5280e2779b0e88974295a711cf8d88be'
ffmpeg | branch: master | Michael Niedermayer | Mon Jul 28 12:53:17 2014 +0200| [453224f10b375c280ab2ef8f6e40213ba5b77d8a] | committer: Michael Niedermayer Merge commit 'e36a2f4c5280e2779b0e88974295a711cf8d88be' * commit 'e36a2f4c5280e2779b0e88974295a711cf8d88be': hevc: eliminate an unnecessary array Conflicts: libavcodec/hevc.c See: 255086a7e06417d98417cea192053b8a8531eb24 Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=453224f10b375c280ab2ef8f6e40213ba5b77d8a --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] hevc: eliminate an unnecessary array
ffmpeg | branch: master | Anton Khirnov | Sun Jul 27 08:17:29 2014 +| [e36a2f4c5280e2779b0e88974295a711cf8d88be] | committer: Anton Khirnov hevc: eliminate an unnecessary array We do not need to store the value of the split flag. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e36a2f4c5280e2779b0e88974295a711cf8d88be --- libavcodec/hevc.c | 14 +- libavcodec/hevc.h |1 - 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c index d9c9c71..18c7920 100644 --- a/libavcodec/hevc.c +++ b/libavcodec/hevc.c @@ -166,7 +166,6 @@ static void pic_arrays_free(HEVCContext *s) { av_freep(&s->sao); av_freep(&s->deblock); -av_freep(&s->split_cu_flag); av_freep(&s->skip_flag); av_freep(&s->tab_ct_depth); @@ -192,7 +191,6 @@ static int pic_arrays_init(HEVCContext *s, const HEVCSPS *sps) int log2_min_cb_size = sps->log2_min_cb_size; int width= sps->width; int height = sps->height; -int pic_size = width * height; int pic_size_in_ctb = ((width >> log2_min_cb_size) + 1) * ((height >> log2_min_cb_size) + 1); int ctb_count= sps->ctb_width * sps->ctb_height; @@ -203,8 +201,7 @@ static int pic_arrays_init(HEVCContext *s, const HEVCSPS *sps) s->sao = av_mallocz_array(ctb_count, sizeof(*s->sao)); s->deblock = av_mallocz_array(ctb_count, sizeof(*s->deblock)); -s->split_cu_flag = av_malloc(pic_size); -if (!s->sao || !s->deblock || !s->split_cu_flag) +if (!s->sao || !s->deblock) goto fail; s->skip_flag= av_malloc(pic_size_in_ctb); @@ -2234,16 +2231,15 @@ static int hls_coding_quadtree(HEVCContext *s, int x0, int y0, { HEVCLocalContext *lc = &s->HEVClc; const int cb_size= 1 << log2_cb_size; +int split_cu; lc->ct.depth = cb_depth; if (x0 + cb_size <= s->sps->width && y0 + cb_size <= s->sps->height && log2_cb_size > s->sps->log2_min_cb_size) { -SAMPLE(s->split_cu_flag, x0, y0) = -ff_hevc_split_coding_unit_flag_decode(s, cb_depth, x0, y0); +split_cu = ff_hevc_split_coding_unit_flag_decode(s, cb_depth, x0, y0); } else { -SAMPLE(s->split_cu_flag, x0, y0) = -(log2_cb_size > s->sps->log2_min_cb_size); +split_cu = (log2_cb_size > s->sps->log2_min_cb_size); } if (s->pps->cu_qp_delta_enabled_flag && log2_cb_size >= s->sps->log2_ctb_size - s->pps->diff_cu_qp_delta_depth) { @@ -2251,7 +2247,7 @@ static int hls_coding_quadtree(HEVCContext *s, int x0, int y0, lc->tu.cu_qp_delta = 0; } -if (SAMPLE(s->split_cu_flag, x0, y0)) { +if (split_cu) { const int cb_size_split = cb_size >> 1; const int x1 = x0 + cb_size_split; const int y1 = y0 + cb_size_split; diff --git a/libavcodec/hevc.h b/libavcodec/hevc.h index 978681b..e8f8f1a 100644 --- a/libavcodec/hevc.h +++ b/libavcodec/hevc.h @@ -806,7 +806,6 @@ typedef struct HEVCContext { VideoDSPContext vdsp; BswapDSPContext bdsp; int8_t *qp_y_tab; -uint8_t *split_cu_flag; uint8_t *horizontal_bs; uint8_t *vertical_bs; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] hevc: simplify splitting the transform tree blocks
ffmpeg | branch: master | Anton Khirnov | Sun Jul 27 09:19:16 2014 +| [53a11135f2fb2123408b295f9aaae3d6f861aea5] | committer: Anton Khirnov hevc: simplify splitting the transform tree blocks > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=53a11135f2fb2123408b295f9aaae3d6f861aea5 --- libavcodec/hevc.c | 39 +-- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c index 18c7920..9c5cc50 100644 --- a/libavcodec/hevc.c +++ b/libavcodec/hevc.c @@ -1392,29 +1392,24 @@ static int hls_transform_tree(HEVCContext *s, int x0, int y0, } if (split_transform_flag) { -int x1 = x0 + ((1 << log2_trafo_size) >> 1); -int y1 = y0 + ((1 << log2_trafo_size) >> 1); +const int trafo_size_split = 1 << (log2_trafo_size - 1); +const int x1 = x0 + trafo_size_split; +const int y1 = y0 + trafo_size_split; + +#define SUBDIVIDE(x, y, idx) \ +do { \ +ret = hls_transform_tree(s, x, y, x0, y0, cb_xBase, cb_yBase, log2_cb_size, \ + log2_trafo_size - 1, trafo_depth + 1, idx); \ +if (ret < 0) \ +return ret; \ +} while (0) -ret = hls_transform_tree(s, x0, y0, x0, y0, cb_xBase, cb_yBase, - log2_cb_size, log2_trafo_size - 1, - trafo_depth + 1, 0); -if (ret < 0) -return ret; -ret = hls_transform_tree(s, x1, y0, x0, y0, cb_xBase, cb_yBase, - log2_cb_size, log2_trafo_size - 1, - trafo_depth + 1, 1); -if (ret < 0) -return ret; -ret = hls_transform_tree(s, x0, y1, x0, y0, cb_xBase, cb_yBase, - log2_cb_size, log2_trafo_size - 1, - trafo_depth + 1, 2); -if (ret < 0) -return ret; -ret = hls_transform_tree(s, x1, y1, x0, y0, cb_xBase, cb_yBase, - log2_cb_size, log2_trafo_size - 1, - trafo_depth + 1, 3); -if (ret < 0) -return ret; +SUBDIVIDE(x0, y0, 0); +SUBDIVIDE(x1, y0, 1); +SUBDIVIDE(x0, y1, 2); +SUBDIVIDE(x1, y1, 3); + +#undef SUBDIVIDE } else { int min_tu_size = 1 << s->sps->log2_min_tb_size; int log2_min_tu_size = s->sps->log2_min_tb_size; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '53a11135f2fb2123408b295f9aaae3d6f861aea5'
ffmpeg | branch: master | Michael Niedermayer | Mon Jul 28 13:03:59 2014 +0200| [2fb8aa9b10fcb5f342398a9dcea69fe8ed33db39] | committer: Michael Niedermayer Merge commit '53a11135f2fb2123408b295f9aaae3d6f861aea5' * commit '53a11135f2fb2123408b295f9aaae3d6f861aea5': hevc: simplify splitting the transform tree blocks Conflicts: libavcodec/hevc.c Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2fb8aa9b10fcb5f342398a9dcea69fe8ed33db39 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] hevc: do not store the transform inter_split flag in the context
ffmpeg | branch: master | Anton Khirnov | Sun Jul 27 09:49:37 2014 +| [0daa2554636ba1d31f3162ffb86991e84eb938a8] | committer: Anton Khirnov hevc: do not store the transform inter_split flag in the context It does not need to be preserved. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0daa2554636ba1d31f3162ffb86991e84eb938a8 --- libavcodec/hevc.c | 12 ++-- libavcodec/hevc.h |3 --- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c index 9c5cc50..c2c4006 100644 --- a/libavcodec/hevc.c +++ b/libavcodec/hevc.c @@ -1361,20 +1361,20 @@ static int hls_transform_tree(HEVCContext *s, int x0, int y0, lc->tt.cbf_luma = 1; -lc->tt.inter_split_flag = s->sps->max_transform_hierarchy_depth_inter == 0 && - lc->cu.pred_mode == MODE_INTER && - lc->cu.part_mode != PART_2Nx2N && - trafo_depth == 0; - if (log2_trafo_size <= s->sps->log2_max_trafo_size && log2_trafo_size > s->sps->log2_min_tb_size&& trafo_depth < lc->cu.max_trafo_depth && !(lc->cu.intra_split_flag && trafo_depth == 0)) { split_transform_flag = ff_hevc_split_transform_flag_decode(s, log2_trafo_size); } else { +int inter_split = s->sps->max_transform_hierarchy_depth_inter == 0 && + lc->cu.pred_mode == MODE_INTER && + lc->cu.part_mode != PART_2Nx2N && + trafo_depth == 0; + split_transform_flag = log2_trafo_size > s->sps->log2_max_trafo_size || (lc->cu.intra_split_flag && trafo_depth == 0) || - lc->tt.inter_split_flag; + inter_split; } if (log2_trafo_size > 2) { diff --git a/libavcodec/hevc.h b/libavcodec/hevc.h index e8f8f1a..6894160 100644 --- a/libavcodec/hevc.h +++ b/libavcodec/hevc.h @@ -650,9 +650,6 @@ typedef struct TransformTree { uint8_t cbf_cb[MAX_TRANSFORM_DEPTH][MAX_CU_SIZE * MAX_CU_SIZE]; uint8_t cbf_cr[MAX_TRANSFORM_DEPTH][MAX_CU_SIZE * MAX_CU_SIZE]; uint8_t cbf_luma; - -// Inferred parameters -uint8_t inter_split_flag; } TransformTree; typedef struct TransformUnit { ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '0daa2554636ba1d31f3162ffb86991e84eb938a8'
ffmpeg | branch: master | Michael Niedermayer | Mon Jul 28 13:09:00 2014 +0200| [0a1ffc57882c467b6573b23f1d206aa87caf0025] | committer: Michael Niedermayer Merge commit '0daa2554636ba1d31f3162ffb86991e84eb938a8' * commit '0daa2554636ba1d31f3162ffb86991e84eb938a8': hevc: do not store the transform inter_split flag in the context Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0a1ffc57882c467b6573b23f1d206aa87caf0025 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] hevc: eliminate unnecessary cbf_c{b,r} arrays
ffmpeg | branch: master | Anton Khirnov | Sun Jul 27 10:49:27 2014 +| [4aa80808bcc2a30fcd7ce5b38594319df3a85b36] | committer: Anton Khirnov hevc: eliminate unnecessary cbf_c{b,r} arrays They are replaced by passing additional parameters to the transform functions. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4aa80808bcc2a30fcd7ce5b38594319df3a85b36 --- libavcodec/hevc.c | 60 - libavcodec/hevc.h |3 --- 2 files changed, 22 insertions(+), 41 deletions(-) diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c index c2c4006..d889b57 100644 --- a/libavcodec/hevc.c +++ b/libavcodec/hevc.c @@ -1233,7 +1233,8 @@ static void hls_residual_coding(HEVCContext *s, int x0, int y0, static int hls_transform_unit(HEVCContext *s, int x0, int y0, int xBase, int yBase, int cb_xBase, int cb_yBase, int log2_cb_size, int log2_trafo_size, - int trafo_depth, int blk_idx) + int trafo_depth, int blk_idx, + int cbf_cb, int cbf_cr) { HEVCLocalContext *lc = &s->HEVClc; @@ -1256,9 +1257,7 @@ static int hls_transform_unit(HEVCContext *s, int x0, int y0, } } -if (lc->tt.cbf_luma || -SAMPLE_CBF(lc->tt.cbf_cb[trafo_depth], x0, y0) || -SAMPLE_CBF(lc->tt.cbf_cr[trafo_depth], x0, y0)) { +if (lc->tt.cbf_luma || cbf_cb || cbf_cr) { int scan_idx = SCAN_DIAG; int scan_idx_c = SCAN_DIAG; @@ -1304,14 +1303,14 @@ static int hls_transform_unit(HEVCContext *s, int x0, int y0, if (lc->tt.cbf_luma) hls_residual_coding(s, x0, y0, log2_trafo_size, scan_idx, 0); if (log2_trafo_size > 2) { -if (SAMPLE_CBF(lc->tt.cbf_cb[trafo_depth], x0, y0)) +if (cbf_cb) hls_residual_coding(s, x0, y0, log2_trafo_size - 1, scan_idx_c, 1); -if (SAMPLE_CBF(lc->tt.cbf_cr[trafo_depth], x0, y0)) +if (cbf_cr) hls_residual_coding(s, x0, y0, log2_trafo_size - 1, scan_idx_c, 2); } else if (blk_idx == 3) { -if (SAMPLE_CBF(lc->tt.cbf_cb[trafo_depth], xBase, yBase)) +if (cbf_cb) hls_residual_coding(s, xBase, yBase, log2_trafo_size, scan_idx_c, 1); -if (SAMPLE_CBF(lc->tt.cbf_cr[trafo_depth], xBase, yBase)) +if (cbf_cr) hls_residual_coding(s, xBase, yBase, log2_trafo_size, scan_idx_c, 2); } } @@ -1336,22 +1335,13 @@ static void set_deblocking_bypass(HEVCContext *s, int x0, int y0, int log2_cb_si static int hls_transform_tree(HEVCContext *s, int x0, int y0, int xBase, int yBase, int cb_xBase, int cb_yBase, int log2_cb_size, int log2_trafo_size, - int trafo_depth, int blk_idx) + int trafo_depth, int blk_idx, + int cbf_cb, int cbf_cr) { HEVCLocalContext *lc = &s->HEVClc; uint8_t split_transform_flag; int ret; -if (trafo_depth > 0 && log2_trafo_size == 2) { -SAMPLE_CBF(lc->tt.cbf_cb[trafo_depth], x0, y0) = -SAMPLE_CBF(lc->tt.cbf_cb[trafo_depth - 1], xBase, yBase); -SAMPLE_CBF(lc->tt.cbf_cr[trafo_depth], x0, y0) = -SAMPLE_CBF(lc->tt.cbf_cr[trafo_depth - 1], xBase, yBase); -} else { -SAMPLE_CBF(lc->tt.cbf_cb[trafo_depth], x0, y0) = -SAMPLE_CBF(lc->tt.cbf_cr[trafo_depth], x0, y0) = 0; -} - if (lc->cu.intra_split_flag) { if (trafo_depth == 1) lc->tu.cur_intra_pred_mode = lc->pu.intra_pred_mode[blk_idx]; @@ -1377,19 +1367,14 @@ static int hls_transform_tree(HEVCContext *s, int x0, int y0, inter_split; } -if (log2_trafo_size > 2) { -if (trafo_depth == 0 || -SAMPLE_CBF(lc->tt.cbf_cb[trafo_depth - 1], xBase, yBase)) { -SAMPLE_CBF(lc->tt.cbf_cb[trafo_depth], x0, y0) = -ff_hevc_cbf_cb_cr_decode(s, trafo_depth); -} - -if (trafo_depth == 0 || -SAMPLE_CBF(lc->tt.cbf_cr[trafo_depth - 1], xBase, yBase)) { -SAMPLE_CBF(lc->tt.cbf_cr[trafo_depth], x0, y0) = -ff_hevc_cbf_cb_cr_decode(s, trafo_depth); -} -} +if (log2_trafo_size > 2 && (trafo_depth == 0 || cbf_cb)) +cbf_cb = ff_hevc_cbf_cb_cr_decode(s, trafo_depth); +else if (log2_trafo_size > 2 || trafo_depth == 0) +cbf_cb = 0; +if (log2_trafo_size > 2 && (trafo_depth == 0 || cbf_cr)) +cbf_cr = ff_hevc_cbf_cb_cr_decode(s, trafo_depth); +else if (log2_trafo_size > 2 || trafo_depth == 0) +cbf_cr = 0; if (split_transform_flag) { const int trafo_size_split = 1 << (log2_trafo_size - 1); @@ -1399,7 +1384,8 @@ static int hls_transform_tree(HEVCContext *s, int x0, int y0,
[FFmpeg-cvslog] Merge commit '4aa80808bcc2a30fcd7ce5b38594319df3a85b36'
ffmpeg | branch: master | Michael Niedermayer | Mon Jul 28 13:35:51 2014 +0200| [4a73fa19ca7ac74f16422eabf731b86796b7d588] | committer: Michael Niedermayer Merge commit '4aa80808bcc2a30fcd7ce5b38594319df3a85b36' * commit '4aa80808bcc2a30fcd7ce5b38594319df3a85b36': hevc: eliminate unnecessary cbf_c{b,r} arrays Conflicts: libavcodec/hevc.c See: 77ef9fd1e938010600620c1d32cabd15e7d5b853 Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4a73fa19ca7ac74f16422eabf731b86796b7d588 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'e76f2d11970484266e67a12961f2339a5c2fccf9'
ffmpeg | branch: master | Michael Niedermayer | Mon Jul 28 14:02:03 2014 +0200| [e0492311c8541da55a4b08641364ce8e1a169740] | committer: Michael Niedermayer Merge commit 'e76f2d11970484266e67a12961f2339a5c2fccf9' * commit 'e76f2d11970484266e67a12961f2339a5c2fccf9': hevc: eliminate the last element from TransformTree Conflicts: libavcodec/hevc.c Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e0492311c8541da55a4b08641364ce8e1a169740 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] hevc: eliminate the last element from TransformTree
ffmpeg | branch: master | Anton Khirnov | Sun Jul 27 10:59:40 2014 +| [e76f2d11970484266e67a12961f2339a5c2fccf9] | committer: Anton Khirnov hevc: eliminate the last element from TransformTree Replace it by passing an additional parameter to transform_unit() > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e76f2d11970484266e67a12961f2339a5c2fccf9 --- libavcodec/hevc.c | 15 +++ libavcodec/hevc.h |5 - 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c index d889b57..20d2878 100644 --- a/libavcodec/hevc.c +++ b/libavcodec/hevc.c @@ -1234,7 +1234,7 @@ static int hls_transform_unit(HEVCContext *s, int x0, int y0, int xBase, int yBase, int cb_xBase, int cb_yBase, int log2_cb_size, int log2_trafo_size, int trafo_depth, int blk_idx, - int cbf_cb, int cbf_cr) + int cbf_luma, int cbf_cb, int cbf_cr) { HEVCLocalContext *lc = &s->HEVClc; @@ -1257,7 +1257,7 @@ static int hls_transform_unit(HEVCContext *s, int x0, int y0, } } -if (lc->tt.cbf_luma || cbf_cb || cbf_cr) { +if (cbf_luma || cbf_cb || cbf_cr) { int scan_idx = SCAN_DIAG; int scan_idx_c = SCAN_DIAG; @@ -1300,7 +1300,7 @@ static int hls_transform_unit(HEVCContext *s, int x0, int y0, } } -if (lc->tt.cbf_luma) +if (cbf_luma) hls_residual_coding(s, x0, y0, log2_trafo_size, scan_idx, 0); if (log2_trafo_size > 2) { if (cbf_cb) @@ -1349,8 +1349,6 @@ static int hls_transform_tree(HEVCContext *s, int x0, int y0, lc->tu.cur_intra_pred_mode = lc->pu.intra_pred_mode[0]; } -lc->tt.cbf_luma = 1; - if (log2_trafo_size <= s->sps->log2_max_trafo_size && log2_trafo_size > s->sps->log2_min_tb_size&& trafo_depth < lc->cu.max_trafo_depth && @@ -1400,18 +1398,19 @@ do { int min_tu_size = 1 << s->sps->log2_min_tb_size; int log2_min_tu_size = s->sps->log2_min_tb_size; int min_tu_width = s->sps->min_tb_width; +int cbf_luma = 1; if (lc->cu.pred_mode == MODE_INTRA || trafo_depth != 0 || cbf_cb || cbf_cr) -lc->tt.cbf_luma = ff_hevc_cbf_luma_decode(s, trafo_depth); +cbf_luma = ff_hevc_cbf_luma_decode(s, trafo_depth); ret = hls_transform_unit(s, x0, y0, xBase, yBase, cb_xBase, cb_yBase, log2_cb_size, log2_trafo_size, trafo_depth, - blk_idx, cbf_cb, cbf_cr); + blk_idx, cbf_luma, cbf_cb, cbf_cr); if (ret < 0) return ret; // TODO: store cbf_luma somewhere else -if (lc->tt.cbf_luma) { +if (cbf_luma) { int i, j; for (i = 0; i < (1 << log2_trafo_size); i += min_tu_size) for (j = 0; j < (1 << log2_trafo_size); j += min_tu_size) { diff --git a/libavcodec/hevc.h b/libavcodec/hevc.h index ad13d10..96dd80d 100644 --- a/libavcodec/hevc.h +++ b/libavcodec/hevc.h @@ -645,10 +645,6 @@ typedef struct PredictionUnit { uint8_t intra_pred_mode_c; } PredictionUnit; -typedef struct TransformTree { -uint8_t cbf_luma; -} TransformTree; - typedef struct TransformUnit { int cu_qp_delta; @@ -724,7 +720,6 @@ typedef struct HEVCLocalContext { GetBitContext gb; CABACContext cc; -TransformTree tt; int8_t qp_y; int8_t curr_qp_y; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] hevc: rename variable in boundary strength to b more explicit
ffmpeg | branch: master | Anton Khirnov | Mon Jul 28 01:06:32 2014 +0200| [a5c621aa852522c79146035b2db4b89d2e096d3c] | committer: Michael Niedermayer hevc: rename variable in boundary strength to b more explicit Signed-off-by: Mickaël Raulet cherry picked from commit 348bebedc0012aae201419669fca1eb61ec93ca6 Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a5c621aa852522c79146035b2db4b89d2e096d3c --- libavcodec/hevc.c| 36 libavcodec/hevc.h|9 +++-- libavcodec/hevc_filter.c |8 3 files changed, 27 insertions(+), 26 deletions(-) diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c index 409be52..4473c27 100644 --- a/libavcodec/hevc.c +++ b/libavcodec/hevc.c @@ -2205,9 +2205,6 @@ static void hls_decode_neighbour(HEVCContext *s, int x_ctb, int y_ctb, int ctb_addr_rs = s->pps->ctb_addr_ts_to_rs[ctb_addr_ts]; int ctb_addr_in_slice = ctb_addr_rs - s->sh.slice_addr; -int tile_left_boundary, tile_up_boundary; -int slice_left_boundary, slice_up_boundary; - s->tab_slice_address[ctb_addr_rs] = s->sh.slice_addr; if (s->pps->entropy_coding_sync_enabled_flag) { @@ -2226,25 +2223,24 @@ static void hls_decode_neighbour(HEVCContext *s, int x_ctb, int y_ctb, lc->end_of_tiles_y = FFMIN(y_ctb + ctb_size, s->sps->height); +lc->boundary_flags = 0; if (s->pps->tiles_enabled_flag) { -tile_left_boundary = x_ctb > 0 && - s->pps->tile_id[ctb_addr_ts] != s->pps->tile_id[s->pps->ctb_addr_rs_to_ts[ctb_addr_rs-1]]; -slice_left_boundary = x_ctb > 0 && - s->tab_slice_address[ctb_addr_rs] != s->tab_slice_address[ctb_addr_rs - 1]; -tile_up_boundary = y_ctb > 0 && -s->pps->tile_id[ctb_addr_ts] != s->pps->tile_id[s->pps->ctb_addr_rs_to_ts[ctb_addr_rs - s->sps->ctb_width]]; -slice_up_boundary = y_ctb > 0 && -s->tab_slice_address[ctb_addr_rs] != s->tab_slice_address[ctb_addr_rs - s->sps->ctb_width]; +if (x_ctb > 0 && s->pps->tile_id[ctb_addr_ts] != s->pps->tile_id[s->pps->ctb_addr_rs_to_ts[ctb_addr_rs-1]]) +lc->boundary_flags |= BOUNDARY_LEFT_TILE; +if (x_ctb > 0 && s->tab_slice_address[ctb_addr_rs] != s->tab_slice_address[ctb_addr_rs - 1]) +lc->boundary_flags |= BOUNDARY_LEFT_SLICE; +if (y_ctb > 0 && s->pps->tile_id[ctb_addr_ts] != s->pps->tile_id[s->pps->ctb_addr_rs_to_ts[ctb_addr_rs - s->sps->ctb_width]]) +lc->boundary_flags |= BOUNDARY_UPPER_TILE; +if (y_ctb > 0 && s->tab_slice_address[ctb_addr_rs] != s->tab_slice_address[ctb_addr_rs - s->sps->ctb_width]) +lc->boundary_flags |= BOUNDARY_UPPER_SLICE; } else { -tile_left_boundary = -tile_up_boundary = 0; -slice_left_boundary = ctb_addr_in_slice <= 0; -slice_up_boundary = ctb_addr_in_slice < s->sps->ctb_width; -} -lc->slice_or_tiles_left_boundary = slice_left_boundary + (tile_left_boundary << 1); -lc->slice_or_tiles_up_boundary = slice_up_boundary + (tile_up_boundary << 1); -lc->ctb_left_flag = ((x_ctb > 0) && (ctb_addr_in_slice > 0) && !tile_left_boundary); -lc->ctb_up_flag = ((y_ctb > 0) && (ctb_addr_in_slice >= s->sps->ctb_width) && !tile_up_boundary); +if (!ctb_addr_in_slice > 0) +lc->boundary_flags |= BOUNDARY_LEFT_SLICE; +if (ctb_addr_in_slice < s->sps->ctb_width) +lc->boundary_flags |= BOUNDARY_UPPER_SLICE; +} +lc->ctb_left_flag = ((x_ctb > 0) && (ctb_addr_in_slice > 0) && !(lc->boundary_flags & BOUNDARY_LEFT_TILE)); +lc->ctb_up_flag = ((y_ctb > 0) && (ctb_addr_in_slice >= s->sps->ctb_width) && !(lc->boundary_flags & BOUNDARY_UPPER_TILE)); lc->ctb_up_right_flag = ((y_ctb > 0) && (ctb_addr_in_slice+1 >= s->sps->ctb_width) && (s->pps->tile_id[ctb_addr_ts] == s->pps->tile_id[s->pps->ctb_addr_rs_to_ts[ctb_addr_rs+1 - s->sps->ctb_width]])); lc->ctb_up_left_flag = ((x_ctb > 0) && (y_ctb > 0) && (ctb_addr_in_slice-1 >= s->sps->ctb_width) && (s->pps->tile_id[ctb_addr_ts] == s->pps->tile_id[s->pps->ctb_addr_rs_to_ts[ctb_addr_rs-1 - s->sps->ctb_width]])); } diff --git a/libavcodec/hevc.h b/libavcodec/hevc.h index 7ed74db..8420f38 100644 --- a/libavcodec/hevc.h +++ b/libavcodec/hevc.h @@ -779,8 +779,13 @@ typedef struct HEVCLocalContext { PredictionUnit pu; NeighbourAvailable na; -uint8_t slice_or_tiles_left_boundary; -uint8_t slice_or_tiles_up_boundary; +#define BOUNDARY_LEFT_SLICE (1 << 0) +#define BOUNDARY_LEFT_TILE (1 << 1) +#define BOUNDARY_UPPER_SLICE(1 << 2) +#define BOUNDARY_UPPER_TILE (1 << 3) +/* properties of the boundary of the current CTB for the purposes + * of the deblocking filter */ +int boundary_flags; } HEVCLocalContext;
[FFmpeg-cvslog] hevc: clean up non relevant TODO
ffmpeg | branch: master | Mickaël Raulet | Mon Jul 28 00:48:06 2014 +0200| [42ffa226f9a5eb9458415223d1b70e3e7f7a946d] | committer: Michael Niedermayer hevc: clean up non relevant TODO cherry picked from commit a2ef95f043d89d05482af19460c9e9afdadec685 Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=42ffa226f9a5eb9458415223d1b70e3e7f7a946d --- libavcodec/hevc.c |1 - 1 file changed, 1 deletion(-) diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c index 4473c27..3e9c86a 100644 --- a/libavcodec/hevc.c +++ b/libavcodec/hevc.c @@ -1209,7 +1209,6 @@ do { static int hls_pcm_sample(HEVCContext *s, int x0, int y0, int log2_cb_size) { -//TODO: non-4:2:0 support HEVCLocalContext *lc = s->HEVClc; GetBitContext gb; int cb_size = 1 << log2_cb_size; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avcodec/hevc: add some const to cbf arrays
ffmpeg | branch: master | Michael Niedermayer | Mon Jul 28 14:28:56 2014 +0200| [772dfd5f6e5d0722b9c577929c7de41d851cf87d] | committer: Michael Niedermayer avcodec/hevc: add some const to cbf arrays Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=772dfd5f6e5d0722b9c577929c7de41d851cf87d --- libavcodec/hevc.c |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c index 3e9c86a..592d897 100644 --- a/libavcodec/hevc.c +++ b/libavcodec/hevc.c @@ -1082,7 +1082,7 @@ static int hls_transform_tree(HEVCContext *s, int x0, int y0, int xBase, int yBase, int cb_xBase, int cb_yBase, int log2_cb_size, int log2_trafo_size, int trafo_depth, int blk_idx, - int *base_cbf_cb, int *base_cbf_cr) + const int *base_cbf_cb, const int *base_cbf_cr) { HEVCLocalContext *lc = s->HEVClc; uint8_t split_transform_flag; @@ -2076,7 +2076,7 @@ static int hls_coding_unit(HEVCContext *s, int x0, int y0, int log2_cb_size) lc->cu.rqt_root_cbf = ff_hevc_no_residual_syntax_flag_decode(s); } if (lc->cu.rqt_root_cbf) { -int cbf[2] = { 0 }; +const static int cbf[2] = { 0 }; lc->cu.max_trafo_depth = lc->cu.pred_mode == MODE_INTRA ? s->sps->max_transform_hierarchy_depth_intra + lc->cu.intra_split_flag : s->sps->max_transform_hierarchy_depth_inter; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avcodec/hevc: fix "discards const qualifier from pointer target type" warning
ffmpeg | branch: master | Michael Niedermayer | Mon Jul 28 14:34:47 2014 +0200| [243236a6f589fbf898e3015c15008776522c925a] | committer: Michael Niedermayer avcodec/hevc: fix "discards const qualifier from pointer target type" warning Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=243236a6f589fbf898e3015c15008776522c925a --- libavcodec/hevc.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c index 592d897..06f73e7 100644 --- a/libavcodec/hevc.c +++ b/libavcodec/hevc.c @@ -276,7 +276,7 @@ static int decode_lt_rps(HEVCContext *s, LongTermRPS *rps, GetBitContext *gb) return 0; } -static int get_buffer_sao(HEVCContext *s, AVFrame *frame, HEVCSPS *sps) +static int get_buffer_sao(HEVCContext *s, AVFrame *frame, const HEVCSPS *sps) { int ret, i; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] version.sh: Print versions based on the last git tag for release branches
ffmpeg | branch: release/2.3 | Michael Niedermayer | Mon Jul 28 02:40:35 2014 +0200| [ee606fd0317df202b59946cf9b738c0a01056316] | committer: Michael Niedermayer version.sh: Print versions based on the last git tag for release branches release branches are detected by checking if "git" is not in RELEASE This changes "N-64706-g2f71aeb" to "n2.3-8-g2f71aeb" for git master theres no change This should improve the readability of lists of versions which come from more than 1 release branch or master + release. fate.ffmpeg.org is one possible example Reviewed-by: Timothy Gu Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ee606fd0317df202b59946cf9b738c0a01056316 --- version.sh |6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/version.sh b/version.sh index 92edcb9..f9754eb 100755 --- a/version.sh +++ b/version.sh @@ -4,7 +4,11 @@ # check for git short hash if ! test "$revision"; then -revision=$(cd "$1" && git describe --tags --match N 2> /dev/null) +if (cd "$1" && grep git RELEASE 2> /dev/null >/dev/null) ; then +revision=$(cd "$1" && git describe --tags --match N 2> /dev/null) +else +revision=$(cd "$1" && git describe --tags --always 2> /dev/null) +fi fi # Shallow Git clones (--depth) do not have the N tag: ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] x86: hevc_mc: replace one lea by add
ffmpeg | branch: release/2.3 | Christophe Gisquet | Fri Jul 25 19:07:27 2014 +0200| [65259b4d687a8d5ea8c49463b2a1178dc7fa6ca0] | committer: Michael Niedermayer x86: hevc_mc: replace one lea by add Should have been in 036f11bdb565. Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=65259b4d687a8d5ea8c49463b2a1178dc7fa6ca0 --- libavcodec/x86/hevc_mc.asm |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/x86/hevc_mc.asm b/libavcodec/x86/hevc_mc.asm index 5cf37d0..d7796ec 100644 --- a/libavcodec/x86/hevc_mc.asm +++ b/libavcodec/x86/hevc_mc.asm @@ -342,7 +342,7 @@ QPEL_TABLE 10, 4, w, sse4 %macro LOOP_END 4 lea %1q, [%1q+2*%2q]; dst += dststride -lea %3q, [%3q+ %4q]; src += srcstride +add %3q, %4q; src += srcstride dec heightd ; cmp height jnz .loop ; height loop %endmacro ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] remove VERSION file
ffmpeg | branch: release/2.3 | Michael Niedermayer | Mon Jul 28 02:22:11 2014 +0200| [2f71aeb30161edb5cb0fea5d3080094a22cc3038] | committer: Michael Niedermayer remove VERSION file it overrides what version.sh prints and thus makes its output from release branches rather useless Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2f71aeb30161edb5cb0fea5d3080094a22cc3038 --- VERSION |1 - 1 file changed, 1 deletion(-) diff --git a/VERSION b/VERSION deleted file mode 100644 index bb576db..000 --- a/VERSION +++ /dev/null @@ -1 +0,0 @@ -2.3 ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avfilter/vf_spp: use AVDCT
ffmpeg | branch: release/2.3 | Michael Niedermayer | Sat Jul 26 15:24:42 2014 +0200| [8f53d32dfbe2c727238f366ff649ce8debc17a6b] | committer: Michael Niedermayer avfilter/vf_spp: use AVDCT Signed-off-by: Michael Niedermayer (cherry picked from commit e3fac208246f5f94cfc4d3abdb1a4770272f96ee) Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8f53d32dfbe2c727238f366ff649ce8debc17a6b --- libavfilter/vf_spp.c | 13 +++-- libavfilter/vf_spp.h |6 ++ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/libavfilter/vf_spp.c b/libavfilter/vf_spp.c index 4e4a579..aff1ddf 100644 --- a/libavfilter/vf_spp.c +++ b/libavfilter/vf_spp.c @@ -233,9 +233,9 @@ static void filter(SPPContext *p, uint8_t *dst, uint8_t *src, const int y1 = y + offset[i + count - 1][1]; const int index = x1 + y1*linesize; p->pdsp.get_pixels(block, p->src + index, linesize); -p->fdsp.fdct(block); -p->requantize(block2, block, qp, p->idsp.idct_permutation); -p->idsp.idct(block2); +p->dct->fdct(block); +p->requantize(block2, block, qp, p->dct->idct_permutation); +p->dct->idct(block2); add_block(p->temp + index, linesize, block2); } } @@ -378,11 +378,11 @@ static av_cold int init(AVFilterContext *ctx) SPPContext *spp = ctx->priv; spp->avctx = avcodec_alloc_context3(NULL); -if (!spp->avctx) +spp->dct = avcodec_dct_alloc(); +if (!spp->avctx || !spp->dct) return AVERROR(ENOMEM); -ff_idctdsp_init(&spp->idsp, spp->avctx); -ff_fdctdsp_init(&spp->fdsp, spp->avctx); ff_pixblockdsp_init(&spp->pdsp, spp->avctx); +avcodec_dct_init(spp->dct); spp->store_slice = store_slice_c; switch (spp->mode) { case MODE_HARD: spp->requantize = hardthresh_c; break; @@ -403,6 +403,7 @@ static av_cold void uninit(AVFilterContext *ctx) avcodec_close(spp->avctx); av_freep(&spp->avctx); } +av_freep(&spp->dct); av_freep(&spp->non_b_qp_table); } diff --git a/libavfilter/vf_spp.h b/libavfilter/vf_spp.h index c8eac3c..2dcf813 100644 --- a/libavfilter/vf_spp.h +++ b/libavfilter/vf_spp.h @@ -24,8 +24,7 @@ #include "libavcodec/avcodec.h" #include "libavcodec/pixblockdsp.h" -#include "libavcodec/idctdsp.h" -#include "libavcodec/fdctdsp.h" +#include "libavcodec/avdct.h" #include "avfilter.h" #define MAX_LEVEL 6 /* quality levels */ @@ -41,9 +40,8 @@ typedef struct { uint8_t *src; int16_t *temp; AVCodecContext *avctx; -IDCTDSPContext idsp; -FDCTDSPContext fdsp; PixblockDSPContext pdsp; +AVDCT *dct; int8_t *non_b_qp_table; int non_b_qp_alloc_size; int use_bframe_qp; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avcodec: add avdct
ffmpeg | branch: release/2.3 | Michael Niedermayer | Sat Jul 26 15:22:27 2014 +0200| [fcc6568a10252a69c83e6ce6b166574306631861] | committer: Michael Niedermayer avcodec: add avdct This provides a public sustainable API/ABI for DCT functions. Only externally used dct functions are included. The structure is extensible without ABI issues compared to the existing dct contexts. See Mailing list and IRC log of 2014-07-26/27 Reviewed-by: ubitux Signed-off-by: Michael Niedermayer (cherry picked from commit 932ff7095696a90fda83a8c6343b57f475b40951) Conflicts: doc/APIchanges > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fcc6568a10252a69c83e6ce6b166574306631861 --- libavcodec/Makefile |1 + libavcodec/avdct.c | 119 +++ libavcodec/avdct.h | 76 3 files changed, 196 insertions(+) diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 0bbfa27..e5233f9 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -15,6 +15,7 @@ HEADERS = avcodec.h \ OBJS = allcodecs.o \ audioconvert.o \ + avdct.o \ avpacket.o \ avpicture.o \ bitstream.o \ diff --git a/libavcodec/avdct.c b/libavcodec/avdct.c new file mode 100644 index 000..720e772 --- /dev/null +++ b/libavcodec/avdct.c @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2014 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "avcodec.h" +#include "idctdsp.h" +#include "fdctdsp.h" +#include "avdct.h" + +#define OFFSET(x) offsetof(AVDCT,x) +#define DEFAULT 0 //should be NAN but it does not work as it is not a constant in glibc as required by ANSI/ISO C +//these names are too long to be readable +#define V AV_OPT_FLAG_VIDEO_PARAM +#define A AV_OPT_FLAG_AUDIO_PARAM +#define E AV_OPT_FLAG_ENCODING_PARAM +#define D AV_OPT_FLAG_DECODING_PARAM + +static const AVOption avdct_options[] = { +{"dct", "DCT algorithm", OFFSET(dct_algo), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, INT_MAX, V|E, "dct"}, +{"auto", "autoselect a good one (default)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DCT_AUTO }, INT_MIN, INT_MAX, V|E, "dct"}, +{"fastint", "fast integer (experimental / for debugging)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DCT_FASTINT }, INT_MIN, INT_MAX, V|E, "dct"}, +{"int", "accurate integer", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DCT_INT }, INT_MIN, INT_MAX, V|E, "dct"}, +{"mmx", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DCT_MMX }, INT_MIN, INT_MAX, V|E, "dct"}, +{"altivec", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DCT_ALTIVEC }, INT_MIN, INT_MAX, V|E, "dct"}, +{"faan", "floating point AAN DCT (experimental / for debugging)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DCT_FAAN }, INT_MIN, INT_MAX, V|E, "dct"}, + +{"idct", "select IDCT implementation", OFFSET(idct_algo), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, INT_MAX, V|E|D, "idct"}, +{"auto", "autoselect a good one (default)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_AUTO }, INT_MIN, INT_MAX, V|E|D, "idct"}, +{"int", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_INT }, INT_MIN, INT_MAX, V|E|D, "idct"}, +{"simple", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLE }, INT_MIN, INT_MAX, V|E|D, "idct"}, +{"simplemmx", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEMMX }, INT_MIN, INT_MAX, V|E|D, "idct"}, +{"arm", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_ARM }, INT_MIN, INT_MAX, V|E|D, "idct"}, +{"altivec", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_ALTIVEC }, INT_MIN, INT_MAX, V|E|D, "idct"}, +#if FF_API_ARCH_SH4 +{"sh4", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SH4 }, INT_MIN, INT_MAX, V|E|D, "idct"}, +#endif +{"simplearm", "experimental / for debugging", 0, AV_OPT_TYP
[FFmpeg-cvslog] version.sh: Print versions based on the last git tag for release branches
ffmpeg | branch: master | Michael Niedermayer | Mon Jul 28 02:40:35 2014 +0200| [f3158c3f29cd24cf50a02b58201ec2cf149b51e5] | committer: Michael Niedermayer version.sh: Print versions based on the last git tag for release branches release branches are detected by checking if "git" is not in RELEASE This changes "N-64706-g2f71aeb" to "n2.3-8-g2f71aeb" for git master theres no change This should improve the readability of lists of versions which come from more than 1 release branch or master + release. fate.ffmpeg.org is one possible example Reviewed-by: Timothy Gu Signed-off-by: Michael Niedermayer (cherry picked from commit ee606fd0317df202b59946cf9b738c0a01056316) Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f3158c3f29cd24cf50a02b58201ec2cf149b51e5 --- version.sh |6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/version.sh b/version.sh index 92edcb9..f9754eb 100755 --- a/version.sh +++ b/version.sh @@ -4,7 +4,11 @@ # check for git short hash if ! test "$revision"; then -revision=$(cd "$1" && git describe --tags --match N 2> /dev/null) +if (cd "$1" && grep git RELEASE 2> /dev/null >/dev/null) ; then +revision=$(cd "$1" && git describe --tags --match N 2> /dev/null) +else +revision=$(cd "$1" && git describe --tags --always 2> /dev/null) +fi fi # Shallow Git clones (--depth) do not have the N tag: ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] [ffmpeg-web] branch master updated. 5f3325e web/security: update for 2.3, 1.0.10, 0.5.*
The branch, master has been updated via 5f3325e427d709704585ee88ae1acbbe51cbe1b3 (commit) from 9397025ad6bed5bed791b50f2ed17e97580eec6d (commit) - Log - commit 5f3325e427d709704585ee88ae1acbbe51cbe1b3 Author: Michael Niedermayer AuthorDate: Mon Jul 28 17:53:21 2014 +0200 Commit: Michael Niedermayer CommitDate: Mon Jul 28 17:53:21 2014 +0200 web/security: update for 2.3, 1.0.10, 0.5.* diff --git a/src/security b/src/security index 4a34e2a..efa4649 100644 --- a/src/security +++ b/src/security @@ -1,5 +1,14 @@ Please report vulnerabilities to mailto:ffmpeg-secur...@ffmpeg.org";>ffmpeg-secur...@ffmpeg.org +FFmpeg 2.3 +2.3 + +Fixes following vulnerabilities: + + +CVE-2014-4609, d6af26c55c1ea30f85a7d9edbc373f53be1743ee +CVE-2014-4610, d6af26c55c1ea30f85a7d9edbc373f53be1743ee + FFmpeg 2.2 2.2.4 @@ -367,6 +376,17 @@ CVE-2012-6618, 03847eb8259291b4ff1bd840bd779d0699d71f96 FFmpeg 1.0 +1.0.10 + +Fixes following vulnerabilities: + + +CVE-2012-5150, 85b1ce977bd5d477cd47d0942e1a09f0a56e6778 / ae3d41636942cbc0236bad21ad06c65f4eb0f096 +CVE-2013-0894, 0916d0f9d1b94b4bb88382edae45b9276746574d / 2c16bf2de07c68513072bf3cc96401d2c6291a3e +CVE-2014-4609, 7b5c706494a775b2b0d0e0a38448610802eef8f4 / d6af26c55c1ea30f85a7d9edbc373f53be1743ee +CVE-2014-4609, 7b5c706494a775b2b0d0e0a38448610802eef8f4 / d6af26c55c1ea30f85a7d9edbc373f53be1743ee + + 1.0.9 Fixes following vulnerabilities: @@ -800,6 +820,39 @@ Several security issues that dont have CVE numbers. Fixes CVE-2011-4352, CVE-2011-4579, CVE-2011-4353, CVE-2011-4351, CVE-2011-4364 FFmpeg 0.5 +0.5.14 + +Fixes following vulnerabilities: + + +CVE-2012-5150, 90c8fa52216b7a9fc83167f791dd7bb1d01bbaf2 / ae3d41636942cbc0236bad21ad06c65f4eb0f096 +CVE-2013-7023, 04fb6bb9155a5b1857027b78728badec72734c2e / f31011e9abfb2ae75bb32bc44e2c34194c8dc40a +CVE-2014-4609, 24a0273cb86ec0b8bf17c71e7f426c3aa9e4989f / 7b5c706494a775b2b0d0e0a38448610802eef8f4 +CVE-2014-4609, 24a0273cb86ec0b8bf17c71e7f426c3aa9e4989f / d6af26c55c1ea30f85a7d9edbc373f53be1743ee +CVE-2014-4610, 24a0273cb86ec0b8bf17c71e7f426c3aa9e4989f / d6af26c55c1ea30f85a7d9edbc373f53be1743ee + + +0.5.13 + +Fixes following vulnerabilities: + + +CVE-2013-7009, fde0b7d91c9cbcc427f87c2651f39d0075c66efe / 3819db745da2ac7fb3faacb116788c32f4753f34 +CVE-2013-7010, e7484d54252d3442b64ed09770d4c84c44e104e9 / 454a11a1c9c686c78aa97954306fb63453299760 + + +0.5.11 + +Fixes following vulnerabilities: + + +CVE-2013-0849, fee26d352a52eb9f7fcd8d9167fb4a5ba015b612 / 3ae610451170cd5a28b33950006ff0bd23036845 +CVE-2013-0846, a23a3dba25448939e6be43c9196f1e6917258e2e / a7ee6281f7ef1c29284e3a4cadfe0f227ffde1ed +CVE-2013-0865, 13093f9767b922661132a3c1f4b5ba2c7338b660 / ab6c9332bfa1e20127a16392a0b85a4aa4840889 +CVE-2013-0868, ac476bfa9f90587eadef5b98cfc40ec77dde3f18 / 0dfc01c2bbf4b71bb56201bc4a393321e15d1b31 +CVE-2013-0868, 272e7f6443b76fb47192930d157bfd9284294188 / f67a0d115254461649470452058fa3c28c0df294 + + 0.5.8 Fixes CVE-2011-3892, CVE-2011-3893, CVE-2011-3895 --- Summary of changes: src/security | 53 + 1 files changed, 53 insertions(+), 0 deletions(-) hooks/post-receive -- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] tests/fate.sh: If cat *.rep fails try it with a for loop.
ffmpeg | branch: master | Michael Niedermayer | Mon Jul 28 18:27:17 2014 +0200| [d554d004a67c30e3f38bec51b2c691cfe3af3bb8] | committer: Michael Niedermayer tests/fate.sh: If cat *.rep fails try it with a for loop. Fixes fate on haiku, where cat dies due to too many arguments xargs could be used too but we do not use xargs currently so it would be an additional dependency. Also the plain cat is left in place as it is faster than the loop Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d554d004a67c30e3f38bec51b2c691cfe3af3bb8 --- tests/fate.sh |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/fate.sh b/tests/fate.sh index a1a7e35..5a78018 100755 --- a/tests/fate.sh +++ b/tests/fate.sh @@ -85,7 +85,8 @@ report(){ date=$(date -u +%Y%m%d%H%M%S) echo "fate:0:${date}:${slot}:${version}:$1:$2:${comment}" >report #echo "fate:1:${date}:${slot}:${version}:$1:$2:${branch}:${comment}" >report -cat ${build}/config.fate ${build}/tests/data/fate/*.rep >>report +cat ${build}/config.fate >>report +cat ${build}/tests/data/fate/*.rep >>report || for i in ${build}/tests/data/fate/*.rep ; do cat "$i" >>report ; done test -n "$fate_recv" && $tar report *.log | gzip | $fate_recv } ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avdevice/pulse_audio_enc: use getter function for AVFrame.channels
ffmpeg | branch: master | Michael Niedermayer | Mon Jul 28 20:06:11 2014 +0200| [1e51af13c7538f427e8a0cf0e498263de674c70e] | committer: Michael Niedermayer avdevice/pulse_audio_enc: use getter function for AVFrame.channels This is required by the API/ABI for things outside libavutil Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1e51af13c7538f427e8a0cf0e498263de674c70e --- libavdevice/pulse_audio_enc.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavdevice/pulse_audio_enc.c b/libavdevice/pulse_audio_enc.c index b07d4c0..bc4d1f0 100644 --- a/libavdevice/pulse_audio_enc.c +++ b/libavdevice/pulse_audio_enc.c @@ -681,7 +681,7 @@ static int pulse_write_frame(AVFormatContext *h, int stream_index, AVERROR(EINVAL) : 0; pkt.data = (*frame)->data[0]; -pkt.size = (*frame)->nb_samples * av_get_bytes_per_sample((*frame)->format) * (*frame)->channels; +pkt.size = (*frame)->nb_samples * av_get_bytes_per_sample((*frame)->format) * av_frame_get_channels(*frame); pkt.dts = (*frame)->pkt_dts; pkt.duration = av_frame_get_pkt_duration(*frame); return pulse_write_packet(h, &pkt); ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] x86/hevc_idct: add a colon to labels
ffmpeg | branch: master | James Almer | Mon Jul 28 16:17:34 2014 -0300| [f137876182f65e0d2f5f46b31543346d73d03105] | committer: Michael Niedermayer x86/hevc_idct: add a colon to labels This fixes a warning spam when using NASM Signed-off-by: James Almer Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f137876182f65e0d2f5f46b31543346d73d03105 --- libavcodec/x86/hevc_idct.asm |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/x86/hevc_idct.asm b/libavcodec/x86/hevc_idct.asm index 2ad6e97..481726d 100644 --- a/libavcodec/x86/hevc_idct.asm +++ b/libavcodec/x86/hevc_idct.asm @@ -36,7 +36,7 @@ cglobal hevc_idct%1x%1_dc_%3, 1, 2, 1, coeff, tmp SPLATW m0, xm0 DEFINE_ARGS coeff, cnt mov cntd, %2 -.loop +.loop: mova [coeffq+mmsize*0], m0 mova [coeffq+mmsize*1], m0 mova [coeffq+mmsize*2], m0 ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] x86/hevc_deblock: load less data in hevc_h_loop_filter_luma_8
ffmpeg | branch: master | James Almer | Mon Jul 28 16:17:35 2014 -0300| [664e9e433119203f13fed418c101484158e2bb9f] | committer: Michael Niedermayer x86/hevc_deblock: load less data in hevc_h_loop_filter_luma_8 Reading 8 bytes is enough. Signed-off-by: James Almer Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=664e9e433119203f13fed418c101484158e2bb9f --- libavcodec/x86/hevc_deblock.asm | 16 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libavcodec/x86/hevc_deblock.asm b/libavcodec/x86/hevc_deblock.asm index f7cd031..ecebd36 100644 --- a/libavcodec/x86/hevc_deblock.asm +++ b/libavcodec/x86/hevc_deblock.asm @@ -799,14 +799,14 @@ cglobal hevc_h_loop_filter_luma_8, 4, 15, 16, pix, stride, beta, tc, count, pix0 mov pix0q, pixq sub pix0q, src3strideq sub pix0q, strideq -movdqu m0, [pix0q]; p3 -movdqu m1, [pix0q + strideq]; p2 -movdqu m2, [pix0q + 2 * strideq]; p1 -movdqu m3, [pix0q + src3strideq]; p0 -movdqu m4, [pixq];q0 -movdqu m5, [pixq + strideq]; q1 -movdqu m6, [pixq + 2 * strideq]; q2 -movdqu m7, [pixq + src3strideq]; q3 +movq m0, [pix0q]; p3 +movq m1, [pix0q + strideq]; p2 +movq m2, [pix0q + 2 * strideq]; p1 +movq m3, [pix0q + src3strideq]; p0 +movq m4, [pixq];q0 +movq m5, [pixq + strideq]; q1 +movq m6, [pixq + 2 * strideq]; q2 +movq m7, [pixq + src3strideq]; q3 pxor m8, m8 punpcklbwm0, m8 punpcklbwm1, m8 ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Fix standalone compilation of the adts muxer.
ffmpeg | branch: master | Carl Eugen Hoyos | Mon Jul 28 23:25:54 2014 +0200| [63c0b41904bc6e603b61b7f11520db85a3e44113] | committer: Carl Eugen Hoyos Fix standalone compilation of the adts muxer. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=63c0b41904bc6e603b61b7f11520db85a3e44113 --- libavformat/Makefile |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/Makefile b/libavformat/Makefile index 9017e06..8aa1d01 100644 --- a/libavformat/Makefile +++ b/libavformat/Makefile @@ -62,7 +62,8 @@ OBJS-$(CONFIG_ADF_DEMUXER) += bintext.o sauce.o OBJS-$(CONFIG_ADP_DEMUXER) += adp.o OBJS-$(CONFIG_ADX_DEMUXER) += adxdec.o OBJS-$(CONFIG_ADX_MUXER) += rawenc.o -OBJS-$(CONFIG_ADTS_MUXER)+= adtsenc.o apetag.o img2.o +OBJS-$(CONFIG_ADTS_MUXER)+= adtsenc.o apetag.o img2.o \ +id3v2enc.o OBJS-$(CONFIG_AEA_DEMUXER) += aea.o pcm.o OBJS-$(CONFIG_AFC_DEMUXER) += afc.o OBJS-$(CONFIG_AIFF_DEMUXER) += aiffdec.o pcm.o isom.o \ ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] video4linux2: Avoid a floating point exception
ffmpeg | branch: master | Bernhard Übelacker | Sun Jul 27 08:38:59 2014 -0700| [dc71f1958846bb1d96de43a4603983dc8450cfcc] | committer: Diego Biurrun video4linux2: Avoid a floating point exception This avoids a segfault in avconv_opt.c:opt_target when trying to determine the norm. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=dc71f1958846bb1d96de43a4603983dc8450cfcc --- avconv_opt.c |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/avconv_opt.c b/avconv_opt.c index f8c5245..434ba0b 100644 --- a/avconv_opt.c +++ b/avconv_opt.c @@ -1757,7 +1757,8 @@ static int opt_target(void *optctx, const char *opt, const char *arg) for (j = 0; j < nb_input_files; j++) { for (i = 0; i < input_files[j]->nb_streams; i++) { AVCodecContext *c = input_files[j]->ctx->streams[i]->codec; -if (c->codec_type != AVMEDIA_TYPE_VIDEO) +if (c->codec_type != AVMEDIA_TYPE_VIDEO || +!c->time_base.num) continue; fr = c->time_base.den * 1000 / c->time_base.num; if (fr == 25000) { ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'dc71f1958846bb1d96de43a4603983dc8450cfcc'
ffmpeg | branch: master | Michael Niedermayer | Tue Jul 29 00:01:25 2014 +0200| [25a20608909fbdc3c58981aaaee31e728e8cd196] | committer: Michael Niedermayer Merge commit 'dc71f1958846bb1d96de43a4603983dc8450cfcc' * commit 'dc71f1958846bb1d96de43a4603983dc8450cfcc': video4linux2: Avoid a floating point exception Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=25a20608909fbdc3c58981aaaee31e728e8cd196 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'c9d982aa11a6267611c3770792f0e04b48438348'
ffmpeg | branch: master | Michael Niedermayer | Tue Jul 29 00:11:46 2014 +0200| [4a4d0258eef26a8c7e93f68024b639290e1c8cb2] | committer: Michael Niedermayer Merge commit 'c9d982aa11a6267611c3770792f0e04b48438348' * commit 'c9d982aa11a6267611c3770792f0e04b48438348': mxf: Detect Vanc/Vbi SMPTE-436M mxf track Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4a4d0258eef26a8c7e93f68024b639290e1c8cb2 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] mxf: Detect Vanc/Vbi SMPTE-436M mxf track
ffmpeg | branch: master | Marc-Antoine Arnaud | Tue Jul 22 16:08:52 2014 +0200| [c9d982aa11a6267611c3770792f0e04b48438348] | committer: Luca Barbato mxf: Detect Vanc/Vbi SMPTE-436M mxf track Signed-off-by: Luca Barbato > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c9d982aa11a6267611c3770792f0e04b48438348 --- libavformat/mxfdec.c | 18 ++ 1 file changed, 18 insertions(+) diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c index 58d9027..bb876c0 100644 --- a/libavformat/mxfdec.c +++ b/libavformat/mxfdec.c @@ -971,6 +971,15 @@ static const MXFCodecUL mxf_sound_essence_container_uls[] = { { { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, 0, AV_CODEC_ID_NONE }, }; +static const MXFCodecUL mxf_data_essence_container_uls[] = { +{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x09,0x0d,0x01,0x03,0x01,0x02,0x0e,0x00,0x00 }, 16, 0 }, +{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x09,0x0d,0x01,0x03,0x01,0x02,0x0e,0x00,0x00 }, 16, AV_CODEC_ID_NONE }, +}; + +static const char* mxf_data_essence_descriptor[] = { +"vbi_vanc_smpte_436M", +}; + static int mxf_get_sorted_table_segments(MXFContext *mxf, int *nb_sorted_segments, MXFIndexTableSegment ***sorted_segments) { int i, j, nb_segments = 0; @@ -1618,6 +1627,14 @@ static int mxf_parse_structural_metadata(MXFContext *mxf) } else if (st->codec->codec_id == AV_CODEC_ID_MP2) { st->need_parsing = AVSTREAM_PARSE_FULL; } +} else if (st->codec->codec_type == AVMEDIA_TYPE_DATA) { +int codec_id = mxf_get_codec_ul(mxf_data_essence_container_uls, +essence_container_ul)->id; +if (codec_id >= 0 && +codec_id < FF_ARRAY_ELEMS(mxf_data_essence_descriptor)) { +av_dict_set(&st->metadata, "data_type", +mxf_data_essence_descriptor[codec_id], 0); +} } if (descriptor->extradata) { st->codec->extradata = av_mallocz(descriptor->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE); @@ -1790,6 +1807,7 @@ static const MXFMetadataReadTableEntry mxf_metadata_read_table[] = { { { 0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x51,0x00 }, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* MPEG 2 Video */ { { 0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x48,0x00 }, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* Wave */ { { 0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x47,0x00 }, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* AES3 */ +{ { 0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x5c,0x00 }, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* VANC/VBI - SMPTE 436M */ { { 0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x3A,0x00 }, mxf_read_track, sizeof(MXFTrack), Track }, /* Static Track */ { { 0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x3B,0x00 }, mxf_read_track, sizeof(MXFTrack), Track }, /* Generic Track */ { { 0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x04,0x01,0x02,0x02,0x00,0x00 }, mxf_read_cryptographic_context, sizeof(MXFCryptoContext), CryptoContext }, ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] mxf: Extract origin information from material and source track
ffmpeg | branch: master | Marc-Antoine Arnaud | Tue Jul 22 18:08:04 2014 +0200| [259fe7280d0b63dc7a8ff017d44f26d3a84cfde8] | committer: Luca Barbato mxf: Extract origin information from material and source track Signed-off-by: Luca Barbato > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=259fe7280d0b63dc7a8ff017d44f26d3a84cfde8 --- libavformat/mxfdec.c | 14 ++ 1 file changed, 14 insertions(+) diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c index bb876c0..ba76577 100644 --- a/libavformat/mxfdec.c +++ b/libavformat/mxfdec.c @@ -111,6 +111,7 @@ typedef struct { UID *structural_components_refs; int structural_components_count; int64_t duration; +uint8_t origin; } MXFSequence; typedef struct { @@ -686,6 +687,9 @@ static int mxf_read_sequence(void *arg, AVIOContext *pb, int tag, int size, UID case 0x0201: avio_read(pb, sequence->data_definition_ul, 16); break; +case 0x4b02: +sequence->origin = avio_r8(pb); +break; case 0x1001: sequence->structural_components_count = avio_rb32(pb); if (sequence->structural_components_count >= UINT_MAX / sizeof(UID)) @@ -1589,6 +1593,16 @@ static int mxf_parse_structural_metadata(MXFContext *mxf) } } st->need_parsing = AVSTREAM_PARSE_HEADERS; +if (material_track->sequence->origin) { +char material_origin[3]; +snprintf(material_origin, sizeof(material_origin), "%d", material_track->sequence->origin); +av_dict_set(&st->metadata, "material_track_origin", material_origin, 0); +} +if (source_track->sequence->origin) { +char source_origin[3]; +snprintf(source_origin, sizeof(source_origin), "%d", source_track->sequence->origin); +av_dict_set(&st->metadata, "source_track_origin", source_origin, 0); +} } else if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO) { container_ul = mxf_get_codec_ul(mxf_sound_essence_container_uls, essence_container_ul); if (st->codec->codec_id == AV_CODEC_ID_NONE) ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '259fe7280d0b63dc7a8ff017d44f26d3a84cfde8'
ffmpeg | branch: master | Michael Niedermayer | Tue Jul 29 00:17:58 2014 +0200| [8b1e920676f6eeeb01422660768f5f92b3811bc6] | committer: Michael Niedermayer Merge commit '259fe7280d0b63dc7a8ff017d44f26d3a84cfde8' * commit '259fe7280d0b63dc7a8ff017d44f26d3a84cfde8': mxf: Extract origin information from material and source track Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8b1e920676f6eeeb01422660768f5f92b3811bc6 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'e4a462e3eafdfe336f4d079c3ba72a9cdb4748b0'
ffmpeg | branch: master | Michael Niedermayer | Tue Jul 29 00:27:45 2014 +0200| [621d4089a4cff0066d5cfc006cf20d99414ee9f9] | committer: Michael Niedermayer Merge commit 'e4a462e3eafdfe336f4d079c3ba72a9cdb4748b0' * commit 'e4a462e3eafdfe336f4d079c3ba72a9cdb4748b0': configure: Use require_pkg_config for Speex Conflicts: configure Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=621d4089a4cff0066d5cfc006cf20d99414ee9f9 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] configure: Use require_pkg_config for Speex
ffmpeg | branch: master | Luca Barbato | Thu Jul 24 23:50:38 2014 +0200| [e4a462e3eafdfe336f4d079c3ba72a9cdb4748b0] | committer: Luca Barbato configure: Use require_pkg_config for Speex Distributors and integrators nowadays have less problems by leveraging pkg-config files than having to set custom CFLAGS and LDFLAGS. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e4a462e3eafdfe336f4d079c3ba72a9cdb4748b0 --- configure |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index 3c1c520..800d6fa 100755 --- a/configure +++ b/configure @@ -4118,7 +4118,7 @@ enabled libopus && require_pkg_config opus opus_multistream.h opus_mul enabled libpulse && require_pkg_config libpulse-simple pulse/simple.h pa_simple_new enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket enabled libschroedinger && require_pkg_config schroedinger-1.0 schroedinger/schro.h schro_init -enabled libspeex && require libspeex speex/speex.h speex_decoder_init -lspeex +enabled libspeex && require_pkg_config speex speex/speex.h speex_decoder_init -lspeex enabled libtheora && require libtheora theora/theoraenc.h th_info_init -ltheoraenc -ltheoradec -logg enabled libtwolame&& require libtwolame twolame.h twolame_init -ltwolame enabled libvo_aacenc && require libvo_aacenc vo-aacenc/voAAC.h voGetAACEncAPI -lvo-aacenc ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '4f8cf0dc4ef6110174056df7edd9dc2f2a988b6d'
ffmpeg | branch: master | Michael Niedermayer | Tue Jul 29 00:34:53 2014 +0200| [a91c5ed008740fabdb910a59db9e5792b6574486] | committer: Michael Niedermayer Merge commit '4f8cf0dc4ef6110174056df7edd9dc2f2a988b6d' * commit '4f8cf0dc4ef6110174056df7edd9dc2f2a988b6d': x86: build: Restore ordering of OBJS lines Conflicts: libavcodec/x86/Makefile Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a91c5ed008740fabdb910a59db9e5792b6574486 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] x86: build: Restore ordering of OBJS lines
ffmpeg | branch: master | Diego Biurrun | Sat Jul 26 15:04:44 2014 -0700| [4f8cf0dc4ef6110174056df7edd9dc2f2a988b6d] | committer: Diego Biurrun x86: build: Restore ordering of OBJS lines > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4f8cf0dc4ef6110174056df7edd9dc2f2a988b6d --- libavcodec/x86/Makefile |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/x86/Makefile b/libavcodec/x86/Makefile index d173097..1969007 100644 --- a/libavcodec/x86/Makefile +++ b/libavcodec/x86/Makefile @@ -13,7 +13,6 @@ OBJS-$(CONFIG_H264CHROMA) += x86/h264chroma_init.o OBJS-$(CONFIG_H264DSP) += x86/h264dsp_init.o OBJS-$(CONFIG_H264PRED)+= x86/h264_intrapred_init.o OBJS-$(CONFIG_H264QPEL)+= x86/h264_qpel.o -OBJS-$(CONFIG_HEVC_DECODER)+= x86/hevcdsp_init.o OBJS-$(CONFIG_HPELDSP) += x86/hpeldsp_init.o OBJS-$(CONFIG_HUFFYUVDSP) += x86/huffyuvdsp_init.o OBJS-$(CONFIG_HUFFYUVENCDSP) += x86/huffyuvencdsp_mmx.o @@ -36,6 +35,7 @@ OBJS-$(CONFIG_APE_DECODER) += x86/apedsp_init.o OBJS-$(CONFIG_CAVS_DECODER)+= x86/cavsdsp.o OBJS-$(CONFIG_DCA_DECODER) += x86/dcadsp_init.o OBJS-$(CONFIG_DNXHD_ENCODER) += x86/dnxhdenc_init.o +OBJS-$(CONFIG_HEVC_DECODER)+= x86/hevcdsp_init.o OBJS-$(CONFIG_MLP_DECODER) += x86/mlpdsp.o OBJS-$(CONFIG_PNG_DECODER) += x86/pngdsp_init.o OBJS-$(CONFIG_PRORES_DECODER) += x86/proresdsp_init.o @@ -87,7 +87,6 @@ YASM-OBJS-$(CONFIG_H264QPEL) += x86/h264_qpel_8bit.o \ x86/h264_qpel_10bit.o \ x86/fpel.o\ x86/qpel.o -YASM-OBJS-$(CONFIG_HEVC_DECODER) += x86/hevc_deblock.o YASM-OBJS-$(CONFIG_HPELDSP)+= x86/fpel.o\ x86/hpeldsp.o YASM-OBJS-$(CONFIG_HUFFYUVDSP) += x86/huffyuvdsp.o @@ -104,6 +103,7 @@ YASM-OBJS-$(CONFIG_VP3DSP) += x86/vp3dsp.o YASM-OBJS-$(CONFIG_AAC_DECODER)+= x86/sbrdsp.o YASM-OBJS-$(CONFIG_APE_DECODER)+= x86/apedsp.o YASM-OBJS-$(CONFIG_DCA_DECODER)+= x86/dcadsp.o +YASM-OBJS-$(CONFIG_HEVC_DECODER) += x86/hevc_deblock.o YASM-OBJS-$(CONFIG_PNG_DECODER)+= x86/pngdsp.o YASM-OBJS-$(CONFIG_PRORES_DECODER) += x86/proresdsp.o YASM-OBJS-$(CONFIG_RV30_DECODER) += x86/rv34dsp.o ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '59ca29a560ba0cfe97457de8cedf77db434f0de4'
ffmpeg | branch: master | Michael Niedermayer | Tue Jul 29 00:40:00 2014 +0200| [60831f441db8f18b619613f6dd942e3091687496] | committer: Michael Niedermayer Merge commit '59ca29a560ba0cfe97457de8cedf77db434f0de4' * commit '59ca29a560ba0cfe97457de8cedf77db434f0de4': dump: Use correct printf conversion specifiers for POSIX int types Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=60831f441db8f18b619613f6dd942e3091687496 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] dump: Use correct printf conversion specifiers for POSIX int types
ffmpeg | branch: master | Diego Biurrun | Sat Jul 26 05:11:18 2014 -0700| [59ca29a560ba0cfe97457de8cedf77db434f0de4] | committer: Diego Biurrun dump: Use correct printf conversion specifiers for POSIX int types > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=59ca29a560ba0cfe97457de8cedf77db434f0de4 --- libavformat/dump.c |6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavformat/dump.c b/libavformat/dump.c index aae23af..cdf2da1 100644 --- a/libavformat/dump.c +++ b/libavformat/dump.c @@ -156,7 +156,7 @@ static void dump_paramchange(void *ctx, AVPacketSideData *sd) channels = AV_RL32(data); data += 4; size -= 4; -av_log(ctx, AV_LOG_INFO, "channel count %d, ", channels); +av_log(ctx, AV_LOG_INFO, "channel count %"PRIu32", ", channels); } if (flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT) { if (size < 8) @@ -173,7 +173,7 @@ static void dump_paramchange(void *ctx, AVPacketSideData *sd) sample_rate = AV_RL32(data); data += 4; size -= 4; -av_log(ctx, AV_LOG_INFO, "sample_rate %d, ", sample_rate); +av_log(ctx, AV_LOG_INFO, "sample_rate %"PRIu32", ", sample_rate); } if (flags & AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS) { if (size < 8) @@ -184,7 +184,7 @@ static void dump_paramchange(void *ctx, AVPacketSideData *sd) height = AV_RL32(data); data += 4; size -= 4; -av_log(ctx, AV_LOG_INFO, "width %d height %d", width, height); +av_log(ctx, AV_LOG_INFO, "width %"PRIu32" height %"PRIu32, width, height); } return; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] sanm: Use correct printf conversion specifiers for POSIX int types
ffmpeg | branch: master | Diego Biurrun | Sat Jul 26 05:12:48 2014 -0700| [019a28cd630286ecb2b06ee62025a17c821b493e] | committer: Diego Biurrun sanm: Use correct printf conversion specifiers for POSIX int types > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=019a28cd630286ecb2b06ee62025a17c821b493e --- libavcodec/sanm.c | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c index 9f2f22b..41c6551 100644 --- a/libavcodec/sanm.c +++ b/libavcodec/sanm.c @@ -1356,14 +1356,14 @@ static int decode_frame(AVCodecContext *avctx, void *data, pos = bytestream2_tell(&ctx->gb); if (bytestream2_get_bytes_left(&ctx->gb) < size) { -av_log(avctx, AV_LOG_ERROR, "Incorrect chunk size %d.\n", size); +av_log(avctx, AV_LOG_ERROR, "Incorrect chunk size %"PRIu32".\n", size); break; } switch (sig) { case MKBETAG('N', 'P', 'A', 'L'): if (size != PALETTE_SIZE * 3) { av_log(avctx, AV_LOG_ERROR, - "Incorrect palette block size %d.\n", size); + "Incorrect palette block size %"PRIu32".\n", size); return AVERROR_INVALIDDATA; } for (i = 0; i < PALETTE_SIZE; i++) @@ -1389,7 +1389,8 @@ static int decode_frame(AVCodecContext *avctx, void *data, } } else { if (size < PALETTE_DELTA * 2 + 4) { -av_log(avctx, AV_LOG_ERROR, "Incorrect palette change block size %d.\n", +av_log(avctx, AV_LOG_ERROR, + "Incorrect palette change block size %"PRIu32".\n", size); return AVERROR_INVALIDDATA; } @@ -1412,7 +1413,8 @@ static int decode_frame(AVCodecContext *avctx, void *data, break; default: bytestream2_skip(&ctx->gb, size); -av_log(avctx, AV_LOG_DEBUG, "Unknown/unsupported chunk %x.\n", sig); +av_log(avctx, AV_LOG_DEBUG, + "Unknown/unsupported chunk %"PRIx32".\n", sig); break; } ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '019a28cd630286ecb2b06ee62025a17c821b493e'
ffmpeg | branch: master | Michael Niedermayer | Tue Jul 29 01:22:05 2014 +0200| [d55d8229fb120aeed7387ca749f59c404dec6304] | committer: Michael Niedermayer Merge commit '019a28cd630286ecb2b06ee62025a17c821b493e' * commit '019a28cd630286ecb2b06ee62025a17c821b493e': sanm: Use correct printf conversion specifiers for POSIX int types Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d55d8229fb120aeed7387ca749f59c404dec6304 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '942269fd00cb48328e4cffb6e21a0b691ce9f6bc'
ffmpeg | branch: master | Michael Niedermayer | Tue Jul 29 01:32:48 2014 +0200| [983109bbd99939c0c3a35c96b1c36e823bf30f6b] | committer: Michael Niedermayer Merge commit '942269fd00cb48328e4cffb6e21a0b691ce9f6bc' * commit '942269fd00cb48328e4cffb6e21a0b691ce9f6bc': caf: Use correct printf conversion specifiers for POSIX int types Conflicts: libavformat/cafdec.c See: 1f36ebf63a8d6ffccf4bf286849d77f76aad8b8f Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=983109bbd99939c0c3a35c96b1c36e823bf30f6b --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] caf: Use correct printf conversion specifiers for POSIX int types
ffmpeg | branch: master | Diego Biurrun | Mon Jul 28 09:21:57 2014 -0700| [942269fd00cb48328e4cffb6e21a0b691ce9f6bc] | committer: Diego Biurrun caf: Use correct printf conversion specifiers for POSIX int types > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=942269fd00cb48328e4cffb6e21a0b691ce9f6bc --- libavformat/cafdec.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/cafdec.c b/libavformat/cafdec.c index 7966225..6574623 100644 --- a/libavformat/cafdec.c +++ b/libavformat/cafdec.c @@ -292,7 +292,7 @@ static int read_header(AVFormatContext *s) default: #define _(x) ((x) >= ' ' ? (x) : ' ') av_log(s, AV_LOG_WARNING, - "skipping CAF chunk: %08"PRIX32" (%"PRIu8"%"PRIu8"%"PRIu8"%"PRIu8")\n", + "skipping CAF chunk: %08"PRIX32" (%"PRIu32"%"PRIu32"%"PRIu32"%"PRIu32")\n", tag, _(tag>>24), _((tag>>16)&0xFF), _((tag>>8)&0xFF), _(tag&0xFF)); #undef _ case MKBETAG('f','r','e','e'): ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] x86/hevc_deblock: use psignw instead of pmullw where possible
ffmpeg | branch: master | James Almer | Mon Jul 28 21:11:49 2014 -0300| [4f91bb0ff0bd8732baeeba4c9f3a96780151a6da] | committer: Michael Niedermayer x86/hevc_deblock: use psignw instead of pmullw where possible It's slightly faster Signed-off-by: James Almer Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4f91bb0ff0bd8732baeeba4c9f3a96780151a6da --- libavcodec/x86/hevc_deblock.asm |8 1 file changed, 8 insertions(+) diff --git a/libavcodec/x86/hevc_deblock.asm b/libavcodec/x86/hevc_deblock.asm index ecebd36..e38181d 100644 --- a/libavcodec/x86/hevc_deblock.asm +++ b/libavcodec/x86/hevc_deblock.asm @@ -324,7 +324,11 @@ ALIGN 16 movd m4, [tcq+4]; tc1 punpcklwdm4, m4 shufps m6, m4, 0; tc0, tc1 +%if cpuflag(ssse3) +psignw m4, m6, [pw_m1]; -tc0, -tc1 +%else pmullw m4, m6, [pw_m1]; -tc0, -tc1 +%endif ;end tc calculations paddwm5, [pw_4]; +4 @@ -609,7 +613,11 @@ ALIGN 16 pminsw m12, m9; av_clip(delta0, -tc, tc) psrawm9, 1; tc -> tc / 2 +%if cpuflag(ssse3) +psignw m14, m9, [pw_m1]; -tc / 2 +%else pmullw m14, m9, [pw_m1]; -tc / 2 +%endif pavgw m15, m1, m3; (p2 + p0 + 1) >> 1 psubw m15, m2; ((p2 + p0 + 1) >> 1) - p1 ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] hevc_filter: run vertical and horizontal together
ffmpeg | branch: master | Christophe Gisquet | Sat Jul 26 21:40:53 2014 +0200| [65746bfbae3d1077656b48820f0c18c5703e34f7] | committer: Michael Niedermayer hevc_filter: run vertical and horizontal together This should help cache locality. On win64: Before: 1397x cycles, 16216 bytes After: 1369x cycles, 16040 bytes Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=65746bfbae3d1077656b48820f0c18c5703e34f7 --- libavcodec/hevc_filter.c | 90 +++--- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/libavcodec/hevc_filter.c b/libavcodec/hevc_filter.c index bf471ce..9f59170 100644 --- a/libavcodec/hevc_filter.c +++ b/libavcodec/hevc_filter.c @@ -373,8 +373,11 @@ static void deblocking_filter_CTB(HEVCContext *s, int x0, int y0) tc_offset = cur_tc_offset; beta_offset = cur_beta_offset; -// vertical filtering luma +x_end2 = x_end; +if (x_end2 != s->sps->width) +x_end2 -= 8; for (y = y0; y < y_end; y += 8) { +// vertical filtering luma for (x = x0 ? x0 : 8; x < x_end; x += 8) { const int bs0 = s->vertical_bs[(x + y * s->bs_width) >> 2]; const int bs1 = s->vertical_bs[(x + (y + 4) * s->bs_width) >> 2]; @@ -400,47 +403,12 @@ static void deblocking_filter_CTB(HEVCContext *s, int x0, int y0) beta, tc, no_p, no_q); } } -} - -// vertical filtering chroma -for (chroma = 1; chroma <= 2; chroma++) { -int h = 1 << s->sps->hshift[chroma]; -int v = 1 << s->sps->vshift[chroma]; -for (y = y0; y < y_end; y += (8 * v)) { -for (x = x0 ? x0 : 8 * h; x < x_end; x += (8 * h)) { -const int bs0 = s->vertical_bs[(x + y* s->bs_width) >> 2]; -const int bs1 = s->vertical_bs[(x + (y + (4 * v)) * s->bs_width) >> 2]; -if ((bs0 == 2) || (bs1 == 2)) { -const int qp0 = (get_qPy(s, x - 1, y) + get_qPy(s, x, y) + 1) >> 1; -const int qp1 = (get_qPy(s, x - 1, y + (4 * v)) + get_qPy(s, x, y + (4 * v)) + 1) >> 1; +if(!y) + continue; -c_tc[0] = (bs0 == 2) ? chroma_tc(s, qp0, chroma, tc_offset) : 0; -c_tc[1] = (bs1 == 2) ? chroma_tc(s, qp1, chroma, tc_offset) : 0; -src = &s->frame->data[chroma][(y >> s->sps->vshift[chroma]) * s->frame->linesize[chroma] + ((x >> s->sps->hshift[chroma]) << s->sps->pixel_shift)]; -if (pcmf) { -no_p[0] = get_pcm(s, x - 1, y); -no_p[1] = get_pcm(s, x - 1, y + (4 * v)); -no_q[0] = get_pcm(s, x, y); -no_q[1] = get_pcm(s, x, y + (4 * v)); -s->hevcdsp.hevc_v_loop_filter_chroma_c(src, - s->frame->linesize[chroma], - c_tc, no_p, no_q); -} else -s->hevcdsp.hevc_v_loop_filter_chroma(src, - s->frame->linesize[chroma], - c_tc, no_p, no_q); -} -} -} -} - -// horizontal filtering luma -x_end2 = x_end; -if (x_end != s->sps->width) -x_end -= 8; -for (y = y0 ? y0 : 8; y < y_end; y += 8) { -for (x = x0 ? x0 - 8 : 0; x < x_end; x += 8) { +// horizontal filtering luma +for (x = x0 ? x0 - 8 : 0; x < x_end2; x += 8) { const int bs0 = s->horizontal_bs[( x + y * s->bs_width) >> 2]; const int bs1 = s->horizontal_bs[((x + 4) + y * s->bs_width) >> 2]; if (bs0 || bs1) { @@ -469,15 +437,47 @@ static void deblocking_filter_CTB(HEVCContext *s, int x0, int y0) } } -// horizontal filtering chroma for (chroma = 1; chroma <= 2; chroma++) { int h = 1 << s->sps->hshift[chroma]; int v = 1 << s->sps->vshift[chroma]; -if (x_end2 != s->sps->width) - x_end = x_end2 - 8 * h; -for (y = y0 ? y0 : 8 * v; y < y_end; y += (8 * v)) { + +// vertical filtering chroma +for (y = y0; y < y_end; y += (8 * v)) { +for (x = x0 ? x0 : 8 * h; x < x_end; x += (8 * h)) { +const int bs0 = s->vertical_bs[(x + y* s->bs_width) >> 2]; +const int bs1 = s->vertical_bs[(x + (y + (4 * v)) * s->bs_width) >> 2]; + +if ((bs0 == 2) || (bs1 == 2)) { +const int qp0 = (get_qPy(s, x - 1, y) + get_qPy(s, x, y) + 1) >> 1; +const int qp1 = (get_qPy(s, x - 1, y + (4 * v)) + get_qPy(s, x, y + (4 * v)