[FFmpeg-devel] [RFC] avfilter/image2: Add source file path and basename to each packet side data.

Marton Balint cus at passwd.hu
Sun Dec 29 23:35:13 EET 2019



On Sun, 29 Dec 2019, Alexandre Heitor Schmidt wrote:

> On 26/12/2019 14:01, Alexandre Heitor Schmidt wrote:
> > > you may have to only activate this (or at least the full path 
> metadata) feature
> > > if the user explicitly requests it. Probably the best way to do 
> that is to
> > > introduce a new option of the image2 demuxer, probably with an 
> AV_OPT_TYPE_FLAGS
> > > type.
> >
> > Do you mean image2 should, for example, have another option like 
> 'enable_path_metadata' which would make the demuxer export the metadata 
> only when set to "1"?
>
> Can I add a new parameter to VideoDemuxData in img2.h, named 
> export_path_metadata, which, when explicitly set to 1, will allow 
> exporting input path as the special metadata parameters 
> (lavf.image2dec.source_path and lavf.image2dec.source_basename)? The 
> default will be not to export them, so it won't compromise security, as 
> discussed previously in this thread.

Yeah, this seems fine as solution.

Thanks,
Marton

>
> Something like this:
>
> In img2.h:
>
> typedef struct VideoDemuxData {
>     const AVClass *class;  /**< Class for private options. */
>     int img_first;
>     int img_last;
>     int img_number;
>     int64_t pts;
>     int img_count;
>     int is_pipe;
>     int split_planes;       /**< use independent file for each Y, U, V 
> plane */
>     char path[1024];
>     char *pixel_format;     /**< Set by a private option. */
>     int width, height;      /**< Set by a private option. */
>     AVRational framerate;   /**< Set by a private option. */
>     int loop;
>     int pattern_type; /**< PatternType */
>     int use_glob;
> #if HAVE_GLOB
>     glob_t globstate;
> #endif
>     int start_number;
>     int start_number_range;
>     int frame_size;
>     int ts_from_file;
>     int export_path_metadata; /**< enabled when set to 1. */
> } VideoDemuxData;
>
> In img2dec.c:
>
> #define COMMON_OPTIONS \
>     { "framerate",    "set the video framerate", OFFSET(framerate),    
> AV_OPT_TYPE_VIDEO_RATE, {.str = "25"}, 0, INT_MAX, DEC }, \
>     { "pixel_format", "set video pixel format", OFFSET(pixel_format), 
> AV_OPT_TYPE_STRING,     {.str = NULL}, 0, 0,       DEC }, \
>     { "video_size",   "set video size", OFFSET(width),        
> AV_OPT_TYPE_IMAGE_SIZE, {.str = NULL}, 0, 0,       DEC }, \
>     { "loop",         "force loop over input file sequence", 
> OFFSET(loop), AV_OPT_TYPE_BOOL,   {.i64 = 0   }, 0, 1,       DEC }, \
>     { "export_path_metadata", "enable metadata containing input path 
> information", OFFSET(export_path_metadata), AV_OPT_TYPE_BOOL, {.i64 = 
> 0   }, 0, 1,       DEC }, \
>     { NULL },
>
> Alex.
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list