On Fri, Jun 10, 2016 at 04:28:55AM +0200, Michael Niedermayer wrote: > On Thu, Jun 09, 2016 at 04:35:02PM +0200, Clément Bœsch wrote: > > On Thu, Jun 09, 2016 at 03:59:30PM +0200, Clément Bœsch wrote: > > > On Thu, Jun 09, 2016 at 01:35:19PM +0000, Carl Eugen Hoyos wrote: > > > > Clément Bœsch <u <at> pkh.me> writes: > > > > > > > > > + if (b[3] == '#') > > > > > + return AVPROBE_SCORE_EXTENSION + 1; > > > > > + if (b[3] >= '0' && b[3] <= '9') > > > > > + return AVPROBE_SCORE_MAX - 1; > > > > > > > > Imo, this should be: > > > > if (b[3] == '#' || (b[3] >= '0' && b[3] <= '9')) > > > > return AVPROBE_SCORE_EXTENSION + 2; > > > > or similar > > > > > > > > I count 37 and 34 bits which is only a little more than > > > > the usual 32 bit for EXTENSION + 1. > > > > > > > > > > Sure. Changed locally, will push soon, thanks. > > > > > > > For some reasons it makes seeking with pgm somehow working. The reference > > test doesn't look that great IIUC, but seeking in these file with ffplay > > is fine AFAICT. > > it seems it messes with pgmyuv detection (which i think was filename > extension based) > > example: > ./ffmpeg -i matrixbench_mpeg2.mpg -pix_fmt yuv420p16be -vframes 1 test.pgmyuv > ./ffplay-ref test.pgmyuv > Input #0, image2, from 'test.pgmyuv':B vq= 0KB sq= 0B f=0/0 > Duration: 00:00:00.04, start: 0.000000, bitrate: 248835 kb/s > Stream #0:0: Video: pgmyuv, yuv420p16le, 720x576, 25 tbr, 25 tbn > > ./ffplay test.pgmyuv > Input #0, ppm_pipe, from 'test.pgmyuv':vq= 0KB sq= 0B f=0/0 > Duration: N/A, bitrate: N/A > Stream #0:0: Video: ppm, gray16le, 720x864, 25 tbr, 25 tbn, 25 tbc >
Yes, this is a good thing (same thing happens if you s/pgmyuv/png/). I now realize I forgot to attach the diff, so new patch attached. So the question is: are the FATE changes that affect the "pipe" tests OK? Playback and seeking in tests/data/lavf/{pbmpipe.pbm,ppmpipe.ppm, pgmpipe.pgm} now looks OK but the seek ref tests looks odd to me. -- Clément B.
From b3380ad077e2da8bf50505b904f96d22b50b1564 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20B=C5=93sch?= <clem...@stupeflix.com> Date: Wed, 8 Jun 2016 15:16:34 +0200 Subject: [PATCH] lavf/img2dec: add ppm pipe demuxer --- libavformat/Makefile | 1 + libavformat/allformats.c | 1 + libavformat/img2dec.c | 14 +++++++++++++ libavformat/version.h | 4 ++-- tests/ref/seek/lavf-pbmpipe | 50 ++++++++++++++++++++++++--------------------- tests/ref/seek/lavf-pgmpipe | 50 ++++++++++++++++++++++++--------------------- tests/ref/seek/lavf-ppmpipe | 50 ++++++++++++++++++++++++--------------------- 7 files changed, 99 insertions(+), 71 deletions(-) diff --git a/libavformat/Makefile b/libavformat/Makefile index 6684ead..6f473b0 100644 --- a/libavformat/Makefile +++ b/libavformat/Makefile @@ -229,6 +229,7 @@ OBJS-$(CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_PCX_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_PICTOR_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_PNG_PIPE_DEMUXER) += img2dec.o img2.o +OBJS-$(CONFIG_IMAGE_PPM_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_QDRAW_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_SGI_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER) += img2dec.o img2.o diff --git a/libavformat/allformats.c b/libavformat/allformats.c index ddf540c..0e3322f 100644 --- a/libavformat/allformats.c +++ b/libavformat/allformats.c @@ -359,6 +359,7 @@ void av_register_all(void) REGISTER_DEMUXER (IMAGE_PCX_PIPE, image_pcx_pipe); REGISTER_DEMUXER (IMAGE_PICTOR_PIPE, image_pictor_pipe); REGISTER_DEMUXER (IMAGE_PNG_PIPE, image_png_pipe); + REGISTER_DEMUXER (IMAGE_PPM_PIPE, image_ppm_pipe); REGISTER_DEMUXER (IMAGE_QDRAW_PIPE, image_qdraw_pipe); REGISTER_DEMUXER (IMAGE_SGI_PIPE, image_sgi_pipe); REGISTER_DEMUXER (IMAGE_SUNRAST_PIPE, image_sunrast_pipe); diff --git a/libavformat/img2dec.c b/libavformat/img2dec.c index 1b0e608..ea07633 100644 --- a/libavformat/img2dec.c +++ b/libavformat/img2dec.c @@ -862,6 +862,19 @@ static int webp_probe(AVProbeData *p) return 0; } +static int ppm_probe(AVProbeData *p) +{ + const uint8_t *b = p->buf; + + if (b[0] == 'P' && b[1] >= '0' && b[1] <= '7') { + while (b[2] == '\r') + b++; + if (b[2] == '\n' && (b[3] == '#' || (b[3] >= '0' && b[3] <= '9'))) + return AVPROBE_SCORE_EXTENSION + 2; + } + return 0; +} + #define IMAGEAUTO_DEMUXER(imgname, codecid)\ static const AVClass imgname ## _class = {\ .class_name = AV_STRINGIFY(imgname) " demuxer",\ @@ -891,6 +904,7 @@ IMAGEAUTO_DEMUXER(jpegls, AV_CODEC_ID_JPEGLS) IMAGEAUTO_DEMUXER(pcx, AV_CODEC_ID_PCX) IMAGEAUTO_DEMUXER(pictor, AV_CODEC_ID_PICTOR) IMAGEAUTO_DEMUXER(png, AV_CODEC_ID_PNG) +IMAGEAUTO_DEMUXER(ppm, AV_CODEC_ID_PPM) IMAGEAUTO_DEMUXER(qdraw, AV_CODEC_ID_QDRAW) IMAGEAUTO_DEMUXER(sgi, AV_CODEC_ID_SGI) IMAGEAUTO_DEMUXER(sunrast, AV_CODEC_ID_SUNRAST) diff --git a/libavformat/version.h b/libavformat/version.h index c92a23f..11fbbb3 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -32,8 +32,8 @@ // When bumping major check Ticket5467, 5421 for regressing // Also please add any ticket numbers that you belive might regress here #define LIBAVFORMAT_VERSION_MAJOR 57 -#define LIBAVFORMAT_VERSION_MINOR 37 -#define LIBAVFORMAT_VERSION_MICRO 101 +#define LIBAVFORMAT_VERSION_MINOR 38 +#define LIBAVFORMAT_VERSION_MICRO 100 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ LIBAVFORMAT_VERSION_MINOR, \ diff --git a/tests/ref/seek/lavf-pbmpipe b/tests/ref/seek/lavf-pbmpipe index 25bb68f..2782a9f 100644 --- a/tests/ref/seek/lavf-pbmpipe +++ b/tests/ref/seek/lavf-pbmpipe @@ -1,27 +1,31 @@ -ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: -1 size:317075 -ret:-1 st:-1 flags:0 ts:-1.000000 -ret:-1 st:-1 flags:1 ts: 1.894167 -ret:-1 st: 0 flags:0 ts: 0.800000 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 12683 +ret: 0 st:-1 flags:0 ts:-1.000000 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 12683 +ret:-EINVAL st:-1 flags:1 ts: 1.894167 +ret:-EINVAL st: 0 flags:0 ts: 0.800000 ret:-1 st: 0 flags:1 ts:-0.320000 -ret:-1 st:-1 flags:0 ts: 2.576668 -ret:-1 st:-1 flags:1 ts: 1.470835 -ret:-1 st: 0 flags:0 ts: 0.360000 +ret:-EINVAL st:-1 flags:0 ts: 2.576668 +ret:-EINVAL st:-1 flags:1 ts: 1.470835 +ret:-EINVAL st: 0 flags:0 ts: 0.360000 ret:-1 st: 0 flags:1 ts:-0.760000 -ret:-1 st:-1 flags:0 ts: 2.153336 -ret:-1 st:-1 flags:1 ts: 1.047503 -ret:-1 st: 0 flags:0 ts:-0.040000 -ret:-1 st: 0 flags:1 ts: 2.840000 -ret:-1 st:-1 flags:0 ts: 1.730004 -ret:-1 st:-1 flags:1 ts: 0.624171 -ret:-1 st: 0 flags:0 ts:-0.480000 -ret:-1 st: 0 flags:1 ts: 2.400000 -ret:-1 st:-1 flags:0 ts: 1.306672 -ret:-1 st:-1 flags:1 ts: 0.200839 -ret:-1 st: 0 flags:0 ts:-0.920000 -ret:-1 st: 0 flags:1 ts: 2.000000 -ret:-1 st:-1 flags:0 ts: 0.883340 +ret:-EINVAL st:-1 flags:0 ts: 2.153336 +ret:-EINVAL st:-1 flags:1 ts: 1.047503 +ret: 0 st: 0 flags:0 ts:-0.040000 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 12683 +ret:-EINVAL st: 0 flags:1 ts: 2.840000 +ret:-EINVAL st:-1 flags:0 ts: 1.730004 +ret:-EINVAL st:-1 flags:1 ts: 0.624171 +ret: 0 st: 0 flags:0 ts:-0.480000 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 12683 +ret:-EINVAL st: 0 flags:1 ts: 2.400000 +ret:-EINVAL st:-1 flags:0 ts: 1.306672 +ret:-EINVAL st:-1 flags:1 ts: 0.200839 +ret: 0 st: 0 flags:0 ts:-0.920000 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 12683 +ret:-EINVAL st: 0 flags:1 ts: 2.000000 +ret:-EINVAL st:-1 flags:0 ts: 0.883340 ret:-1 st:-1 flags:1 ts:-0.222493 -ret:-1 st: 0 flags:0 ts: 2.680000 -ret:-1 st: 0 flags:1 ts: 1.560000 -ret:-1 st:-1 flags:0 ts: 0.460008 +ret:-EINVAL st: 0 flags:0 ts: 2.680000 +ret:-EINVAL st: 0 flags:1 ts: 1.560000 +ret:-EINVAL st:-1 flags:0 ts: 0.460008 ret:-1 st:-1 flags:1 ts:-0.645825 diff --git a/tests/ref/seek/lavf-pgmpipe b/tests/ref/seek/lavf-pgmpipe index 57b4e4a..66415c4 100644 --- a/tests/ref/seek/lavf-pgmpipe +++ b/tests/ref/seek/lavf-pgmpipe @@ -1,27 +1,31 @@ -ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: -1 size:2534775 -ret:-1 st:-1 flags:0 ts:-1.000000 -ret:-1 st:-1 flags:1 ts: 1.894167 -ret:-1 st: 0 flags:0 ts: 0.800000 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size:101391 +ret: 0 st:-1 flags:0 ts:-1.000000 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size:101391 +ret:-EINVAL st:-1 flags:1 ts: 1.894167 +ret:-EINVAL st: 0 flags:0 ts: 0.800000 ret:-1 st: 0 flags:1 ts:-0.320000 -ret:-1 st:-1 flags:0 ts: 2.576668 -ret:-1 st:-1 flags:1 ts: 1.470835 -ret:-1 st: 0 flags:0 ts: 0.360000 +ret:-EINVAL st:-1 flags:0 ts: 2.576668 +ret:-EINVAL st:-1 flags:1 ts: 1.470835 +ret:-EINVAL st: 0 flags:0 ts: 0.360000 ret:-1 st: 0 flags:1 ts:-0.760000 -ret:-1 st:-1 flags:0 ts: 2.153336 -ret:-1 st:-1 flags:1 ts: 1.047503 -ret:-1 st: 0 flags:0 ts:-0.040000 -ret:-1 st: 0 flags:1 ts: 2.840000 -ret:-1 st:-1 flags:0 ts: 1.730004 -ret:-1 st:-1 flags:1 ts: 0.624171 -ret:-1 st: 0 flags:0 ts:-0.480000 -ret:-1 st: 0 flags:1 ts: 2.400000 -ret:-1 st:-1 flags:0 ts: 1.306672 -ret:-1 st:-1 flags:1 ts: 0.200839 -ret:-1 st: 0 flags:0 ts:-0.920000 -ret:-1 st: 0 flags:1 ts: 2.000000 -ret:-1 st:-1 flags:0 ts: 0.883340 +ret:-EINVAL st:-1 flags:0 ts: 2.153336 +ret:-EINVAL st:-1 flags:1 ts: 1.047503 +ret: 0 st: 0 flags:0 ts:-0.040000 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size:101391 +ret:-EINVAL st: 0 flags:1 ts: 2.840000 +ret:-EINVAL st:-1 flags:0 ts: 1.730004 +ret:-EINVAL st:-1 flags:1 ts: 0.624171 +ret: 0 st: 0 flags:0 ts:-0.480000 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size:101391 +ret:-EINVAL st: 0 flags:1 ts: 2.400000 +ret:-EINVAL st:-1 flags:0 ts: 1.306672 +ret:-EINVAL st:-1 flags:1 ts: 0.200839 +ret: 0 st: 0 flags:0 ts:-0.920000 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size:101391 +ret:-EINVAL st: 0 flags:1 ts: 2.000000 +ret:-EINVAL st:-1 flags:0 ts: 0.883340 ret:-1 st:-1 flags:1 ts:-0.222493 -ret:-1 st: 0 flags:0 ts: 2.680000 -ret:-1 st: 0 flags:1 ts: 1.560000 -ret:-1 st:-1 flags:0 ts: 0.460008 +ret:-EINVAL st: 0 flags:0 ts: 2.680000 +ret:-EINVAL st: 0 flags:1 ts: 1.560000 +ret:-EINVAL st:-1 flags:0 ts: 0.460008 ret:-1 st:-1 flags:1 ts:-0.645825 diff --git a/tests/ref/seek/lavf-ppmpipe b/tests/ref/seek/lavf-ppmpipe index 7087494..29a9425 100644 --- a/tests/ref/seek/lavf-ppmpipe +++ b/tests/ref/seek/lavf-ppmpipe @@ -1,27 +1,31 @@ -ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: -1 size:7603575 -ret:-1 st:-1 flags:0 ts:-1.000000 -ret:-1 st:-1 flags:1 ts: 1.894167 -ret:-1 st: 0 flags:0 ts: 0.800000 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size:304143 +ret: 0 st:-1 flags:0 ts:-1.000000 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size:304143 +ret:-EINVAL st:-1 flags:1 ts: 1.894167 +ret:-EINVAL st: 0 flags:0 ts: 0.800000 ret:-1 st: 0 flags:1 ts:-0.320000 -ret:-1 st:-1 flags:0 ts: 2.576668 -ret:-1 st:-1 flags:1 ts: 1.470835 -ret:-1 st: 0 flags:0 ts: 0.360000 +ret:-EINVAL st:-1 flags:0 ts: 2.576668 +ret:-EINVAL st:-1 flags:1 ts: 1.470835 +ret:-EINVAL st: 0 flags:0 ts: 0.360000 ret:-1 st: 0 flags:1 ts:-0.760000 -ret:-1 st:-1 flags:0 ts: 2.153336 -ret:-1 st:-1 flags:1 ts: 1.047503 -ret:-1 st: 0 flags:0 ts:-0.040000 -ret:-1 st: 0 flags:1 ts: 2.840000 -ret:-1 st:-1 flags:0 ts: 1.730004 -ret:-1 st:-1 flags:1 ts: 0.624171 -ret:-1 st: 0 flags:0 ts:-0.480000 -ret:-1 st: 0 flags:1 ts: 2.400000 -ret:-1 st:-1 flags:0 ts: 1.306672 -ret:-1 st:-1 flags:1 ts: 0.200839 -ret:-1 st: 0 flags:0 ts:-0.920000 -ret:-1 st: 0 flags:1 ts: 2.000000 -ret:-1 st:-1 flags:0 ts: 0.883340 +ret:-EINVAL st:-1 flags:0 ts: 2.153336 +ret:-EINVAL st:-1 flags:1 ts: 1.047503 +ret: 0 st: 0 flags:0 ts:-0.040000 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size:304143 +ret:-EINVAL st: 0 flags:1 ts: 2.840000 +ret:-EINVAL st:-1 flags:0 ts: 1.730004 +ret:-EINVAL st:-1 flags:1 ts: 0.624171 +ret: 0 st: 0 flags:0 ts:-0.480000 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size:304143 +ret:-EINVAL st: 0 flags:1 ts: 2.400000 +ret:-EINVAL st:-1 flags:0 ts: 1.306672 +ret:-EINVAL st:-1 flags:1 ts: 0.200839 +ret: 0 st: 0 flags:0 ts:-0.920000 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size:304143 +ret:-EINVAL st: 0 flags:1 ts: 2.000000 +ret:-EINVAL st:-1 flags:0 ts: 0.883340 ret:-1 st:-1 flags:1 ts:-0.222493 -ret:-1 st: 0 flags:0 ts: 2.680000 -ret:-1 st: 0 flags:1 ts: 1.560000 -ret:-1 st:-1 flags:0 ts: 0.460008 +ret:-EINVAL st: 0 flags:0 ts: 2.680000 +ret:-EINVAL st: 0 flags:1 ts: 1.560000 +ret:-EINVAL st:-1 flags:0 ts: 0.460008 ret:-1 st:-1 flags:1 ts:-0.645825 -- 2.8.3
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel