[FFmpeg-cvslog] libavcodec/exr : cosmetic change

2016-04-04 Thread Martin Vignali
ffmpeg | branch: master | Martin Vignali  | Mon Apr  
4 17:23:42 2016 +0200| [062ad63064b5ab39ee79a61bf98baa5d3d6b81fd] | committer: 
Paul B Mahol

libavcodec/exr : cosmetic change

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=062ad63064b5ab39ee79a61bf98baa5d3d6b81fd
---

 libavcodec/exr.c |3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/libavcodec/exr.c b/libavcodec/exr.c
index b0573d5..e25fe83 100644
--- a/libavcodec/exr.c
+++ b/libavcodec/exr.c
@@ -1201,8 +1201,7 @@ static int decode_block(AVCodecContext *avctx, void 
*tdata,
 channel_buffer[2] += channelLineSize;
 if (channel_buffer[3])
 channel_buffer[3] += channelLineSize;
-}
-else{
+} else {
 channel_buffer[0] += s->scan_line_size;
 channel_buffer[1] += s->scan_line_size;
 channel_buffer[2] += s->scan_line_size;

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] libavcodec/exr : add support for compression in tile

2016-04-04 Thread Martin Vignali
ffmpeg | branch: master | Martin Vignali  | Mon Apr  
4 22:00:31 2016 +0200| [832861535a51a0c964a25207b86d9f2f04fced12] | committer: 
Paul B Mahol

libavcodec/exr : add support for compression in tile

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=832861535a51a0c964a25207b86d9f2f04fced12
---

 libavcodec/exr.c |   39 +--
 1 file changed, 17 insertions(+), 22 deletions(-)

diff --git a/libavcodec/exr.c b/libavcodec/exr.c
index e25fe83..b542831 100644
--- a/libavcodec/exr.c
+++ b/libavcodec/exr.c
@@ -780,9 +780,9 @@ static int piz_uncompress(EXRContext *s, const uint8_t 
*src, int ssize,
 int size = channel->pixel_type;
 
 for (j = 0; j < size; j++)
-wav_decode(ptr + j, s->xdelta, size, s->ysize,
-   s->xdelta * size, maxval);
-ptr += s->xdelta * s->ysize * size;
+wav_decode(ptr + j, s->xsize, size, s->ysize,
+   s->xsize * size, maxval);
+ptr += s->xsize * s->ysize * size;
 }
 
 apply_lut(td->lut, tmp, dsize / sizeof(uint16_t));
@@ -790,9 +790,9 @@ static int piz_uncompress(EXRContext *s, const uint8_t 
*src, int ssize,
 out = td->uncompressed_data;
 for (i = 0; i < s->ysize; i++)
 for (j = 0; j < s->nb_channels; j++) {
-uint16_t *in = tmp + j * s->xdelta * s->ysize + i * s->xdelta;
-memcpy(out, in, s->xdelta * 2);
-out += s->xdelta * 2;
+uint16_t *in = tmp + j * s->xsize * s->ysize + i * s->xsize;
+memcpy(out, in, s->xsize * 2);
+out += s->xsize * 2;
 }
 
 return 0;
@@ -830,11 +830,11 @@ static int pxr24_uncompress(EXRContext *s, const uint8_t 
*src,
 switch (channel->pixel_type) {
 case EXR_FLOAT:
 ptr[0] = in;
-ptr[1] = ptr[0] + s->xdelta;
-ptr[2] = ptr[1] + s->xdelta;
-in = ptr[2] + s->xdelta;
+ptr[1] = ptr[0] + s->xsize;
+ptr[2] = ptr[1] + s->xsize;
+in = ptr[2] + s->xsize;
 
-for (j = 0; j < s->xdelta; ++j) {
+for (j = 0; j < s->xsize; ++j) {
 uint32_t diff = (*(ptr[0]++) << 24) |
 (*(ptr[1]++) << 16) |
 (*(ptr[2]++) << 8);
@@ -844,9 +844,9 @@ static int pxr24_uncompress(EXRContext *s, const uint8_t 
*src,
 break;
 case EXR_HALF:
 ptr[0] = in;
-ptr[1] = ptr[0] + s->xdelta;
-in = ptr[1] + s->xdelta;
-for (j = 0; j < s->xdelta; j++) {
+ptr[1] = ptr[0] + s->xsize;
+in = ptr[1] + s->xsize;
+for (j = 0; j < s->xsize; j++) {
 uint32_t diff = (*(ptr[0]++) << 8) | *(ptr[1]++);
 
 pixel += diff;
@@ -922,8 +922,8 @@ static int b44_uncompress(EXRContext *s, const uint8_t 
*src, int compressed_size
 int c, iY, iX, y, x;
 
 /* calc B44 block count */
-nbB44BlockW = s->xdelta / 4;
-if ((s->xdelta % 4) != 0)
+nbB44BlockW = s->xsize / 4;
+if ((s->xsize % 4) != 0)
 nbB44BlockW++;
 
 nbB44BlockH = s->ysize / 4;
@@ -957,8 +957,8 @@ static int b44_uncompress(EXRContext *s, const uint8_t 
*src, int compressed_size
 indexHgY = iY * 4;
 
 for (y = indexHgY; y < FFMIN(indexHgY + 4, s->ysize); y++) {
-for (x = indexHgX; x < FFMIN(indexHgX + 4, s->xdelta); 
x++) {
-indexOut = (c * s->xdelta + y * s->xdelta * 
s->nb_channels + x) * 2;
+for (x = indexHgX; x < FFMIN(indexHgX + 4, s->xsize); x++) 
{
+indexOut = (c * s->xsize + y * s->xsize * 
s->nb_channels + x) * 2;
 indexTmp = (y-indexHgY) * 4 + (x-indexHgX);
 td->uncompressed_data[indexOut] = tmpBuffer[indexTmp] 
& 0xff;
 td->uncompressed_data[indexOut + 1] = 
tmpBuffer[indexTmp] >> 8;
@@ -1531,11 +1531,6 @@ static int decode_header(EXRContext *s)
 av_log(s->avctx, AV_LOG_ERROR, "Invalid tile attribute.\n");
 return AVERROR_INVALIDDATA;
 }
-
-if (s->compression != EXR_RAW) {
-avpriv_report_missing_feature(s->avctx, "Compression in tile %d", 
s->compression);
-return AVERROR_PATCHWELCOME;
-}
 }
 
 s->scan_line_size = s->xdelta * s->current_channel_offset;

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] ffplay: fix silence insertion on error or pause

2016-04-04 Thread Marton Balint
ffmpeg | branch: master | Marton Balint  | Sun Apr  3 21:23:41 
2016 +0200| [a07934d51b40b0f48be531a359d39c091c414643] | committer: Marton 
Balint

ffplay: fix silence insertion on error or pause

Insertion of silence was a bit broken since
df34b700981de606ca4847e1ed0bfdf9ac3e9104 because the info whether or not the
source buffer supposed to be silence must be kept between callbacks. Failing to
do so causes rogue samples from the last buffer to be presented, I guess even a
crash can occur under some circumstances.

This patch uses a NULL audio_buf to keep the silence state across audio
callbacks.

Reviewed-by: Lukasz Marek 
Signed-off-by: Marton Balint 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a07934d51b40b0f48be531a359d39c091c414643
---

 ffplay.c |8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/ffplay.c b/ffplay.c
index aab03d1..123f4bc 100644
--- a/ffplay.c
+++ b/ffplay.c
@@ -2531,7 +2531,7 @@ static int audio_decode_frame(VideoState *is)
 static void sdl_audio_callback(void *opaque, Uint8 *stream, int len)
 {
 VideoState *is = opaque;
-int audio_size, len1, silence = 0;
+int audio_size, len1;
 
 audio_callback_time = av_gettime_relative();
 
@@ -2540,7 +2540,7 @@ static void sdl_audio_callback(void *opaque, Uint8 
*stream, int len)
audio_size = audio_decode_frame(is);
if (audio_size < 0) {
 /* if error, just output silence */
-   silence = 1;
+   is->audio_buf = NULL;
is->audio_buf_size = SDL_AUDIO_MIN_BUFFER_SIZE / 
is->audio_tgt.frame_size * is->audio_tgt.frame_size;
} else {
if (is->show_mode != SHOW_MODE_VIDEO)
@@ -2552,11 +2552,11 @@ static void sdl_audio_callback(void *opaque, Uint8 
*stream, int len)
 len1 = is->audio_buf_size - is->audio_buf_index;
 if (len1 > len)
 len1 = len;
-if (!is->muted && !silence && is->audio_volume == SDL_MIX_MAXVOLUME)
+if (!is->muted && is->audio_buf && is->audio_volume == 
SDL_MIX_MAXVOLUME)
 memcpy(stream, (uint8_t *)is->audio_buf + is->audio_buf_index, 
len1);
 else {
 memset(stream, 0, len1);
-if (!is->muted && !silence)
+if (!is->muted && is->audio_buf)
 SDL_MixAudio(stream, (uint8_t *)is->audio_buf + 
is->audio_buf_index, len1, is->audio_volume);
 }
 len -= len1;

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog