[FFmpeg-cvslog] FATE: Increase FUZZ value on AAC LTP encoding test

2015-10-27 Thread Rostislav Pehlivanov
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

2015-10-27 Thread Hendrik Leppkes
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

2015-10-27 Thread Kyle Swanson
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

2015-10-27 Thread AppChecker
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'

2015-10-27 Thread Hendrik Leppkes
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

2015-10-27 Thread Vittorio Giovara
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

2015-10-27 Thread Martin Storsjö
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

2015-10-27 Thread Martin Storsjö
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'

2015-10-27 Thread Hendrik Leppkes
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'

2015-10-27 Thread Hendrik Leppkes
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'

2015-10-27 Thread Hendrik Leppkes
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

2015-10-27 Thread Luca Barbato
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

2015-10-27 Thread Luca Barbato
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'

2015-10-27 Thread Hendrik Leppkes
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

2015-10-27 Thread Luca Barbato
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'

2015-10-27 Thread Hendrik Leppkes
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

2015-10-27 Thread Martin Storsjö
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

2015-10-27 Thread Paul B Mahol
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

2015-10-27 Thread Arttu Ylä-Outinen
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'

2015-10-27 Thread Hendrik Leppkes
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

2015-10-27 Thread Michael Niedermayer
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

2015-10-27 Thread Michael Niedermayer
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'

2015-10-27 Thread Hendrik Leppkes
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

2015-10-27 Thread Vittorio Giovara
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'

2015-10-27 Thread Hendrik Leppkes
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'

2015-10-27 Thread Hendrik Leppkes
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

2015-10-27 Thread Alexis Ballier
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'

2015-10-27 Thread Hendrik Leppkes
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'

2015-10-27 Thread Hendrik Leppkes
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

2015-10-27 Thread Vittorio Giovara
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'

2015-10-27 Thread Hendrik Leppkes
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

2015-10-27 Thread Tom Butterworth
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

2015-10-27 Thread Vittorio Giovara
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

2015-10-27 Thread Hendrik Leppkes
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'

2015-10-27 Thread Hendrik Leppkes
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'

2015-10-27 Thread Hendrik Leppkes
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

2015-10-27 Thread Luca Barbato
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'

2015-10-27 Thread Hendrik Leppkes
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

2015-10-27 Thread Luca Barbato
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'

2015-10-27 Thread Hendrik Leppkes
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

2015-10-27 Thread Luca Barbato
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

2015-10-27 Thread Hendrik Leppkes
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'

2015-10-27 Thread Hendrik Leppkes
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

2015-10-27 Thread Hendrik Leppkes
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

2015-10-27 Thread Hendrik Leppkes
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

2015-10-27 Thread Michael Niedermayer
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

2015-10-27 Thread Michael Niedermayer
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

2015-10-27 Thread Andreas Cadhalpun
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

2015-10-27 Thread Michael Niedermayer
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

2015-10-27 Thread Muhammad Faiz
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 ;;

2015-10-27 Thread Michael Niedermayer
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

2015-10-27 Thread Ganesh Ajjanagadde
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