[FFmpeg-cvslog] FATE: Increase FUZZ value on AAC LTP encoding test
ffmpeg | branch: master | Rostislav Pehlivanov | Tue Oct 27 07:41:33 2015 +| [af71c73fb42f4467701073cddd30002730e79c92] | committer: Rostislav Pehlivanov FATE: Increase FUZZ value on AAC LTP encoding test Clang prerelease on Darwin is making the test fail. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=af71c73fb42f4467701073cddd30002730e79c92 --- tests/fate/aac.mak |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/fate/aac.mak b/tests/fate/aac.mak index 3f1efe9..43189c4 100644 --- a/tests/fate/aac.mak +++ b/tests/fate/aac.mak @@ -211,7 +211,7 @@ fate-aac-ltp-encode: REF = $(SAMPLES)/audio-reference/luckynight_2ch_44kHz_s16.w fate-aac-ltp-encode: CMP_SHIFT = -4096 fate-aac-ltp-encode: CMP_TARGET = 1535 fate-aac-ltp-encode: SIZE_TOLERANCE = 3560 -fate-aac-ltp-encode: FUZZ = 12 +fate-aac-ltp-encode: FUZZ = 17 FATE_AAC_ENCODE += fate-aac-pred-encode fate-aac-pred-encode: CMD = enc_dec_pcm adts wav s16le $(TARGET_SAMPLES)/audio-reference/luckynight_2ch_44kHz_s16.wav -strict -2 -profile:a aac_main -c:a aac -aac_is 0 -aac_pns 0 -aac_ms 0 -aac_tns 0 -b:a 128k -cutoff 22050 ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avcodec: disallow hwaccel with frame threads
ffmpeg | branch: master | Hendrik Leppkes | Fri Oct 23 13:54:25 2015 +0200| [31741aecbf9938194b25f14de434104be33f5809] | committer: Hendrik Leppkes avcodec: disallow hwaccel with frame threads HWAccels with frame threads are fundamentally flawed in avcodecs current design, and there are several known problems ranging from image corruption to driver crashes. These problems come down to two design problems in the interaction of threads and HWAccel decoding: (1) While avcodec prevents parallel decoding and as such simultaneous access to the hardware accelerator from the decoding threads, it cannot account for the user code and its access to the hardware surfaces and the hardware itself. This can result in image corruption or even driver crashes if the user code locks image surfaces while they are being used by the decoder threads as reference frames. The current HWAccel API does not offer any way to ensure exclusive access to the hardware or the surfaces if frame threading is used. (2) Initialization of the HWAccel with frame threads is non-trivial, and many decoders had and still have issues that cause excess calls to the get_format callback. This will potentially cause duplicate HWAccel initialization, which in extreme cases can even lead to driver crashes if the HWAccel is re-initialized while the user code is actively accessing the hardware surfaces associated with it, or lead to image corruption due to lost reference frames. While both of these issues are solvable, fixing (1) would at least require a huge API redesign which would move a lot of complexity into the user code. The only reason the combination of frame threads and HWAccel was considered useful is to allow a seamless fallback to multi-threaded software decoding if the HWAccel is not available, however the issues outlined above far outweigh this. The proper solution for a fallback is to re-open the AVCodecContext with threading enabled if the HWAccel failed, which is a practice commonly used by various user applications using avcodec today already. Reviewed-by: Gwenole Beauchesne Reviewed-by: wm4 Signed-off-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=31741aecbf9938194b25f14de434104be33f5809 --- libavcodec/utils.c |6 ++ 1 file changed, 6 insertions(+) diff --git a/libavcodec/utils.c b/libavcodec/utils.c index f85cbad..dfac790 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -1007,6 +1007,12 @@ static int setup_hwaccel(AVCodecContext *avctx, AVHWAccel *hwa = find_hwaccel(avctx->codec_id, fmt); int ret= 0; +if (avctx->active_thread_type & FF_THREAD_FRAME) { +av_log(avctx, AV_LOG_ERROR, + "Hardware accelerated decoding with frame threading is not supported.\n"); +return AVERROR(EINVAL); +} + if (!hwa) { av_log(avctx, AV_LOG_ERROR, "Could not find an AVHWAccel for the pixel format: %s", ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] doc/filters.texi: ebur128 grammar fix
ffmpeg | branch: master | Kyle Swanson | Mon Oct 26 17:44:33 2015 -0500| [15d8b6512552b0831656e7ed3d45d6a4093a83b8] | committer: Michael Niedermayer doc/filters.texi: ebur128 grammar fix Reviewed-by: Lou Logan Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=15d8b6512552b0831656e7ed3d45d6a4093a83b8 --- doc/filters.texi |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/filters.texi b/doc/filters.texi index 1de6a2f..2914e40 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -12958,7 +12958,7 @@ This mode requires a build with @code{libswresample}. Treat mono input files as "dual mono". If a mono file is intended for playback on a stereo system, its EBU R128 measurement will be perceptually incorrect. If set to @code{true}, this option will compensate for this effect. -Multi-channel input files are not effected by this option. +Multi-channel input files are not affected by this option. @item panlaw Set a specific pan law to be used for the measurement of dual mono files. ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] fix: assigning instead of comparing
ffmpeg | branch: master | AppChecker | Mon Oct 26 20:21:07 2015 +0300| [8199908fdf9b3797cceaea9d1e2fc09d02ef7309] | committer: Michael Niedermayer fix: assigning instead of comparing Signed-off-by: AppChecker Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8199908fdf9b3797cceaea9d1e2fc09d02ef7309 --- libavformat/webmdashenc.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/webmdashenc.c b/libavformat/webmdashenc.c index 898e464..76e7eda 100644 --- a/libavformat/webmdashenc.c +++ b/libavformat/webmdashenc.c @@ -194,7 +194,7 @@ static int write_representation(AVFormatContext *s, AVStream *stream, char *id, avio_printf(s->pb, " width=\"%d\"", stream->codec->width); if (stream->codec->codec_type == AVMEDIA_TYPE_VIDEO && output_height) avio_printf(s->pb, " height=\"%d\"", stream->codec->height); -if (stream->codec->codec_type = AVMEDIA_TYPE_AUDIO && output_sample_rate) +if (stream->codec->codec_type == AVMEDIA_TYPE_AUDIO && output_sample_rate) avio_printf(s->pb, " audioSamplingRate=\"%d\"", stream->codec->sample_rate); if (w->is_live) { // For live streams, Codec and Mime Type always go in the Representation tag. ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'dca23ffbc7568c9af5c5fbaa86e6a0761ecae50c'
ffmpeg | branch: master | Hendrik Leppkes | Tue Oct 27 12:39:56 2015 +0100| [0bcb17d44e3c667af8d85aec2af41ae6a30308d5] | committer: Hendrik Leppkes Merge commit 'dca23ffbc7568c9af5c5fbaa86e6a0761ecae50c' * commit 'dca23ffbc7568c9af5c5fbaa86e6a0761ecae50c': lavc: Deprecate AVPicture structure and related functions Deprecation flag on AVPicture struct replaced by a comment, as it causes excess deprecation warnings for every include of avcodec.h Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0bcb17d44e3c667af8d85aec2af41ae6a30308d5 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] lavc: Deprecate AVPicture structure and related functions
ffmpeg | branch: master | Vittorio Giovara | Wed Oct 14 11:33:28 2015 +0200| [dca23ffbc7568c9af5c5fbaa86e6a0761ecae50c] | committer: Vittorio Giovara lavc: Deprecate AVPicture structure and related functions This structure served as a bridge between data pointers and frames, but it suffers from several limitations: - it is not refcounted and data must be copied to every time - it cannot be expanded without ABI break due to being used on the stack - its functions are just wrappers to imgutils which add a layer of unneeded indirection, and maintenance burden - it allows hacks like embedding uncompressed data in packets - its use is often confusing to our users AVFrame provides a much better API, and, if a full blown frame is not needed, it is just as simple and more straightfoward to use data and linesize arrays directly. Signed-off-by: Vittorio Giovara > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=dca23ffbc7568c9af5c5fbaa86e6a0761ecae50c --- libavcodec/avcodec.h| 50 --- libavcodec/avpicture.c |3 ++- libavcodec/imgconvert.c |2 ++ 3 files changed, 25 insertions(+), 30 deletions(-) diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 42f90d5..0876343 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -3165,6 +3165,7 @@ typedef struct AVHWAccel { * @} */ +#if FF_API_AVPICTURE /** * @defgroup lavc_picture AVPicture * @@ -3176,6 +3177,7 @@ typedef struct AVHWAccel { * four components are given, that's all. * the last component is alpha */ +attribute_deprecated typedef struct AVPicture { uint8_t *data[AV_NUM_DATA_POINTERS]; int linesize[AV_NUM_DATA_POINTERS]; ///< number of bytes per line @@ -3184,6 +3186,7 @@ typedef struct AVPicture { /** * @} */ +#endif #define AVPALETTE_SIZE 1024 #define AVPALETTE_COUNT 256 @@ -4132,81 +4135,70 @@ int avcodec_encode_subtitle(AVCodecContext *avctx, uint8_t *buf, int buf_size, * @} */ +#if FF_API_AVPICTURE /** * @addtogroup lavc_picture * @{ */ /** - * Allocate memory for a picture. Call avpicture_free() to free it. - * - * @see avpicture_fill() - * - * @param picture the picture to be filled in - * @param pix_fmt the format of the picture - * @param width the width of the picture - * @param height the height of the picture - * @return zero if successful, a negative value if not + * @deprecated unused */ +attribute_deprecated int avpicture_alloc(AVPicture *picture, enum AVPixelFormat pix_fmt, int width, int height); /** - * Free a picture previously allocated by avpicture_alloc(). - * The data buffer used by the AVPicture is freed, but the AVPicture structure - * itself is not. - * - * @param picture the AVPicture to be freed + * @deprecated unused */ +attribute_deprecated void avpicture_free(AVPicture *picture); /** - * Fill in the AVPicture fields, always assume a linesize alignment of 1. - * - * @see av_image_fill_arrays(). + * @deprecated use av_image_fill_arrays() instead. */ +attribute_deprecated int avpicture_fill(AVPicture *picture, uint8_t *ptr, enum AVPixelFormat pix_fmt, int width, int height); /** - * Copy pixel data from an AVPicture into a buffer, always assume a - * linesize alignment of 1. - * - * @see av_image_copy_to_buffer(). + * @deprecated use av_image_copy_to_buffer() instead. */ +attribute_deprecated int avpicture_layout(const AVPicture* src, enum AVPixelFormat pix_fmt, int width, int height, unsigned char *dest, int dest_size); /** - * Calculate the size in bytes that a picture of the given width and height - * would occupy if stored in the given picture format. - * Always assume a linesize alignment of 1. - * - * @see av_image_get_buffer_size(). + * @deprecated use av_image_get_buffer_size() instead. */ +attribute_deprecated int avpicture_get_size(enum AVPixelFormat pix_fmt, int width, int height); /** - * Copy image src to dst. Wraps av_picture_data_copy() above. + * @deprecated av_image_copy() instead. */ +attribute_deprecated void av_picture_copy(AVPicture *dst, const AVPicture *src, enum AVPixelFormat pix_fmt, int width, int height); /** - * Crop image top and left side. + * @deprecated unused */ +attribute_deprecated int av_picture_crop(AVPicture *dst, const AVPicture *src, enum AVPixelFormat pix_fmt, int top_band, int left_band); /** - * Pad image. + * @deprecated unused */ +attribute_deprecated int av_picture_pad(AVPicture *dst, const AVPicture *src, int height, int width, enum AVPixelFormat pix_fmt, int padtop, int padbottom, int padleft, int padright, int *color); /** * @} */ +#endif /** * @defgroup lavc_misc Utility functions diff --git a/libavcodec/avpicture.c b/libavcodec/avpicture.c index 6bde0f8..eaa5c26 100644 --- a/libavcodec/avpicture.c +++ b/libavcodec/avpicture.c @@ -31,6 +31,7 @@ #include
[FFmpeg-cvslog] movenc: Honor flush requests with delay_moov, when some tracks lack samples
ffmpeg | branch: master | Martin Storsjö | Tue Oct 20 22:30:03 2015 +0300| [5ea5a24eb70646a9061b85af407fcbb5dd4f89fd] | committer: Martin Storsjö movenc: Honor flush requests with delay_moov, when some tracks lack samples This also makes sure that a fragmented file without the empty_moov flag (i.e. with a non-empty initial moov fragment) actually gets written, if some of the tracks turn out to not have any samples. Signed-off-by: Martin Storsjö > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5ea5a24eb70646a9061b85af407fcbb5dd4f89fd --- libavformat/movenc.c | 16 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index ee2f089..572e781 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -3167,7 +3167,7 @@ static int mov_flush_fragment_interleaving(AVFormatContext *s, MOVTrack *track) return 0; } -static int mov_flush_fragment(AVFormatContext *s) +static int mov_flush_fragment(AVFormatContext *s, int force) { MOVMuxContext *mov = s->priv_data; int i, first_track = -1; @@ -3214,7 +3214,7 @@ static int mov_flush_fragment(AVFormatContext *s) if (!mov->tracks[i].entry) break; /* Don't write the initial moov unless all tracks have data */ -if (i < mov->nb_streams) +if (i < mov->nb_streams && !force) return 0; if ((ret = ffio_open_null_buf(&moov_buf)) < 0) @@ -3343,17 +3343,17 @@ static int mov_flush_fragment(AVFormatContext *s) return 0; } -static int mov_auto_flush_fragment(AVFormatContext *s) +static int mov_auto_flush_fragment(AVFormatContext *s, int force) { MOVMuxContext *mov = s->priv_data; int had_moov = mov->moov_written; -int ret = mov_flush_fragment(s); +int ret = mov_flush_fragment(s, force); if (ret < 0) return ret; // If using delay_moov, the first flush only wrote the moov, // not the actual moof+mdat pair, thus flush once again. if (!had_moov && mov->flags & FF_MOV_FLAG_DELAY_MOOV) -ret = mov_flush_fragment(s); +ret = mov_flush_fragment(s, force); return ret; } @@ -3568,7 +3568,7 @@ err: static int mov_write_packet(AVFormatContext *s, AVPacket *pkt) { if (!pkt) { -mov_flush_fragment(s); +mov_flush_fragment(s, 1); return 1; } else { MOVMuxContext *mov = s->priv_data; @@ -3604,7 +3604,7 @@ static int mov_write_packet(AVFormatContext *s, AVPacket *pkt) // for the other ones that are flushed at the same time. trk->track_duration = pkt->dts - trk->start_dts; trk->end_pts = pkt->pts; -mov_auto_flush_fragment(s); +mov_auto_flush_fragment(s, 0); } } @@ -4243,7 +4243,7 @@ static int mov_write_trailer(AVFormatContext *s) mov_write_moov_tag(pb, mov, s); } } else { -mov_auto_flush_fragment(s); +mov_auto_flush_fragment(s, 1); for (i = 0; i < mov->nb_streams; i++) mov->tracks[i].data_offset = 0; if (mov->flags & FF_MOV_FLAG_GLOBAL_SIDX) { ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] rtsp: Allow $ as interleaved packet indicator before a complete response header
ffmpeg | branch: master | Martin Storsjö | Wed Oct 21 11:56:36 2015 +0300| [e02dcdf6bb6835ef4b49986b85a67efcb3495a7f] | committer: Martin Storsjö rtsp: Allow $ as interleaved packet indicator before a complete response header Some RTSP servers ("HiIpcam/V100R003 VodServer/1.0.0") respond to our keepalive GET_PARAMETER request by a truncated RTSP header (lacking the final empty line to indicate a complete response header). Prior to 764ec70149, this worked just fine since we reacted to the $ as interleaved packet indicator anywhere. Since $ is a valid character within the response header lines, 764ec70149 changed it to be ignored there. But to keep compatibility with such broken servers, we need to at least allow reacting to it at the start of lines. Signed-off-by: Martin Storsjö > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e02dcdf6bb6835ef4b49986b85a67efcb3495a7f --- libavformat/rtsp.c |4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index d2c99ea..f62e370 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -1128,7 +1128,6 @@ int ff_rtsp_read_reply(AVFormatContext *s, RTSPMessageHeader *reply, unsigned char ch; const char *p; int ret, content_length, line_count = 0, request = 0; -int first_line = 1; unsigned char *content = NULL; start: @@ -1148,7 +1147,7 @@ start: return AVERROR_EOF; if (ch == '\n') break; -if (ch == '$' && first_line && q == buf) { +if (ch == '$' && q == buf) { if (return_on_interleaved_data) { return 1; } else @@ -1159,7 +1158,6 @@ start: } } *q = '\0'; -first_line = 0; av_log(s, AV_LOG_TRACE, "line='%s'\n", buf); ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '1ec72c6c68dbc78bf4ebb6f06c13316dc488bdfa'
ffmpeg | branch: master | Hendrik Leppkes | Tue Oct 27 12:48:27 2015 +0100| [e7a57d4873e1123b9a42c4f8d7aefb4b1e8f1b61] | committer: Hendrik Leppkes Merge commit '1ec72c6c68dbc78bf4ebb6f06c13316dc488bdfa' * commit '1ec72c6c68dbc78bf4ebb6f06c13316dc488bdfa': libx264: Make sure the extradata are padded Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e7a57d4873e1123b9a42c4f8d7aefb4b1e8f1b61 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'e02dcdf6bb6835ef4b49986b85a67efcb3495a7f'
ffmpeg | branch: master | Hendrik Leppkes | Tue Oct 27 12:41:37 2015 +0100| [12e95d156ae95e7db7f5a524112569b29cbdf0be] | committer: Hendrik Leppkes Merge commit 'e02dcdf6bb6835ef4b49986b85a67efcb3495a7f' * commit 'e02dcdf6bb6835ef4b49986b85a67efcb3495a7f': rtsp: Allow $ as interleaved packet indicator before a complete response header Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=12e95d156ae95e7db7f5a524112569b29cbdf0be --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '5ea5a24eb70646a9061b85af407fcbb5dd4f89fd'
ffmpeg | branch: master | Hendrik Leppkes | Tue Oct 27 12:46:21 2015 +0100| [368e5216464fd894ded93e8a3fc12066c1a9c061] | committer: Hendrik Leppkes Merge commit '5ea5a24eb70646a9061b85af407fcbb5dd4f89fd' * commit '5ea5a24eb70646a9061b85af407fcbb5dd4f89fd': movenc: Honor flush requests with delay_moov, when some tracks lack samples Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=368e5216464fd894ded93e8a3fc12066c1a9c061 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] libx264: Make sure the extradata are padded
ffmpeg | branch: master | Luca Barbato | Tue Oct 20 21:12:30 2015 +0200| [1ec72c6c68dbc78bf4ebb6f06c13316dc488bdfa] | committer: Luca Barbato libx264: Make sure the extradata are padded > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1ec72c6c68dbc78bf4ebb6f06c13316dc488bdfa --- libavcodec/libx264.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c index b9ec150..bcbdf84 100644 --- a/libavcodec/libx264.c +++ b/libavcodec/libx264.c @@ -589,7 +589,7 @@ FF_ENABLE_DEPRECATION_WARNINGS int nnal, s, i; s = x264_encoder_headers(x4->enc, &nal, &nnal); -avctx->extradata = p = av_malloc(s); +avctx->extradata = p = av_mallocz(s + AV_INPUT_BUFFER_PADDING_SIZE); if (!p) return AVERROR(ENOMEM); ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] img2enc: Make sure the images are atomically written
ffmpeg | branch: master | Luca Barbato | Tue Oct 20 19:49:13 2015 +0200| [22f4d9c303ede1a240538fd105c97047db40dc86] | committer: Luca Barbato img2enc: Make sure the images are atomically written Users that want to generate a live-preview and serve it would otherwise get partial images. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=22f4d9c303ede1a240538fd105c97047db40dc86 --- libavformat/img2enc.c |7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libavformat/img2enc.c b/libavformat/img2enc.c index eeb19c0..d5b6646 100644 --- a/libavformat/img2enc.c +++ b/libavformat/img2enc.c @@ -33,6 +33,7 @@ typedef struct VideoMuxData { int img_number; int is_pipe; char path[1024]; +char tmp[1024]; int update; } VideoMuxData; @@ -41,6 +42,7 @@ static int write_header(AVFormatContext *s) VideoMuxData *img = s->priv_data; av_strlcpy(img->path, s->filename, sizeof(img->path)); +snprintf(img->tmp, sizeof(img->tmp), "%s.tmp", s->filename); /* find format */ if (s->oformat->flags & AVFMT_NOFILE) @@ -70,9 +72,9 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt) return AVERROR(EIO); } for (i = 0; i < 3; i++) { -if (avio_open2(&pb[i], filename, AVIO_FLAG_WRITE, +if (avio_open2(&pb[i], img->tmp, AVIO_FLAG_WRITE, &s->interrupt_callback, NULL) < 0) { -av_log(s, AV_LOG_ERROR, "Could not open file : %s\n", filename); +av_log(s, AV_LOG_ERROR, "Could not open file : %s\n", img->tmp); return AVERROR(EIO); } @@ -121,6 +123,7 @@ error: avio_flush(pb[0]); if (!img->is_pipe) { avio_close(pb[0]); +ff_rename(img->tmp, filename); } img->img_number++; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '22f4d9c303ede1a240538fd105c97047db40dc86'
ffmpeg | branch: master | Hendrik Leppkes | Tue Oct 27 12:50:56 2015 +0100| [7daac50067cbc3b6a4d677ac3f3574258659c2f6] | committer: Hendrik Leppkes Merge commit '22f4d9c303ede1a240538fd105c97047db40dc86' * commit '22f4d9c303ede1a240538fd105c97047db40dc86': img2enc: Make sure the images are atomically written Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7daac50067cbc3b6a4d677ac3f3574258659c2f6 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] mpjpeg: Cope with multipart lacking the initial CRLF
ffmpeg | branch: master | Luca Barbato | Thu Oct 22 05:07:05 2015 +0200| [18f9308e6a96bbeb034ee5213a6d41e0b6c2ae74] | committer: Luca Barbato mpjpeg: Cope with multipart lacking the initial CRLF Some server in the wild do not put the boundary at a newline as rfc1347 7.2.1 states. Cope with that by reading a line and if it is not empty reading a second one. Reported-By: bitingsock > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=18f9308e6a96bbeb034ee5213a6d41e0b6c2ae74 --- libavformat/mpjpegdec.c | 13 ++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/libavformat/mpjpegdec.c b/libavformat/mpjpegdec.c index fda4c38..2888fb5 100644 --- a/libavformat/mpjpegdec.c +++ b/libavformat/mpjpegdec.c @@ -153,10 +153,20 @@ static int parse_multipart_header(AVFormatContext *s) int found_content_type = 0; int ret, size = -1; +// get the CRLF as empty string ret = get_line(s->pb, line, sizeof(line)); if (ret < 0) return ret; +/* some implementation do not provide the required + * initial CRLF (see rfc1341 7.2.1) + */ +if (!line[0]) { +ret = get_line(s->pb, line, sizeof(line)); +if (ret < 0) +return ret; +} + if (strncmp(line, "--", 2)) return AVERROR_INVALIDDATA; @@ -208,9 +218,6 @@ static int mpjpeg_read_packet(AVFormatContext *s, AVPacket *pkt) if (ret < 0) return ret; -// trailing empty line -avio_skip(s->pb, 2); - return 0; } ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '18f9308e6a96bbeb034ee5213a6d41e0b6c2ae74'
ffmpeg | branch: master | Hendrik Leppkes | Tue Oct 27 12:55:51 2015 +0100| [b95b8e5a2269f8fe6c137a5994b7d273545993d9] | committer: Hendrik Leppkes Merge commit '18f9308e6a96bbeb034ee5213a6d41e0b6c2ae74' * commit '18f9308e6a96bbeb034ee5213a6d41e0b6c2ae74': mpjpeg: Cope with multipart lacking the initial CRLF Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b95b8e5a2269f8fe6c137a5994b7d273545993d9 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] rtsp: Allow $ as interleaved packet indicator before a complete response header
ffmpeg | branch: release/2.8 | Martin Storsjö | Wed Oct 21 11:56:36 2015 +0300| [3f3e12c768124762afa52c9de51c1a9c2fd98720] | committer: Carl Eugen Hoyos rtsp: Allow $ as interleaved packet indicator before a complete response header Some RTSP servers ("HiIpcam/V100R003 VodServer/1.0.0") respond to our keepalive GET_PARAMETER request by a truncated RTSP header (lacking the final empty line to indicate a complete response header). Prior to 764ec70149, this worked just fine since we reacted to the $ as interleaved packet indicator anywhere. Since $ is a valid character within the response header lines, 764ec70149 changed it to be ignored there. But to keep compatibility with such broken servers, we need to at least allow reacting to it at the start of lines. Fixes ticket #4952. Signed-off-by: Martin Storsjö (cherry picked from commit e02dcdf6bb6835ef4b49986b85a67efcb3495a7f) > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3f3e12c768124762afa52c9de51c1a9c2fd98720 --- libavformat/rtsp.c |4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index 9aa66d2..3522783 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -1136,7 +1136,6 @@ int ff_rtsp_read_reply(AVFormatContext *s, RTSPMessageHeader *reply, unsigned char ch; const char *p; int ret, content_length, line_count = 0, request = 0; -int first_line = 1; unsigned char *content = NULL; start: @@ -1156,7 +1155,7 @@ start: return AVERROR_EOF; if (ch == '\n') break; -if (ch == '$' && first_line && q == buf) { +if (ch == '$' && q == buf) { if (return_on_interleaved_data) { return 1; } else @@ -1167,7 +1166,6 @@ start: } } *q = '\0'; -first_line = 0; av_log(s, AV_LOG_TRACE, "line='%s'\n", buf); ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avformat/aiff: add ADP4 DVI ADPCM support
ffmpeg | branch: master | Paul B Mahol | Tue Oct 27 13:24:15 2015 +0100| [a66243a2014c4ce689b5514f82effeecf6fc20eb] | committer: Paul B Mahol avformat/aiff: add ADP4 DVI ADPCM support Signed-off-by: Paul B Mahol > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a66243a2014c4ce689b5514f82effeecf6fc20eb --- libavformat/aiff.h|1 + libavformat/aiffdec.c |1 + 2 files changed, 2 insertions(+) diff --git a/libavformat/aiff.h b/libavformat/aiff.h index 392f326..2a87d6e 100644 --- a/libavformat/aiff.h +++ b/libavformat/aiff.h @@ -53,6 +53,7 @@ static const AVCodecTag ff_codec_aiff_tags[] = { { AV_CODEC_ID_QDM2, MKTAG('Q','D','M','2') }, { AV_CODEC_ID_QCELP,MKTAG('Q','c','l','p') }, { AV_CODEC_ID_SDX2_DPCM,MKTAG('S','D','X','2') }, +{ AV_CODEC_ID_ADPCM_IMA_WS, MKTAG('A','D','P','4') }, { AV_CODEC_ID_NONE, 0 }, }; diff --git a/libavformat/aiffdec.c b/libavformat/aiffdec.c index 17c0011..34b266d 100644 --- a/libavformat/aiffdec.c +++ b/libavformat/aiffdec.c @@ -157,6 +157,7 @@ static int get_aiff_header(AVFormatContext *s, int size, break; case AV_CODEC_ID_ADPCM_G726LE: codec->bits_per_coded_sample = 5; +case AV_CODEC_ID_ADPCM_IMA_WS: case AV_CODEC_ID_ADPCM_G722: case AV_CODEC_ID_MACE6: case AV_CODEC_ID_SDX2_DPCM: ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] kvazaar: Add libkvazaar HEVC encoder
ffmpeg | branch: master | Arttu Ylä-Outinen | Tue Aug 25 11:33:19 2015 +0300| [233d2fa0443197df12b4f7823d591dad964149b3] | committer: Luca Barbato kvazaar: Add libkvazaar HEVC encoder Signed-off-by: Arttu Ylä-Outinen Signed-off-by: Luca Barbato > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=233d2fa0443197df12b4f7823d591dad964149b3 --- Changelog |1 + configure |4 + doc/encoders.texi | 21 doc/general.texi| 10 +- libavcodec/Makefile |1 + libavcodec/allcodecs.c |1 + libavcodec/libkvazaar.c | 300 +++ libavcodec/version.h|2 +- 8 files changed, 338 insertions(+), 2 deletions(-) diff --git a/Changelog b/Changelog index 4e3b38c..5627826 100644 --- a/Changelog +++ b/Changelog @@ -45,6 +45,7 @@ version : - DXV decoding - Screenpresso SPV1 decoding - zero-copy Intel QSV transcoding in avconv +- libkvazaar HEVC encoder version 11: diff --git a/configure b/configure index 40bf725..f2f852e 100755 --- a/configure +++ b/configure @@ -191,6 +191,7 @@ External library support: --enable-libfreetype enable libfreetype [no] --enable-libgsm enable GSM de/encoding via libgsm [no] --enable-libilbc enable iLBC de/encoding via libilbc [no] + --enable-libkvazaar enable HEVC encoding via libkvazaar [no] --enable-libmfx enable HW acceleration through libmfx --enable-libmp3lame enable MP3 encoding via libmp3lame [no] --enable-libopencore-amrnb enable AMR-NB de/encoding via libopencore-amrnb [no] @@ -1186,6 +1187,7 @@ EXTERNAL_LIBRARY_LIST=" libfreetype libgsm libilbc +libkvazaar libmfx libmp3lame libopencore_amrnb @@ -2133,6 +2135,7 @@ libgsm_ms_decoder_deps="libgsm" libgsm_ms_encoder_deps="libgsm" libilbc_decoder_deps="libilbc" libilbc_encoder_deps="libilbc" +libkvazaar_encoder_deps="libkvazaar" libmp3lame_encoder_deps="libmp3lame" libmp3lame_encoder_select="audio_frame_queue" libopencore_amrnb_decoder_deps="libopencore_amrnb" @@ -4420,6 +4423,7 @@ enabled libgsm&& { for gsm_hdr in "gsm.h" "gsm/gsm.h"; do check_lib "${gsm_hdr}" gsm_create -lgsm && break; done || die "ERROR: libgsm not found"; } enabled libilbc && require libilbc ilbc.h WebRtcIlbcfix_InitDecode -lilbc +enabled libkvazaar&& require_pkg_config "kvazaar >= 0.7.1" kvazaar.h kvz_api_get enabled libmfx&& require_pkg_config libmfx "mfx/mfxvideo.h" MFXInit enabled libmp3lame&& require "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame enabled libopencore_amrnb && require libopencore_amrnb opencore-amrnb/interf_dec.h Decoder_Interface_init -lopencore-amrnb diff --git a/doc/encoders.texi b/doc/encoders.texi index 779a469..3b6f7df 100644 --- a/doc/encoders.texi +++ b/doc/encoders.texi @@ -813,4 +813,25 @@ Setting a higher @option{bits_per_mb} limit will improve the speed. For the fastest encoding speed set the @option{qscale} parameter (4 is the recommended value) and do not set a size constraint. +@section libkvazaar + +Kvazaar H.265/HEVC encoder. + +Requires the presence of the libkvazaar headers and library during +configuration. You need to explicitly configure the build with +@option{--enable-libkvazaar}. + +@subsection Options + +@table @option + +@item b +Set target video bitrate in bit/s and enable rate control. + +@item kvazaar-params +Set kvazaar parameters as a list of @var{name}=@var{value} pairs separated +by commas (,). See kvazaar documentation for a list of options. + +@end table + @c man end VIDEO ENCODERS diff --git a/doc/general.texi b/doc/general.texi index 6e43269..bddc075 100644 --- a/doc/general.texi +++ b/doc/general.texi @@ -131,6 +131,14 @@ x265 is under the GNU Public License Version 2 or later details), you must upgrade Libav's license to GPL in order to use it. @end float +@section kvazaar + +Libav can make use of the kvazaar library for HEVC encoding. + +Go to @url{https://github.com/ultravideo/kvazaar} and follow the +instructions for installing the library. Then pass +@code{--enable-libkvazaar} to configure to enable it. + @section libilbc iLBC is a narrowband speech codec that has been made freely available @@ -630,7 +638,7 @@ following image formats are supported: @item H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 @tab E @tab X @tab encoding supported through external library libx264 and OpenH264 @item HEVC @tab X @tab X -@tab encoding supported through the external library libx265 +@tab encoding supported through external library libx265 and libkvazaar @item HNM version 4 @tab @tab X @item HuffYUV@tab X @tab X @item HuffYUV FFmpeg variant @tab X @tab X diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 3e57a0d..7542c07 100644 --- a/libavcodec/Makef
[FFmpeg-cvslog] Merge commit '233d2fa0443197df12b4f7823d591dad964149b3'
ffmpeg | branch: master | Hendrik Leppkes | Tue Oct 27 13:47:32 2015 +0100| [8dde5dc05ae2fc4d4a5adc0a718631673b2af0f7] | committer: Hendrik Leppkes Merge commit '233d2fa0443197df12b4f7823d591dad964149b3' * commit '233d2fa0443197df12b4f7823d591dad964149b3': kvazaar: Add libkvazaar HEVC encoder Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8dde5dc05ae2fc4d4a5adc0a718631673b2af0f7 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] mpegvideo_enc: Factor new_picture unref out
ffmpeg | branch: master | Michael Niedermayer | Fri Oct 23 15:23:41 2015 +0200| [f0a88d4d2a74534460f4a8b79c448bd5890dbd41] | committer: Vittorio Giovara mpegvideo_enc: Factor new_picture unref out Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f0a88d4d2a74534460f4a8b79c448bd5890dbd41 --- libavcodec/mpegvideo_enc.c |5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index e5ff3ed..226a24f 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -1382,12 +1382,13 @@ static int select_input_picture(MpegEncContext *s) } } no_output_pic: +ff_mpeg_unref_picture(s->avctx, &s->new_picture); + if (s->reordered_input_picture[0]) { s->reordered_input_picture[0]->reference = s->reordered_input_picture[0]->f->pict_type != AV_PICTURE_TYPE_B ? 3 : 0; -ff_mpeg_unref_picture(s->avctx, &s->new_picture); if ((ret = ff_mpeg_ref_picture(s->avctx, &s->new_picture, s->reordered_input_picture[0]))) return ret; @@ -1428,8 +1429,6 @@ no_output_pic: return ret; s->picture_number = s->new_picture.f->display_picture_number; -} else { -ff_mpeg_unref_picture(s->avctx, &s->new_picture); } return 0; } ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] mpegvideo_enc: Merge ifs with identical conditions
ffmpeg | branch: master | Michael Niedermayer | Fri Oct 23 15:23:42 2015 +0200| [2776b2546fd313808997b3d07ba9cce94551] | committer: Vittorio Giovara mpegvideo_enc: Merge ifs with identical conditions Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2776b2546fd313808997b3d07ba9cce94551 --- libavcodec/mpegvideo_enc.c |2 -- 1 file changed, 2 deletions(-) diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index 226a24f..9dd30e6 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -997,9 +997,7 @@ static int load_input_picture(MpegEncContext *s, const AVFrame *pic_arg) pts = display_picture_number; } } -} -if (pic_arg) { if (!pic_arg->buf[0] || pic_arg->linesize[0] != s->linesize || pic_arg->linesize[1] != s->uvlinesize || ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '27eeee76b2546fd313808997b3d07ba9cce94551'
ffmpeg | branch: master | Hendrik Leppkes | Tue Oct 27 14:01:18 2015 +0100| [a4b5ada36bec6250fd6255b5285a10ca19dafbec] | committer: Hendrik Leppkes Merge commit '2776b2546fd313808997b3d07ba9cce94551' * commit '2776b2546fd313808997b3d07ba9cce94551': mpegvideo_enc: Merge ifs with identical conditions Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a4b5ada36bec6250fd6255b5285a10ca19dafbec --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] innoHeim/Rsupport Screen Capture Codec decoder
ffmpeg | branch: master | Vittorio Giovara | Mon Oct 19 14:23:43 2015 +0200| [533a6198505edd1379e1cd722852350ae4a85acc] | committer: Vittorio Giovara innoHeim/Rsupport Screen Capture Codec decoder Signed-off-by: Vittorio Giovara > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=533a6198505edd1379e1cd722852350ae4a85acc --- Changelog |1 + configure |1 + libavcodec/Makefile |1 + libavcodec/allcodecs.c |1 + libavcodec/avcodec.h|1 + libavcodec/codec_desc.c |7 ++ libavcodec/rscc.c | 284 +++ libavcodec/version.h|2 +- libavformat/riff.c |2 + tests/fate/screen.mak |3 + tests/ref/fate/rscc |6 + 11 files changed, 308 insertions(+), 1 deletion(-) diff --git a/Changelog b/Changelog index 5627826..62f24ed 100644 --- a/Changelog +++ b/Changelog @@ -46,6 +46,7 @@ version : - Screenpresso SPV1 decoding - zero-copy Intel QSV transcoding in avconv - libkvazaar HEVC encoder +- innoHeim/Rsupport Screen Capture Codec decoder version 11: diff --git a/configure b/configure index f2f852e..8d44768 100755 --- a/configure +++ b/configure @@ -1989,6 +1989,7 @@ qcelp_decoder_select="lsp" qdm2_decoder_select="mdct rdft mpegaudiodsp" ra_144_encoder_select="audio_frame_queue lpc" ralf_decoder_select="golomb" +rscc_decoder_deps="zlib" rv10_decoder_select="error_resilience h263_decoder h263dsp mpeg_er" rv10_encoder_select="h263_encoder" rv20_decoder_select="error_resilience h263_decoder h263dsp mpeg_er" diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 7542c07..9dc8009 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -378,6 +378,7 @@ OBJS-$(CONFIG_ROQ_ENCODER) += roqvideoenc.o roqvideo.o elbg.o OBJS-$(CONFIG_ROQ_DPCM_DECODER)+= dpcm.o OBJS-$(CONFIG_ROQ_DPCM_ENCODER)+= roqaudioenc.o OBJS-$(CONFIG_RPZA_DECODER)+= rpza.o +OBJS-$(CONFIG_RSCC_DECODER)+= rscc.o OBJS-$(CONFIG_RV10_DECODER)+= rv10.o OBJS-$(CONFIG_RV10_ENCODER)+= rv10enc.o OBJS-$(CONFIG_RV20_DECODER)+= rv10.o diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c index c0fca74..731b757 100644 --- a/libavcodec/allcodecs.c +++ b/libavcodec/allcodecs.c @@ -243,6 +243,7 @@ void avcodec_register_all(void) REGISTER_DECODER(RL2, rl2); REGISTER_ENCDEC (ROQ, roq); REGISTER_DECODER(RPZA, rpza); +REGISTER_DECODER(RSCC, rscc); REGISTER_ENCDEC (RV10, rv10); REGISTER_ENCDEC (RV20, rv20); REGISTER_DECODER(RV30, rv30); diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 0876343..cf8cc5a 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -300,6 +300,7 @@ enum AVCodecID { AV_CODEC_ID_DDS, AV_CODEC_ID_DXV, AV_CODEC_ID_SCREENPRESSO, +AV_CODEC_ID_RSCC, /* various PCM "codecs" */ AV_CODEC_ID_FIRST_AUDIO = 0x1, ///< A dummy id pointing at the start of audio codecs diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c index 91c77c8..0d3dac2 100644 --- a/libavcodec/codec_desc.c +++ b/libavcodec/codec_desc.c @@ -1176,6 +1176,13 @@ static const AVCodecDescriptor codec_descriptors[] = { .long_name = NULL_IF_CONFIG_SMALL("AVFrame to AVPacket passthrough"), .props = AV_CODEC_PROP_LOSSLESS, }, +{ +.id= AV_CODEC_ID_RSCC, +.type = AVMEDIA_TYPE_VIDEO, +.name = "rscc", +.long_name = NULL_IF_CONFIG_SMALL("innoHeim/Rsupport Screen Capture Codec"), +.props = AV_CODEC_PROP_LOSSLESS, +}, /* image codecs */ { diff --git a/libavcodec/rscc.c b/libavcodec/rscc.c new file mode 100644 index 000..c54482f --- /dev/null +++ b/libavcodec/rscc.c @@ -0,0 +1,284 @@ +/* + * innoHeim/Rsupport Screen Capture Codec + * Copyright (C) 2015 Vittorio Giovara + * + * This file is part of Libav. + * + * Libav 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. + * + * Libav 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 Libav; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * innoHeim/Rsupport Screen Capture Codec decoder + * + * Fourcc: ISCC, RSCC + * + * Lossless codec, data stored in tiles, with optional deflate compression. + * + * Header contains the number
[FFmpeg-cvslog] Merge commit '533a6198505edd1379e1cd722852350ae4a85acc'
ffmpeg | branch: master | Hendrik Leppkes | Tue Oct 27 13:58:44 2015 +0100| [8b3228a329bb38671aee9c4434f2989d149732fe] | committer: Hendrik Leppkes Merge commit '533a6198505edd1379e1cd722852350ae4a85acc' * commit '533a6198505edd1379e1cd722852350ae4a85acc': innoHeim/Rsupport Screen Capture Codec decoder Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8b3228a329bb38671aee9c4434f2989d149732fe --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'f0a88d4d2a74534460f4a8b79c448bd5890dbd41'
ffmpeg | branch: master | Hendrik Leppkes | Tue Oct 27 14:01:03 2015 +0100| [1174eb2f1015ee56ede35f63ad488dd89e3e77d3] | committer: Hendrik Leppkes Merge commit 'f0a88d4d2a74534460f4a8b79c448bd5890dbd41' * commit 'f0a88d4d2a74534460f4a8b79c448bd5890dbd41': mpegvideo_enc: Factor new_picture unref out Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1174eb2f1015ee56ede35f63ad488dd89e3e77d3 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] mpegvideo_enc: Fix encoding videos with less frames than the delay of the encoder
ffmpeg | branch: master | Alexis Ballier | Fri Oct 23 15:23:43 2015 +0200| [447b5b278c689b21bbb7b5747c8773145cbd9448] | committer: Vittorio Giovara mpegvideo_enc: Fix encoding videos with less frames than the delay of the encoder When the encoder is fed with less frames than its delay, the picture list looks like { NULL, NULL, ..., frame, frame, frame }. When flushing the encoder (input frame == NULL), we need to ensure the picture list is shifted enough so that we do not return an empty packet, which would mean the encoder has finished, while it has not encoded any frame. Signed-off-by: Vittorio Giovara > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=447b5b278c689b21bbb7b5747c8773145cbd9448 --- libavcodec/mpegvideo_enc.c | 20 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index 9dd30e6..44c9395 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -962,8 +962,9 @@ static int load_input_picture(MpegEncContext *s, const AVFrame *pic_arg) Picture *pic = NULL; int64_t pts; int i, display_picture_number = 0, ret; -const int encoding_delay = s->max_b_frames ? s->max_b_frames : - (s->low_delay ? 0 : 1); +int encoding_delay = s->max_b_frames ? s->max_b_frames + : (s->low_delay ? 0 : 1); +int flush_offset = 1; int direct = 1; if (pic_arg) { @@ -1075,11 +1076,22 @@ static int load_input_picture(MpegEncContext *s, const AVFrame *pic_arg) pic->f->display_picture_number = display_picture_number; pic->f->pts = pts; // we set this here to avoid modifiying pic_arg +} else { +/* Flushing: When we have not received enough input frames, + * ensure s->input_picture[0] contains the first picture */ +for (flush_offset = 0; flush_offset < encoding_delay + 1; flush_offset++) +if (s->input_picture[flush_offset]) +break; + +if (flush_offset <= 1) +flush_offset = 1; +else +encoding_delay = encoding_delay - flush_offset + 1; } /* shift buffer entries */ -for (i = 1; i < MAX_PICTURE_COUNT /*s->encoding_delay + 1*/; i++) -s->input_picture[i - 1] = s->input_picture[i]; +for (i = flush_offset; i < MAX_PICTURE_COUNT /*s->encoding_delay + 1*/; i++) +s->input_picture[i - flush_offset] = s->input_picture[i]; s->input_picture[encoding_delay] = (Picture*) pic; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '447b5b278c689b21bbb7b5747c8773145cbd9448'
ffmpeg | branch: master | Hendrik Leppkes | Tue Oct 27 14:04:47 2015 +0100| [0a830b95d597633905074744fc8391229ac03bec] | committer: Hendrik Leppkes Merge commit '447b5b278c689b21bbb7b5747c8773145cbd9448' * commit '447b5b278c689b21bbb7b5747c8773145cbd9448': mpegvideo_enc: Fix encoding videos with less frames than the delay of the encoder Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0a830b95d597633905074744fc8391229ac03bec --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '3c5cf2a31b4b29a8e4282cbe6a3f0617c14698b8'
ffmpeg | branch: master | Hendrik Leppkes | Tue Oct 27 14:05:41 2015 +0100| [564eabeebb1e4239d0ff19a5a93ff9757ebbec70] | committer: Hendrik Leppkes Merge commit '3c5cf2a31b4b29a8e4282cbe6a3f0617c14698b8' * commit '3c5cf2a31b4b29a8e4282cbe6a3f0617c14698b8': screenpresso: Drop parameter change check Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=564eabeebb1e4239d0ff19a5a93ff9757ebbec70 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] screenpresso: Drop parameter change check
ffmpeg | branch: master | Vittorio Giovara | Mon Oct 19 14:34:09 2015 +0200| [3c5cf2a31b4b29a8e4282cbe6a3f0617c14698b8] | committer: Vittorio Giovara screenpresso: Drop parameter change check Size can never change, allowing us to use ff_reget_buffer, and to simplify the code a little. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3c5cf2a31b4b29a8e4282cbe6a3f0617c14698b8 --- libavcodec/screenpresso.c | 29 - 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/libavcodec/screenpresso.c b/libavcodec/screenpresso.c index d25d0eb..6c434de 100644 --- a/libavcodec/screenpresso.c +++ b/libavcodec/screenpresso.c @@ -80,6 +80,12 @@ static av_cold int screenpresso_init(AVCodecContext *avctx) avctx->pix_fmt = AV_PIX_FMT_BGR24; +/* Allocate maximum size possible, a full frame */ +ctx->inflated_size = avctx->width * avctx->height * 3; +ctx->inflated_buf = av_malloc(ctx->inflated_size); +if (!ctx->inflated_buf) +return AVERROR(ENOMEM); + return 0; } @@ -100,6 +106,7 @@ static int screenpresso_decode_frame(AVCodecContext *avctx, void *data, { ScreenpressoContext *ctx = avctx->priv_data; AVFrame *frame = data; +uLongf length = ctx->inflated_size; int keyframe; int ret; @@ -117,30 +124,18 @@ static int screenpresso_decode_frame(AVCodecContext *avctx, void *data, } keyframe = (avpkt->data[0] == 0x73); -/* Resize deflate buffer and frame on resolution change */ -if (ctx->inflated_size != avctx->width * avctx->height * 3) { -av_frame_unref(ctx->current); -ret = ff_get_buffer(avctx, ctx->current, AV_GET_BUFFER_FLAG_REF); -if (ret < 0) -return ret; - -/* If malloc fails, reset len to avoid preserving an invalid value */ -ctx->inflated_size = avctx->width * avctx->height * 3; -ret = av_reallocp(&ctx->inflated_buf, ctx->inflated_size); -if (ret < 0) { -ctx->inflated_size = 0; -return ret; -} -} - /* Inflate the frame after the 2 byte header */ -ret = uncompress(ctx->inflated_buf, &ctx->inflated_size, +ret = uncompress(ctx->inflated_buf, &length, avpkt->data + 2, avpkt->size - 2); if (ret) { av_log(avctx, AV_LOG_ERROR, "Deflate error %d.\n", ret); return AVERROR_UNKNOWN; } +ret = ff_reget_buffer(avctx, ctx->current); +if (ret < 0) +return ret; + /* When a keyframe is found, copy it (flipped) */ if (keyframe) av_image_copy_plane(ctx->current->data[0] + ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'fe66671bd5f446f8d0a9c70968ba8fe891efe028'
ffmpeg | branch: master | Hendrik Leppkes | Tue Oct 27 14:06:30 2015 +0100| [fe41f28c3a430722dd95ef8e73bed8c7f070f51d] | committer: Hendrik Leppkes Merge commit 'fe66671bd5f446f8d0a9c70968ba8fe891efe028' * commit 'fe66671bd5f446f8d0a9c70968ba8fe891efe028': cmdutils: Check for and report the correct codec capability Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fe41f28c3a430722dd95ef8e73bed8c7f070f51d --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] hap: Set avctx.bits_per_coded_sample
ffmpeg | branch: master | Tom Butterworth | Fri Oct 23 14:40:16 2015 +0200| [9f5d6f460ceeda8b4ac29b3249a49e275b64c706] | committer: Vittorio Giovara hap: Set avctx.bits_per_coded_sample Fixes an issue where alpha is ignored in some players. Signed-off-by: Vittorio Giovara > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9f5d6f460ceeda8b4ac29b3249a49e275b64c706 --- libavcodec/hapenc.c |3 +++ 1 file changed, 3 insertions(+) diff --git a/libavcodec/hapenc.c b/libavcodec/hapenc.c index 4a31447..9ebad4a 100644 --- a/libavcodec/hapenc.c +++ b/libavcodec/hapenc.c @@ -242,16 +242,19 @@ static av_cold int hap_init(AVCodecContext *avctx) case HAP_FMT_RGBDXT1: ratio = 8; avctx->codec_tag = MKTAG('H', 'a', 'p', '1'); +avctx->bits_per_coded_sample = 24; ctx->tex_fun = ctx->dxtc.dxt1_block; break; case HAP_FMT_RGBADXT5: ratio = 4; avctx->codec_tag = MKTAG('H', 'a', 'p', '5'); +avctx->bits_per_coded_sample = 32; ctx->tex_fun = ctx->dxtc.dxt5_block; break; case HAP_FMT_YCOCGDXT5: ratio = 4; avctx->codec_tag = MKTAG('H', 'a', 'p', 'Y'); +avctx->bits_per_coded_sample = 24; ctx->tex_fun = ctx->dxtc.dxt5ys_block; break; default: ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] cmdutils: Check for and report the correct codec capability
ffmpeg | branch: master | Vittorio Giovara | Mon Oct 19 13:57:22 2015 +0200| [fe66671bd5f446f8d0a9c70968ba8fe891efe028] | committer: Vittorio Giovara cmdutils: Check for and report the correct codec capability > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fe66671bd5f446f8d0a9c70968ba8fe891efe028 --- cmdutils.c |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmdutils.c b/cmdutils.c index 5cb22f6..e4bd74f 100644 --- a/cmdutils.c +++ b/cmdutils.c @@ -995,8 +995,8 @@ static void print_codec(const AVCodec *c) if (c->capabilities & AV_CODEC_CAP_CHANNEL_CONF) printf("chconf "); if (c->capabilities & AV_CODEC_CAP_PARAM_CHANGE) -printf("small "); -if (c->capabilities & AV_CODEC_CAP_PARAM_CHANGE) +printf("paramchange "); +if (c->capabilities & AV_CODEC_CAP_VARIABLE_FRAME_SIZE) printf("variable "); if (c->capabilities & (AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_SLICE_THREADS | ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] roqvideodec: use av_frame_copy
ffmpeg | branch: master | Hendrik Leppkes | Fri Oct 23 15:24:11 2015 +0200| [9cbae3a7d57bd2b862c37fd8123bd1fba680e801] | committer: Vittorio Giovara roqvideodec: use av_frame_copy CC: libav-sta...@libav.org Signed-off-by: Vittorio Giovara > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9cbae3a7d57bd2b862c37fd8123bd1fba680e801 --- libavcodec/roqvideodec.c | 11 ++- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/libavcodec/roqvideodec.c b/libavcodec/roqvideodec.c index acdae75..f7b32f5 100644 --- a/libavcodec/roqvideodec.c +++ b/libavcodec/roqvideodec.c @@ -192,7 +192,7 @@ static int roq_decode_frame(AVCodecContext *avctx, const uint8_t *buf = avpkt->data; int buf_size = avpkt->size; RoqContext *s = avctx->priv_data; -int copy= !s->current_frame->data[0]; +int copy = !s->current_frame->data[0] && s->last_frame->data[0]; int ret; if ((ret = ff_reget_buffer(avctx, s->current_frame)) < 0) { @@ -200,10 +200,11 @@ static int roq_decode_frame(AVCodecContext *avctx, return ret; } -if(copy) -av_image_copy(s->current_frame->data, s->current_frame->linesize, - s->last_frame->data, s->last_frame->linesize, - avctx->pix_fmt, avctx->width, avctx->height); +if (copy) { +ret = av_frame_copy(s->current_frame, s->last_frame); +if (ret < 0) +return ret; +} bytestream2_init(&s->gb, buf, buf_size); roqvideo_decode_frame(s); ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '9cbae3a7d57bd2b862c37fd8123bd1fba680e801'
ffmpeg | branch: master | Hendrik Leppkes | Tue Oct 27 14:07:36 2015 +0100| [5fe1578571367314f8f67cdbc33cfd4d129c3bf7] | committer: Hendrik Leppkes Merge commit '9cbae3a7d57bd2b862c37fd8123bd1fba680e801' * commit '9cbae3a7d57bd2b862c37fd8123bd1fba680e801': roqvideodec: use av_frame_copy Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5fe1578571367314f8f67cdbc33cfd4d129c3bf7 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '9f5d6f460ceeda8b4ac29b3249a49e275b64c706'
ffmpeg | branch: master | Hendrik Leppkes | Tue Oct 27 14:06:45 2015 +0100| [af7c7037150d572fa791b7465cda68d2ed720e02] | committer: Hendrik Leppkes Merge commit '9f5d6f460ceeda8b4ac29b3249a49e275b64c706' * commit '9f5d6f460ceeda8b4ac29b3249a49e275b64c706': hap: Set avctx.bits_per_coded_sample Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=af7c7037150d572fa791b7465cda68d2ed720e02 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avprobe: Unref the packet once it is used
ffmpeg | branch: master | Luca Barbato | Fri Oct 23 11:11:29 2015 +0200| [f0ca6ffa0ae5d5564516ee7a18aa1e234751444a] | committer: Luca Barbato avprobe: Unref the packet once it is used Make sure it does not leak packets. CC: libav-sta...@libav.org > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f0ca6ffa0ae5d5564516ee7a18aa1e234751444a --- avprobe.c |4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/avprobe.c b/avprobe.c index a83fa68..2ab8ce0 100644 --- a/avprobe.c +++ b/avprobe.c @@ -589,8 +589,10 @@ static void show_packets(AVFormatContext *fmt_ctx) av_init_packet(&pkt); probe_array_header("packets", 0); -while (!av_read_frame(fmt_ctx, &pkt)) +while (!av_read_frame(fmt_ctx, &pkt)) { show_packet(fmt_ctx, &pkt); +av_packet_unref(&pkt); +} probe_array_footer("packets", 0); } ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'f0ca6ffa0ae5d5564516ee7a18aa1e234751444a'
ffmpeg | branch: master | Hendrik Leppkes | Tue Oct 27 14:10:04 2015 +0100| [fe3c22e0c00b5129853f4c02d6fbee2c0984] | committer: Hendrik Leppkes Merge commit 'f0ca6ffa0ae5d5564516ee7a18aa1e234751444a' * commit 'f0ca6ffa0ae5d5564516ee7a18aa1e234751444a': avprobe: Unref the packet once it is used Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fe3c22e0c00b5129853f4c02d6fbee2c0984 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avformat: Always return ref-counted AVPacket
ffmpeg | branch: master | Luca Barbato | Fri Oct 23 11:11:30 2015 +0200| [a5d42043093a39636a1f4021a37dd9c612479f6f] | committer: Luca Barbato avformat: Always return ref-counted AVPacket And drop the av_dup_packet from the input_thread. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a5d42043093a39636a1f4021a37dd9c612479f6f --- avconv.c|1 - avplay.c|4 libavformat/utils.c |8 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/avconv.c b/avconv.c index c52f292..f6bcb02 100644 --- a/avconv.c +++ b/avconv.c @@ -2130,7 +2130,6 @@ static void *input_thread(void *arg) while (!av_fifo_space(f->fifo)) pthread_cond_wait(&f->fifo_cond, &f->fifo_lock); -av_dup_packet(&pkt); av_fifo_generic_write(f->fifo, &pkt, sizeof(pkt), NULL); pthread_mutex_unlock(&f->fifo_lock); diff --git a/avplay.c b/avplay.c index dd2073c..55e018a 100644 --- a/avplay.c +++ b/avplay.c @@ -320,10 +320,6 @@ static int packet_queue_put(PacketQueue *q, AVPacket *pkt) { AVPacketList *pkt1; -/* duplicate the packet */ -if (pkt != &flush_pkt && av_dup_packet(pkt) < 0) -return -1; - pkt1 = av_malloc(sizeof(AVPacketList)); if (!pkt1) return -1; diff --git a/libavformat/utils.c b/libavformat/utils.c index f8926bd..fd96b9d 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -413,6 +413,14 @@ int ff_read_packet(AVFormatContext *s, AVPacket *pkt) continue; } +if (!pkt->buf) { +AVPacket tmp = { 0 }; +ret = av_packet_ref(&tmp, pkt); +if (ret < 0) +return ret; +*pkt = tmp; +} + if ((s->flags & AVFMT_FLAG_DISCARD_CORRUPT) && (pkt->flags & AV_PKT_FLAG_CORRUPT)) { av_log(s, AV_LOG_WARNING, ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'a5d42043093a39636a1f4021a37dd9c612479f6f'
ffmpeg | branch: master | Hendrik Leppkes | Tue Oct 27 14:12:27 2015 +0100| [856b19d5935b544e96156f8e75e23b28c0a9f318] | committer: Hendrik Leppkes Merge commit 'a5d42043093a39636a1f4021a37dd9c612479f6f' * commit 'a5d42043093a39636a1f4021a37dd9c612479f6f': avformat: Always return ref-counted AVPacket Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=856b19d5935b544e96156f8e75e23b28c0a9f318 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avpacket: Replace av_free_packet with av_packet_unref
ffmpeg | branch: master | Luca Barbato | Fri Oct 23 11:11:31 2015 +0200| [ce70f28a1732c74a9cd7fec2d56178750bd6e457] | committer: Luca Barbato avpacket: Replace av_free_packet with av_packet_unref `av_packet_unref` matches the AVFrame ref-counted API and can be used as a drop in replacement. Deprecate `av_free_packet`. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ce70f28a1732c74a9cd7fec2d56178750bd6e457 --- avconv.c| 10 +- avplay.c| 14 +++--- doc/APIchanges |4 doc/examples/avcodec.c |6 +++--- doc/examples/transcode_aac.c| 10 +- libavcodec/avcodec.h| 33 +++-- libavcodec/avpacket.c |6 +- libavcodec/jpeglsenc.c |2 +- libavcodec/libxvid.c|2 +- libavcodec/mpegvideo_enc.c |2 +- libavcodec/utils.c |8 libavcodec/version.h|5 - libavdevice/alsa_dec.c |4 ++-- libavdevice/jack.c |2 +- libavdevice/oss_dec.c |2 +- libavdevice/pulse.c |2 +- libavdevice/sndio_dec.c |2 +- libavdevice/v4l2.c |2 +- libavdevice/vfwcap.c|2 +- libavfilter/vsrc_movie.c|4 ++-- libavformat/4xm.c |2 +- libavformat/adxdec.c|4 ++-- libavformat/amr.c |2 +- libavformat/asfdec.c| 14 +++--- libavformat/avformat.h |4 ++-- libavformat/avidec.c|6 +++--- libavformat/avs.c |2 +- libavformat/c93.c |2 +- libavformat/cdg.c |2 +- libavformat/cdxl.c |2 +- libavformat/dfa.c |4 ++-- libavformat/dsicin.c|2 +- libavformat/dss.c |6 +++--- libavformat/dxa.c |2 +- libavformat/electronicarts.c|2 +- libavformat/flic.c |4 ++-- libavformat/g723_1.c|2 +- libavformat/gsmdec.c|2 +- libavformat/hls.c |6 +++--- libavformat/hnm.c |2 +- libavformat/idcin.c |4 ++-- libavformat/ilbc.c |2 +- libavformat/img2dec.c |2 +- libavformat/ingenientdec.c |2 +- libavformat/internal.h |2 +- libavformat/ipmovie.c |4 ++-- libavformat/iv8.c |2 +- libavformat/lxfdec.c|2 +- libavformat/matroskadec.c |4 ++-- libavformat/matroskaenc.c |4 ++-- libavformat/mmf.c |2 +- libavformat/mp3enc.c|2 +- libavformat/mpc.c |4 ++-- libavformat/mpegts.c|2 +- libavformat/mux.c |6 +++--- libavformat/mxfenc.c|2 +- libavformat/ncdec.c |2 +- libavformat/nsvdec.c|4 ++-- libavformat/nuv.c |2 +- libavformat/psxstr.c|4 ++-- libavformat/rawdec.c|2 +- libavformat/rl2.c |2 +- libavformat/rmdec.c |6 +++--- libavformat/rpl.c |4 ++-- libavformat/rtpdec_asf.c|2 +- libavformat/rtpdec_mpa_robust.c |2 +- libavformat/rtpdec_qt.c |2 +- libavformat/rtpdec_xiph.c |2 +- libavformat/sapdec.c|2 +- libavformat/seek-test.c |2 +- libavformat/sierravmd.c |2 +- libavformat/spdifdec.c |6 +++--- libavformat/thp.c |4 ++-- libavformat/utils.c | 18 +- libavformat/vqf.c |2 +- libavformat/wc3movie.c |2 +- libavformat/westwood_vqa.c |2 +- libavformat/wvdec.c | 10 +- libavformat/yop.c |6 +++--- tools/pktdumper.c |2 +- 80 files changed, 174 insertions(+), 158 deletions(-) diff --git a/avconv.c b/avconv.c index f6bcb02..ed0a3dd 100644 --- a/avconv.c +++ b/avconv.c @@ -270,7 +270,7 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost) */ if (!(avctx->codec_type == AVMEDIA_TYPE_VIDEO && avctx->codec)) { if (ost->frame_number >= ost->max_frames) { -av_free_packet(pkt); +av_packet_unref(pkt); return; } ost->frame_number++; @@ -288,7 +288,7 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost) pkt->data, pkt->size, pkt->flags & AV_PKT_FLAG_KEY); if (a > 0) { -av_free_packet(pkt); +av_packet_unref(pkt); new_pkt.buf = av_buffer_create(new_pkt.data, new_pkt.size,
[FFmpeg-cvslog] Replace remaining occurances of av_free_packet with av_packet_unref
ffmpeg | branch: master | Hendrik Leppkes | Tue Oct 27 14:35:30 2015 +0100| [c2f861ca42fa1a2fb6f7e85abb7bd44f39c6f2c4] | committer: Hendrik Leppkes Replace remaining occurances of av_free_packet with av_packet_unref > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c2f861ca42fa1a2fb6f7e85abb7bd44f39c6f2c4 --- doc/examples/decoding_encoding.c |2 +- doc/examples/demuxing_decoding.c |2 +- doc/examples/extract_mvs.c |2 +- doc/examples/filtering_audio.c |4 ++-- doc/examples/filtering_video.c |2 +- doc/examples/remuxing.c |2 +- doc/examples/transcoding.c |4 ++-- ffmpeg.c | 14 +++--- ffplay.c | 10 +- ffserver.c |8 libavcodec/avpacket.c|4 ++-- libavcodec/libopusenc.c |4 ++-- libavcodec/libvpxenc.c |2 +- libavcodec/utils.c |4 ++-- libavdevice/decklink_dec.cpp |2 +- libavdevice/dshow.c |2 +- libavdevice/openal-dec.c |2 +- libavfilter/lavfutils.c |2 +- libavfilter/src_movie.c |6 +++--- libavfilter/vf_mcdeint.c |2 +- libavfilter/vf_subtitles.c |2 +- libavformat/adp.c|2 +- libavformat/aiffenc.c|2 +- libavformat/ape.c|2 +- libavformat/apngenc.c|2 +- libavformat/asfdec_f.c | 12 ++-- libavformat/avidec.c |2 +- libavformat/brstm.c |2 +- libavformat/concatdec.c |2 +- libavformat/electronicarts.c |4 ++-- libavformat/ffmdec.c |4 ++-- libavformat/flacdec.c|2 +- libavformat/flvdec.c |2 +- libavformat/gif.c|2 +- libavformat/iff.c|2 +- libavformat/img2enc.c|4 ++-- libavformat/libmodplug.c |2 +- libavformat/matroskadec.c|4 ++-- libavformat/movenc.c |8 libavformat/mpeg.c |6 +++--- libavformat/mpegts.c |4 ++-- libavformat/nutdec.c |2 +- libavformat/oggdec.c |2 +- libavformat/redspark.c |2 +- libavformat/rmdec.c |2 +- libavformat/sdr2.c |2 +- libavformat/siff.c |2 +- libavformat/subtitles.c |4 ++-- libavformat/swfdec.c |4 ++-- libavformat/tee.c|2 +- libavformat/utils.c |2 +- libavformat/vivo.c |2 +- libavformat/webpenc.c|2 +- libavformat/wtvenc.c |2 +- tests/api/api-band-test.c|4 ++-- tests/api/api-flac-test.c|2 +- tests/api/api-h264-test.c|4 ++-- tests/api/api-seek-test.c|4 ++-- tools/seek_print.c |2 +- 59 files changed, 99 insertions(+), 99 deletions(-) diff --git a/doc/examples/decoding_encoding.c b/doc/examples/decoding_encoding.c index 4ce3b26..06a98a6 100644 --- a/doc/examples/decoding_encoding.c +++ b/doc/examples/decoding_encoding.c @@ -211,7 +211,7 @@ static void audio_encode_example(const char *filename) } if (got_output) { fwrite(pkt.data, 1, pkt.size, f); -av_free_packet(&pkt); +av_packet_unref(&pkt); } } diff --git a/doc/examples/demuxing_decoding.c b/doc/examples/demuxing_decoding.c index e662407..59e0ccc 100644 --- a/doc/examples/demuxing_decoding.c +++ b/doc/examples/demuxing_decoding.c @@ -326,7 +326,7 @@ int main (int argc, char **argv) pkt.data += ret; pkt.size -= ret; } while (pkt.size > 0); -av_free_packet(&orig_pkt); +av_packet_unref(&orig_pkt); } /* flush cached frames */ diff --git a/doc/examples/extract_mvs.c b/doc/examples/extract_mvs.c index d6fd613..975189c 100644 --- a/doc/examples/extract_mvs.c +++ b/doc/examples/extract_mvs.c @@ -167,7 +167,7 @@ int main(int argc, char **argv) pkt.data += ret; pkt.size -= ret; } while (pkt.size > 0); -av_free_packet(&orig_pkt); +av_packet_unref(&orig_pkt); } /* flush cached frames */ diff --git a/doc/examples/filtering_audio.c b/doc/examples/filtering_audio.c index 6c74ec3..89c80cf 100644 --- a/doc/examples/filtering_audio.c +++ b/doc/examples/filtering_audio.c @@ -273,10 +273,10 @@ int main(int argc, char **argv) } if (packet.size <= 0) -av_free_packet(&packet0); +av_packet_unref(&packet0); } else { /* discard non-wanted packets */ -av_free_packet(&packet0); +av_packet_unref(&packet0); } } end: diff --git a/doc/examples/filtering_video.c b/doc/examples/filtering_video.c index 5600572
[FFmpeg-cvslog] Merge commit 'ce70f28a1732c74a9cd7fec2d56178750bd6e457'
ffmpeg | branch: master | Hendrik Leppkes | Tue Oct 27 14:28:56 2015 +0100| [7f5af80ba42bbd82da53dfd95236e9d47159a96a] | committer: Hendrik Leppkes Merge commit 'ce70f28a1732c74a9cd7fec2d56178750bd6e457' * commit 'ce70f28a1732c74a9cd7fec2d56178750bd6e457': avpacket: Replace av_free_packet with av_packet_unref Merged-by: Hendrik Leppkes > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7f5af80ba42bbd82da53dfd95236e9d47159a96a --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] asfdec: fix FATE seek test
ffmpeg | branch: master | Hendrik Leppkes | Tue Oct 27 15:29:12 2015 +0100| [75c3e54d1cb03c74a6e2f6cce598364e83d2fb91] | committer: Hendrik Leppkes asfdec: fix FATE seek test > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=75c3e54d1cb03c74a6e2f6cce598364e83d2fb91 --- libavformat/asfdec_f.c |6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavformat/asfdec_f.c b/libavformat/asfdec_f.c index 3865b0e..8b89a1a 100644 --- a/libavformat/asfdec_f.c +++ b/libavformat/asfdec_f.c @@ -1538,7 +1538,6 @@ static int64_t asf_read_pts(AVFormatContext *s, int stream_index, pts = pkt->dts; -av_packet_unref(pkt); if (pkt->flags & AV_PKT_FLAG_KEY) { i = pkt->stream_index; @@ -1552,9 +1551,12 @@ static int64_t asf_read_pts(AVFormatContext *s, int stream_index, pos - start_pos[i] + 1, AVINDEX_KEYFRAME); start_pos[i] = asf_st->packet_pos + 1; -if (pkt->stream_index == stream_index) +if (pkt->stream_index == stream_index) { +av_packet_unref(pkt); break; +} } +av_packet_unref(pkt); } *ppos = pos; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] mpegts: Fix FATE seek test
ffmpeg | branch: master | Hendrik Leppkes | Tue Oct 27 15:42:59 2015 +0100| [6255bf3d0d2ee843ede8c0d74e4b35d2fd574b48] | committer: Hendrik Leppkes mpegts: Fix FATE seek test > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6255bf3d0d2ee843ede8c0d74e4b35d2fd574b48 --- libavformat/mpegts.c |6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c index 0f0f503..1d57947 100644 --- a/libavformat/mpegts.c +++ b/libavformat/mpegts.c @@ -2743,16 +2743,18 @@ static int64_t mpegts_get_dts(AVFormatContext *s, int stream_index, ret = av_read_frame(s, &pkt); if (ret < 0) return AV_NOPTS_VALUE; -av_packet_unref(&pkt); if (pkt.dts != AV_NOPTS_VALUE && pkt.pos >= 0) { ff_reduce_index(s, pkt.stream_index); av_add_index_entry(s->streams[pkt.stream_index], pkt.pos, pkt.dts, 0, 0, AVINDEX_KEYFRAME /* FIXME keyframe? */); if (pkt.stream_index == stream_index && pkt.pos >= *ppos) { +int64_t dts = pkt.dts; *ppos = pkt.pos; -return pkt.dts; +av_packet_unref(&pkt); +return dts; } } pos = pkt.pos; +av_packet_unref(&pkt); } return AV_NOPTS_VALUE; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avformat/img2enc: Disable rename&atomic writing for non file protocol and split planes
ffmpeg | branch: master | Michael Niedermayer | Tue Oct 27 19:45:59 2015 +0100| [9ec2b9fce18889bb4cc884fbce68a6b73976ffdd] | committer: Michael Niedermayer avformat/img2enc: Disable rename&atomic writing for non file protocol and split planes For protocols other than local files ff_rename() is not implemented For split planes support the implementation is simply wrong Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9ec2b9fce18889bb4cc884fbce68a6b73976ffdd --- libavformat/img2enc.c | 16 +--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/libavformat/img2enc.c b/libavformat/img2enc.c index 7f0ff19..339dfba 100644 --- a/libavformat/img2enc.c +++ b/libavformat/img2enc.c @@ -42,6 +42,7 @@ typedef struct VideoMuxData { int update; int use_strftime; const char *muxer; +int use_rename; } VideoMuxData; static int write_header(AVFormatContext *s) @@ -49,6 +50,7 @@ static int write_header(AVFormatContext *s) VideoMuxData *img = s->priv_data; AVStream *st = s->streams[0]; const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(st->codec->pix_fmt); +const char *proto = avio_find_protocol_name(s->filename); av_strlcpy(img->path, s->filename, sizeof(img->path)); snprintf(img->tmp, sizeof(img->tmp), "%s.tmp", s->filename); @@ -70,6 +72,13 @@ static int write_header(AVFormatContext *s) &&(desc->flags & AV_PIX_FMT_FLAG_PLANAR) && desc->nb_components >= 3; } + +img->use_rename = proto && !strcmp(proto, "file"); + +//The current atomic rename implementation is not compatible with split planes +if (img->split_planes) +img->use_rename = 0; + return 0; } @@ -102,9 +111,9 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt) return AVERROR(EINVAL); } for (i = 0; i < 4; i++) { -if (avio_open2(&pb[i], img->tmp, AVIO_FLAG_WRITE, +if (avio_open2(&pb[i], img->use_rename ? img->tmp : filename, AVIO_FLAG_WRITE, &s->interrupt_callback, NULL) < 0) { -av_log(s, AV_LOG_ERROR, "Could not open file : %s\n", img->tmp); +av_log(s, AV_LOG_ERROR, "Could not open file : %s\n", img->use_rename ? img->tmp : filename); return AVERROR(EIO); } @@ -169,7 +178,8 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt) avio_flush(pb[0]); if (!img->is_pipe) { avio_closep(&pb[0]); -ff_rename(img->tmp, filename, s); +if (img->use_rename) +ff_rename(img->tmp, filename, s); } img->img_number++; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avformat/img2enc: Fix img2enc atomic implementation to work with split planes
ffmpeg | branch: master | Michael Niedermayer | Tue Oct 27 21:21:17 2015 +0100| [1b82a0052ce1541a42de74e06890f3fecba96c99] | committer: Michael Niedermayer avformat/img2enc: Fix img2enc atomic implementation to work with split planes Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1b82a0052ce1541a42de74e06890f3fecba96c99 --- libavformat/img2enc.c | 18 -- 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/libavformat/img2enc.c b/libavformat/img2enc.c index 339dfba..8a8e6e1 100644 --- a/libavformat/img2enc.c +++ b/libavformat/img2enc.c @@ -38,7 +38,8 @@ typedef struct VideoMuxData { int is_pipe; int split_planes; /**< use independent file for each Y, U, V plane */ char path[1024]; -char tmp[1024]; +char tmp[4][1024]; +char target[4][1024]; int update; int use_strftime; const char *muxer; @@ -53,7 +54,6 @@ static int write_header(AVFormatContext *s) const char *proto = avio_find_protocol_name(s->filename); av_strlcpy(img->path, s->filename, sizeof(img->path)); -snprintf(img->tmp, sizeof(img->tmp), "%s.tmp", s->filename); /* find format */ if (s->oformat->flags & AVFMT_NOFILE) @@ -90,6 +90,7 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt) AVCodecContext *codec = s->streams[pkt->stream_index]->codec; const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(codec->pix_fmt); int i; +int nb_renames = 0; if (!img->is_pipe) { if (img->update) { @@ -111,9 +112,11 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt) return AVERROR(EINVAL); } for (i = 0; i < 4; i++) { -if (avio_open2(&pb[i], img->use_rename ? img->tmp : filename, AVIO_FLAG_WRITE, +snprintf(img->tmp[i], sizeof(img->tmp[i]), "%s.tmp", filename); +av_strlcpy(img->target[i], filename, sizeof(img->target[i])); +if (avio_open2(&pb[i], img->use_rename ? img->tmp[i] : filename, AVIO_FLAG_WRITE, &s->interrupt_callback, NULL) < 0) { -av_log(s, AV_LOG_ERROR, "Could not open file : %s\n", img->use_rename ? img->tmp : filename); +av_log(s, AV_LOG_ERROR, "Could not open file : %s\n", img->use_rename ? img->tmp[i] : filename); return AVERROR(EIO); } @@ -121,6 +124,8 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt) break; filename[strlen(filename) - 1] = "UVAx"[i]; } +if (img->use_rename) +nb_renames = i + 1; } else { pb[0] = s->pb; } @@ -178,8 +183,9 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt) avio_flush(pb[0]); if (!img->is_pipe) { avio_closep(&pb[0]); -if (img->use_rename) -ff_rename(img->tmp, filename, s); +for (i = 0; i < nb_renames; i++) { +ff_rename(img->tmp[i], img->target[i], s); +} } img->img_number++; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avcodec: install avdct.h as public header
ffmpeg | branch: master | Andreas Cadhalpun | Tue Oct 27 21:22:20 2015 +0100| [eaa6bade377a33a83e0e0dd0ef2106508efd6790] | committer: Andreas Cadhalpun avcodec: install avdct.h as public header The commit 932ff70 introducing this header mentions it should be public. Reviewed-by: Ronald S. Bultje Signed-off-by: Andreas Cadhalpun > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=eaa6bade377a33a83e0e0dd0ef2106508efd6790 --- libavcodec/Makefile |1 + 1 file changed, 1 insertion(+) diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 38152f7..5f38ebb 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -3,6 +3,7 @@ include $(SUBDIR)../config.mak NAME = avcodec HEADERS = avcodec.h \ + avdct.h \ avfft.h \ dv_profile.h \ d3d11va.h \ ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avformat/img2enc: re enable atomic writes with split planes
ffmpeg | branch: master | Michael Niedermayer | Tue Oct 27 21:38:40 2015 +0100| [232b8a5a438ae1eb9efc7e535d9c1809ac164e5c] | committer: Michael Niedermayer avformat/img2enc: re enable atomic writes with split planes They work now after fixing the implementation Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=232b8a5a438ae1eb9efc7e535d9c1809ac164e5c --- libavformat/img2enc.c |4 1 file changed, 4 deletions(-) diff --git a/libavformat/img2enc.c b/libavformat/img2enc.c index 8a8e6e1..cd4a9a8 100644 --- a/libavformat/img2enc.c +++ b/libavformat/img2enc.c @@ -75,10 +75,6 @@ static int write_header(AVFormatContext *s) img->use_rename = proto && !strcmp(proto, "file"); -//The current atomic rename implementation is not compatible with split planes -if (img->split_planes) -img->use_rename = 0; - return 0; } ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avfilter/avf_showcqt: rewrite showcqt and add features
ffmpeg | branch: master | Muhammad Faiz | Mon Oct 26 00:18:41 2015 +0700| [f8d429e0c569d4f4ffd87af80e7375b3a6278869] | committer: Michael Niedermayer avfilter/avf_showcqt: rewrite showcqt and add features add yuv444p, yuv422p, and yuv420p output format (lower cpu usage on ffplay playback because it does not do format conversion) custom size with size/s option (fullhd option is deprecated) custom layout with bar_h, axis_h, and sono_h option support rational frame rate (within fps/r/rate option) relaxed frame rate restriction (support fractional sample step) support all input sample rates separate sonogram and bargraph volume (with volume/sono_v and volume2/bar_v) timeclamp option alias (timeclamp/tc) fcount option gamma option alias (gamma/sono_g and gamma2/bar_g) support custom frequency range (basefreq and endfreq) support drawing axis using external image file (axisfile option) alias for disabling drawing to axis (text/axis) possibility to optimize it using arch specific asm code Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f8d429e0c569d4f4ffd87af80e7375b3a6278869 --- doc/filters.texi | 181 -- libavfilter/avf_showcqt.c | 1546 +++-- libavfilter/avf_showcqt.h | 112 libavfilter/version.h |2 +- 4 files changed, 1302 insertions(+), 539 deletions(-) diff --git a/doc/filters.texi b/doc/filters.texi index 2914e40..a42dc6f 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -13637,21 +13637,48 @@ settb=AVTB @end itemize @section showcqt -Convert input audio to a video output representing -frequency spectrum logarithmically (using constant Q transform with -Brown-Puckette algorithm), with musical tone scale, from E0 to D#10 (10 octaves). +Convert input audio to a video output representing frequency spectrum +logarithmically using Brown-Puckette constant Q transform algorithm with +direct frequency domain coefficient calculation (but the transform itself +is not really constant Q, instead the Q factor is actually variable/clamped), +with musical tone scale, from E0 to D#10. The filter accepts the following options: @table @option -@item volume -Specify transform volume (multiplier) expression. The expression can contain -variables: +@item size, s +Specify the video size for the output. It must be even. For the syntax of this option, +check the @ref{video size syntax,,"Video size" section in the ffmpeg-utils manual,ffmpeg-utils}. +Default value is @code{1920x1080}. + +@item fps, rate, r +Set the output frame rate. Default value is @code{25}. + +@item bar_h +Set the bargraph height. It must be even. Default value is @code{-1} which +computes the bargraph height automatically. + +@item axis_h +Set the axis height. It must be even. Default value is @code{-1} which computes +the axis height automatically. + +@item sono_h +Set the sonogram height. It must be even. Default value is @code{-1} which +computes the sonogram height automatically. + +@item fullhd +Set the fullhd resolution. This option is deprecated, use @var{size}, @var{s} +instead. Default value is @code{1}. + +@item sono_v, volume +Specify the sonogram volume expression. It can contain variables: @table @option +@item bar_v +the @var{bar_v} evaluated expression @item frequency, freq, f -the frequency where transform is evaluated +the frequency where it is evaluated @item timeclamp, tc -value of timeclamp option +the value of @var{timeclamp} option @end table and functions: @table @option @@ -13660,75 +13687,112 @@ A-weighting of equal loudness @item b_weighting(f) B-weighting of equal loudness @item c_weighting(f) -C-weighting of equal loudness +C-weighting of equal loudness. @end table Default value is @code{16}. -@item tlength -Specify transform length expression. The expression can contain variables: +@item bar_v, volume2 +Specify the bargraph volume expression. It can contain variables: @table @option +@item sono_v +the @var{sono_v} evaluated expression @item frequency, freq, f -the frequency where transform is evaluated +the frequency where it is evaluated @item timeclamp, tc -value of timeclamp option +the value of @var{timeclamp} option +@end table +and functions: +@table @option +@item a_weighting(f) +A-weighting of equal loudness +@item b_weighting(f) +B-weighting of equal loudness +@item c_weighting(f) +C-weighting of equal loudness. @end table -Default value is @code{384/f*tc/(384/f+tc)}. +Default value is @code{sono_v}. + +@item sono_g, gamma +Specify the sonogram gamma. Lower gamma makes the spectrum more contrast, +higher gamma makes the spectrum having more range. Default value is @code{3}. +Acceptable range is @code{[1, 7]}. + +@item bar_g, gamma2 +Specify the bargraph gamma. Default value is @code{1}. Acceptable range is +@code{[1, 7]}. -@item timeclamp +@item timeclamp, tc Specify the transform timeclamp. At low frequency, there is trade-off between accuracy in time domain
[FFmpeg-cvslog] avfilter/avf_showcqt: Fix ;;
ffmpeg | branch: master | Michael Niedermayer | Wed Oct 28 03:23:40 2015 +0100| [492dead9ac85ac98a09dabab1bfd586872824771] | committer: Michael Niedermayer avfilter/avf_showcqt: Fix ;; Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=492dead9ac85ac98a09dabab1bfd586872824771 --- libavfilter/avf_showcqt.h |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavfilter/avf_showcqt.h b/libavfilter/avf_showcqt.h index 244c690..a018075 100644 --- a/libavfilter/avf_showcqt.h +++ b/libavfilter/avf_showcqt.h @@ -79,7 +79,7 @@ typedef struct { float *bar_v_buf; /* callback */ void(*cqt_calc)(FFTComplex *dst, const FFTComplex *src, const Coeffs *coeffs, -int len, int fft_len);; +int len, int fft_len); void(*draw_bar)(AVFrame *out, const float *h, const float *rcp_h, const ColorFloat *c, int bar_h); void(*draw_axis)(AVFrame *out, AVFrame *axis, const ColorFloat *c, int off); ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avutil/avstring: add av_warn_unused_result
ffmpeg | branch: master | Ganesh Ajjanagadde | Thu Oct 15 18:04:45 2015 -0400| [a0e390e8ff33392ff7ab51d9f4c830da843ddff3] | committer: Ganesh Ajjanagadde avutil/avstring: add av_warn_unused_result This does not trigger any warnings, but adds robustness. Signed-off-by: Ganesh Ajjanagadde > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a0e390e8ff33392ff7ab51d9f4c830da843ddff3 --- libavutil/avstring.h |2 ++ 1 file changed, 2 insertions(+) diff --git a/libavutil/avstring.h b/libavutil/avstring.h index a306e89..a46d012 100644 --- a/libavutil/avstring.h +++ b/libavutil/avstring.h @@ -339,6 +339,7 @@ enum AVEscapeMode { * @return the length of the allocated string, or a negative error code in case of error * @see av_bprint_escape() */ +av_warn_unused_result int av_escape(char **dst, const char *src, const char *special_chars, enum AVEscapeMode mode, int flags); @@ -378,6 +379,7 @@ int av_escape(char **dst, const char *src, const char *special_chars, * @return >= 0 in case a sequence was successfully read, a negative * value in case of invalid sequence */ +av_warn_unused_result int av_utf8_decode(int32_t *codep, const uint8_t **bufp, const uint8_t *buf_end, unsigned int flags); ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog