[FFmpeg-devel] [PATCH 1/2] aformat/hlsenc: fix typo of AV_TIME_BASE

2017-01-23 Thread Steven Liu
the code use 100 * duration, use AV_TIME_BASE replace 100

Signed-off-by: Steven Liu 
---
 libavformat/hlsenc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index 85d3955..f070bc3 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -501,7 +501,7 @@ static int hls_append_segment(struct AVFormatContext *s, 
HLSContext *hls, double
 return AVERROR(ENOMEM);
 }
 if (replace_int_data_in_filename(hls->avf->filename, 
sizeof(hls->avf->filename),
-filename, 't',  (int64_t)round(100 * duration)) < 1) {
+filename, 't',  (int64_t)round(AV_TIME_BASE * duration)) < 1) {
 av_log(hls, AV_LOG_ERROR,
"Invalid second level segment filename template '%s', "
 "you can try to remove second_level_segment_time 
flag\n",
-- 
2.10.1 (Apple Git-78)



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


[FFmpeg-devel] [PATCH 1/2 v2] avformat/hlsenc: fix typo of AV_TIME_BASE

2017-01-23 Thread Steven Liu
the code use 100 * duration, use AV_TIME_BASE replace 100

Signed-off-by: Steven Liu 
---
 libavformat/hlsenc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index 85d3955..f070bc3 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -501,7 +501,7 @@ static int hls_append_segment(struct AVFormatContext *s, 
HLSContext *hls, double
 return AVERROR(ENOMEM);
 }
 if (replace_int_data_in_filename(hls->avf->filename, 
sizeof(hls->avf->filename),
-filename, 't',  (int64_t)round(100 * duration)) < 1) {
+filename, 't',  (int64_t)round(AV_TIME_BASE * duration)) < 1) {
 av_log(hls, AV_LOG_ERROR,
"Invalid second level segment filename template '%s', "
 "you can try to remove second_level_segment_time 
flag\n",
-- 
2.10.1 (Apple Git-78)



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


[FFmpeg-devel] [PATCH 2/2] avformat/flvenc: refine the flvenc shift_data code

2017-01-23 Thread Steven Liu
refine the flvenc shift_data move data option

Signed-off-by: Steven Liu 
---
 libavformat/flvenc.c | 12 +++-
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/libavformat/flvenc.c b/libavformat/flvenc.c
index 5714321..d7506c5 100644
--- a/libavformat/flvenc.c
+++ b/libavformat/flvenc.c
@@ -626,13 +626,15 @@ static int shift_data(AVFormatContext *s)
 avio_seek(read_pb, flv->keyframes_info_offset, SEEK_SET);
 pos = avio_tell(read_pb);
 
-/* shift data by chunk of at most keyframe *filepositions* and *times* 
size */
+#define READ_BLOCK do {
 \
 read_size[read_buf_id] = avio_read(read_pb, read_buf[read_buf_id], 
metadata_size);  \
-read_buf_id ^= 1;
-do {
+read_buf_id ^= 1;  
 \
+} while (0)
 
-read_size[read_buf_id] = avio_read(read_pb, read_buf[read_buf_id], 
metadata_size);  \
-read_buf_id ^= 1;
+/* shift data by chunk of at most keyframe *filepositions* and *times* 
size */
+READ_BLOCK;
+do {
+READ_BLOCK;
 n = read_size[read_buf_id];
 if (n < 0)
 break;
-- 
2.10.1 (Apple Git-78)



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


Re: [FFmpeg-devel] [PATCH 1/2] aformat/hlsenc: fix typo of AV_TIME_BASE

2017-01-23 Thread Steven Liu
2017-01-23 17:04 GMT+08:00 Steven Liu :

> the code use 100 * duration, use AV_TIME_BASE replace 100
>
> Signed-off-by: Steven Liu 
> ---
>  libavformat/hlsenc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
> index 85d3955..f070bc3 100644
> --- a/libavformat/hlsenc.c
> +++ b/libavformat/hlsenc.c
> @@ -501,7 +501,7 @@ static int hls_append_segment(struct AVFormatContext
> *s, HLSContext *hls, double
>  return AVERROR(ENOMEM);
>  }
>  if (replace_int_data_in_filename(hls->avf->filename,
> sizeof(hls->avf->filename),
> -filename, 't',  (int64_t)round(100 * duration)) < 1) {
> +filename, 't',  (int64_t)round(AV_TIME_BASE * duration))
> < 1) {
>  av_log(hls, AV_LOG_ERROR,
> "Invalid second level segment filename template
> '%s', "
>  "you can try to remove second_level_segment_time
> flag\n",
> --
> 2.10.1 (Apple Git-78)
>
>
> Ignore this patch please, i have sent v2.
>
> ___
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH] avformat/hlsenc: improve to write m3u8 head block

2017-01-23 Thread Steven Liu
Signed-off-by: Steven Liu 
---
 libavformat/hlsenc.c | 34 +++---
 1 file changed, 15 insertions(+), 19 deletions(-)

diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index f070bc3..df482ac 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -659,6 +659,19 @@ static void set_http_options(AVDictionary **options, 
HLSContext *c)
 av_dict_set(options, "method", c->method, 0);
 }
 
+static void write_m3u8_head_block(HLSContext *hls, AVIOContext *out, int 
version,
+  int target_duration, int64_t sequence)
+{
+avio_printf(out, "#EXTM3U\n");
+avio_printf(out, "#EXT-X-VERSION:%d\n", version);
+if (hls->allowcache == 0 || hls->allowcache == 1) {
+avio_printf(out, "#EXT-X-ALLOW-CACHE:%s\n", hls->allowcache == 0 ? 
"NO" : "YES");
+}
+avio_printf(out, "#EXT-X-TARGETDURATION:%d\n", target_duration);
+avio_printf(out, "#EXT-X-MEDIA-SEQUENCE:%"PRId64"\n", sequence);
+av_log(hls, AV_LOG_VERBOSE, "EXT-X-MEDIA-SEQUENCE:%"PRId64"\n", sequence);
+}
+
 static int hls_window(AVFormatContext *s, int last)
 {
 HLSContext *hls = s->priv_data;
@@ -698,21 +711,13 @@ static int hls_window(AVFormatContext *s, int last)
 }
 
 hls->discontinuity_set = 0;
-avio_printf(out, "#EXTM3U\n");
-avio_printf(out, "#EXT-X-VERSION:%d\n", version);
-if (hls->allowcache == 0 || hls->allowcache == 1) {
-avio_printf(out, "#EXT-X-ALLOW-CACHE:%s\n", hls->allowcache == 0 ? 
"NO" : "YES");
-}
-avio_printf(out, "#EXT-X-TARGETDURATION:%d\n", target_duration);
-avio_printf(out, "#EXT-X-MEDIA-SEQUENCE:%"PRId64"\n", sequence);
+write_m3u8_head_block(hls, out, version, target_duration, sequence);
 if (hls->pl_type == PLAYLIST_TYPE_EVENT) {
 avio_printf(out, "#EXT-X-PLAYLIST-TYPE:EVENT\n");
 } else if (hls->pl_type == PLAYLIST_TYPE_VOD) {
 avio_printf(out, "#EXT-X-PLAYLIST-TYPE:VOD\n");
 }
 
-av_log(s, AV_LOG_VERBOSE, "EXT-X-MEDIA-SEQUENCE:%"PRId64"\n",
-   sequence);
 if((hls->flags & HLS_DISCONT_START) && sequence==hls->start_sequence && 
hls->discontinuity_set==0 ){
 avio_printf(out, "#EXT-X-DISCONTINUITY\n");
 hls->discontinuity_set = 1;
@@ -774,16 +779,7 @@ static int hls_window(AVFormatContext *s, int last)
 if( hls->vtt_m3u8_name ) {
 if ((ret = s->io_open(s, &sub_out, hls->vtt_m3u8_name, 
AVIO_FLAG_WRITE, &options)) < 0)
 goto fail;
-avio_printf(sub_out, "#EXTM3U\n");
-avio_printf(sub_out, "#EXT-X-VERSION:%d\n", version);
-if (hls->allowcache == 0 || hls->allowcache == 1) {
-avio_printf(sub_out, "#EXT-X-ALLOW-CACHE:%s\n", hls->allowcache == 
0 ? "NO" : "YES");
-}
-avio_printf(sub_out, "#EXT-X-TARGETDURATION:%d\n", target_duration);
-avio_printf(sub_out, "#EXT-X-MEDIA-SEQUENCE:%"PRId64"\n", sequence);
-
-av_log(s, AV_LOG_VERBOSE, "EXT-X-MEDIA-SEQUENCE:%"PRId64"\n",
-   sequence);
+write_m3u8_head_block(hls, sub_out, version, target_duration, 
sequence);
 
 for (en = hls->segments; en; en = en->next) {
 avio_printf(sub_out, "#EXTINF:%f,\n", en->duration);
-- 
2.10.1 (Apple Git-78)



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


[FFmpeg-devel] [PATCH] ff_rtmp_packet_write do not allow channel_id larger than 64 when send chunk with header type 3.

2017-01-23 Thread Wentao Tang
Although ffmpeg use internel defined video and audio channel ids that are
than less than 64, I think it's better to patch ff_rtmp_packet_write write
chunk logic for more clearness?

Signed-off-by: Wentao 
---
 libavformat/rtmppkt.c |   31 +++
 1 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/libavformat/rtmppkt.c b/libavformat/rtmppkt.c
index cde0da7..51288ad 100644
--- a/libavformat/rtmppkt.c
+++ b/libavformat/rtmppkt.c
@@ -310,6 +310,18 @@ int ff_rtmp_packet_read_internal(URLContext *h, RTMPPacket 
*p, int chunk_size,
 }
 }
 
+static void ff_rtmp_packet_write_chunk_basic_header(uint8_t **p, int mode, int 
channel_id) {
+if (channel_id < 64) {
+bytestream_put_byte(p, channel_id | (mode << 6));
+} else if (channel_id < 64 + 256) {
+bytestream_put_byte(p, 0  | (mode << 6));
+bytestream_put_byte(p, channel_id - 64);
+} else {
+bytestream_put_byte(p, 1  | (mode << 6));
+bytestream_put_le16(p, channel_id - 64);
+}
+}
+
 int ff_rtmp_packet_write(URLContext *h, RTMPPacket *pkt,
  int chunk_size, RTMPPacket **prev_pkt_ptr,
  int *nb_prev_pkt)
@@ -354,15 +366,8 @@ int ff_rtmp_packet_write(URLContext *h, RTMPPacket *pkt,
 }
 }
 
-if (pkt->channel_id < 64) {
-bytestream_put_byte(&p, pkt->channel_id | (mode << 6));
-} else if (pkt->channel_id < 64 + 256) {
-bytestream_put_byte(&p, 0   | (mode << 6));
-bytestream_put_byte(&p, pkt->channel_id - 64);
-} else {
-bytestream_put_byte(&p, 1   | (mode << 6));
-bytestream_put_le16(&p, pkt->channel_id - 64);
-}
+ff_rtmp_packet_write_chunk_basic_header(&p, mode, pkt->channel_id);
+
 if (mode != RTMP_PS_ONEBYTE) {
 bytestream_put_be24(&p, pkt->ts_field);
 if (mode != RTMP_PS_FOURBYTES) {
@@ -391,10 +396,12 @@ int ff_rtmp_packet_write(URLContext *h, RTMPPacket *pkt,
 return ret;
 off += towrite;
 if (off < pkt->size) {
-uint8_t marker = 0xC0 | pkt->channel_id;
-if ((ret = ffurl_write(h, &marker, 1)) < 0)
+p = pkt_hdr;
+ff_rtmp_packet_write_chunk_basic_header(&p, RTMP_PS_ONEBYTE, 
pkt->channel_id);
+if ((ret = ffurl_write(h, pkt_hdr, p - pkt_hdr)) < 0)
 return ret;
-written++;
+written += p - pkt_hdr;
+
 if (pkt->ts_field == 0xFF) {
 uint8_t ts_header[4];
 AV_WB32(ts_header, timestamp);
-- 
1.7.1

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


Re: [FFmpeg-devel] Implemented h264 timing SEI info to ffprobe. Review process?

2017-01-23 Thread wm4
On Sun, 22 Jan 2017 20:31:36 +0100
Jordi Cenzano  wrote:

> Hi, I'm and old user of ffmpeg but I'm new in this community. So first of
> all let me congrat you for your work, ffmpeg has been always a great tool
> for me.
> 
> I added a new small functionality to ffprobe, now any user can have frame
> SEI timing info available in ffprobe output (useful to read SMPTE time
> code).
> 
> Since this is NOT a patch I don't know which is the best way to submit my
> changes for review, for now I created this PR against a FFmpeg forked repo:
> https://github.com/jordicenzano/FFmpeg/pull/1

Send it as patch, either via "git send-email", or as attached text file
produced by "git format-patch".
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 2/3] avformat/avienc: add reserve_index_space option

2017-01-23 Thread Tobias Rapp

On 20.01.2017 21:02, Michael Niedermayer wrote:

On Fri, Jan 20, 2017 at 05:06:59PM +0100, Tobias Rapp wrote:

On 20.01.2017 15:56, Tobias Rapp wrote:

On 19.01.2017 18:32, Michael Niedermayer wrote:

On Wed, Jan 18, 2017 at 10:27:02AM +0100, Tobias Rapp wrote:

Allows the user to reserve space for the ODML master index. A sufficient
sized master index in the AVI header avoids storing follow-up master
indexes within the 'movi' data later.

If the option is omitted or zero the index size is estimated from output
duration and bitrate. A worst-case bitrate for video streams is assumed
in case it is not available.

Note: fate reference files changed because the video stream had zero
bitrate before and is guessed now.

Signed-off-by: Tobias Rapp 
---
libavformat/avi.h   |  1 -
libavformat/avienc.c| 77
++---
libavformat/version.h   |  2 +-
tests/ref/fate/mpeg4-bsf-unpack-bframes |  2 +-
tests/ref/lavf-fate/avi_cram|  2 +-
5 files changed, 74 insertions(+), 10 deletions(-)


this breaks segment:
./ffmpeg -i lena.pnm -f segment test%d.avi

possibly related to avi_init()


Yes, I can reproduce the problem when going back to Git master and just
adding a dummy init (see attached diff). Not sure how to fix this, other
muxers also have an init but seem to work fine (mkv) ...


Apparently the codec_tag is cleared in seg_write_header() around line 811:

[...]

See 
http://git.videolan.org/?p=ffmpeg.git;a=blob;f=libavformat/segment.c;hb=HEAD#l811

If .init is unset, the header is written before the codec_tag is
cleared. If .init is set, it is written after these lines.


the return code of your init function is wrong i think


Thanks for the hint. Changed the return value to "1" and now 
avi_write_header() keeps being executed before the codec_tag is cleared 
in seg_write_header(). Attached an updated version of the patch.



also  this patch causes a 1 byte difference in the output of:
./ffmpeg -i ~/tickets/1116/AVI-RLE_MP3.avi -vcodec copy -an out2.avi

is that intended ?


Yes, it is expected in this case. The video stream has a reported 
bitrate of "0" which was used as-is for the "dwMaxBytesPerSec" field in 
the "avih" chunk before. Now the field is changed due to the worst-case 
bitrate guessing (similar to the FATE reference file changes). A log 
message hint is printed when adding "-loglevel debug" and maybe it 
should be made more prominent (AV_LOG_WARNING?) but there is not much a 
user can do and I think it's unlikely it has a negative effect on players.


Regards,
Tobias
>From 4cc70ffdeb7eeb60e7bbb725bd5885dcacf968d2 Mon Sep 17 00:00:00 2001
From: Tobias Rapp 
Date: Wed, 4 Jan 2017 15:31:29 +0100
Subject: [PATCH 2/3] avformat/avienc: add reserve_index_space option

Allows the user to reserve space for the ODML master index. A sufficient
sized master index in the AVI header avoids storing follow-up master
indexes within the 'movi' data later.

If the option is omitted or zero the index size is estimated from output
duration and bitrate. A worst-case bitrate for video streams is assumed
in case it is not available.

Note: fate reference files changed because the video stream had zero
bitrate before and is guessed now.

Signed-off-by: Tobias Rapp 
---
 libavformat/avi.h   |  1 -
 libavformat/avienc.c| 77 ++---
 libavformat/version.h   |  2 +-
 tests/ref/fate/mpeg4-bsf-unpack-bframes |  2 +-
 tests/ref/lavf-fate/avi_cram|  2 +-
 5 files changed, 74 insertions(+), 10 deletions(-)

diff --git a/libavformat/avi.h b/libavformat/avi.h
index af21f2c..b1711f0 100644
--- a/libavformat/avi.h
+++ b/libavformat/avi.h
@@ -29,7 +29,6 @@
 #define AVIF_COPYRIGHTED0x0002
 
 #define AVI_MAX_RIFF_SIZE   0x4000LL
-#define AVI_MASTER_INDEX_SIZE   256
 #define AVI_MAX_STREAM_COUNT100
 
 /* stream header flags */
diff --git a/libavformat/avienc.c b/libavformat/avienc.c
index fd16fff..5d4ec72 100644
--- a/libavformat/avienc.c
+++ b/libavformat/avienc.c
@@ -21,6 +21,8 @@
 
 //#define DEBUG
 
+#include 
+
 #include "avformat.h"
 #include "internal.h"
 #include "avi.h"
@@ -29,6 +31,7 @@
 #include "mpegts.h"
 #include "libavformat/avlanguage.h"
 #include "libavutil/avstring.h"
+#include "libavutil/avutil.h"
 #include "libavutil/internal.h"
 #include "libavutil/intreadwrite.h"
 #include "libavutil/dict.h"
@@ -51,6 +54,9 @@ typedef struct AVIIentry {
 } AVIIentry;
 
 #define AVI_INDEX_CLUSTER_SIZE 16384
+#define AVI_MASTER_INDEX_PREFIX_SIZE(8+2+1+1+4+8+4+4)
+#define AVI_MASTER_INDEX_ENTRY_SIZE 16  /* bytes per entry */
+#define AVI_MASTER_INDEX_SIZE_DEFAULT   256 /* number of entries */
 
 typedef struct AVIIndex {
 int64_t indx_start;
@@ -66,6 +72,8 @@ typedef struct AVIContext {
 int64_t riff_start, movi_list, odml_list;
 int64_t frames_hdr_all;
 int riff_id;
+int reserve_index_space;
+int ma

Re: [FFmpeg-devel] [PATCH 1/2 v2] avformat/hlsenc: fix typo of AV_TIME_BASE

2017-01-23 Thread Bodecs Bela



2017.01.23. 10:05 keltezéssel, Steven Liu írta:

the code use 100 * duration, use AV_TIME_BASE replace 100

Signed-off-by: Steven Liu 
---
  libavformat/hlsenc.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index 85d3955..f070bc3 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -501,7 +501,7 @@ static int hls_append_segment(struct AVFormatContext *s, 
HLSContext *hls, double
  return AVERROR(ENOMEM);
  }
  if (replace_int_data_in_filename(hls->avf->filename, 
sizeof(hls->avf->filename),
-filename, 't',  (int64_t)round(100 * duration)) < 1) {
+filename, 't',  (int64_t)round(AV_TIME_BASE * duration)) < 1) {
  av_log(hls, AV_LOG_ERROR,
 "Invalid second level segment filename template '%s', "
  "you can try to remove second_level_segment_time 
flag\n",


I used 100 because the duration is in seconds and the replacement 
should be in microseconds.

The filename will contain the duration in microseconds.
So this is a "seconds  to microseconds" conversion.  It would be a 
mistake to use AV_TIME_BASE here.

Maybe a comment should be added to the code about it.

The reasoning behind to put duration in microseconds into filename 
instead of seconds was to avoid comma in filename.


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


Re: [FFmpeg-devel] [PATCH 1/2 v2] avformat/hlsenc: fix typo of AV_TIME_BASE

2017-01-23 Thread Steven Liu
2017-01-23 18:43 GMT+08:00 Bodecs Bela :

>
>
> 2017.01.23. 10:05 keltezéssel, Steven Liu írta:
>
>> the code use 100 * duration, use AV_TIME_BASE replace 100
>>
>> Signed-off-by: Steven Liu 
>> ---
>>   libavformat/hlsenc.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
>> index 85d3955..f070bc3 100644
>> --- a/libavformat/hlsenc.c
>> +++ b/libavformat/hlsenc.c
>> @@ -501,7 +501,7 @@ static int hls_append_segment(struct AVFormatContext
>> *s, HLSContext *hls, double
>>   return AVERROR(ENOMEM);
>>   }
>>   if (replace_int_data_in_filename(hls->avf->filename,
>> sizeof(hls->avf->filename),
>> -filename, 't',  (int64_t)round(100 * duration)) < 1)
>> {
>> +filename, 't',  (int64_t)round(AV_TIME_BASE * duration))
>> < 1) {
>>   av_log(hls, AV_LOG_ERROR,
>>  "Invalid second level segment filename template
>> '%s', "
>>   "you can try to remove
>> second_level_segment_time flag\n",
>>
>
> I used 100 because the duration is in seconds and the replacement
> should be in microseconds.
> The filename will contain the duration in microseconds.
> So this is a "seconds  to microseconds" conversion.  It would be a mistake
> to use AV_TIME_BASE here.
> Maybe a comment should be added to the code about it.
>
> The reasoning behind to put duration in microseconds into filename instead
> of seconds was to avoid comma in filename.

resend a new patch! :)

>
>
> bb
>
> ___
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH] avformat/hlsenc: improve the code readable of 1000000

2017-01-23 Thread Steven Liu
Reviewed-by: Bodecs Bela 
Signed-off-by: Steven Liu 
---
 libavformat/hlsenc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index 85d3955..0170b34 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -47,6 +47,7 @@ typedef enum {
 
 #define KEYSIZE 16
 #define LINE_BUFFER_SIZE 1024
+#define HLS_MICROSECOUND_UNIT   100
 
 typedef struct HLSSegment {
 char filename[1024];
@@ -501,7 +502,7 @@ static int hls_append_segment(struct AVFormatContext *s, 
HLSContext *hls, double
 return AVERROR(ENOMEM);
 }
 if (replace_int_data_in_filename(hls->avf->filename, 
sizeof(hls->avf->filename),
-filename, 't',  (int64_t)round(100 * duration)) < 1) {
+filename, 't',  (int64_t)round(duration * 
HLS_MICROSECOUND_UNIT)) < 1) {
 av_log(hls, AV_LOG_ERROR,
"Invalid second level segment filename template '%s', "
 "you can try to remove second_level_segment_time 
flag\n",
-- 
2.10.1 (Apple Git-78)



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


[FFmpeg-devel] [PATCH v2] avformat/hlsenc: improve the code readable of 1000000

2017-01-23 Thread Steven Liu
Reviewed-by: Bodecs Bela 
Signed-off-by: Steven Liu 
---
 libavformat/hlsenc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index 85d3955..0170b34 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -47,6 +47,7 @@ typedef enum {
 
 #define KEYSIZE 16
 #define LINE_BUFFER_SIZE 1024
+#define HLS_MICROSECOND_UNIT   100
 
 typedef struct HLSSegment {
 char filename[1024];
@@ -501,7 +502,7 @@ static int hls_append_segment(struct AVFormatContext *s, 
HLSContext *hls, double
 return AVERROR(ENOMEM);
 }
 if (replace_int_data_in_filename(hls->avf->filename, 
sizeof(hls->avf->filename),
-filename, 't',  (int64_t)round(100 * duration)) < 1) {
+filename, 't',  (int64_t)round(duration * 
HLS_MICROSECOND_UNIT)) < 1) {
 av_log(hls, AV_LOG_ERROR,
"Invalid second level segment filename template '%s', "
 "you can try to remove second_level_segment_time 
flag\n",
-- 
2.10.1 (Apple Git-78)



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


Re: [FFmpeg-devel] Implemented h264 timing SEI info to ffprobe. Review process?

2017-01-23 Thread Jordi Cenzano
Thanks!
Will do

Jordi

On Mon, Jan 23, 2017 at 10:36 AM, wm4  wrote:

> On Sun, 22 Jan 2017 20:31:36 +0100
> Jordi Cenzano  wrote:
>
> > Hi, I'm and old user of ffmpeg but I'm new in this community. So first of
> > all let me congrat you for your work, ffmpeg has been always a great tool
> > for me.
> >
> > I added a new small functionality to ffprobe, now any user can have frame
> > SEI timing info available in ffprobe output (useful to read SMPTE time
> > code).
> >
> > Since this is NOT a patch I don't know which is the best way to submit my
> > changes for review, for now I created this PR against a FFmpeg forked
> repo:
> > https://github.com/jordicenzano/FFmpeg/pull/1
>
> Send it as patch, either via "git send-email", or as attached text file
> produced by "git format-patch".
> ___
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH]lavc/svq3: Fail for media key encryption

2017-01-23 Thread Carl Eugen Hoyos
Hi!

Attached patch responds to ticket #6094, pure guessing.

Please comment, Carl Eugen
From 4d9ca2ef2c455381509a1538676f9aea91de95a2 Mon Sep 17 00:00:00 2001
From: Carl Eugen Hoyos 
Date: Mon, 23 Jan 2017 13:39:56 +0100
Subject: [PATCH] lavc/svq3: Fail for media key encryption.

Fixes a part of ticket #6094.
---
 libavcodec/svq3.c |8 +---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/libavcodec/svq3.c b/libavcodec/svq3.c
index e0747d5..5b99656 100644
--- a/libavcodec/svq3.c
+++ b/libavcodec/svq3.c
@@ -1070,14 +1070,16 @@ static int svq3_decode_slice_header(AVCodecContext 
*avctx)
 av_log(s->avctx, AV_LOG_ERROR, "illegal slice type %u \n", slice_id);
 return -1;
 }
+if (get_bits1(&s->gb_slice)) {
+avpriv_report_missing_feature(s->avctx, "Media key encryption");
+return AVERROR_PATCHWELCOME;
+}
 
 s->slice_type = ff_h264_golomb_to_pict_type[slice_id];
 
 if ((header & 0x9F) == 2) {
-i = (s->mb_num < 64) ? 6 : (1 + av_log2(s->mb_num - 1));
+i = (s->mb_num < 64) ? 5 : av_log2(s->mb_num - 1);
 get_bits(&s->gb_slice, i);
-} else {
-skip_bits1(&s->gb_slice);
 }
 
 s->slice_num  = get_bits(&s->gb_slice, 8);
-- 
1.7.10.4

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


Re: [FFmpeg-devel] Implemented h264 timing SEI info to ffprobe. Review process?

2017-01-23 Thread Carl Eugen Hoyos
2017-01-22 20:31 GMT+01:00 Jordi Cenzano :

> It woud be great some guidance on that.

Please split the libavutil change from the h264 change and remove
unrelated changes like additional empty lines.
I suspect you cannot insert something in the middle of AVFrame,
move it to the end.

Developers may oppose the libavutil change but you will only find
out if you send the patch;-(

Carl Eugen
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] Contribute to ffmpeg

2017-01-23 Thread Carl Eugen Hoyos
2017-01-20 8:45 GMT+01:00 Mayank Agarwal :

> I want to contribute to ffmpeg.How can i start.

Apart from reading the documentation, you may start with fixing a
random bug, maybe something simple like a documentation issue.

Carl Eugen
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH v2] avformat/hlsenc: improve the code readable of 1000000

2017-01-23 Thread Bodecs Bela



2017.01.23. 12:01 keltezéssel, Steven Liu írta:

Reviewed-by: Bodecs Bela 
Signed-off-by: Steven Liu 
---
  libavformat/hlsenc.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index 85d3955..0170b34 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -47,6 +47,7 @@ typedef enum {
  
  #define KEYSIZE 16

  #define LINE_BUFFER_SIZE 1024
+#define HLS_MICROSECOND_UNIT   100
  
  typedef struct HLSSegment {

  char filename[1024];
@@ -501,7 +502,7 @@ static int hls_append_segment(struct AVFormatContext *s, 
HLSContext *hls, double
  return AVERROR(ENOMEM);
  }
  if (replace_int_data_in_filename(hls->avf->filename, 
sizeof(hls->avf->filename),
-filename, 't',  (int64_t)round(100 * duration)) < 1) {
+filename, 't',  (int64_t)round(duration * HLS_MICROSECOND_UNIT)) 
< 1) {
  av_log(hls, AV_LOG_ERROR,
 "Invalid second level segment filename template '%s', "
  "you can try to remove second_level_segment_time 
flag\n",

I think it is good.

bb

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


Re: [FFmpeg-devel] [PATCH v2] avformat/hlsenc: improve the code readable of 1000000

2017-01-23 Thread James Almer
On 1/23/2017 8:01 AM, Steven Liu wrote:
> Reviewed-by: Bodecs Bela 
> Signed-off-by: Steven Liu 
> ---
>  libavformat/hlsenc.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
> index 85d3955..0170b34 100644
> --- a/libavformat/hlsenc.c
> +++ b/libavformat/hlsenc.c
> @@ -47,6 +47,7 @@ typedef enum {
>  
>  #define KEYSIZE 16
>  #define LINE_BUFFER_SIZE 1024
> +#define HLS_MICROSECOND_UNIT   100

You could instead use AV_TIME_BASE. It's more in line with the rest of the
codebase.

>  
>  typedef struct HLSSegment {
>  char filename[1024];
> @@ -501,7 +502,7 @@ static int hls_append_segment(struct AVFormatContext *s, 
> HLSContext *hls, double
>  return AVERROR(ENOMEM);
>  }
>  if (replace_int_data_in_filename(hls->avf->filename, 
> sizeof(hls->avf->filename),
> -filename, 't',  (int64_t)round(100 * duration)) < 1) {
> +filename, 't',  (int64_t)round(duration * 
> HLS_MICROSECOND_UNIT)) < 1) {
>  av_log(hls, AV_LOG_ERROR,
> "Invalid second level segment filename template '%s', 
> "
>  "you can try to remove second_level_segment_time 
> flag\n",
> 

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


Re: [FFmpeg-devel] [PATCH v2] avformat/hlsenc: improve the code readable of 1000000

2017-01-23 Thread Steven Liu
2017-01-23 22:14 GMT+08:00 James Almer :

> On 1/23/2017 8:01 AM, Steven Liu wrote:
> > Reviewed-by: Bodecs Bela 
> > Signed-off-by: Steven Liu 
> > ---
> >  libavformat/hlsenc.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
> > index 85d3955..0170b34 100644
> > --- a/libavformat/hlsenc.c
> > +++ b/libavformat/hlsenc.c
> > @@ -47,6 +47,7 @@ typedef enum {
> >
> >  #define KEYSIZE 16
> >  #define LINE_BUFFER_SIZE 1024
> > +#define HLS_MICROSECOND_UNIT   100
>
> You could instead use AV_TIME_BASE. It's more in line with the rest of the
> codebase.
>
No, the 1st version, Bodecs Bela has point the 100 is not AV_TIME_BASE
mean.

>
> >
> >  typedef struct HLSSegment {
> >  char filename[1024];
> > @@ -501,7 +502,7 @@ static int hls_append_segment(struct AVFormatContext
> *s, HLSContext *hls, double
> >  return AVERROR(ENOMEM);
> >  }
> >  if (replace_int_data_in_filename(hls->avf->filename,
> sizeof(hls->avf->filename),
> > -filename, 't',  (int64_t)round(100 * duration)) <
> 1) {
> > +filename, 't',  (int64_t)round(duration *
> HLS_MICROSECOND_UNIT)) < 1) {
> >  av_log(hls, AV_LOG_ERROR,
> > "Invalid second level segment filename template
> '%s', "
> >  "you can try to remove
> second_level_segment_time flag\n",
> >
>
> ___
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] GSoC 2017

2017-01-23 Thread Michael Niedermayer
Hi all

GSoC 2017 mentor org registration has opened a few days ago

Our current ideas page lists just a single mentor and single sugestion
http://trac.ffmpeg.org/wiki/SponsoringPrograms/GSoC/2017

About the Suggested project
It is a hard design task which few students would be
capable to do. I dont know if someone already knows a student who is
qualified for this and who would be available in FFmpeg GSoC but if not
I think finding a qualified student will be hard or require some luck
and success with a less than qualified student unlikely.
At least thats what my gut feeling says based on past years

About the number of ideas
one is not enough, and i think its a waste of time if we apply with
such short list, i doubt we would be accepted with one idea and one
mentor

About the number of mentors
one is not enough

we should have at least twice as many voluneer mentors as we want to
have accepted projects as each project needs mentor and backup
mentor.
In some of the past years I asked people one by one to find
volunteers, thats surprissingly alot of work so we need a more efficient
way.

Can we make a list of potential Mentors on the wiki ?
We will likely need to specify the number of potential mentors when
registering FFmpeg to GSoC 2017, we did had to in previous years.
I also suspect the number of slots we get is bound to a fraction of
this number so it is important that this number is correct and not
smaller from people being lazy and waiting till we know what students
and actual project proposals are available to us

IIRC google suggests that ideas pages are writen and maintained
year round. Now we have a list but some develoeprs seem to oppose some
of these old ideas, I would expect that for each objection against an
old idea a new has to be provided and the one objecting should
volunteer as mentor for it. Otherwise we might be short on ideas and
mentors

-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

In fact, the RIAA has been known to suggest that students drop out
of college or go to community college in order to be able to afford
settlements. -- The RIAA


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH v2] avformat/hlsenc: improve the code readable of 1000000

2017-01-23 Thread James Almer
On 1/23/2017 11:25 AM, Steven Liu wrote:
> 2017-01-23 22:14 GMT+08:00 James Almer :
> 
>> On 1/23/2017 8:01 AM, Steven Liu wrote:
>>> Reviewed-by: Bodecs Bela 
>>> Signed-off-by: Steven Liu 
>>> ---
>>>  libavformat/hlsenc.c | 3 ++-
>>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
>>> index 85d3955..0170b34 100644
>>> --- a/libavformat/hlsenc.c
>>> +++ b/libavformat/hlsenc.c
>>> @@ -47,6 +47,7 @@ typedef enum {
>>>
>>>  #define KEYSIZE 16
>>>  #define LINE_BUFFER_SIZE 1024
>>> +#define HLS_MICROSECOND_UNIT   100
>>
>> You could instead use AV_TIME_BASE. It's more in line with the rest of the
>> codebase.
>>
> No, the 1st version, Bodecs Bela has point the 100 is not AV_TIME_BASE
> mean.

I'm not sure i understand his reasoning, seeing that AV_TIME_BASE is
defined as 100 in avutil.h and i don't see it changing anytime soon,
but it's just a nit so not really important. This patch is good as is.

> 
>>
>>>
>>>  typedef struct HLSSegment {
>>>  char filename[1024];
>>> @@ -501,7 +502,7 @@ static int hls_append_segment(struct AVFormatContext
>> *s, HLSContext *hls, double
>>>  return AVERROR(ENOMEM);
>>>  }
>>>  if (replace_int_data_in_filename(hls->avf->filename,
>> sizeof(hls->avf->filename),
>>> -filename, 't',  (int64_t)round(100 * duration)) <
>> 1) {
>>> +filename, 't',  (int64_t)round(duration *
>> HLS_MICROSECOND_UNIT)) < 1) {
>>>  av_log(hls, AV_LOG_ERROR,
>>> "Invalid second level segment filename template
>> '%s', "
>>>  "you can try to remove
>> second_level_segment_time flag\n",
>>>
>>
>> ___
>> ffmpeg-devel mailing list
>> ffmpeg-devel@ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
> ___
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 

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


Re: [FFmpeg-devel] GSoC 2017

2017-01-23 Thread Ronald S. Bultje
Hi,

On Mon, Jan 23, 2017 at 9:39 AM, Michael Niedermayer 
wrote:

> IIRC google suggests that ideas pages are writen and maintained
> year round. Now we have a list but some develoeprs seem to oppose some
> of these old ideas, I would expect that for each objection against an
> old idea a new has to be provided and the one objecting should
> volunteer as mentor for it. Otherwise we might be short on ideas and
> mentors


I don't think this is a good idea. But I'm open to being a mentor this
year. I'll come up with a good idea.

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


Re: [FFmpeg-devel] [PATCH v2] avformat/hlsenc: improve the code readable of 1000000

2017-01-23 Thread Bodecs Bela



2017.01.23. 15:55 keltezéssel, James Almer írta:

On 1/23/2017 11:25 AM, Steven Liu wrote:

2017-01-23 22:14 GMT+08:00 James Almer :


On 1/23/2017 8:01 AM, Steven Liu wrote:

Reviewed-by: Bodecs Bela 
Signed-off-by: Steven Liu 
---
  libavformat/hlsenc.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index 85d3955..0170b34 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -47,6 +47,7 @@ typedef enum {

  #define KEYSIZE 16
  #define LINE_BUFFER_SIZE 1024
+#define HLS_MICROSECOND_UNIT   100

You could instead use AV_TIME_BASE. It's more in line with the rest of the
codebase.


No, the 1st version, Bodecs Bela has point the 100 is not AV_TIME_BASE
mean.

I'm not sure i understand his reasoning, seeing that AV_TIME_BASE is
defined as 100 in avutil.h and i don't see it changing anytime soon,
but it's just a nit so not really important. This patch is good as is.
I used 100 because the duration is in seconds and the replacement 
should be in microseconds.

The filename will contain the duration in microseconds.
So this is a "seconds  to microseconds" conversion.  It would be a 
mistake to use AV_TIME_BASE here, because i think it is a coincindence 
that the 2 numbers is the same.

We want ot use microseconds in filenames not AV_TIME_BASE units.
Maybe a comment should be added to the code about it.

The reasoning behind to put duration in microseconds into filename 
instead of seconds was to avoid comma in filename.



  typedef struct HLSSegment {
  char filename[1024];
@@ -501,7 +502,7 @@ static int hls_append_segment(struct AVFormatContext

*s, HLSContext *hls, double

  return AVERROR(ENOMEM);
  }
  if (replace_int_data_in_filename(hls->avf->filename,

sizeof(hls->avf->filename),

-filename, 't',  (int64_t)round(100 * duration)) <

1) {

+filename, 't',  (int64_t)round(duration *

HLS_MICROSECOND_UNIT)) < 1) {

  av_log(hls, AV_LOG_ERROR,
 "Invalid second level segment filename template

'%s', "

  "you can try to remove

second_level_segment_time flag\n",
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


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


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


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


Re: [FFmpeg-devel] Implemented h264 timing SEI info to ffprobe. Review process?

2017-01-23 Thread wm4
On Mon, 23 Jan 2017 14:43:36 +0100
Carl Eugen Hoyos  wrote:

> 2017-01-22 20:31 GMT+01:00 Jordi Cenzano :
> 
> > It woud be great some guidance on that.  
> 
> Please split the libavutil change from the h264 change and remove
> unrelated changes like additional empty lines.
> I suspect you cannot insert something in the middle of AVFrame,
> move it to the end.
> 
> Developers may oppose the libavutil change but you will only find
> out if you send the patch;-(

It's quite likely that least some adjustments will be requested, but
all to its time.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] avfilter: add EIA-608 line extractor

2017-01-23 Thread Paul B Mahol
On 1/17/17, Paul B Mahol  wrote:
> Signed-off-by: Dave Rice 
> Signed-off-by: Paul B Mahol 
> ---
>  doc/filters.texi|  70 
>  libavfilter/Makefile|   1 +
>  libavfilter/allfilters.c|   1 +
>  libavfilter/vf_readeia608.c | 268
> 
>  4 files changed, 340 insertions(+)
>  create mode 100644 libavfilter/vf_readeia608.c
>

Gonna push this soon.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH v2] avformat/hlsenc: improve the code readable of 1000000

2017-01-23 Thread wm4
On Mon, 23 Jan 2017 19:01:14 +0800
Steven Liu  wrote:

> Reviewed-by: Bodecs Bela 
> Signed-off-by: Steven Liu 
> ---
>  libavformat/hlsenc.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
> index 85d3955..0170b34 100644
> --- a/libavformat/hlsenc.c
> +++ b/libavformat/hlsenc.c
> @@ -47,6 +47,7 @@ typedef enum {
>  
>  #define KEYSIZE 16
>  #define LINE_BUFFER_SIZE 1024
> +#define HLS_MICROSECOND_UNIT   100
>  
>  typedef struct HLSSegment {
>  char filename[1024];
> @@ -501,7 +502,7 @@ static int hls_append_segment(struct AVFormatContext *s, 
> HLSContext *hls, double
>  return AVERROR(ENOMEM);
>  }
>  if (replace_int_data_in_filename(hls->avf->filename, 
> sizeof(hls->avf->filename),
> -filename, 't',  (int64_t)round(100 * duration)) < 1) {
> +filename, 't',  (int64_t)round(duration * 
> HLS_MICROSECOND_UNIT)) < 1) {
>  av_log(hls, AV_LOG_ERROR,
> "Invalid second level segment filename template '%s', 
> "
>  "you can try to remove second_level_segment_time 
> flag\n",

The commit message could be improved. It's barely English. (I'm not a
native speaker either, so I have no suggestion.)
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] hwcontext_cuda: implement frames_get_constraints

2017-01-23 Thread wm4
On Mon, 16 Jan 2017 10:01:41 -0800
Philip Langdale  wrote:

> On Mon, 16 Jan 2017 18:56:09 +0100
> wm4  wrote:
> 
> > On Mon, 16 Jan 2017 09:31:42 -0800
> > Philip Langdale  wrote:
> >   
> > > On Mon, 16 Jan 2017 16:44:16 +0100
> > > wm4  wrote:
> > > 
> > > > Copied and modified from hwcontext_qsv.c.
> > > > ---
> > > >  libavutil/hwcontext_cuda.c | 26 ++
> > > >  1 file changed, 26 insertions(+)
> > > > 
> > > > diff --git a/libavutil/hwcontext_cuda.c
> > > > b/libavutil/hwcontext_cuda.c index 5dd0d99272..ed595c3e0f 100644
> > > > --- a/libavutil/hwcontext_cuda.c
> > > > +++ b/libavutil/hwcontext_cuda.c
> > > > @@ -39,6 +39,31 @@ static const enum AVPixelFormat
> > > > supported_formats[] = { AV_PIX_FMT_P016,
> > > >  };
> > > >  
> > > > +static int cuda_frames_get_constraints(AVHWDeviceContext *ctx,
> > > > +   const void *hwconfig,
> > > > +   AVHWFramesConstraints
> > > > *constraints) +{
> > > > +int i;
> > > > +
> > > > +constraints->valid_sw_formats =
> > > > av_malloc_array(FF_ARRAY_ELEMS(supported_formats) + 1,
> > > > +
> > > > sizeof(*constraints->valid_sw_formats));
> > > > +if (!constraints->valid_sw_formats)
> > > > +return AVERROR(ENOMEM);
> > > > +
> > > > +for (i = 0; i < FF_ARRAY_ELEMS(supported_formats); i++)
> > > > +constraints->valid_sw_formats[i] = supported_formats[i];
> > > > +
> > > > constraints->valid_sw_formats[FF_ARRAY_ELEMS(supported_formats)]
> > > > = AV_PIX_FMT_NONE; +
> > > > +constraints->valid_hw_formats = av_malloc_array(2,
> > > > sizeof(*constraints->valid_hw_formats));
> > > > +if (!constraints->valid_hw_formats)
> > > > +return AVERROR(ENOMEM);  
> > > 
> > > Is it weird if this fails and valid_sw_formats succeeds? I guess
> > > that's up to how the caller handles the error.
> > 
> > It is, but the QSV code also did it this way.
> > 
> > And if we're completely honest, nobody really cares about tiny leaks
> > when tiny allocations fail (which in practice never ever happens
> > anyway).  
> 
> Yeah. The world is going to end if it ever happens.
> 
> Ship it.

Pushed, got tired of waiting for a response on the Libav ML.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] lavc/cuvid: fail early if GPU can't handle video resolution (v5)

2017-01-23 Thread Timo Rothenpieler
applied
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH] libavformat/tee: tee was passing a wrong option name for fifo's format_options

2017-01-23 Thread Felipe Astroza Araya
From: Felipe Astroza 

If fifo is enabled on tee muxer, ffmpeg exits because of an unknown option 
passed to fifo muxer.
Option name "format_options" was replaced by "format_opts" on tee muxer.

Signed-off-by: Felipe Astroza 
---
 libavformat/tee.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavformat/tee.c b/libavformat/tee.c
index 99259a7..dd1844a 100644
--- a/libavformat/tee.c
+++ b/libavformat/tee.c
@@ -208,7 +208,7 @@ static int open_slave(AVFormatContext *avf, char *slave, 
TeeSlave *tee_slave)
 if (ret < 0)
 goto end;
 
-ret = av_dict_set(&tee_slave->fifo_options, "format_options", 
format_options_str,
+ret = av_dict_set(&tee_slave->fifo_options, "format_opts", 
format_options_str,
   AV_DICT_DONT_STRDUP_VAL);
 if (ret < 0)
 goto end;
-- 
2.7.4

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


Re: [FFmpeg-devel] GSoC 2017

2017-01-23 Thread Lou Logan
On Mon, 23 Jan 2017 15:39:09 +0100, Michael Niedermayer wrote:

> IIRC google suggests that ideas pages are writen and maintained
> year round.

I made a "master list" on the wiki several years ago. The intent was to
have a single, maintained repository for ideas that we could pick and
choose from instead of looking at a dozen pages scavenging unused ideas
from past years. Also, I assumed it would be easier to dump ideas to it
when they came since it wouldn't be associated with any (past) year.
However, it was ignored or forgotten and I deleted it after a few years
of non-use.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH] avcodec/h264dec: Fix regression with "make fate-h264-attachment-631 THREADS=8"

2017-01-23 Thread Michael Niedermayer
Found-by: ubitux
Signed-off-by: Michael Niedermayer 
---
 libavcodec/h264_picture.c | 2 +-
 libavcodec/h264dec.c  | 4 +++-
 libavcodec/h264dec.h  | 2 ++
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/libavcodec/h264_picture.c b/libavcodec/h264_picture.c
index f634d2a1a7..2313eff5d7 100644
--- a/libavcodec/h264_picture.c
+++ b/libavcodec/h264_picture.c
@@ -185,7 +185,7 @@ int ff_h264_field_end(H264Context *h, H264SliceContext *sl, 
int in_setup)
 ff_vdpau_h264_picture_complete(h);
 #endif
 
-if (!in_setup && !h->droppable)
+if (!in_setup && !h->droppable && h->has_slice)
 ff_thread_report_progress(&h->cur_pic_ptr->tf, INT_MAX,
   h->picture_structure == PICT_BOTTOM_FIELD);
 emms_c();
diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c
index 4ecaec267c..6f2bd79628 100644
--- a/libavcodec/h264dec.c
+++ b/libavcodec/h264dec.c
@@ -607,6 +607,7 @@ static int decode_nal_units(H264Context *h, const uint8_t 
*buf, int buf_size)
 int idr_cleared=0;
 int i, ret = 0;
 
+h->has_slice = 0;
 h->nal_unit_type= 0;
 
 h->max_contexts = h->nb_slice_ctx;
@@ -672,6 +673,7 @@ again:
 h->has_recovery_point = 1;
 case H264_NAL_SLICE:
 sl->gb = nal->gb;
+h->has_slice = 1;
 
 if ((err = ff_h264_decode_slice_header(h, sl, nal)))
 break;
@@ -839,7 +841,7 @@ end:
 }
 #endif /* CONFIG_ERROR_RESILIENCE */
 /* clean up */
-if (h->cur_pic_ptr && !h->droppable) {
+if (h->cur_pic_ptr && !h->droppable && h->has_slice) {
 ff_thread_report_progress(&h->cur_pic_ptr->tf, INT_MAX,
   h->picture_structure == PICT_BOTTOM_FIELD);
 }
diff --git a/libavcodec/h264dec.h b/libavcodec/h264dec.h
index c8b7e663b3..52e2e55b2a 100644
--- a/libavcodec/h264dec.h
+++ b/libavcodec/h264dec.h
@@ -541,6 +541,8 @@ typedef struct H264Context {
 
 int has_recovery_point;
 
+int has_slice;
+
 int missing_fields;
 
 /* for frame threading, this is set to 1
-- 
2.11.0

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


Re: [FFmpeg-devel] [PATCH] avfilter: add EIA-608 line extractor

2017-01-23 Thread Marton Balint


On Mon, 23 Jan 2017, Paul B Mahol wrote:


On 1/17/17, Paul B Mahol  wrote:

Signed-off-by: Dave Rice 
Signed-off-by: Paul B Mahol 
---
 doc/filters.texi|  70 
 libavfilter/Makefile|   1 +
 libavfilter/allfilters.c|   1 +
 libavfilter/vf_readeia608.c | 268

 4 files changed, 340 insertions(+)
 create mode 100644 libavfilter/vf_readeia608.c



Gonna push this soon.


You may consider using the bit slicer only from libzvbi, I have used it 
for teletext in libavdevice/decklink_dec.cpp, in the 
teletext_data_unit_from_vbi_data function.


I have copied the initialization variables from the zvbi source 
raw_decoder.c, maybe you can do the same with CC.


Regards,
Marton
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH] avcodec/h264dec: Fix regression with "make fate-h264-attachment-631 THREADS=8"

2017-01-23 Thread Michael Niedermayer
This treats the case of no slices like no frames which it basically is.

The field is added to the context as other nal related fields are also there
and passing the has_slices field per *arguments is ugly and not consistent

Found-by: ubitux
Signed-off-by: Michael Niedermayer 
---
 libavcodec/h264dec.c | 6 --
 libavcodec/h264dec.h | 2 ++
 tests/fate/h264.mak  | 2 +-
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c
index 4ecaec267c..41e6ce458c 100644
--- a/libavcodec/h264dec.c
+++ b/libavcodec/h264dec.c
@@ -607,6 +607,7 @@ static int decode_nal_units(H264Context *h, const uint8_t 
*buf, int buf_size)
 int idr_cleared=0;
 int i, ret = 0;
 
+h->has_slice = 0;
 h->nal_unit_type= 0;
 
 h->max_contexts = h->nb_slice_ctx;
@@ -672,6 +673,7 @@ again:
 h->has_recovery_point = 1;
 case H264_NAL_SLICE:
 sl->gb = nal->gb;
+h->has_slice = 1;
 
 if ((err = ff_h264_decode_slice_header(h, sl, nal)))
 break;
@@ -839,7 +841,7 @@ end:
 }
 #endif /* CONFIG_ERROR_RESILIENCE */
 /* clean up */
-if (h->cur_pic_ptr && !h->droppable) {
+if (h->cur_pic_ptr && !h->droppable && h->has_slice) {
 ff_thread_report_progress(&h->cur_pic_ptr->tf, INT_MAX,
   h->picture_structure == PICT_BOTTOM_FIELD);
 }
@@ -1055,7 +1057,7 @@ static int h264_decode_frame(AVCodecContext *avctx, void 
*data,
 return send_next_delayed_frame(h, pict, got_frame, buf_index);
 }
 
-if (!(avctx->flags2 & AV_CODEC_FLAG2_CHUNKS) && !h->cur_pic_ptr) {
+if (!(avctx->flags2 & AV_CODEC_FLAG2_CHUNKS) && (!h->cur_pic_ptr || 
!h->has_slice)) {
 if (avctx->skip_frame >= AVDISCARD_NONREF ||
 buf_size >= 4 && !memcmp("Q264", buf, 4))
 return buf_size;
diff --git a/libavcodec/h264dec.h b/libavcodec/h264dec.h
index c8b7e663b3..fa5c98ee90 100644
--- a/libavcodec/h264dec.h
+++ b/libavcodec/h264dec.h
@@ -446,6 +446,8 @@ typedef struct H264Context {
 int nal_ref_idc;
 int nal_unit_type;
 
+int has_slice;  ///< slice NAL is found in the packet, set by 
decode_nal_units, its state does not need to be preserved outside 
h264_decode_frame()
+
 /**
  * Used to parse AVC variant of H.264
  */
diff --git a/tests/fate/h264.mak b/tests/fate/h264.mak
index d40681f9c9..1f6e5f3947 100644
--- a/tests/fate/h264.mak
+++ b/tests/fate/h264.mak
@@ -424,7 +424,7 @@ fate-h264-extreme-plane-pred: CMD = 
framemd5 -i $(TARGET_SAM
 fate-h264-interlace-crop: CMD = framecrc -i 
$(TARGET_SAMPLES)/h264/interlaced_crop.mp4 -vframes 3
 fate-h264-brokensps-2580: CMD = framecrc -i 
$(TARGET_SAMPLES)/h264/brokensps.flv -vf format=yuv420p,scale=w=192:h=144 
-sws_flags bitexact+bilinear
 fate-h264-xavc-4389:  CMD = framecrc -i 
$(TARGET_SAMPLES)/h264/SonyXAVC_LongGOP_green_pixelation_early_Frames.MXF 
-pix_fmt yuv422p10le
-fate-h264-attachment-631: CMD = framecrc -i 
$(TARGET_SAMPLES)/h264/attachment631-small.mp4 -an -max_error_rate 0.95
+fate-h264-attachment-631: CMD = framecrc -i 
$(TARGET_SAMPLES)/h264/attachment631-small.mp4 -an -max_error_rate 0.96
 fate-h264-skip-nokey: CMD = framecrc -skip_frame 
nokey -i $(TARGET_SAMPLES)/h264/h264_intra_first-small.ts
 fate-h264-skip-nointra:   CMD = framecrc -skip_frame 
nointra -i $(TARGET_SAMPLES)/h264/h264_intra_first-small.ts
 fate-h264-intra-refresh-recovery: CMD = framecrc -i 
$(TARGET_SAMPLES)/h264/intra_refresh.h264 -frames:v 10
-- 
2.11.0

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


Re: [FFmpeg-devel] FFmpeg 3.3

2017-01-23 Thread Michael Niedermayer
On Mon, Jan 23, 2017 at 07:07:55AM +0100, Reto Kromer wrote:
> Michael Niedermayer wrote:
> 
> >Its a while since the last relase so ill make 3.3 within
> >the next week(s)
> 
> Thank you, Michael!
> 

> >I also intend to make some new point releases from the
> >currently maintained branches if someone wants to backport
> >something
> 
> I suggest to switch "Nash" 2.7.7 to the old releases (the
> last update has been made on 2016-04-30).

good idea, done that

thx


[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

No great genius has ever existed without some touch of madness. -- Aristotle


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] libavformat/tee: tee was passing a wrong option name for fifo's format_options

2017-01-23 Thread Michael Niedermayer
On Mon, Jan 23, 2017 at 02:55:31PM -0300, Felipe Astroza Araya wrote:
> From: Felipe Astroza 
> 
> If fifo is enabled on tee muxer, ffmpeg exits because of an unknown option 
> passed to fifo muxer.
> Option name "format_options" was replaced by "format_opts" on tee muxer.
> 
> Signed-off-by: Felipe Astroza 
> ---
>  libavformat/tee.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

applied

thx

[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I know you won't believe me, but the highest form of Human Excellence is
to question oneself and others. -- Socrates


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH] ffmpeg_opt.c: Introduce a -vstats_version option and document the existing -vstats format.

2017-01-23 Thread Sasi Inguva
Signed-off-by: Sasi Inguva 
---
 doc/ffmpeg.texi | 4 
 ffmpeg.c| 1 +
 ffmpeg.h| 1 +
 ffmpeg_opt.c| 3 +++
 4 files changed, 9 insertions(+)

diff --git a/doc/ffmpeg.texi b/doc/ffmpeg.texi
index b56bdbe261..cdea1a271f 100644
--- a/doc/ffmpeg.texi
+++ b/doc/ffmpeg.texi
@@ -636,6 +636,10 @@ Calculate PSNR of compressed frames.
 Dump video coding statistics to @file{vstats_HHMMSS.log}.
 @item -vstats_file @var{file}
 Dump video coding statistics to @var{file}.
+@item -vstats_version @var{file}
+Specifies which version of the vstats format to use. If version is 1, format is
+
+@code{frame= %5d q= %2.1f PSNR= %6.2f f_size= %6d s_size= %8.0fkB time= %0.3f 
br= %7.1fkbits/s avg_br= %7.1fkbits/s}
 @item -top[:@var{stream_specifier}] @var{n} (@emph{output,per-stream})
 top=1/bottom=0/auto=-1 field first
 @item -dc @var{precision}
diff --git a/ffmpeg.c b/ffmpeg.c
index 977708c069..d42adf86ee 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -1347,6 +1347,7 @@ static void do_video_stats(OutputStream *ost, int 
frame_size)
 enc = ost->enc_ctx;
 if (enc->codec_type == AVMEDIA_TYPE_VIDEO) {
 frame_number = ost->st->nb_frames;
+
 fprintf(vstats_file, "frame= %5d q= %2.1f ", frame_number,
 ost->quality / (float)FF_QP2LAMBDA);
 
diff --git a/ffmpeg.h b/ffmpeg.h
index 75bf50ec29..458bb8a3dc 100644
--- a/ffmpeg.h
+++ b/ffmpeg.h
@@ -597,6 +597,7 @@ extern char *videotoolbox_pixfmt;
 
 extern int filter_nbthreads;
 extern int filter_complex_nbthreads;
+extern int vstats_version;
 
 extern const AVIOInterruptCB int_cb;
 
diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c
index a1c02fc29b..b1a62e8620 100644
--- a/ffmpeg_opt.c
+++ b/ffmpeg_opt.c
@@ -121,6 +121,7 @@ int frame_bits_per_raw_sample = 0;
 float max_error_rate  = 2.0/3;
 int filter_nbthreads = 0;
 int filter_complex_nbthreads = 0;
+int vstats_version = 1;
 
 
 static int intra_only = 0;
@@ -3547,6 +3548,8 @@ const OptionDef options[] = {
 "dump video coding statistics to file" },
 { "vstats_file",  OPT_VIDEO | HAS_ARG | OPT_EXPERT ,   
  { .func_arg = opt_vstats_file },
 "dump video coding statistics to file", "file" },
+{ "vstats_version",  OPT_VIDEO | OPT_INT | HAS_ARG | OPT_EXPERT ,  
  { &vstats_version },
+"Version of the vstats format to use."},
 { "vf",   OPT_VIDEO | HAS_ARG  | OPT_PERFILE | OPT_OUTPUT, 
  { .func_arg = opt_video_filters },
 "set video filters", "filter_graph" },
 { "intra_matrix", OPT_VIDEO | HAS_ARG | OPT_EXPERT  | OPT_STRING | 
OPT_SPEC |
-- 
2.11.0.483.g087da7b7c-goog

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


Re: [FFmpeg-devel] [PATCH] ffmpeg.c: Add output file index and stream index to vstats file.

2017-01-23 Thread Sasi Inguva
Thanks. I have sent a patch introducing -vstats_version option. PTAL.

On Sat, Jan 21, 2017 at 3:52 AM, Michael Niedermayer 
wrote:

> On Fri, Jan 20, 2017 at 07:31:09PM -0800, Sasi Inguva wrote:
> > Couldn't find any version that relates to vstats. There is nothing that
> > says format may change any time , but there is no defined format either.
> > Let me know the version enum I have to update if I need to.
>
> i dont think theres a enum
> I think the way to resolve this is to send a patch that updates the
> docs and either state that vstats format can change at any time or
> that it cannot in which case something like a -vtstats_version
> parameter would need to be added
>
> When the docs patch passes review, that is everyone is happy with the
> solution it describes then the change with or without a version
> check which either way then matches the docs can be pushed
>
> thx
>
> [...]
>
> --
> Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> Dictatorship: All citizens are under surveillance, all their steps and
> actions recorded, for the politicians to enforce control.
> Democracy: All politicians are under surveillance, all their steps and
> actions recorded, for the citizens to enforce control.
>
> ___
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
>
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH v2] avformat/hlsenc: improve the code readable of 1000000

2017-01-23 Thread Steven Liu
2017-01-23 23:18 GMT+08:00 wm4 :

> On Mon, 23 Jan 2017 19:01:14 +0800
> Steven Liu  wrote:
>
> > Reviewed-by: Bodecs Bela 
> > Signed-off-by: Steven Liu 
> > ---
> >  libavformat/hlsenc.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
> > index 85d3955..0170b34 100644
> > --- a/libavformat/hlsenc.c
> > +++ b/libavformat/hlsenc.c
> > @@ -47,6 +47,7 @@ typedef enum {
> >
> >  #define KEYSIZE 16
> >  #define LINE_BUFFER_SIZE 1024
> > +#define HLS_MICROSECOND_UNIT   100
> >
> >  typedef struct HLSSegment {
> >  char filename[1024];
> > @@ -501,7 +502,7 @@ static int hls_append_segment(struct AVFormatContext
> *s, HLSContext *hls, double
> >  return AVERROR(ENOMEM);
> >  }
> >  if (replace_int_data_in_filename(hls->avf->filename,
> sizeof(hls->avf->filename),
> > -filename, 't',  (int64_t)round(100 * duration)) <
> 1) {
> > +filename, 't',  (int64_t)round(duration *
> HLS_MICROSECOND_UNIT)) < 1) {
> >  av_log(hls, AV_LOG_ERROR,
> > "Invalid second level segment filename template
> '%s', "
> >  "you can try to remove
> second_level_segment_time flag\n",
>
> The commit message could be improved. It's barely English. (I'm not a
> native speaker either, so I have no suggestion.)
> ___
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>

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


Re: [FFmpeg-devel] [PATCH 2/2] avformat/flvenc: refine the flvenc shift_data code

2017-01-23 Thread Steven Liu
2017-01-23 17:05 GMT+08:00 Steven Liu :

> refine the flvenc shift_data move data option
>
> Signed-off-by: Steven Liu 
> ---
>  libavformat/flvenc.c | 12 +++-
>  1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/libavformat/flvenc.c b/libavformat/flvenc.c
> index 5714321..d7506c5 100644
> --- a/libavformat/flvenc.c
> +++ b/libavformat/flvenc.c
> @@ -626,13 +626,15 @@ static int shift_data(AVFormatContext *s)
>  avio_seek(read_pb, flv->keyframes_info_offset, SEEK_SET);
>  pos = avio_tell(read_pb);
>
> -/* shift data by chunk of at most keyframe *filepositions* and
> *times* size */
> +#define READ_BLOCK do {
>\
>  read_size[read_buf_id] = avio_read(read_pb, read_buf[read_buf_id],
> metadata_size);  \
> -read_buf_id ^= 1;
> -do {
> +read_buf_id ^= 1;
>\
> +} while (0)
>
> -read_size[read_buf_id] = avio_read(read_pb,
> read_buf[read_buf_id], metadata_size);  \
> -read_buf_id ^= 1;
> +/* shift data by chunk of at most keyframe *filepositions* and
> *times* size */
> +READ_BLOCK;
> +do {
> +READ_BLOCK;
>  n = read_size[read_buf_id];
>  if (n < 0)
>  break;
> --
> 2.10.1 (Apple Git-78)
>
>
>
> ___
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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


Re: [FFmpeg-devel] [PATCH] avcodec/h264dec: Fix regression with "make fate-h264-attachment-631 THREADS=8"

2017-01-23 Thread wm4
On Tue, 24 Jan 2017 00:38:15 +0100
Michael Niedermayer  wrote:

> This treats the case of no slices like no frames which it basically is.
> 
> The field is added to the context as other nal related fields are also there
> and passing the has_slices field per *arguments is ugly and not consistent
> 
> Found-by: ubitux
> Signed-off-by: Michael Niedermayer 
> ---
>  libavcodec/h264dec.c | 6 --
>  libavcodec/h264dec.h | 2 ++
>  tests/fate/h264.mak  | 2 +-
>  3 files changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c
> index 4ecaec267c..41e6ce458c 100644
> --- a/libavcodec/h264dec.c
> +++ b/libavcodec/h264dec.c
> @@ -607,6 +607,7 @@ static int decode_nal_units(H264Context *h, const uint8_t 
> *buf, int buf_size)
>  int idr_cleared=0;
>  int i, ret = 0;
>  
> +h->has_slice = 0;
>  h->nal_unit_type= 0;
>  
>  h->max_contexts = h->nb_slice_ctx;
> @@ -672,6 +673,7 @@ again:
>  h->has_recovery_point = 1;
>  case H264_NAL_SLICE:
>  sl->gb = nal->gb;
> +h->has_slice = 1;
>  
>  if ((err = ff_h264_decode_slice_header(h, sl, nal)))
>  break;
> @@ -839,7 +841,7 @@ end:
>  }
>  #endif /* CONFIG_ERROR_RESILIENCE */
>  /* clean up */
> -if (h->cur_pic_ptr && !h->droppable) {
> +if (h->cur_pic_ptr && !h->droppable && h->has_slice) {
>  ff_thread_report_progress(&h->cur_pic_ptr->tf, INT_MAX,
>h->picture_structure == PICT_BOTTOM_FIELD);
>  }
> @@ -1055,7 +1057,7 @@ static int h264_decode_frame(AVCodecContext *avctx, 
> void *data,
>  return send_next_delayed_frame(h, pict, got_frame, buf_index);
>  }
>  
> -if (!(avctx->flags2 & AV_CODEC_FLAG2_CHUNKS) && !h->cur_pic_ptr) {
> +if (!(avctx->flags2 & AV_CODEC_FLAG2_CHUNKS) && (!h->cur_pic_ptr || 
> !h->has_slice)) {
>  if (avctx->skip_frame >= AVDISCARD_NONREF ||
>  buf_size >= 4 && !memcmp("Q264", buf, 4))
>  return buf_size;
> diff --git a/libavcodec/h264dec.h b/libavcodec/h264dec.h
> index c8b7e663b3..fa5c98ee90 100644
> --- a/libavcodec/h264dec.h
> +++ b/libavcodec/h264dec.h
> @@ -446,6 +446,8 @@ typedef struct H264Context {
>  int nal_ref_idc;
>  int nal_unit_type;
>  
> +int has_slice;  ///< slice NAL is found in the packet, set by 
> decode_nal_units, its state does not need to be preserved outside 
> h264_decode_frame()
> +
>  /**
>   * Used to parse AVC variant of H.264
>   */
> diff --git a/tests/fate/h264.mak b/tests/fate/h264.mak
> index d40681f9c9..1f6e5f3947 100644
> --- a/tests/fate/h264.mak
> +++ b/tests/fate/h264.mak
> @@ -424,7 +424,7 @@ fate-h264-extreme-plane-pred: CMD = 
> framemd5 -i $(TARGET_SAM
>  fate-h264-interlace-crop: CMD = framecrc -i 
> $(TARGET_SAMPLES)/h264/interlaced_crop.mp4 -vframes 3
>  fate-h264-brokensps-2580: CMD = framecrc -i 
> $(TARGET_SAMPLES)/h264/brokensps.flv -vf format=yuv420p,scale=w=192:h=144 
> -sws_flags bitexact+bilinear
>  fate-h264-xavc-4389:  CMD = framecrc -i 
> $(TARGET_SAMPLES)/h264/SonyXAVC_LongGOP_green_pixelation_early_Frames.MXF 
> -pix_fmt yuv422p10le
> -fate-h264-attachment-631: CMD = framecrc -i 
> $(TARGET_SAMPLES)/h264/attachment631-small.mp4 -an -max_error_rate 0.95
> +fate-h264-attachment-631: CMD = framecrc -i 
> $(TARGET_SAMPLES)/h264/attachment631-small.mp4 -an -max_error_rate 0.96

Any reason for this part of the change? It looks to me like the patch
is only fixing some regressed logic.

>  fate-h264-skip-nokey: CMD = framecrc -skip_frame 
> nokey -i $(TARGET_SAMPLES)/h264/h264_intra_first-small.ts
>  fate-h264-skip-nointra:   CMD = framecrc -skip_frame 
> nointra -i $(TARGET_SAMPLES)/h264/h264_intra_first-small.ts
>  fate-h264-intra-refresh-recovery: CMD = framecrc -i 
> $(TARGET_SAMPLES)/h264/intra_refresh.h264 -frames:v 10

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