Re: [FFmpeg-devel] [PATCH] Factorize avpriv_mirror() out
On 04/01/15 12:32 AM, Michael Niedermayer wrote: > Signed-off-by: Michael Niedermayer > --- > libavcodec/dirac_dwt.c | 30 +++ > libavcodec/snow_dwt.c | 70 > +++- > libavfilter/transform.c| 14 ++--- > libavfilter/vf_owdenoise.c | 17 +++ > libavfilter/vf_sab.c | 19 ++-- > libavutil/common.h | 14 + > 6 files changed, 63 insertions(+), 101 deletions(-) libavutil/common.h is an installed header. Wouldn't it make more sense to use the av_ prefix like every other function above this one? ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
[FFmpeg-devel] [PATCH] Factorize avpriv_mirror() out
Signed-off-by: Michael Niedermayer --- libavcodec/dirac_dwt.c | 30 +++ libavcodec/snow_dwt.c | 70 +++- libavfilter/transform.c| 14 ++--- libavfilter/vf_owdenoise.c | 17 +++ libavfilter/vf_sab.c | 19 ++-- libavutil/common.h | 14 + 6 files changed, 63 insertions(+), 101 deletions(-) diff --git a/libavcodec/dirac_dwt.c b/libavcodec/dirac_dwt.c index 96d8bae..da2da75 100644 --- a/libavcodec/dirac_dwt.c +++ b/libavcodec/dirac_dwt.c @@ -26,16 +26,6 @@ #include "libavcodec/x86/dirac_dwt.h" -static inline int mirror(int v, int m) -{ -while ((unsigned)v > (unsigned)m) { -v = -v; -if (v < 0) -v += 2 * m; -} -return v; -} - static void vertical_compose53iL0(IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, int width) { @@ -307,8 +297,8 @@ static void spatial_compose_dirac53i_dy(DWTContext *d, int level, int width, int int y= cs->y; IDWTELEM *b[4] = { cs->b[0], cs->b[1] }; -b[2] = d->buffer + mirror(y+1, height-1)*stride; -b[3] = d->buffer + mirror(y+2, height-1)*stride; +b[2] = d->buffer + avpriv_mirror(y+1, height-1)*stride; +b[3] = d->buffer + avpriv_mirror(y+2, height-1)*stride; if(y+1<(unsigned)height) vertical_compose_l0(b[1], b[2], b[3], width); if(y+0<(unsigned)height) vertical_compose_h0(b[0], b[1], b[2], width); @@ -400,8 +390,8 @@ static void spatial_compose_daub97i_dy(DWTContext *d, int level, int width, int IDWTELEM *b[6]; for (i = 0; i < 4; i++) b[i] = cs->b[i]; -b[4] = d->buffer + mirror(y+3, height-1)*stride; -b[5] = d->buffer + mirror(y+4, height-1)*stride; +b[4] = d->buffer + avpriv_mirror(y+3, height-1)*stride; +b[5] = d->buffer + avpriv_mirror(y+4, height-1)*stride; if(y+3<(unsigned)height) vertical_compose_l1(b[3], b[4], b[5], width); if(y+2<(unsigned)height) vertical_compose_h1(b[2], b[3], b[4], width); @@ -419,17 +409,17 @@ static void spatial_compose_daub97i_dy(DWTContext *d, int level, int width, int static void spatial_compose97i_init2(DWTCompose *cs, IDWTELEM *buffer, int height, int stride) { -cs->b[0] = buffer + mirror(-3-1, height-1)*stride; -cs->b[1] = buffer + mirror(-3 , height-1)*stride; -cs->b[2] = buffer + mirror(-3+1, height-1)*stride; -cs->b[3] = buffer + mirror(-3+2, height-1)*stride; +cs->b[0] = buffer + avpriv_mirror(-3-1, height-1)*stride; +cs->b[1] = buffer + avpriv_mirror(-3 , height-1)*stride; +cs->b[2] = buffer + avpriv_mirror(-3+1, height-1)*stride; +cs->b[3] = buffer + avpriv_mirror(-3+2, height-1)*stride; cs->y = -3; } static void spatial_compose53i_init2(DWTCompose *cs, IDWTELEM *buffer, int height, int stride) { -cs->b[0] = buffer + mirror(-1-1, height-1)*stride; -cs->b[1] = buffer + mirror(-1 , height-1)*stride; +cs->b[0] = buffer + avpriv_mirror(-1-1, height-1)*stride; +cs->b[1] = buffer + avpriv_mirror(-1 , height-1)*stride; cs->y = -1; } diff --git a/libavcodec/snow_dwt.c b/libavcodec/snow_dwt.c index 986a6b9..ecba0ea 100644 --- a/libavcodec/snow_dwt.c +++ b/libavcodec/snow_dwt.c @@ -112,16 +112,6 @@ void ff_slice_buffer_destroy(slice_buffer *buf) av_freep(&buf->line); } -static inline int mirror(int v, int m) -{ -while ((unsigned)v > (unsigned)m) { -v = -v; -if (v < 0) -v += 2 * m; -} -return v; -} - static av_always_inline void lift(DWTELEM *dst, DWTELEM *src, DWTELEM *ref, int dst_step, int src_step, int ref_step, int width, int mul, int add, int shift, @@ -223,12 +213,12 @@ static void spatial_decompose53i(DWTELEM *buffer, DWTELEM *temp, int width, int height, int stride) { int y; -DWTELEM *b0 = buffer + mirror(-2 - 1, height - 1) * stride; -DWTELEM *b1 = buffer + mirror(-2, height - 1) * stride; +DWTELEM *b0 = buffer + avpriv_mirror(-2 - 1, height - 1) * stride; +DWTELEM *b1 = buffer + avpriv_mirror(-2, height - 1) * stride; for (y = -2; y < height; y += 2) { -DWTELEM *b2 = buffer + mirror(y + 1, height - 1) * stride; -DWTELEM *b3 = buffer + mirror(y + 2, height - 1) * stride; +DWTELEM *b2 = buffer + avpriv_mirror(y + 1, height - 1) * stride; +DWTELEM *b3 = buffer + avpriv_mirror(y + 2, height - 1) * stride; if (y + 1 < (unsigned)height) horizontal_decompose53i(b2, temp, width); @@ -296,14 +286,14 @@ static void spatial_decompose97i(DWTELEM *buffer, DWTELEM *temp, int width, int height, int stride) { int y; -DWTELEM *b0 = buffer + mirror(-4 - 1, height - 1) * stride; -DWTELEM *b1 = buffer + mirror(-4, height - 1) * stride; -DWTELEM *b2 = buffer + mirror(-4 + 1, height - 1) * strid
[FFmpeg-devel] [PATCH 1/2] libavfilter/unsharp opencl optimization
From: atitov --- libavfilter/unsharp.h | 4 ++ libavfilter/unsharp_opencl.c| 74 +++--- libavfilter/unsharp_opencl_kernel.h | 122 ++-- 3 files changed, 145 insertions(+), 55 deletions(-) diff --git a/libavfilter/unsharp.h b/libavfilter/unsharp.h index c2aed64..fc651c0 100644 --- a/libavfilter/unsharp.h +++ b/libavfilter/unsharp.h @@ -41,6 +41,10 @@ typedef struct { cl_kernel kernel_chroma; cl_mem cl_luma_mask; cl_mem cl_chroma_mask; +cl_mem cl_luma_mask_x; +cl_mem cl_chroma_mask_x; +cl_mem cl_luma_mask_y; +cl_mem cl_chroma_mask_y; int in_plane_size[8]; int out_plane_size[8]; int plane_num; diff --git a/libavfilter/unsharp_opencl.c b/libavfilter/unsharp_opencl.c index 5c6b5ef..1923cb3 100644 --- a/libavfilter/unsharp_opencl.c +++ b/libavfilter/unsharp_opencl.c @@ -87,11 +87,12 @@ end: return ret; } -static int compute_mask_matrix(cl_mem cl_mask_matrix, int step_x, int step_y) +static int copy_separable_masks(cl_mem cl_mask_x, cl_mem cl_mask_y, int step_x, int step_y) { -int i, j, ret = 0; -uint32_t *mask_matrix, *mask_x, *mask_y; -size_t size_matrix = sizeof(uint32_t) * (2 * step_x + 1) * (2 * step_y + 1); +int ret = 0; +uint32_t *mask_x, *mask_y; +size_t size_mask_x = sizeof(uint32_t) * (2 * step_x + 1); +size_t size_mask_y = sizeof(uint32_t) * (2 * step_y + 1); mask_x = av_mallocz_array(2 * step_x + 1, sizeof(uint32_t)); if (!mask_x) { ret = AVERROR(ENOMEM); @@ -102,37 +103,33 @@ static int compute_mask_matrix(cl_mem cl_mask_matrix, int step_x, int step_y) ret = AVERROR(ENOMEM); goto end; } -mask_matrix = av_mallocz(size_matrix); -if (!mask_matrix) { -ret = AVERROR(ENOMEM); -goto end; -} ret = compute_mask(step_x, mask_x); if (ret < 0) goto end; ret = compute_mask(step_y, mask_y); if (ret < 0) goto end; -for (j = 0; j < 2 * step_y + 1; j++) { -for (i = 0; i < 2 * step_x + 1; i++) { -mask_matrix[i + j * (2 * step_x + 1)] = mask_y[j] * mask_x[i]; -} -} -ret = av_opencl_buffer_write(cl_mask_matrix, (uint8_t *)mask_matrix, size_matrix); +ret = av_opencl_buffer_write(cl_mask_x, (uint8_t *)mask_x, size_mask_x); +ret = av_opencl_buffer_write(cl_mask_y, (uint8_t *)mask_y, size_mask_y); end: av_freep(&mask_x); av_freep(&mask_y); -av_freep(&mask_matrix); return ret; } static int generate_mask(AVFilterContext *ctx) { -UnsharpContext *unsharp = ctx->priv; -int i, ret = 0, step_x[2], step_y[2]; +cl_mem masks[4]; cl_mem mask_matrix[2]; +int i, ret = 0, step_x[2], step_y[2]; + +UnsharpContext *unsharp = ctx->priv; mask_matrix[0] = unsharp->opencl_ctx.cl_luma_mask; mask_matrix[1] = unsharp->opencl_ctx.cl_chroma_mask; +masks[0] = unsharp->opencl_ctx.cl_luma_mask_x; +masks[1] = unsharp->opencl_ctx.cl_luma_mask_y; +masks[2] = unsharp->opencl_ctx.cl_chroma_mask_x; +masks[3] = unsharp->opencl_ctx.cl_chroma_mask_y; step_x[0] = unsharp->luma.steps_x; step_x[1] = unsharp->chroma.steps_x; step_y[0] = unsharp->luma.steps_y; @@ -144,12 +141,16 @@ static int generate_mask(AVFilterContext *ctx) else unsharp->opencl_ctx.use_fast_kernels = 1; +if (!masks[0] || !masks[1] || !masks[2] || !masks[3]) { +av_log(ctx, AV_LOG_ERROR, "Luma mask and chroma mask should not be NULL\n"); +return AVERROR(EINVAL); +} if (!mask_matrix[0] || !mask_matrix[1]) { av_log(ctx, AV_LOG_ERROR, "Luma mask and chroma mask should not be NULL\n"); return AVERROR(EINVAL); } for (i = 0; i < 2; i++) { -ret = compute_mask_matrix(mask_matrix[i], step_x[i], step_y[i]); +ret = copy_separable_masks(masks[2*i], masks[2*i+1], step_x[i], step_y[i]); if (ret < 0) return ret; } @@ -184,7 +185,8 @@ int ff_opencl_apply_unsharp(AVFilterContext *ctx, AVFrame *in, AVFrame *out) ret = avpriv_opencl_set_parameter(&kernel1, FF_OPENCL_PARAM_INFO(unsharp->opencl_ctx.cl_inbuf), FF_OPENCL_PARAM_INFO(unsharp->opencl_ctx.cl_outbuf), - FF_OPENCL_PARAM_INFO(unsharp->opencl_ctx.cl_luma_mask), + FF_OPENCL_PARAM_INFO(unsharp->opencl_ctx.cl_luma_mask_x), + FF_OPENCL_PARAM_INFO(unsharp->opencl_ctx.cl_luma_mask_y), FF_OPENCL_PARAM_INFO(unsharp->luma.amount), FF_OPENCL_PARAM_INFO(unsharp->luma.scalebits), FF_OPENCL_PARAM_INFO(unsharp->luma.halfscale), @@ -201,7 +203,8 @@ int ff_opencl_apply_unsharp(AVFilterContext *ctx, AVFrame *in, AVFrame *out) ret
[FFmpeg-devel] [PATCH] avformat/aiffdec: only read codec tag when header size is ample
Signed-off-by: Peter Ross --- libavformat/aiffdec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavformat/aiffdec.c b/libavformat/aiffdec.c index 91ef2a4..6271c3d 100644 --- a/libavformat/aiffdec.c +++ b/libavformat/aiffdec.c @@ -116,13 +116,13 @@ static unsigned int get_aiff_header(AVFormatContext *s, int size, size -= 18; /* get codec id for AIFF-C */ -if (version == AIFF_C_VERSION1) { +if (version == AIFF_C_VERSION1 && size >= 4) { codec->codec_tag = avio_rl32(pb); codec->codec_id = ff_codec_get_id(ff_codec_aiff_tags, codec->codec_tag); size -= 4; } -if (version != AIFF_C_VERSION1 || codec->codec_id == AV_CODEC_ID_PCM_S16BE) { +if (version != AIFF_C_VERSION1 || size < 4 || codec->codec_id == AV_CODEC_ID_PCM_S16BE) { codec->codec_id = aiff_codec_get_id(codec->bits_per_coded_sample); codec->bits_per_coded_sample = av_get_bits_per_sample(codec->codec_id); aiff->block_duration = 1; -- 2.1.0 -- Peter (A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B) signature.asc Description: Digital signature ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH] x86/flacdsp: remove unneeded ifdeffery
On 29/12/14 5:05 PM, James Almer wrote: > x86inc can translate r*m into a register or stack on its own > > Signed-off-by: James Almer > --- > libavcodec/x86/flacdsp.asm | 18 +++--- > 1 file changed, 3 insertions(+), 15 deletions(-) Ping. ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
[FFmpeg-devel] [PATCH 2/2] avformat/flvdec: Add flv_trustheader option
This allows the 1 byte header to be ignored Fixes creation of an empty audio stream Found-by: cousin_luigi Signed-off-by: Michael Niedermayer --- libavformat/flvdec.c |7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c index 572268f..faf7885 100644 --- a/libavformat/flvdec.c +++ b/libavformat/flvdec.c @@ -42,6 +42,7 @@ typedef struct { const AVClass *class; ///< Class for private options. int trust_metadata; ///< configure streams according onMetaData +int trust_header; int wrong_dts;///< wrong dts due to negative cts uint8_t *new_extradata[FLV_STREAM_TYPE_NB]; int new_extradata_size[FLV_STREAM_TYPE_NB]; @@ -597,6 +598,7 @@ static int flv_read_metabody(AVFormatContext *s, int64_t next_pos) static int flv_read_header(AVFormatContext *s) { +FLVContext *flv = s->priv_data; int offset, flags; avio_skip(s->pb, 4); @@ -604,10 +606,10 @@ static int flv_read_header(AVFormatContext *s) s->ctx_flags |= AVFMTCTX_NOHEADER; -if (flags & FLV_HEADER_FLAG_HASVIDEO) +if (flv->trust_header && (flags & FLV_HEADER_FLAG_HASVIDEO)) if (!create_stream(s, AVMEDIA_TYPE_VIDEO)) return AVERROR(ENOMEM); -if (flags & FLV_HEADER_FLAG_HASAUDIO) +if (flv->trust_header && (flags & FLV_HEADER_FLAG_HASAUDIO)) if (!create_stream(s, AVMEDIA_TYPE_AUDIO)) return AVERROR(ENOMEM); // Flag doesn't indicate whether or not there is script-data present. Must @@ -1063,6 +1065,7 @@ static int flv_read_seek(AVFormatContext *s, int stream_index, #define VD AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_DECODING_PARAM static const AVOption options[] = { { "flv_metadata", "Allocate streams according to the onMetaData array", OFFSET(trust_metadata), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VD }, +{ "flv_trustheader", "Ignore 1byte header indicating the existence of A/V streams", OFFSET(trust_header), AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 1, VD }, { NULL } }; -- 1.7.9.5 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
[FFmpeg-devel] [PATCH 1/2] avformat/flvenc: omit more metadata elements which specific meaning
Signed-off-by: Michael Niedermayer --- libavformat/flvenc.c |8 1 file changed, 8 insertions(+) diff --git a/libavformat/flvenc.c b/libavformat/flvenc.c index 5468c4d..eb4c088 100644 --- a/libavformat/flvenc.c +++ b/libavformat/flvenc.c @@ -288,6 +288,14 @@ static void write_metadata(AVFormatContext *s, unsigned int ts) ||!strcmp(tag->key, "audiocodecid") ||!strcmp(tag->key, "duration") ||!strcmp(tag->key, "onMetaData") +||!strcmp(tag->key, "datasize") +||!strcmp(tag->key, "lasttimestamp") +||!strcmp(tag->key, "totalframes") +||!strcmp(tag->key, "hasAudio") +||!strcmp(tag->key, "hasVideo") +||!strcmp(tag->key, "hasCuePoints") +||!strcmp(tag->key, "hasMetadata") +||!strcmp(tag->key, "hasKeframes") ){ av_log(s, AV_LOG_DEBUG, "Ignoring metadata for %s\n", tag->key); continue; -- 1.7.9.5 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 2/2] Adding closed caption decoder
On Sat, Jan 03, 2015 at 12:57:04PM +0530, Anshul wrote: > On 01/03/2015 01:42 AM, Michael Niedermayer wrote: > > On Wed, Dec 31, 2014 at 07:09:33PM +0530, Anshul wrote: [..] > Makefile |1 > allcodecs.c|1 > ccaption_dec.c | 361 > + > 3 files changed, 363 insertions(+) > 54d4896ef8724994e1022eec6a9c79d0cddec29d > 0001-Adding-Closed-caption-Support.patch > From 17a564409b84fc18293833cc3f2151792209bb8b Mon Sep 17 00:00:00 2001 > From: Anshul Maheshwari > Date: Sat, 3 Jan 2015 12:40:35 +0530 > Subject: [PATCH 1/2] Adding Closed caption Support > > Signed-off-by: Anshul Maheshwari > > To test Closed caption use following command > /ffmpeg -f lavfi -i > "movie=/home/a141982112/test_videos/Starship_Troopers.vob[out0+subcc]" -map s > some.srt > --- > libavcodec/Makefile | 1 + > libavcodec/allcodecs.c| 1 + > libavcodec/ccaption_dec.c | 361 > ++ > 3 files changed, 363 insertions(+) > create mode 100644 libavcodec/ccaption_dec.c > > diff --git a/libavcodec/Makefile b/libavcodec/Makefile > index 107661b..33051c4 100644 > --- a/libavcodec/Makefile > +++ b/libavcodec/Makefile > @@ -173,6 +173,7 @@ OBJS-$(CONFIG_BRENDER_PIX_DECODER) += brenderpix.o > OBJS-$(CONFIG_C93_DECODER) += c93.o > OBJS-$(CONFIG_CAVS_DECODER)+= cavs.o cavsdec.o cavsdsp.o \ >cavsdata.o mpeg12data.o > +OBJS-$(CONFIG_CCAPTION_DECODER)+= ccaption_dec.o > OBJS-$(CONFIG_CDGRAPHICS_DECODER) += cdgraphics.o > OBJS-$(CONFIG_CDXL_DECODER)+= cdxl.o > OBJS-$(CONFIG_CINEPAK_DECODER) += cinepak.o > diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c > index 8ceee2f..ef77dec 100644 > --- a/libavcodec/allcodecs.c > +++ b/libavcodec/allcodecs.c > @@ -481,6 +481,7 @@ void avcodec_register_all(void) > /* subtitles */ > REGISTER_ENCDEC (SSA, ssa); > REGISTER_ENCDEC (ASS, ass); > +REGISTER_DECODER(CCAPTION, ccaption); > REGISTER_ENCDEC (DVBSUB,dvbsub); > REGISTER_ENCDEC (DVDSUB,dvdsub); > REGISTER_DECODER(JACOSUB, jacosub); > diff --git a/libavcodec/ccaption_dec.c b/libavcodec/ccaption_dec.c > new file mode 100644 > index 000..d351efe > --- /dev/null > +++ b/libavcodec/ccaption_dec.c > @@ -0,0 +1,361 @@ > +/* > + * Closed Caption Decoding > + * Copyright (c) 2014 Anshul Maheshwari > + * > + * This file is part of FFmpeg. > + * > + * FFmpeg 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. > + * > + * FFmpeg 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 FFmpeg; if not, write to the Free Software > + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 > USA > + */ > + > +#include "avcodec.h" > +#include "ass.h" > +#include "libavutil/opt.h" > + > +#undef CHAR_DEBUG > +#define SCREEN_ROWS 15 > +#define SCREEN_COLUMNS 32 > + > +#define SET_FLAG(var, val) ( var |= ( 1 << (val) ) ) > +#define UNSET_FLAG(var, val) ( var &= ~( 1 << (val)) ) > +#define CHECK_FLAG(var, val) ( (var) & (1 << (val) ) ) > + > +enum cc_mode { > +CCMODE_POPON, > +CCMODE_PAINTON, > +CCMODE_ROLLUP_2, > +CCMODE_ROLLUP_3, > +CCMODE_ROLLUP_4, > +CCMODE_TEXT, > +}; > + > +struct Screen { > +/* +1 is used to compensate null character of string */ > +uint8_t characters[SCREEN_ROWS][SCREEN_COLUMNS+1]; > +/* > + * Bitmask of used rows; if a bit is not set, the > + * corresponding row is not used. > + * for setting row 1 use row | (0 << 1) > + * for setting row 15 use row | (1 << 14) > + */ > +int16_t row_used; you can use an array here, this would simplify the code and also avoid the *_FLAG macros > +}; > + > + > +typedef struct CCaptionSubContext { > +AVClass *class; > +int parity_table[256]; this can be a static uint8_t table > +int row_cnt; > +struct Screen screen[2]; > +int active_screen; > +uint8_t cursor_row; > +uint8_t cursor_column; > +AVBPrint buffer; > +int erase_display_memory; > +int rollup; > +enum cc_mode mode; > +int64_t start_time; > +/* visible screen time */ > +int64_t startv_time; > +int64_t end_time; > +char prev_cmd[2]; > +/* buffer to store pkt data */ > +AVBufferRef *pktbuf; as you memcopy the data each time, theres no need for a AVBufferRef a simple
Re: [FFmpeg-devel] [PATCH] tests/regression-funcs: Remove hardcoded therads 1
On Wed, Dec 31, 2014 at 11:10:09AM +0100, Clément Bœsch wrote: > > Subject: Re: [FFmpeg-devel] [PATCH] tests/regression-funcs: Remove > > hardcoded therads 1 > > threads* fixed > > On Tue, Dec 23, 2014 at 03:38:12AM +0100, Michael Niedermayer wrote: > > The tests which use encoders which either use slices or store the encoder > > thread count > > keep a hardcoded value of 1 > > > > You might want to mention that it will at least help testing threading > with the filters, which seems currently untested in various cases because > of it. added > > > Found-by: ubitux > > Signed-off-by: Michael Niedermayer > > --- > > tests/lavf-regression.sh | 28 ++-- > > tests/regression-funcs.sh |2 +- > > 2 files changed, 15 insertions(+), 15 deletions(-) > > > > Fine with me if it works. applied thx [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Frequently ignored answer#1 FFmpeg bugs should be sent to our bugtracker. User questions about the command line tools should be sent to the ffmpeg-user ML. And questions about how to use libav* should be sent to the libav-user ML. signature.asc Description: Digital signature ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 1/2] lavd/v4l2: implement list device callback
2015-01-03 4:45 GMT+01:00 Lukasz Marek : > On 21 December 2014 at 23:39, Lukasz Marek wrote: > >> On 21.12.2014 22:43, Lukasz Marek wrote: >> >>> Signed-off-by: Lukasz Marek >>> --- >>> libavdevice/v4l2.c | 58 ++ >>> >>> 1 file changed, 58 insertions(+) >>> >>> diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c >>> index 2969980..9d4d7ae 100644 >>> --- a/libavdevice/v4l2.c >>> +++ b/libavdevice/v4l2.c >>> @@ -1006,6 +1006,63 @@ static int v4l2_read_close(AVFormatContext *ctx) >>> return 0; >>> } >>> >>> +static int v4l2_get_device_list(AVFormatContext *ctx, AVDeviceInfoList >>> *device_list) >>> +{ >>> +struct video_data *s = ctx->priv_data; >>> +AVDeviceInfo *device = NULL; >>> +struct v4l2_capability cap; >>> +int i, ret = 0; >>> + >>> +if (!device_list) >>> +return AVERROR(EINVAL); >>> + >>> +for (i = 0; i <= 31; i++) { >>> +snprintf(ctx->filename, sizeof(ctx->filename), "/dev/video%d", >>> i); >>> >> >> I wasn't sure this is correct. I changed this loop to opendir/readdir - >> similar way v4l-utils does. >> >> ping on patchset LGTM, thanks. ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH] web/contact: Suggest that patch authors subscribe to ffmpeg-devel
On Fri, Jan 02, 2015 at 11:36:24AM -0900, Lou Logan wrote: > On Fri, 2 Jan 2015 11:35:08 -0900, Lou Logan wrote: > > > On Thu, 1 Jan 2015 20:54:43 +0100, Michael Niedermayer wrote: > > > > > --- > > > src/contact |3 ++- > > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > > > diff --git a/src/contact b/src/contact > > > index 130addf..7233806 100644 > > > --- a/src/contact > > > +++ b/src/contact > > > @@ -35,7 +35,8 @@ > > > > > href="https://lists.ffmpeg.org/mailman/listinfo/ffmpeg-devel/";> > > >ffmpeg-devel > > >For discussions involving development of FFmpeg. Patches for > > > FFmpeg should be submitted > > > - here. It is not for development of software > > > that use the FFmpeg libraries > > > + here. Make sure you are subsribed so you will receive comments > > > and reviews for your > > subsribed/subscribed changed > > > > + patches. It is not for development of > > > software that use the FFmpeg libraries > > >and not for bug reports unless you are > > > submitting a patch that fixes the > > >problem. > > > > > > > LGTM > > Now LGTM. applied thx [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Avoid a single point of failure, be that a person or equipment. signature.asc Description: Digital signature ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH]Only enable xcb-shm if error fields are available in the header
On Sat, Dec 27, 2014 at 09:47:17PM +, Carl Eugen Hoyos wrote: > Clément Bœsch pkh.me> writes: > > > > No objections from me: I cannot test atm but I > > > suspect this should work. > > > > I won't push an untested patch like this. > > Does compilation with xcb-shm work for you with the > patch applied? If yes, please apply. > (libxcb is ancient on my current system.) > Applied with a check done a bit earlier. -- Clément B. pgp6CzCrSapdV.pgp Description: PGP signature ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel