[FFmpeg-cvslog] libavcodec/snowdec: Mark as FF_CODEC_CAP_INIT_THREADSAFE and FF_CODEC_CAP_INIT_CLEANUP
ffmpeg | branch: master | Michael Niedermayer | Sat Apr 25 04:50:47 2015 +0200| [ee8ce211ead04c8684da0c9c143814e57e9b9eda] | committer: Michael Niedermayer libavcodec/snowdec: Mark as FF_CODEC_CAP_INIT_THREADSAFE and FF_CODEC_CAP_INIT_CLEANUP Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ee8ce211ead04c8684da0c9c143814e57e9b9eda --- libavcodec/snowdec.c |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavcodec/snowdec.c b/libavcodec/snowdec.c index 81fe03c..e12cb21 100644 --- a/libavcodec/snowdec.c +++ b/libavcodec/snowdec.c @@ -401,7 +401,6 @@ static av_cold int decode_init(AVCodecContext *avctx) int ret; if ((ret = ff_snow_common_init(avctx)) < 0) { -ff_snow_common_end(avctx->priv_data); return ret; } @@ -644,4 +643,6 @@ AVCodec ff_snow_decoder = { .close = decode_end, .decode = decode_frame, .capabilities = CODEC_CAP_DR1 /*| CODEC_CAP_DRAW_HORIZ_BAND*/, +.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | + FF_CODEC_CAP_INIT_CLEANUP, }; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avformat/format: Add generic trace av_log in av_probe_input_format3()
ffmpeg | branch: master | Michael Niedermayer | Mon Apr 20 17:38:56 2015 +0200| [75a730a22b760547488e41d307b81e757b5cb590] | committer: Michael Niedermayer avformat/format: Add generic trace av_log in av_probe_input_format3() Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=75a730a22b760547488e41d307b81e757b5cb590 --- libavformat/format.c |2 ++ 1 file changed, 2 insertions(+) diff --git a/libavformat/format.c b/libavformat/format.c index fa94b7d..7df06b7 100644 --- a/libavformat/format.c +++ b/libavformat/format.c @@ -195,6 +195,8 @@ AVInputFormat *av_probe_input_format3(AVProbeData *pd, int is_opened, score = 0; if (fmt1->read_probe) { score = fmt1->read_probe(&lpd); +if (score) +av_log(NULL, AV_LOG_TRACE, "Probing %s score:%d size:%d\n", fmt1->name, score, lpd.buf_size); if (fmt1->extensions && av_match_ext(lpd.filename, fmt1->extensions)) { if (nodat == 0) score = FFMAX(score, 1); else if (nodat == 1) score = FFMAX(score, AVPROBE_SCORE_EXTENSION / 2 - 1); ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avcodec/movtextdec: Decoding of Bold-Italic_Underlined styles for 3gpp timed text subtitles
ffmpeg | branch: master | Niklesh | Sat Apr 25 03:11:26 2015 +0530| [0ec3abeb8d9bc9b5203b39b4def9eaf2e1abc780] | committer: Michael Niedermayer avcodec/movtextdec: Decoding of Bold-Italic_Underlined styles for 3gpp timed text subtitles Signed-off-by: Niklesh Previous version reviewed-by: Philip Langdale Previous version reviewed-by: Carl Eugen Hoyos Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0ec3abeb8d9bc9b5203b39b4def9eaf2e1abc780 --- libavcodec/movtextdec.c | 97 --- 1 file changed, 91 insertions(+), 6 deletions(-) diff --git a/libavcodec/movtextdec.c b/libavcodec/movtextdec.c index 1c7ffea..3059599 100644 --- a/libavcodec/movtextdec.c +++ b/libavcodec/movtextdec.c @@ -25,10 +25,30 @@ #include "libavutil/common.h" #include "libavutil/bprint.h" #include "libavutil/intreadwrite.h" +#include "libavutil/mem.h" -static int text_to_ass(AVBPrint *buf, const char *text, const char *text_end) +#define STYLE_FLAG_BOLD 1 +#define STYLE_FLAG_ITALIC 2 +#define STYLE_FLAG_UNDERLINE4 + +static int text_to_ass(AVBPrint *buf, const char *text, const char *text_end, +int **style_start, int **style_end, +int **style_flags, int style_entries) { +int i = 0; +int style_pos = 0; while (text < text_end) { +for (i = 0; i < style_entries; i++) { +if (*style_flags[i] && style_pos == *style_start[i]) { +if (*style_flags[i] & STYLE_FLAG_BOLD) +av_bprintf(buf, "{\\b1}"); +if (*style_flags[i] & STYLE_FLAG_ITALIC) +av_bprintf(buf, "{\\i1}"); +if (*style_flags[i] & STYLE_FLAG_UNDERLINE) +av_bprintf(buf, "{\\u1}"); +} +} + switch (*text) { case '\r': break; @@ -39,7 +59,19 @@ static int text_to_ass(AVBPrint *buf, const char *text, const char *text_end) av_bprint_chars(buf, *text, 1); break; } + +for (i = 0; i < style_entries; i++) { +if (*style_flags[i] && style_pos == *style_end[i]) { +if (*style_flags[i] & STYLE_FLAG_BOLD) +av_bprintf(buf, "{\\b0}"); +if (*style_flags[i] & STYLE_FLAG_ITALIC) +av_bprintf(buf, "{\\i0}"); +if (*style_flags[i] & STYLE_FLAG_UNDERLINE) +av_bprintf(buf, "{\\u0}"); +} +} text++; +style_pos++; } return 0; @@ -61,8 +93,17 @@ static int mov_text_decode_frame(AVCodecContext *avctx, AVSubtitle *sub = data; int ret, ts_start, ts_end; AVBPrint buf; -const char *ptr = avpkt->data; -const char *end; +char *ptr = avpkt->data; +char *end; +//char *ptr_temp; +int text_length, tsmb_type, style_entries, tsmb_size; +int **style_start = {0,}; +int **style_end = {0,}; +int **style_flags = {0,}; +const uint8_t *tsmb; +int index, i; +int *flag; +int *style_pos; if (!ptr || avpkt->size < 2) return AVERROR_INVALIDDATA; @@ -82,7 +123,8 @@ static int mov_text_decode_frame(AVCodecContext *avctx, * In complex cases, there are style descriptors appended to the string * so we can't just assume the packet size is the string size. */ -end = ptr + FFMIN(2 + AV_RB16(ptr), avpkt->size); +text_length = AV_RB16(ptr); +end = ptr + FFMIN(2 + text_length, avpkt->size); ptr += 2; ts_start = av_rescale_q(avpkt->pts, @@ -92,10 +134,53 @@ static int mov_text_decode_frame(AVCodecContext *avctx, avctx->time_base, (AVRational){1,100}); +tsmb_size = 0; // Note that the spec recommends lines be no longer than 2048 characters. av_bprint_init(&buf, 0, AV_BPRINT_SIZE_UNLIMITED); -text_to_ass(&buf, ptr, end); -ret = ff_ass_add_rect_bprint(sub, &buf, ts_start, ts_end-ts_start); +if (text_length + 2 != avpkt->size) { +while (text_length + 2 + tsmb_size < avpkt->size) { +tsmb = ptr + text_length + tsmb_size; +tsmb_size = AV_RB32(tsmb); +tsmb += 4; +tsmb_type = AV_RB32(tsmb); +tsmb += 4; + +if (tsmb_type == MKBETAG('s','t','y','l')) { +style_entries = AV_RB16(tsmb); +tsmb += 2; + +for(i = 0; i < style_entries; i++) { +style_pos = av_malloc(4); +*style_pos = AV_RB16(tsmb); +index = i; +av_dynarray_add(&style_start, &index, style_pos); +tsmb += 2; +style_pos = av_malloc(4); +*style_pos = AV_RB16(tsmb); +index = i; +av_dynarray_add(&style_end, &index, style_pos); +
[FFmpeg-cvslog] dss_sp: use lowercase codec name without whitespace
ffmpeg | branch: master | Andreas Cadhalpun | Wed Apr 22 14:42:08 2015 +0200| [cfdaa4de6c496b0b761c763cd18067cb1af268a7] | committer: Vittorio Giovara dss_sp: use lowercase codec name without whitespace Signed-off-by: Andreas Cadhalpun > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=cfdaa4de6c496b0b761c763cd18067cb1af268a7 --- libavcodec/dss_sp.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/dss_sp.c b/libavcodec/dss_sp.c index 6fadcc6..5862fd4 100644 --- a/libavcodec/dss_sp.c +++ b/libavcodec/dss_sp.c @@ -769,7 +769,7 @@ static int dss_sp_decode_frame(AVCodecContext *avctx, void *data, } AVCodec ff_dss_sp_decoder = { -.name = "DSS SP", +.name = "dss_sp", .long_name = NULL_IF_CONFIG_SMALL("Digital Speech Standard - Standard Play mode (DSS SP)"), .type = AVMEDIA_TYPE_AUDIO, .id = AV_CODEC_ID_DSS_SP, ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'cfdaa4de6c496b0b761c763cd18067cb1af268a7'
ffmpeg | branch: master | Michael Niedermayer | Fri Apr 24 23:22:57 2015 +0200| [cea62a90c0b76d872f5dea554a4ef8f08a1654b6] | committer: Michael Niedermayer Merge commit 'cfdaa4de6c496b0b761c763cd18067cb1af268a7' * commit 'cfdaa4de6c496b0b761c763cd18067cb1af268a7': dss_sp: use lowercase codec name without whitespace See: 35e855d5b6950887320040da723cf5d5085263a7 Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=cea62a90c0b76d872f5dea554a4ef8f08a1654b6 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avcodec/libxvid: remove now redundant init cleanup code
ffmpeg | branch: master | Michael Niedermayer | Fri Apr 24 22:50:40 2015 +0200| [c949a4500e146e2bd4b341abd3b2e943e163088a] | committer: Michael Niedermayer avcodec/libxvid: remove now redundant init cleanup code Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c949a4500e146e2bd4b341abd3b2e943e163088a --- libavcodec/libxvid.c | 37 - 1 file changed, 12 insertions(+), 25 deletions(-) diff --git a/libavcodec/libxvid.c b/libavcodec/libxvid.c index bc971c4..bd88326 100644 --- a/libavcodec/libxvid.c +++ b/libavcodec/libxvid.c @@ -481,8 +481,7 @@ static av_cold int xvid_encode_init(AVCodecContext *avctx) } else { av_log(avctx, AV_LOG_ERROR, "Too small height for threads > 1."); -ret = AVERROR(EINVAL); -goto fail; +return AVERROR(EINVAL); } } #endif @@ -503,8 +502,7 @@ static av_cold int xvid_encode_init(AVCodecContext *avctx) if (!x->twopassbuffer || !x->old_twopassbuffer) { av_log(avctx, AV_LOG_ERROR, "Xvid: Cannot allocate 2-pass log buffers\n"); -ret = AVERROR(ENOMEM); -goto fail; +return AVERROR(ENOMEM); } x->twopassbuffer[0] = x->old_twopassbuffer[0] = 0; @@ -519,16 +517,14 @@ static av_cold int xvid_encode_init(AVCodecContext *avctx) fd = av_tempfile("xvidff.", &x->twopassfile, 0, avctx); if (fd < 0) { av_log(avctx, AV_LOG_ERROR, "Xvid: Cannot write 2-pass pipe\n"); -ret = fd; -goto fail; +return fd; } x->twopassfd = fd; if (!avctx->stats_in) { av_log(avctx, AV_LOG_ERROR, "Xvid: No 2-pass information loaded for second pass\n"); -ret = AVERROR(EINVAL); -goto fail; +return AVERROR(EINVAL); } ret = write(fd, avctx->stats_in, strlen(avctx->stats_in)); @@ -539,7 +535,7 @@ static av_cold int xvid_encode_init(AVCodecContext *avctx) ret = AVERROR(EIO); } if (ret < 0) -goto fail; +return ret; rc2pass2.filename = x->twopassfile; plugins[xvid_enc_create.num_plugins].func = xvid_plugin_2pass2; @@ -627,19 +623,15 @@ static av_cold int xvid_encode_init(AVCodecContext *avctx) if (avctx->intra_matrix) { intra = avctx->intra_matrix; x->intra_matrix = av_malloc(sizeof(unsigned char) * 64); -if (!x->intra_matrix) { -ret = AVERROR(ENOMEM); -goto fail; -} +if (!x->intra_matrix) +return AVERROR(ENOMEM); } else intra = NULL; if (avctx->inter_matrix) { inter = avctx->inter_matrix; x->inter_matrix = av_malloc(sizeof(unsigned char) * 64); -if (!x->inter_matrix) { -ret = AVERROR(ENOMEM); -goto fail; -} +if (!x->inter_matrix) +return AVERROR(ENOMEM); } else inter = NULL; @@ -684,20 +676,15 @@ static av_cold int xvid_encode_init(AVCodecContext *avctx) xerr = xvid_encore(NULL, XVID_ENC_CREATE, &xvid_enc_create, NULL); if (xerr) { av_log(avctx, AV_LOG_ERROR, "Xvid: Could not create encoder reference\n"); -goto fail; +return AVERROR_EXTERNAL; } x->encoder_handle = xvid_enc_create.handle; avctx->coded_frame = av_frame_alloc(); -if (!avctx->coded_frame) { -ret = AVERROR(ENOMEM); -goto fail; -} +if (!avctx->coded_frame) +return AVERROR(ENOMEM); return 0; -fail: -xvid_encode_close(avctx); -return ret; } static int xvid_encode_frame(AVCodecContext *avctx, AVPacket *pkt, ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] libxvid: Make codec use the init-cleanup flag and mark it as init-thread-safe
ffmpeg | branch: master | Vittorio Giovara | Tue Apr 7 01:47:18 2015 +0200| [18db1286b04557aa2d2df7efbcb65ae825d5a469] | committer: Vittorio Giovara libxvid: Make codec use the init-cleanup flag and mark it as init-thread-safe This takes care of memory leaks on init error. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=18db1286b04557aa2d2df7efbcb65ae825d5a469 --- libavcodec/libxvid.c |9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libavcodec/libxvid.c b/libavcodec/libxvid.c index 6486ad1..46da773 100644 --- a/libavcodec/libxvid.c +++ b/libavcodec/libxvid.c @@ -33,6 +33,7 @@ #include "libavutil/mathematics.h" #include "avcodec.h" +#include "internal.h" #include "libxvid.h" #include "mpegvideo.h" @@ -778,8 +779,12 @@ static av_cold int xvid_encode_close(AVCodecContext *avctx) { struct xvid_context *x = avctx->priv_data; -xvid_encore(x->encoder_handle, XVID_ENC_DESTROY, NULL, NULL); +if (x->encoder_handle) { +xvid_encore(x->encoder_handle, XVID_ENC_DESTROY, NULL, NULL); +x->encoder_handle = NULL; +} +av_frame_free(&avctx->coded_frame); av_freep(&avctx->extradata); if (x->twopassbuffer) { av_free(x->twopassbuffer); @@ -824,4 +829,6 @@ AVCodec ff_libxvid_encoder = { .close = xvid_encode_close, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE }, .priv_class = &xvid_class, +.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | + FF_CODEC_CAP_INIT_CLEANUP, }; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '18db1286b04557aa2d2df7efbcb65ae825d5a469'
ffmpeg | branch: master | Michael Niedermayer | Fri Apr 24 22:48:29 2015 +0200| [437bdf482e928095c1b43681cfeb231a5d2cd5d6] | committer: Michael Niedermayer Merge commit '18db1286b04557aa2d2df7efbcb65ae825d5a469' * commit '18db1286b04557aa2d2df7efbcb65ae825d5a469': libxvid: Make codec use the init-cleanup flag and mark it as init-thread-safe Conflicts: libavcodec/libxvid.c Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=437bdf482e928095c1b43681cfeb231a5d2cd5d6 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] lclenc: Mark codec as init-thread-safe and init-cleanup
ffmpeg | branch: master | Vittorio Giovara | Tue Apr 7 01:47:18 2015 +0200| [74a1cad7e3ba79e5b1e5b2e2bcf6179520442679] | committer: Vittorio Giovara lclenc: Mark codec as init-thread-safe and init-cleanup > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=74a1cad7e3ba79e5b1e5b2e2bcf6179520442679 --- libavcodec/lclenc.c |3 +++ 1 file changed, 3 insertions(+) diff --git a/libavcodec/lclenc.c b/libavcodec/lclenc.c index acf5e73..20841bc 100644 --- a/libavcodec/lclenc.c +++ b/libavcodec/lclenc.c @@ -42,6 +42,7 @@ #include #include "avcodec.h" +#include "internal.h" #include "lcl.h" #include "libavutil/internal.h" #include "libavutil/mem.h" @@ -197,4 +198,6 @@ AVCodec ff_zlib_encoder = { .encode2= encode_frame, .close = encode_end, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_BGR24, AV_PIX_FMT_NONE }, +.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | + FF_CODEC_CAP_INIT_CLEANUP, }; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] libx264: Make codec use the init-cleanup flag and mark it as init-thread-safe
ffmpeg | branch: master | Vittorio Giovara | Tue Apr 7 01:47:18 2015 +0200| [eae7338e1592f4a398b7c3cb9d1ac854b7a44ff8] | committer: Vittorio Giovara libx264: Make codec use the init-cleanup flag and mark it as init-thread-safe This takes care of memory leaks on init error. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=eae7338e1592f4a398b7c3cb9d1ac854b7a44ff8 --- libavcodec/libx264.c |8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c index 2caef17..841b824 100644 --- a/libavcodec/libx264.c +++ b/libavcodec/libx264.c @@ -272,10 +272,12 @@ static av_cold int X264_close(AVCodecContext *avctx) X264Context *x4 = avctx->priv_data; av_freep(&avctx->extradata); -av_free(x4->sei); +av_freep(&x4->sei); -if (x4->enc) +if (x4->enc) { x264_encoder_close(x4->enc); +x4->enc = NULL; +} av_frame_free(&avctx->coded_frame); @@ -697,4 +699,6 @@ AVCodec ff_libx264_encoder = { .priv_class = &class, .defaults = x264_defaults, .init_static_data = X264_init_static, +.caps_internal= FF_CODEC_CAP_INIT_THREADSAFE | +FF_CODEC_CAP_INIT_CLEANUP, }; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '74a1cad7e3ba79e5b1e5b2e2bcf6179520442679'
ffmpeg | branch: master | Michael Niedermayer | Fri Apr 24 22:20:41 2015 +0200| [9ba1c62775ca542aa71789de686170dbac609bc8] | committer: Michael Niedermayer Merge commit '74a1cad7e3ba79e5b1e5b2e2bcf6179520442679' * commit '74a1cad7e3ba79e5b1e5b2e2bcf6179520442679': lclenc: Mark codec as init-thread-safe and init-cleanup Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9ba1c62775ca542aa71789de686170dbac609bc8 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'eae7338e1592f4a398b7c3cb9d1ac854b7a44ff8'
ffmpeg | branch: master | Michael Niedermayer | Fri Apr 24 22:21:12 2015 +0200| [c180f0f6d3981a93242c3ecabd6667434434ea03] | committer: Michael Niedermayer Merge commit 'eae7338e1592f4a398b7c3cb9d1ac854b7a44ff8' * commit 'eae7338e1592f4a398b7c3cb9d1ac854b7a44ff8': libx264: Make codec use the init-cleanup flag and mark it as init-thread-safe Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c180f0f6d3981a93242c3ecabd6667434434ea03 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] hqx: Mark codec as init-thread-safe and init-cleanup
ffmpeg | branch: master | Vittorio Giovara | Tue Apr 7 00:40:37 2015 +0200| [bb428e00ac158244d6691bf135be404e85b66a8b] | committer: Vittorio Giovara hqx: Mark codec as init-thread-safe and init-cleanup > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=bb428e00ac158244d6691bf135be404e85b66a8b --- libavcodec/hqx.c |7 +++ 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/libavcodec/hqx.c b/libavcodec/hqx.c index de460a5..11b872c 100644 --- a/libavcodec/hqx.c +++ b/libavcodec/hqx.c @@ -523,13 +523,10 @@ static av_cold int hqx_decode_close(AVCodecContext *avctx) static av_cold int hqx_decode_init(AVCodecContext *avctx) { HQXContext *ctx = avctx->priv_data; -int ret = ff_hqx_init_vlcs(ctx); -if (ret < 0) -hqx_decode_close(avctx); ff_hqxdsp_init(&ctx->hqxdsp); -return ret; +return ff_hqx_init_vlcs(ctx); } AVCodec ff_hqx_decoder = { @@ -542,4 +539,6 @@ AVCodec ff_hqx_decoder = { .decode = hqx_decode_frame, .close = hqx_decode_close, .capabilities = CODEC_CAP_DR1 | CODEC_CAP_SLICE_THREADS, +.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | + FF_CODEC_CAP_INIT_CLEANUP, }; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'bb428e00ac158244d6691bf135be404e85b66a8b'
ffmpeg | branch: master | Michael Niedermayer | Fri Apr 24 22:00:28 2015 +0200| [8d5088a168d13cfb8f21ee8de0dc8477982ea7d6] | committer: Michael Niedermayer Merge commit 'bb428e00ac158244d6691bf135be404e85b66a8b' * commit 'bb428e00ac158244d6691bf135be404e85b66a8b': hqx: Mark codec as init-thread-safe and init-cleanup Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8d5088a168d13cfb8f21ee8de0dc8477982ea7d6 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '43171886e08b6a2f20a1e2f3ecc95a7984b591cd'
ffmpeg | branch: master | Michael Niedermayer | Fri Apr 24 21:48:19 2015 +0200| [f2978aa7ed0faa768fc438b55a45c2e007124ffe] | committer: Michael Niedermayer Merge commit '43171886e08b6a2f20a1e2f3ecc95a7984b591cd' * commit '43171886e08b6a2f20a1e2f3ecc95a7984b591cd': huffyuvenc: Mark codec as init-thread-safe and init-cleanup Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f2978aa7ed0faa768fc438b55a45c2e007124ffe --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] huffyuvenc: Mark codec as init-thread-safe and init-cleanup
ffmpeg | branch: master | Vittorio Giovara | Tue Apr 7 01:47:18 2015 +0200| [43171886e08b6a2f20a1e2f3ecc95a7984b591cd] | committer: Vittorio Giovara huffyuvenc: Mark codec as init-thread-safe and init-cleanup > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=43171886e08b6a2f20a1e2f3ecc95a7984b591cd --- libavcodec/huffyuvenc.c |5 + 1 file changed, 5 insertions(+) diff --git a/libavcodec/huffyuvenc.c b/libavcodec/huffyuvenc.c index 47fe2a5..6b3ff76 100644 --- a/libavcodec/huffyuvenc.c +++ b/libavcodec/huffyuvenc.c @@ -30,6 +30,7 @@ #include "huffyuv.h" #include "huffman.h" #include "huffyuvencdsp.h" +#include "internal.h" #include "put_bits.h" static inline int sub_left_prediction(HYuvContext *s, uint8_t *dst, @@ -697,6 +698,8 @@ AVCodec ff_huffyuv_encoder = { AV_PIX_FMT_YUV422P, AV_PIX_FMT_RGB24, AV_PIX_FMT_RGB32, AV_PIX_FMT_NONE }, +.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | + FF_CODEC_CAP_INIT_CLEANUP, }; #if CONFIG_FFVHUFF_ENCODER @@ -713,5 +716,7 @@ AVCodec ff_ffvhuff_encoder = { AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_RGB24, AV_PIX_FMT_RGB32, AV_PIX_FMT_NONE }, +.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | + FF_CODEC_CAP_INIT_CLEANUP, }; #endif ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] asvenc: Mark codec as init-thread-safe and init-cleanup
ffmpeg | branch: master | Vittorio Giovara | Tue Apr 7 01:48:12 2015 +0200| [d90133b77bf69667d10e54de9aae7da223c6876a] | committer: Vittorio Giovara asvenc: Mark codec as init-thread-safe and init-cleanup > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d90133b77bf69667d10e54de9aae7da223c6876a --- libavcodec/asvenc.c |5 + 1 file changed, 5 insertions(+) diff --git a/libavcodec/asvenc.c b/libavcodec/asvenc.c index d865c2e..f8c52af 100644 --- a/libavcodec/asvenc.c +++ b/libavcodec/asvenc.c @@ -29,6 +29,7 @@ #include "asv.h" #include "avcodec.h" #include "fdctdsp.h" +#include "internal.h" #include "mathops.h" #include "mpeg12data.h" @@ -329,6 +330,8 @@ AVCodec ff_asv1_encoder = { .close = asv_encode_close, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE }, +.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | + FF_CODEC_CAP_INIT_CLEANUP, }; #endif @@ -344,5 +347,7 @@ AVCodec ff_asv2_encoder = { .close = asv_encode_close, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE }, +.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | + FF_CODEC_CAP_INIT_CLEANUP, }; #endif ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'd90133b77bf69667d10e54de9aae7da223c6876a'
ffmpeg | branch: master | Michael Niedermayer | Fri Apr 24 21:34:28 2015 +0200| [a649650a0ea0f6b735084fc0055d574af1600017] | committer: Michael Niedermayer Merge commit 'd90133b77bf69667d10e54de9aae7da223c6876a' * commit 'd90133b77bf69667d10e54de9aae7da223c6876a': asvenc: Mark codec as init-thread-safe and init-cleanup Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a649650a0ea0f6b735084fc0055d574af1600017 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] hq_hqa: Fix table data for profile 17
ffmpeg | branch: master | Vittorio Giovara | Thu Apr 23 11:29:53 2015 +0100| [a4edaeb50fc7510f28a5d79349a7926a182c9930] | committer: Vittorio Giovara hq_hqa: Fix table data for profile 17 The table had a wrong table height and was missing the first line of bytes. Signed-off-by: Vittorio Giovara > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a4edaeb50fc7510f28a5d79349a7926a182c9930 --- libavcodec/hq_hqadata.c |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavcodec/hq_hqadata.c b/libavcodec/hq_hqadata.c index 4ade753..23fefc1 100644 --- a/libavcodec/hq_hqadata.c +++ b/libavcodec/hq_hqadata.c @@ -6204,6 +6204,7 @@ static const uint8_t hq_tab_16[] = { }; static const uint8_t hq_tab_17[] = { + 0, 0, 25, 8, 34, 0, 59, 8, 68, 0, 13, 24, 22, 16, 47, 24, 56, 16, 78, 25, 10, 32, 28, 41, 44, 32, 58, 41, 78, 32, 8, 57, 31, 49, 38, 57, 61, 49, 68, 57, 1, 0, 26, 8, 35, 0, 60, 8, 69, 0, 14, 24, 23, 16, 47, 25, 57, 16, 77, 25, @@ -8357,7 +8358,7 @@ const HQProfile ff_hq_profile[NUM_HQ_PROFILES] = { { hq_tab_14, 352, 240, 8, 22, 15 }, { hq_tab_15, 352, 288, 8, 18, 22 }, { hq_tab_16, 176, 144, 8, 9, 11 }, -{ hq_tab_17, 1280, 1024, 16, 20, 128 }, +{ hq_tab_17, 1280, 1024, 16, 20, 256 }, { hq_tab_18, 1280, 960, 16, 25, 192 }, { hq_tab_19, 1024, 768, 16, 24, 128 }, { hq_tab_20, 704, 480, 8, 20, 66 }, ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'a4edaeb50fc7510f28a5d79349a7926a182c9930'
ffmpeg | branch: master | Michael Niedermayer | Fri Apr 24 21:26:54 2015 +0200| [0d3821a6df9688f06aa3c57049a73250b5b6871c] | committer: Michael Niedermayer Merge commit 'a4edaeb50fc7510f28a5d79349a7926a182c9930' * commit 'a4edaeb50fc7510f28a5d79349a7926a182c9930': hq_hqa: Fix table data for profile 17 Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0d3821a6df9688f06aa3c57049a73250b5b6871c --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] riff: Add GMP4 fourcc for mpeg4
ffmpeg | branch: master | Vittorio Giovara | Thu Apr 23 13:25:20 2015 +0100| [b17cbb0b1c4fdf8324eff24d40a02201bfaebfd3] | committer: Vittorio Giovara riff: Add GMP4 fourcc for mpeg4 > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b17cbb0b1c4fdf8324eff24d40a02201bfaebfd3 --- libavformat/riff.c |1 + 1 file changed, 1 insertion(+) diff --git a/libavformat/riff.c b/libavformat/riff.c index d947107..54c5eb2 100644 --- a/libavformat/riff.c +++ b/libavformat/riff.c @@ -109,6 +109,7 @@ const AVCodecTag ff_codec_bmp_tags[] = { { AV_CODEC_ID_MPEG4,MKTAG('Q', 'M', 'P', '4') }, /* QNAP Systems */ { AV_CODEC_ID_MPEG4,MKTAG('P', 'L', 'V', '1') }, /* Pelco DVR MPEG-4 */ { AV_CODEC_ID_MPEG4,MKTAG('G', 'L', 'V', '4') }, +{ AV_CODEC_ID_MPEG4,MKTAG('G', 'M', 'P', '4') }, /* GeoVision camera */ { AV_CODEC_ID_MSMPEG4V3,MKTAG('M', 'P', '4', '3') }, { AV_CODEC_ID_MSMPEG4V3,MKTAG('D', 'I', 'V', '3') }, { AV_CODEC_ID_MSMPEG4V3,MKTAG('M', 'P', 'G', '3') }, ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'b17cbb0b1c4fdf8324eff24d40a02201bfaebfd3'
ffmpeg | branch: master | Michael Niedermayer | Fri Apr 24 21:16:08 2015 +0200| [861dec5e90254818636a20188f2844222962bfdf] | committer: Michael Niedermayer Merge commit 'b17cbb0b1c4fdf8324eff24d40a02201bfaebfd3' * commit 'b17cbb0b1c4fdf8324eff24d40a02201bfaebfd3': riff: Add GMP4 fourcc for mpeg4 Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=861dec5e90254818636a20188f2844222962bfdf --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '3c04ec04df8cba12f3a7408709ff5c1fddfe8d82'
ffmpeg | branch: master | Michael Niedermayer | Fri Apr 24 20:56:41 2015 +0200| [9c56cf09ca6da8b89c3155dc50f75232571d0be7] | committer: Michael Niedermayer Merge commit '3c04ec04df8cba12f3a7408709ff5c1fddfe8d82' * commit '3c04ec04df8cba12f3a7408709ff5c1fddfe8d82': riff: Add GLV4 fourcc for mpeg4 Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9c56cf09ca6da8b89c3155dc50f75232571d0be7 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] riff: Add GLV4 fourcc for mpeg4
ffmpeg | branch: master | Vittorio Giovara | Tue Apr 21 13:10:00 2015 +0100| [3c04ec04df8cba12f3a7408709ff5c1fddfe8d82] | committer: Vittorio Giovara riff: Add GLV4 fourcc for mpeg4 > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3c04ec04df8cba12f3a7408709ff5c1fddfe8d82 --- libavformat/riff.c |1 + 1 file changed, 1 insertion(+) diff --git a/libavformat/riff.c b/libavformat/riff.c index 8c05e90..d947107 100644 --- a/libavformat/riff.c +++ b/libavformat/riff.c @@ -108,6 +108,7 @@ const AVCodecTag ff_codec_bmp_tags[] = { { AV_CODEC_ID_MPEG4,MKTAG('D', 'r', 'e', 'X') }, { AV_CODEC_ID_MPEG4,MKTAG('Q', 'M', 'P', '4') }, /* QNAP Systems */ { AV_CODEC_ID_MPEG4,MKTAG('P', 'L', 'V', '1') }, /* Pelco DVR MPEG-4 */ +{ AV_CODEC_ID_MPEG4,MKTAG('G', 'L', 'V', '4') }, { AV_CODEC_ID_MSMPEG4V3,MKTAG('M', 'P', '4', '3') }, { AV_CODEC_ID_MSMPEG4V3,MKTAG('D', 'I', 'V', '3') }, { AV_CODEC_ID_MSMPEG4V3,MKTAG('M', 'P', 'G', '3') }, ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '5bba3ab0cf7a0238ee1ea31ca2da08ce860fd8f9'
ffmpeg | branch: master | Michael Niedermayer | Fri Apr 24 20:49:20 2015 +0200| [036162a3787044cd82b6fa4e73eb56ddf2e57c96] | committer: Michael Niedermayer Merge commit '5bba3ab0cf7a0238ee1ea31ca2da08ce860fd8f9' * commit '5bba3ab0cf7a0238ee1ea31ca2da08ce860fd8f9': internal: Make dlog/tlog a no-op when disabled Conflicts: libavcodec/internal.h Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=036162a3787044cd82b6fa4e73eb56ddf2e57c96 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] internal: Make dlog/tlog a no-op when disabled
ffmpeg | branch: master | Vittorio Giovara | Tue Apr 21 13:24:18 2015 +0100| [5bba3ab0cf7a0238ee1ea31ca2da08ce860fd8f9] | committer: Vittorio Giovara internal: Make dlog/tlog a no-op when disabled Improves Coverity analysis, avoiding "double semicolon" CIDs. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5bba3ab0cf7a0238ee1ea31ca2da08ce860fd8f9 --- libavcodec/internal.h |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/internal.h b/libavcodec/internal.h index 6f15a78..634400f 100644 --- a/libavcodec/internal.h +++ b/libavcodec/internal.h @@ -51,13 +51,13 @@ #ifdef DEBUG # define ff_dlog(ctx, ...) av_log(ctx, AV_LOG_DEBUG, __VA_ARGS__) #else -# define ff_dlog(ctx, ...) +# define ff_dlog(ctx, ...) while(0) #endif #ifdef TRACE # define ff_tlog(ctx, ...) av_log(ctx, AV_LOG_TRACE, __VA_ARGS__) #else -# define ff_tlog(p, ...) +# define ff_tlog(ctx, ...) while(0) #endif ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] rtsp: Make sure we don' t write too many transport entries into a fixed-size array
ffmpeg | branch: master | Martin Storsjö | Fri Apr 24 12:38:09 2015 +0300| [b90adb0aba073f9c1b4abca852119947393ced4c] | committer: Martin Storsjö rtsp: Make sure we don't write too many transport entries into a fixed-size array CC: libav-sta...@libav.org Signed-off-by: Martin Storsjö > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b90adb0aba073f9c1b4abca852119947393ced4c --- libavformat/rtsp.c |2 ++ 1 file changed, 2 insertions(+) diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index 1b60b4f..cbea685 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -972,6 +972,8 @@ static void rtsp_parse_transport(RTSPMessageHeader *reply, const char *p) p++; reply->nb_transports++; +if (reply->nb_transports >= RTSP_MAX_TRANSPORTS) +break; } } ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'b90adb0aba073f9c1b4abca852119947393ced4c'
ffmpeg | branch: master | Michael Niedermayer | Fri Apr 24 20:37:47 2015 +0200| [10a28e8a08d609b9f8352c221845d15cd0021675] | committer: Michael Niedermayer Merge commit 'b90adb0aba073f9c1b4abca852119947393ced4c' * commit 'b90adb0aba073f9c1b4abca852119947393ced4c': rtsp: Make sure we don't write too many transport entries into a fixed-size array Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=10a28e8a08d609b9f8352c221845d15cd0021675 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for HEVC copy and hv mc functions
ffmpeg | branch: master | Shivraj Patil | Wed Apr 22 14:52:44 2015 +0530| [97f074f134048276db2f2c552e6e6b24fe0a6894] | committer: Michael Niedermayer avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for HEVC copy and hv mc functions Incorporated review comment. Removed "__" from volatile. Signed-off-by: Shivraj Patil Reviewed-by: Nedeljko Babic Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=97f074f134048276db2f2c552e6e6b24fe0a6894 --- libavcodec/mips/hevcdsp_init_mips.c | 19 + libavcodec/mips/hevcdsp_mips.h | 20 + libavcodec/mips/hevcdsp_msa.c | 1098 +++ libavutil/mips/generic_macros_msa.h | 133 + 4 files changed, 1270 insertions(+) diff --git a/libavcodec/mips/hevcdsp_init_mips.c b/libavcodec/mips/hevcdsp_init_mips.c index 05ed81f..4fec336 100644 --- a/libavcodec/mips/hevcdsp_init_mips.c +++ b/libavcodec/mips/hevcdsp_init_mips.c @@ -25,6 +25,16 @@ static av_cold void hevc_dsp_init_msa(HEVCDSPContext *c, const int bit_depth) { if (8 == bit_depth) { +c->put_hevc_qpel[1][0][0] = ff_hevc_put_hevc_pel_pixels4_8_msa; +c->put_hevc_qpel[2][0][0] = ff_hevc_put_hevc_pel_pixels6_8_msa; +c->put_hevc_qpel[3][0][0] = ff_hevc_put_hevc_pel_pixels8_8_msa; +c->put_hevc_qpel[4][0][0] = ff_hevc_put_hevc_pel_pixels12_8_msa; +c->put_hevc_qpel[5][0][0] = ff_hevc_put_hevc_pel_pixels16_8_msa; +c->put_hevc_qpel[6][0][0] = ff_hevc_put_hevc_pel_pixels24_8_msa; +c->put_hevc_qpel[7][0][0] = ff_hevc_put_hevc_pel_pixels32_8_msa; +c->put_hevc_qpel[8][0][0] = ff_hevc_put_hevc_pel_pixels48_8_msa; +c->put_hevc_qpel[9][0][0] = ff_hevc_put_hevc_pel_pixels64_8_msa; + c->put_hevc_qpel[1][0][1] = ff_hevc_put_hevc_qpel_h4_8_msa; c->put_hevc_qpel[3][0][1] = ff_hevc_put_hevc_qpel_h8_8_msa; c->put_hevc_qpel[4][0][1] = ff_hevc_put_hevc_qpel_h12_8_msa; @@ -42,6 +52,15 @@ static av_cold void hevc_dsp_init_msa(HEVCDSPContext *c, c->put_hevc_qpel[7][1][0] = ff_hevc_put_hevc_qpel_v32_8_msa; c->put_hevc_qpel[8][1][0] = ff_hevc_put_hevc_qpel_v48_8_msa; c->put_hevc_qpel[9][1][0] = ff_hevc_put_hevc_qpel_v64_8_msa; + +c->put_hevc_qpel[1][1][1] = ff_hevc_put_hevc_qpel_hv4_8_msa; +c->put_hevc_qpel[3][1][1] = ff_hevc_put_hevc_qpel_hv8_8_msa; +c->put_hevc_qpel[4][1][1] = ff_hevc_put_hevc_qpel_hv12_8_msa; +c->put_hevc_qpel[5][1][1] = ff_hevc_put_hevc_qpel_hv16_8_msa; +c->put_hevc_qpel[6][1][1] = ff_hevc_put_hevc_qpel_hv24_8_msa; +c->put_hevc_qpel[7][1][1] = ff_hevc_put_hevc_qpel_hv32_8_msa; +c->put_hevc_qpel[8][1][1] = ff_hevc_put_hevc_qpel_hv48_8_msa; +c->put_hevc_qpel[9][1][1] = ff_hevc_put_hevc_qpel_hv64_8_msa; } } #endif // #if HAVE_MSA diff --git a/libavcodec/mips/hevcdsp_mips.h b/libavcodec/mips/hevcdsp_mips.h index 13cdb5b..4f7f273 100644 --- a/libavcodec/mips/hevcdsp_mips.h +++ b/libavcodec/mips/hevcdsp_mips.h @@ -29,6 +29,16 @@ void ff_hevc_put_hevc_##PEL##_##DIRWIDTH##_8_msa(int16_t *dst, \ intptr_t my, \ int width) +MC(pel, pixels, 4); +MC(pel, pixels, 6); +MC(pel, pixels, 8); +MC(pel, pixels, 12); +MC(pel, pixels, 16); +MC(pel, pixels, 24); +MC(pel, pixels, 32); +MC(pel, pixels, 48); +MC(pel, pixels, 64); + MC(qpel, h, 4); MC(qpel, h, 8); MC(qpel, h, 12); @@ -46,4 +56,14 @@ MC(qpel, v, 24); MC(qpel, v, 32); MC(qpel, v, 48); MC(qpel, v, 64); + +MC(qpel, hv, 4); +MC(qpel, hv, 8); +MC(qpel, hv, 12); +MC(qpel, hv, 16); +MC(qpel, hv, 24); +MC(qpel, hv, 32); +MC(qpel, hv, 48); +MC(qpel, hv, 64); + #undef MC diff --git a/libavcodec/mips/hevcdsp_msa.c b/libavcodec/mips/hevcdsp_msa.c index 88e97d6..fcc344b 100644 --- a/libavcodec/mips/hevcdsp_msa.c +++ b/libavcodec/mips/hevcdsp_msa.c @@ -21,6 +21,18 @@ #include "libavutil/mips/generic_macros_msa.h" #include "libavcodec/mips/hevcdsp_mips.h" +#define HEVC_FILT_8TAP_DPADD_W(vec0, vec1, vec2, vec3,\ + filt0, filt1, filt2, filt3)\ +( { \ +v4i32 out;\ + \ +out = __msa_dotp_s_w((v8i16) (vec0), (v8i16) (filt0));\ +out = __msa_dpadd_s_w(out, (v8i16) (vec1), (v8i16) (filt1)); \ +out = __msa_dpadd_s_w(out, (v8i16) (vec2), (v8i16) (filt2)); \ +out = __msa_dpadd_s_w(out, (v8i16) (vec3), (v8i16) (filt3)); \ +out; \ +} ) + #define HEVC_FILT_8TAP_DPADD_H(vec0, vec1, vec2, vec3, \ filt0, filt1, filt2, filt3, \
[FFmpeg-cvslog] vp9: use aligned size to write segmentation map into cache.
ffmpeg | branch: master | Ronald S. Bultje | Wed Apr 22 20:14:19 2015 -0400| [ed45edb2f6fe0af577b6d09665763c6cb479a0a5] | committer: Michael Niedermayer vp9: use aligned size to write segmentation map into cache. The unaligned size is not handled in setctx_2d(), causing edges of images to have improper segmentation prediction, which causes visual artifacts at image edges a few frames later. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ed45edb2f6fe0af577b6d09665763c6cb479a0a5 --- libavcodec/vp9.c |6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c index 8d9ba0d..1935f94 100644 --- a/libavcodec/vp9.c +++ b/libavcodec/vp9.c @@ -1352,8 +1352,8 @@ static void decode_mode(AVCodecContext *ctx) VP9Block *b = s->b; int row = s->row, col = s->col, row7 = s->row7; enum TxfmMode max_tx = max_tx_for_bl_bp[b->bs]; -int w4 = FFMIN(s->cols - col, bwh_tab[1][b->bs][0]); -int h4 = FFMIN(s->rows - row, bwh_tab[1][b->bs][1]), y; +int bw4 = bwh_tab[1][b->bs][0], w4 = FFMIN(s->cols - col, bw4); +int bh4 = bwh_tab[1][b->bs][1], h4 = FFMIN(s->rows - row, bh4), y; int have_a = row > 0, have_l = col > s->tiling.tile_col_start; int vref, filter_id; @@ -1395,7 +1395,7 @@ static void decode_mode(AVCodecContext *ctx) if (s->segmentation.enabled && (s->segmentation.update_map || s->keyframe || s->intraonly)) { setctx_2d(&s->frames[CUR_FRAME].segmentation_map[row * 8 * s->sb_cols + col], - w4, h4, 8 * s->sb_cols, b->seg_id); + bw4, bh4, 8 * s->sb_cols, b->seg_id); } b->skip = s->segmentation.enabled && ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] vp9: remove another optimization branch in iadst16 which causes overflows.
ffmpeg | branch: master | Ronald S. Bultje | Wed Apr 22 15:48:37 2015 -0400| [3de13d5212b6a0ff146dc0b50e34ee7dbc822eef] | committer: Michael Niedermayer vp9: remove another optimization branch in iadst16 which causes overflows. See sample vp90-2-14-resize-fp-tiles-16-8.webm from the vp9 test vector set to reproduce the issue. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3de13d5212b6a0ff146dc0b50e34ee7dbc822eef --- libavcodec/x86/vp9itxfm.asm |4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavcodec/x86/vp9itxfm.asm b/libavcodec/x86/vp9itxfm.asm index a9d45a4..9cf0d78 100644 --- a/libavcodec/x86/vp9itxfm.asm +++ b/libavcodec/x86/vp9itxfm.asm @@ -1622,7 +1622,9 @@ VP9_IDCT_IDCT_16x16_ADD_XMM avx PSIGNW m3, [pw_m1] ; m3=out1[w], m7=t10[w] SUMSUB_BAw, 2, 6, 1 ; m2=out14[w], m6=t11[w] -%if cpuflag(ssse3) +; unfortunately, the code below overflows in some cases, e.g. +; http://downloads.webmproject.org/test_data/libvpx/vp90-2-14-resize-fp-tiles-16-8.webm +%if 0; cpuflag(ssse3) SUMSUB_BAw, 7, 6, 1 pmulhrswm7, [pw_11585x2]; m7=out6[w] pmulhrswm6, [pw_11585x2]; m6=out9[w] ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] vp9: add fate test for intraonly frames.
ffmpeg | branch: master | Ronald S. Bultje | Wed Apr 22 20:59:27 2015 -0400| [5d914a4a4334c21e0956a2b6a22f1a2d8f693535] | committer: Michael Niedermayer vp9: add fate test for intraonly frames. Sample available at: http://downloads.webmproject.org/test_data/libvpx/vp90-2-16-intra-only.webm > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5d914a4a4334c21e0956a2b6a22f1a2d8f693535 --- tests/fate/vpx.mak |1 + tests/ref/fate/vp9-16-intra-only | 10 ++ 2 files changed, 11 insertions(+) diff --git a/tests/fate/vpx.mak b/tests/fate/vpx.mak index 428823c..d77d5cb 100644 --- a/tests/fate/vpx.mak +++ b/tests/fate/vpx.mak @@ -104,6 +104,7 @@ $(eval $(call FATE_VP9_SUITE,09-lf_deltas,$(1),$(2))) $(eval $(call FATE_VP9_SUITE,10-show-existing-frame,$(1),$(2))) $(eval $(call FATE_VP9_SUITE,10-show-existing-frame2,$(1),$(2))) $(eval $(call FATE_VP9_SUITE,15-segkey_adpq,$(1),$(2))) +$(eval $(call FATE_VP9_SUITE,16-intra-only,$(1),$(2))) $(eval $(call FATE_VP9_SUITE,2pass-akiyo,$(1),$(2))) $(eval $(call FATE_VP9_SUITE,parallelmode-akiyo,$(1),$(2))) $(eval $(call FATE_VP9_SUITE,segmentation-aq-akiyo,$(1),$(2))) diff --git a/tests/ref/fate/vp9-16-intra-only b/tests/ref/fate/vp9-16-intra-only new file mode 100644 index 000..5bbfaea --- /dev/null +++ b/tests/ref/fate/vp9-16-intra-only @@ -0,0 +1,10 @@ +#format: frame checksums +#version: 1 +#hash: MD5 +#tb 0: 12/359 +#stream#, dts,pts, duration, size, hash +0, 0, 0,1, 152064, d57529601178948afa4818c3c8938884 +0, 1, 1,1, 152064, d47e00250c45733d64af067a417bcd06 +0, 2, 2,1, 152064, 984e41cd8350808ac6129746b2377818 +0, 4, 4,1, 152064, 76ba63001170b8992fc72be5c4ace731 +0, 5, 5,1, 152064, c4e7f96a8fd58d901b1d881926ddae09 ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] vp9: add fate test for segmentation image-edge issue.
ffmpeg | branch: master | Ronald S. Bultje | Wed Apr 22 20:18:52 2015 -0400| [0eccf7d43af7c94973d68f1df4db74b1ff829ab8] | committer: Michael Niedermayer vp9: add fate test for segmentation image-edge issue. Sample available at: http://downloads.webmproject.org/test_data/libvpx/vp90-2-15-segkey_adpq.webm > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0eccf7d43af7c94973d68f1df4db74b1ff829ab8 --- tests/fate/vpx.mak|1 + tests/ref/fate/vp9-15-segkey_adpq | 155 + 2 files changed, 156 insertions(+) diff --git a/tests/fate/vpx.mak b/tests/fate/vpx.mak index 0872c9b..428823c 100644 --- a/tests/fate/vpx.mak +++ b/tests/fate/vpx.mak @@ -103,6 +103,7 @@ $(eval $(call FATE_VP9_SUITE,06-bilinear,$(1),$(2))) $(eval $(call FATE_VP9_SUITE,09-lf_deltas,$(1),$(2))) $(eval $(call FATE_VP9_SUITE,10-show-existing-frame,$(1),$(2))) $(eval $(call FATE_VP9_SUITE,10-show-existing-frame2,$(1),$(2))) +$(eval $(call FATE_VP9_SUITE,15-segkey_adpq,$(1),$(2))) $(eval $(call FATE_VP9_SUITE,2pass-akiyo,$(1),$(2))) $(eval $(call FATE_VP9_SUITE,parallelmode-akiyo,$(1),$(2))) $(eval $(call FATE_VP9_SUITE,segmentation-aq-akiyo,$(1),$(2))) diff --git a/tests/ref/fate/vp9-15-segkey_adpq b/tests/ref/fate/vp9-15-segkey_adpq new file mode 100644 index 000..f12db8b --- /dev/null +++ b/tests/ref/fate/vp9-15-segkey_adpq @@ -0,0 +1,155 @@ +#format: frame checksums +#version: 1 +#hash: MD5 +#tb 0: 1001/3 +#stream#, dts,pts, duration, size, hash +0, 0, 0,1, 613440, d4f0e4b606ddb40b482aecb24cf3bc63 +0, 1, 1,1, 613440, 692ec092bc5928fa6430d056e883759a +0, 2, 2,1, 613440, dad790df33430899fed98886a24b37e5 +0, 3, 3,1, 613440, 7e66e793ac9462a40dd5b963fb62e667 +0, 4, 4,1, 613440, 0d795c6e20f42f09aca0ddb9dffaa6e8 +0, 5, 5,1, 613440, 0ef3739c4ab2c51f0ab8e290eadad77e +0, 6, 6,1, 613440, 04a15f765960263c1b4a5a8822e17322 +0, 7, 7,1, 613440, 116d518830c958bf46759fd79bc74198 +0, 8, 8,1, 613440, 58ea67addab05825cc2e5f2ab99fca4b +0, 9, 9,1, 613440, 590f6e5deea6dde21dc1098fa2017c2f +0, 10, 10,1, 613440, 895479957b0882ccce4159782dee8deb +0, 11, 11,1, 613440, cc8e05afdfb6f9c7042fd6f9e9d49140 +0, 12, 12,1, 613440, 3e47c556a63af90f1ca4609f97f25d2c +0, 13, 13,1, 613440, e5ca5dce8cbd39412db2fe219d6d2594 +0, 14, 14,1, 613440, c62b456e12230660d26eb7226f257d0c +0, 15, 15,1, 613440, e184c961b373de465d3242f32f7cf3ed +0, 16, 16,1, 613440, 7466b91858f740fc28965a63effe05d6 +0, 17, 17,1, 613440, c8f06a3b1e471c4e7a9efd71a30dfe3b +0, 18, 18,1, 613440, d4fb95148963b2eaff0211ddc5117c13 +0, 19, 19,1, 613440, c646526b40277289520d47ed8ca3b644 +0, 20, 20,1, 613440, e441ae686fa444e4e3584543611043ba +0, 21, 21,1, 613440, 68d707ef6909bfbc02dcbd9e392a04f6 +0, 22, 22,1, 613440, 1ff285d17a26622b61bd2651754602b1 +0, 23, 23,1, 613440, c272192987e44e54e5335e6416bd15a5 +0, 24, 24,1, 613440, 8f6f02572181eb4855dcd4c957e57d2e +0, 25, 25,1, 613440, baf03eb567fd092eeb6f08ff5e098350 +0, 26, 26,1, 613440, 479c78bd3da0892b8d4e32c99ec4739f +0, 27, 27,1, 613440, d39a52f6e30ef10462bdef1006809e88 +0, 28, 28,1, 613440, d58395369806221efe9ba88513319d8a +0, 29, 29,1, 613440, 459e77e83c510ee1d79bf069752d44e5 +0, 30, 30,1, 613440, 438027c8eacb9c795f8267a151ef5a4e +0, 31, 31,1, 613440, ea6b73fb0d4b23ebbdaeb0267135d083 +0, 32, 32,1, 613440, 48160c624d4d5050a4c8abcbe0edf4b2 +0, 33, 33,1, 613440, 6fc6d5b4751cf137fc0204c0026f2503 +0, 34, 34,1, 613440, 5ea20f6483fc5cde854313ed8288c7ca +0, 35, 35,1, 613440, dafa41fa3468f684ca5538593cd1a0de +0, 36, 36,1, 613440, b73d3336c83a27874e24b691c34c3421 +0, 37, 37,1, 613440, d0b0488a5871a49442746ac8ea1343bc +0, 38, 38,1, 613440, df6fe9cb354624b69908730f24f51b88 +0, 39, 39,1, 613440, a388b159a024ace9437976206e62473c +0, 40, 40,1, 613440, 9007423410201a70b6997477ed9040f6 +0, 41, 41,1, 613440, 7f7425cc018ad391e06b867f51d69513 +0, 42, 42,1, 613440, 2ef51a3a15c627f803ee
[FFmpeg-cvslog] vp9: fix intraonly frame decoding.
ffmpeg | branch: master | Ronald S. Bultje | Wed Apr 22 20:57:15 2015 -0400| [640d878bc161a3fb5a85d26a5cca13fc414bbe9c] | committer: Michael Niedermayer vp9: fix intraonly frame decoding. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=640d878bc161a3fb5a85d26a5cca13fc414bbe9c --- libavcodec/vp9.c |8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c index 1935f94..1310798 100644 --- a/libavcodec/vp9.c +++ b/libavcodec/vp9.c @@ -3111,8 +3111,8 @@ static void decode_sb(AVCodecContext *ctx, int row, int col, struct VP9Filter *l VP9Context *s = ctx->priv_data; int c = ((s->above_partition_ctx[col] >> (3 - bl)) & 1) | (((s->left_partition_ctx[row & 0x7] >> (3 - bl)) & 1) << 1); -const uint8_t *p = s->keyframe ? vp9_default_kf_partition_probs[bl][c] : - s->prob.p.partition[bl][c]; +const uint8_t *p = s->keyframe || s->intraonly ? vp9_default_kf_partition_probs[bl][c] : + s->prob.p.partition[bl][c]; enum BlockPartition bp; ptrdiff_t hbs = 4 >> bl; AVFrame *f = s->frames[CUR_FRAME].tf.f; @@ -3791,7 +3791,7 @@ static int vp9_decode_frame(AVCodecContext *ctx, void *frame, return res; f = s->frames[CUR_FRAME].tf.f; f->key_frame = s->keyframe; -f->pict_type = s->keyframe ? AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_P; +f->pict_type = (s->keyframe || s->intraonly) ? AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_P; ls_y = f->linesize[0]; ls_uv =f->linesize[1]; @@ -3801,7 +3801,7 @@ static int vp9_decode_frame(AVCodecContext *ctx, void *frame, ff_thread_release_buffer(ctx, &s->next_refs[i]); if (s->refreshrefmask & (1 << i)) { res = ff_thread_ref_frame(&s->next_refs[i], &s->frames[CUR_FRAME].tf); -} else { +} else if (s->refs[i].f->data[0]) { res = ff_thread_ref_frame(&s->next_refs[i], &s->refs[i]); } if (res < 0) ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] vp9: add lf_deltas fate test.
ffmpeg | branch: master | Ronald S. Bultje | Wed Apr 22 11:51:03 2015 -0400| [345e3be7baa7175ecf64513a7d8600ba3d39e9c1] | committer: Michael Niedermayer vp9: add lf_deltas fate test. Sample available at: http://downloads.webmproject.org/test_data/libvpx/vp90-2-09-lf_deltas.webm Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=345e3be7baa7175ecf64513a7d8600ba3d39e9c1 --- tests/fate/vpx.mak |1 + tests/ref/fate/vp9-09-lf_deltas | 35 +++ 2 files changed, 36 insertions(+) diff --git a/tests/fate/vpx.mak b/tests/fate/vpx.mak index d277d36..2c11b81 100644 --- a/tests/fate/vpx.mak +++ b/tests/fate/vpx.mak @@ -100,6 +100,7 @@ $(foreach W,$(VP9_SIZE_A),$(eval $(foreach H,$(VP9_SIZE_A),$(eval $(call FATE_VP $(foreach W,$(VP9_SIZE_B),$(eval $(foreach H,$(VP9_SIZE_B),$(eval $(call FATE_VP9_SUITE,03-size-$(W)x$(H),$(1),$(2)) $(eval $(call FATE_VP9_SUITE,03-deltaq,$(1),$(2))) $(eval $(call FATE_VP9_SUITE,06-bilinear,$(1),$(2))) +$(eval $(call FATE_VP9_SUITE,09-lf_deltas,$(1),$(2))) $(eval $(call FATE_VP9_SUITE,2pass-akiyo,$(1),$(2))) $(eval $(call FATE_VP9_SUITE,parallelmode-akiyo,$(1),$(2))) $(eval $(call FATE_VP9_SUITE,segmentation-aq-akiyo,$(1),$(2))) diff --git a/tests/ref/fate/vp9-09-lf_deltas b/tests/ref/fate/vp9-09-lf_deltas new file mode 100644 index 000..733a70c --- /dev/null +++ b/tests/ref/fate/vp9-09-lf_deltas @@ -0,0 +1,35 @@ +#format: frame checksums +#version: 1 +#hash: MD5 +#tb 0: 1/30 +#stream#, dts,pts, duration, size, hash +0, 0, 0,1, 126720, a83c7f4602f595fd09e97f8c8a7277ec +0, 1, 1,1, 126720, 53e1a3fd44932883a8dd112bbb0e359f +0, 2, 2,1, 126720, 4bb16d168f9f0a7702c31a68bb8ff36c +0, 3, 3,1, 126720, 1b2df157913aba96553aaf8d51491bf3 +0, 4, 4,1, 126720, 9d041532e42fca7a4062cd3e9b75413b +0, 5, 5,1, 126720, 0dbac5ca06e13714d10e99042aefe375 +0, 6, 6,1, 126720, bb83a507a65d2a640b08f42a77bb37f6 +0, 7, 7,1, 126720, 176f992d37c7daa36135cddb49398de3 +0, 8, 8,1, 126720, c41834f72b3281cf6aaa66fd7416e6c3 +0, 9, 9,1, 126720, 790d4e6b1609dec782ff978e2003d318 +0, 10, 10,1, 126720, 449622f741f7577c1d721f2e9eb25091 +0, 11, 11,1, 126720, 8ef8543f7895c87ab04491b0150628e5 +0, 12, 12,1, 126720, 88ef626aca4b2bcb8c58a69db20a7b02 +0, 13, 13,1, 126720, 4b2f7adc2e1872ecdd9ffa7d1f1df4a6 +0, 14, 14,1, 126720, 7b162660225022ef31e39c34fee3418e +0, 15, 15,1, 126720, 2b439a4b846edcc69cdf6075de5ac8fb +0, 16, 16,1, 126720, ba2eb1ba0ed9abf701a53a94c9c626fc +0, 17, 17,1, 126720, 9fbec5d5334fd5e917feee756b652d93 +0, 18, 18,1, 126720, 93b5eb99ea54abc5fa90c5674499e27e +0, 19, 19,1, 126720, 04a98408e9b0aed28932ef1dfdcfdb6c +0, 20, 20,1, 126720, 9856ba976bed30bc790a3f28e926b092 +0, 21, 21,1, 126720, 2b0f450e9724cfc57b846148ff876e51 +0, 22, 22,1, 126720, 163757f3529369b9789ea606387b831d +0, 23, 23,1, 126720, de5ed2aff936c54f3378d0dcc2575d13 +0, 24, 24,1, 126720, 1f642826b8a6fb111c7c6130481dab89 +0, 25, 25,1, 126720, b8e3a77c7d3c5c56f67aa7409fb5404c +0, 26, 26,1, 126720, eb06cb4f471e42d7fc06929a442cca8b +0, 27, 27,1, 126720, 53471649a5080b306d2c04a4f7673bdf +0, 28, 28,1, 126720, 70996be0cc5d2bd97025015dd50caa99 +0, 29, 29,1, 126720, ff3280a8562fdf6697c4a7cb9c1bf0a0 ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] vp9: add fate tests for show-existing-frame feature.
ffmpeg | branch: master | Ronald S. Bultje | Wed Apr 22 12:24:41 2015 -0400| [4b02032fb4cf2a62c022add3ee59dc782690efbf] | committer: Michael Niedermayer vp9: add fate tests for show-existing-frame feature. Samples available at: http://downloads.webmproject.org/test_data/libvpx/vp90-2-10-show-existing-frame.webm http://downloads.webmproject.org/test_data/libvpx/vp90-2-10-show-existing-frame2.webm Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4b02032fb4cf2a62c022add3ee59dc782690efbf --- tests/fate/vpx.mak |2 ++ tests/ref/fate/vp9-10-show-existing-frame | 14 ++ tests/ref/fate/vp9-10-show-existing-frame2 | 20 3 files changed, 36 insertions(+) diff --git a/tests/fate/vpx.mak b/tests/fate/vpx.mak index 2c11b81..0872c9b 100644 --- a/tests/fate/vpx.mak +++ b/tests/fate/vpx.mak @@ -101,6 +101,8 @@ $(foreach W,$(VP9_SIZE_B),$(eval $(foreach H,$(VP9_SIZE_B),$(eval $(call FATE_VP $(eval $(call FATE_VP9_SUITE,03-deltaq,$(1),$(2))) $(eval $(call FATE_VP9_SUITE,06-bilinear,$(1),$(2))) $(eval $(call FATE_VP9_SUITE,09-lf_deltas,$(1),$(2))) +$(eval $(call FATE_VP9_SUITE,10-show-existing-frame,$(1),$(2))) +$(eval $(call FATE_VP9_SUITE,10-show-existing-frame2,$(1),$(2))) $(eval $(call FATE_VP9_SUITE,2pass-akiyo,$(1),$(2))) $(eval $(call FATE_VP9_SUITE,parallelmode-akiyo,$(1),$(2))) $(eval $(call FATE_VP9_SUITE,segmentation-aq-akiyo,$(1),$(2))) diff --git a/tests/ref/fate/vp9-10-show-existing-frame b/tests/ref/fate/vp9-10-show-existing-frame new file mode 100644 index 000..266f44e --- /dev/null +++ b/tests/ref/fate/vp9-10-show-existing-frame @@ -0,0 +1,14 @@ +#format: frame checksums +#version: 1 +#hash: MD5 +#tb 0: 1/30 +#stream#, dts,pts, duration, size, hash +0, 0, 0,1, 152064, 18981342ec178e082519451062c3a67f +0, 1, 1,1, 152064, 04ab9dbeac49ec31be58f6e671698e05 +0, 6, 6,1, 152064, a41f00034923e56ba51a0b598acc2e3a +0, 7, 7,1, 152064, 63fa55ae9535ccdf06d44cce8065dda6 +0, 9, 9,1, 152064, 0e4b08e14d919edee2bbff2ecd47de57 +0, 10, 10,1, 152064, 0e4b08e14d919edee2bbff2ecd47de57 +0, 13, 13,1, 152064, 9e932915c67a789f6877e6d3f76d3649 +0, 14, 14,1, 152064, 12f2e975c217e7ffcf334524e8acec35 +0, 15, 15,1, 152064, 9e932915c67a789f6877e6d3f76d3649 diff --git a/tests/ref/fate/vp9-10-show-existing-frame2 b/tests/ref/fate/vp9-10-show-existing-frame2 new file mode 100644 index 000..cdd4369 --- /dev/null +++ b/tests/ref/fate/vp9-10-show-existing-frame2 @@ -0,0 +1,20 @@ +#format: frame checksums +#version: 1 +#hash: MD5 +#tb 0: 1/30 +#stream#, dts,pts, duration, size, hash +0, 0, 0,1, 152064, 382b12c33cd86b38758706b8ebca8a85 +0, 1, 1,1, 152064, 799544370b35c91711a5b49a28cf86a8 +0, 2, 2,1, 152064, 7218eb4b6d1c7aea4f96ee47ad675e8e +0, 3, 3,1, 152064, 627466200370e6ad60ea570d31be66e3 +0, 4, 4,1, 152064, 7dc65a2af108379f2b9265a9a1ea7cf8 +0, 5, 5,1, 152064, c979e2f084760775a567f60f79f28198 +0, 6, 6,1, 152064, fe668a6417aa0543e4ed4d1c67c5cbcb +0, 7, 7,1, 152064, bf9901e39815fa93cce0ed5b02b2ef2d +0, 8, 8,1, 152064, 627466200370e6ad60ea570d31be66e3 +0, 9, 9,1, 152064, 7dc65a2af108379f2b9265a9a1ea7cf8 +0, 10, 10,1, 152064, c979e2f084760775a567f60f79f28198 +0, 11, 11,1, 152064, fe668a6417aa0543e4ed4d1c67c5cbcb +0, 13, 13,1, 152064, 627466200370e6ad60ea570d31be66e3 +0, 14, 14,1, 152064, 7dc65a2af108379f2b9265a9a1ea7cf8 +0, 15, 15,1, 152064, c979e2f084760775a567f60f79f28198 ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avformat/mp3: large id3 tags break concatenated file detection
ffmpeg | branch: master | wm4 | Fri Apr 24 12:26:39 2015 +0200| [537ab680534e53bd298ba3f62d4aabb56afcd403] | committer: Michael Niedermayer avformat/mp3: large id3 tags break concatenated file detection If the file size is much larger than what is indicated in the XING header, the demuxer assumes it's a concatenated file, and throws away the (presumably) incorrect duration information. Unfortunately, this also triggers if the id3 tags are very large (embedded pictures and such). Then the half-baked heuristic not only breaks the duration display, but also gapless audio. Fix it by subtracting the size of the headers (the check is off by some bytes, but that doesn't matter at all). Note that there could be an arbitrary amount of tags _after_ the mp3 data, but hopefully these are not too large to trigger the heuristic in practice. Also add a warning when this happens. Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=537ab680534e53bd298ba3f62d4aabb56afcd403 --- libavformat/mp3dec.c |3 +++ 1 file changed, 3 insertions(+) diff --git a/libavformat/mp3dec.c b/libavformat/mp3dec.c index 8c17776..abd7fc0 100644 --- a/libavformat/mp3dec.c +++ b/libavformat/mp3dec.c @@ -147,6 +147,7 @@ static void mp3_parse_info_tag(AVFormatContext *s, AVStream *st, MP3DecContext *mp3 = s->priv_data; static const int64_t xing_offtbl[2][2] = {{32, 17}, {17,9}}; uint64_t fsize = avio_size(s->pb); +fsize = fsize >= avio_tell(s->pb) ? fsize - avio_tell(s->pb) : 0; /* Check for Xing / Info tag */ avio_skip(s->pb, xing_offtbl[c->lsf == 1][c->nb_channels == 1]); @@ -166,6 +167,8 @@ static void mp3_parse_info_tag(AVFormatContext *s, AVStream *st, delta = FFMAX(fsize, mp3->header_filesize) - min; if (fsize > mp3->header_filesize && delta > min >> 4) { mp3->frames = 0; +av_log(s, AV_LOG_WARNING, + "invalid concatenated file detected - using bitrate for duration\n"); } else if (delta > min >> 4) { av_log(s, AV_LOG_WARNING, "filesize and duration do not match (growing file?)\n"); ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] lavd/v4l2: print buffer flags in case of error
ffmpeg | branch: master | Giorgio Vazzana | Thu Oct 16 11:10:03 2014 +0200| [00a452a9adea0ffb47de4b0a2a6eec1db2bf842f] | committer: Michael Niedermayer lavd/v4l2: print buffer flags in case of error Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=00a452a9adea0ffb47de4b0a2a6eec1db2bf842f --- libavdevice/v4l2.c |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c index fba7764..b0fa765 100644 --- a/libavdevice/v4l2.c +++ b/libavdevice/v4l2.c @@ -528,8 +528,8 @@ static int mmap_read_frame(AVFormatContext *ctx, AVPacket *pkt) if (s->frame_size > 0 && buf.bytesused != s->frame_size) { av_log(ctx, AV_LOG_ERROR, - "The v4l2 frame is %d bytes, but %d bytes are expected\n", - buf.bytesused, s->frame_size); + "The v4l2 frame is %d bytes, but %d bytes are expected. Flags: 0x%08X\n", + buf.bytesused, s->frame_size, buf.flags); enqueue_buffer(s, &buf); return AVERROR_INVALIDDATA; } ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avutil/frame: fix everythnig/everything typo
ffmpeg | branch: master | Clément Bœsch | Fri Apr 24 10:57:03 2015 +0200| [8e985b727181786ee5536b61790c8bfbaf43c271] | committer: Clément Bœsch avutil/frame: fix everythnig/everything typo > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8e985b727181786ee5536b61790c8bfbaf43c271 --- libavutil/frame.h |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavutil/frame.h b/libavutil/frame.h index 1e6d9cd..e910b51 100644 --- a/libavutil/frame.h +++ b/libavutil/frame.h @@ -666,7 +666,7 @@ AVFrame *av_frame_clone(const AVFrame *src); void av_frame_unref(AVFrame *frame); /** - * Move everythnig contained in src to dst and reset src. + * Move everything contained in src to dst and reset src. */ void av_frame_move_ref(AVFrame *dst, AVFrame *src); ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] libvpxenc: only set noise reduction w/vp8
ffmpeg | branch: master | James Zern | Tue Apr 21 00:03:00 2015 -0700| [238ec505e263e7d0363798a05c1c28f494a6300a] | committer: James Zern libvpxenc: only set noise reduction w/vp8 this quiets a warning: Failed to set VP8E_SET_NOISE_SENSITIVITY codec control: Unspecified internal error Reviewed-by: Michael Niedermayer Signed-off-by: James Zern > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=238ec505e263e7d0363798a05c1c28f494a6300a --- libavcodec/libvpxenc.c |5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index 2104876..159fbdd 100644 --- a/libavcodec/libvpxenc.c +++ b/libavcodec/libvpxenc.c @@ -525,9 +525,10 @@ static av_cold int vpx_init(AVCodecContext *avctx, codecctl_int(avctx, VP8E_SET_ARNR_STRENGTH,ctx->arnr_strength); if (ctx->arnr_type >= 0) codecctl_int(avctx, VP8E_SET_ARNR_TYPE,ctx->arnr_type); -codecctl_int(avctx, VP8E_SET_NOISE_SENSITIVITY, avctx->noise_reduction); -if (avctx->codec_id == AV_CODEC_ID_VP8) +if (avctx->codec_id == AV_CODEC_ID_VP8) { +codecctl_int(avctx, VP8E_SET_NOISE_SENSITIVITY, avctx->noise_reduction); codecctl_int(avctx, VP8E_SET_TOKEN_PARTITIONS, av_log2(avctx->slices)); +} #if FF_API_MPV_OPT FF_DISABLE_DEPRECATION_WARNINGS if (avctx->mb_threshold) { ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] libvpxdec: cosmetics: reindent
ffmpeg | branch: master | James Zern | Wed Apr 22 14:16:39 2015 -0700| [db3f86871eb107242c381f106d083022d1adb005] | committer: James Zern libvpxdec: cosmetics: reindent Signed-off-by: James Zern > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=db3f86871eb107242c381f106d083022d1adb005 --- libavcodec/libvpxdec.c | 83 1 file changed, 42 insertions(+), 41 deletions(-) diff --git a/libavcodec/libvpxdec.c b/libavcodec/libvpxdec.c index 7faef3a..75231f8 100644 --- a/libavcodec/libvpxdec.c +++ b/libavcodec/libvpxdec.c @@ -60,55 +60,56 @@ static av_cold int vpx_init(AVCodecContext *avctx, } // returns 0 on success, AVERROR_INVALIDDATA otherwise -static int set_pix_fmt(AVCodecContext *avctx, struct vpx_image *img) { +static int set_pix_fmt(AVCodecContext *avctx, struct vpx_image *img) +{ if (avctx->codec_id == AV_CODEC_ID_VP8 && img->fmt != VPX_IMG_FMT_I420) return AVERROR_INVALIDDATA; switch (img->fmt) { -case VPX_IMG_FMT_I420: -avctx->pix_fmt = AV_PIX_FMT_YUV420P; -return 0; +case VPX_IMG_FMT_I420: +avctx->pix_fmt = AV_PIX_FMT_YUV420P; +return 0; #if CONFIG_LIBVPX_VP9_DECODER -case VPX_IMG_FMT_I422: -avctx->pix_fmt = AV_PIX_FMT_YUV422P; +case VPX_IMG_FMT_I422: +avctx->pix_fmt = AV_PIX_FMT_YUV422P; +return 0; +case VPX_IMG_FMT_I444: +avctx->pix_fmt = AV_PIX_FMT_YUV444P; +return 0; +#ifdef VPX_IMG_FMT_HIGHBITDEPTH +case VPX_IMG_FMT_I42016: +if (img->bit_depth == 10) { +avctx->pix_fmt = AV_PIX_FMT_YUV420P10LE; return 0; -case VPX_IMG_FMT_I444: -avctx->pix_fmt = AV_PIX_FMT_YUV444P; +} else if (img->bit_depth == 12) { +avctx->pix_fmt = AV_PIX_FMT_YUV420P12LE; return 0; -#ifdef VPX_IMG_FMT_HIGHBITDEPTH -case VPX_IMG_FMT_I42016: -if (img->bit_depth == 10) { -avctx->pix_fmt = AV_PIX_FMT_YUV420P10LE; -return 0; -} else if (img->bit_depth == 12) { -avctx->pix_fmt = AV_PIX_FMT_YUV420P12LE; -return 0; -} else { -return AVERROR_INVALIDDATA; -} -case VPX_IMG_FMT_I42216: -if (img->bit_depth == 10) { -avctx->pix_fmt = AV_PIX_FMT_YUV422P10LE; -return 0; -} else if (img->bit_depth == 12) { -avctx->pix_fmt = AV_PIX_FMT_YUV422P12LE; -return 0; -} else { -return AVERROR_INVALIDDATA; -} -case VPX_IMG_FMT_I44416: -if (img->bit_depth == 10) { -avctx->pix_fmt = AV_PIX_FMT_YUV444P10LE; -return 0; -} else if (img->bit_depth == 12) { -avctx->pix_fmt = AV_PIX_FMT_YUV444P12LE; -return 0; -} else { -return AVERROR_INVALIDDATA; -} +} else { +return AVERROR_INVALIDDATA; +} +case VPX_IMG_FMT_I42216: +if (img->bit_depth == 10) { +avctx->pix_fmt = AV_PIX_FMT_YUV422P10LE; +return 0; +} else if (img->bit_depth == 12) { +avctx->pix_fmt = AV_PIX_FMT_YUV422P12LE; +return 0; +} else { +return AVERROR_INVALIDDATA; +} +case VPX_IMG_FMT_I44416: +if (img->bit_depth == 10) { +avctx->pix_fmt = AV_PIX_FMT_YUV444P10LE; +return 0; +} else if (img->bit_depth == 12) { +avctx->pix_fmt = AV_PIX_FMT_YUV444P12LE; +return 0; +} else { +return AVERROR_INVALIDDATA; +} #endif #endif -default: -return AVERROR_INVALIDDATA; +default: +return AVERROR_INVALIDDATA; } } ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] libvpxenc: cosmetics: reindent
ffmpeg | branch: master | James Zern | Wed Apr 22 14:16:06 2015 -0700| [e07ef1ada3d8a0dff5f4064a234544e1b0e3cd94] | committer: James Zern libvpxenc: cosmetics: reindent Signed-off-by: James Zern > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e07ef1ada3d8a0dff5f4064a234544e1b0e3cd94 --- libavcodec/libvpxenc.c | 26 +- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index 159fbdd..c2408a5 100644 --- a/libavcodec/libvpxenc.c +++ b/libavcodec/libvpxenc.c @@ -269,7 +269,8 @@ static av_cold int vp8_free(AVCodecContext *avctx) #if CONFIG_LIBVPX_VP9_ENCODER static int set_pix_fmt(AVCodecContext *avctx, vpx_codec_caps_t codec_caps, struct vpx_codec_enc_cfg *enccfg, vpx_codec_flags_t *flags, - vpx_img_fmt_t *img_fmt) { + vpx_img_fmt_t *img_fmt) +{ #ifdef VPX_IMG_FMT_HIGHBITDEPTH enccfg->g_bit_depth = enccfg->g_input_bit_depth = 8; #endif @@ -422,12 +423,12 @@ static av_cold int vpx_init(AVCodecContext *avctx, #if CONFIG_LIBVPX_VP9_ENCODER || enccfg.rc_end_usage == VPX_Q #endif -) { + ) { if (ctx->crf < enccfg.rc_min_quantizer || ctx->crf > enccfg.rc_max_quantizer) { -av_log(avctx, AV_LOG_ERROR, - "CQ level %d must be between minimum and maximum quantizer value (%d-%d)\n", - ctx->crf, enccfg.rc_min_quantizer, enccfg.rc_max_quantizer); -return AVERROR(EINVAL); +av_log(avctx, AV_LOG_ERROR, + "CQ level %d must be between minimum and maximum quantizer value (%d-%d)\n", + ctx->crf, enccfg.rc_min_quantizer, enccfg.rc_max_quantizer); +return AVERROR(EINVAL); } } @@ -436,7 +437,7 @@ static av_cold int vpx_init(AVCodecContext *avctx, //0-100 (0 => CBR, 100 => VBR) enccfg.rc_2pass_vbr_bias_pct = round(avctx->qcompress * 100); if (avctx->bit_rate) -enccfg.rc_2pass_vbr_minsection_pct = +enccfg.rc_2pass_vbr_minsection_pct = avctx->rc_min_rate * 100LL / avctx->bit_rate; if (avctx->rc_max_rate) enccfg.rc_2pass_vbr_maxsection_pct = @@ -490,8 +491,8 @@ static av_cold int vpx_init(AVCodecContext *avctx, /* 0-3: For non-zero values the encoder increasingly optimizes for reduced complexity playback on low powered devices at the expense of encode quality. */ - if (avctx->profile != FF_PROFILE_UNKNOWN) - enccfg.g_profile = avctx->profile; +if (avctx->profile != FF_PROFILE_UNKNOWN) +enccfg.g_profile = avctx->profile; enccfg.g_error_resilient = ctx->error_resilient || ctx->flags & VP8F_ERROR_RESILIENT; @@ -611,8 +612,7 @@ static inline void cx_pktcpy(struct FrameListData *dst, if (src_alpha) { dst->buf_alpha = src_alpha->data.frame.buf; dst->sz_alpha = src_alpha->data.frame.sz; -} -else { +} else { dst->buf_alpha = NULL; dst->sz_alpha = 0; } @@ -703,8 +703,8 @@ static int queue_frames(AVCodecContext *avctx, AVPacket *pkt_out, /* consume all available output from the encoder before returning. buffers are only good through the next vpx_codec call */ while ((pkt = vpx_codec_get_cx_data(&ctx->encoder, &iter)) && -(!ctx->is_alpha || - (ctx->is_alpha && (pkt_alpha = vpx_codec_get_cx_data(&ctx->encoder_alpha, &iter_alpha) { + (!ctx->is_alpha || +(ctx->is_alpha && (pkt_alpha = vpx_codec_get_cx_data(&ctx->encoder_alpha, &iter_alpha) { switch (pkt->kind) { case VPX_CODEC_CX_FRAME_PKT: if (!size) { ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog