diff --git a/ffmpeg.c b/ffmpeg.c index da60772df3f44027a5011753ab3ad42d1b52455d..fca9b0d3257177627a0338b2731ecafd6062cc85 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -91,7 +91,6 @@ static int nb_meta_data_maps; static AVInputFormat *file_iformat; static AVOutputFormat *file_oformat; -static AVImageFormat *image_format; static int frame_width = 0; static int frame_height = 0; static float frame_aspect_ratio = 0; @@ -2055,21 +2054,6 @@ int file_read(const char *filename) } #endif -static void opt_image_format(const char *arg) -{ - AVImageFormat *f; - - for(f = first_image_format; f != NULL; f = f->next) { - if (!strcmp(arg, f->name)) - break; - } - if (!f) { - fprintf(stderr, "Unknown image format: '%s'\n", arg); - exit(1); - } - image_format = f; -} - static void opt_format(const char *arg) { /* compatibility stuff for pgmyuv */ @@ -2589,7 +2573,6 @@ static void opt_input_file(const char *filename) ap->time_base.num = frame_rate_base; ap->width = frame_width + frame_padleft + frame_padright; ap->height = frame_height + frame_padtop + frame_padbottom; - ap->image_format = image_format; ap->pix_fmt = frame_pix_fmt; ap->device = grab_device; ap->channel = video_channel; @@ -2716,7 +2699,6 @@ static void opt_input_file(const char *filename) nb_input_files++; file_iformat = NULL; file_oformat = NULL; - image_format = NULL; grab_device = NULL; video_channel = 0; @@ -3185,7 +3167,6 @@ static void opt_output_file(const char *filename) } memset(ap, 0, sizeof(*ap)); - ap->image_format = image_format; if (av_set_parameters(oc, ap) < 0) { fprintf(stderr, "%s: Invalid encoding parameters\n", oc->filename); @@ -3206,7 +3187,6 @@ static void opt_output_file(const char *filename) /* reset some options */ file_oformat = NULL; file_iformat = NULL; - image_format = NULL; } /* prepare dummy protocols for grab */ @@ -3341,7 +3321,6 @@ static void show_formats(void) { AVInputFormat *ifmt; AVOutputFormat *ofmt; - AVImageFormat *image_fmt; URLProtocol *up; AVCodec *p, *p2; const char **pp, *last_name; @@ -3385,18 +3364,6 @@ static void show_formats(void) } printf("\n"); - printf("Image formats (filename extensions, if any, follow):\n"); - for(image_fmt = first_image_format; image_fmt != NULL; - image_fmt = image_fmt->next) { - printf( - " %s%s %-6s %s\n", - image_fmt->img_read ? "D":" ", - image_fmt->img_write ? "E":" ", - image_fmt->name, - image_fmt->extensions ? image_fmt->extensions:" "); - } - printf("\n"); - printf("Codecs:\n"); last_name= "000"; for(;;){ @@ -3729,7 +3696,6 @@ const OptionDef options[] = { { "version", 0, {(void*)show_version}, "show version" }, { "formats", 0, {(void*)show_formats}, "show available formats, codecs, protocols, ..." }, { "f", HAS_ARG, {(void*)opt_format}, "force format", "fmt" }, - { "img", HAS_ARG, {(void*)opt_image_format}, "force image format", "img_fmt" }, { "i", HAS_ARG, {(void*)opt_input_file}, "input file name", "filename" }, { "y", OPT_BOOL, {(void*)&file_overwrite}, "overwrite output files" }, { "map", HAS_ARG | OPT_EXPERT, {(void*)opt_map}, "set input stream mapping", "file:stream[:syncfile:syncstream]" }, diff --git a/ffplay.c b/ffplay.c index 5425837d4b5b35a6cab474e4bb5721347393f3c9..08e71d39aff41d3ca75b9c6e6819b2d1be558467 100644 --- a/ffplay.c +++ b/ffplay.c @@ -185,7 +185,6 @@ static int audio_write_get_buf_size(VideoState *is); /* options specified by the user */ static AVInputFormat *file_iformat; -static AVImageFormat *image_format; static const char *input_filename; static int fs_screen_width; static int fs_screen_height; @@ -1797,7 +1796,6 @@ static int decode_thread(void *arg) url_set_interrupt_cb(decode_interrupt_cb); memset(ap, 0, sizeof(*ap)); - ap->image_format = image_format; ap->initial_pause = 1; /* we force a pause when starting an RTSP stream */ @@ -2294,21 +2292,6 @@ static void opt_format(const char *arg) } } -static void opt_image_format(const char *arg) -{ - AVImageFormat *f; - - for(f = first_image_format; f != NULL; f = f->next) { - if (!strcmp(arg, f->name)) - break; - } - if (!f) { - fprintf(stderr, "Unknown image format: '%s'\n", arg); - exit(1); - } - image_format = f; -} - #ifdef CONFIG_NETWORK void opt_rtp_tcp(void) { @@ -2363,7 +2346,6 @@ const OptionDef options[] = { { "ss", HAS_ARG, {(void*)&opt_seek}, "seek to a given position in seconds", "pos" }, { "nodisp", OPT_BOOL, {(void*)&display_disable}, "disable graphical display" }, { "f", HAS_ARG, {(void*)opt_format}, "force format", "fmt" }, - { "img", HAS_ARG, {(void*)opt_image_format}, "force image format", "img_fmt" }, { "stats", OPT_BOOL | OPT_EXPERT, {(void*)&show_status}, "show status", "" }, { "debug", HAS_ARG | OPT_EXPERT, {(void*)opt_debug}, "print specific debug info", "" }, { "bug", OPT_INT | HAS_ARG | OPT_EXPERT, {(void*)&workaround_bugs}, "workaround bugs", "" }, diff --git a/libavformat/Makefile b/libavformat/Makefile index 642cbf542297e2164448804d4cc278a2ae586b09..6ede844810e6ee1a60387ae0bf8eeb2c022c2cb7 100644 --- a/libavformat/Makefile +++ b/libavformat/Makefile @@ -47,10 +47,6 @@ OBJS-$(CONFIG_IMAGE2_DEMUXER) += img2.o OBJS-$(CONFIG_IMAGE2PIPE_DEMUXER) += img2.o OBJS-$(CONFIG_IMAGE2_MUXER) += img2.o OBJS-$(CONFIG_IMAGE2PIPE_MUXER) += img2.o -OBJS-$(CONFIG_IMAGE_DEMUXER) += img.o -OBJS-$(CONFIG_IMAGEPIPE_DEMUXER) += img.o -OBJS-$(CONFIG_IMAGE_MUXER) += img.o -OBJS-$(CONFIG_IMAGEPIPE_MUXER) += img.o OBJS-$(CONFIG_IPMOVIE_DEMUXER) += ipmovie.o OBJS-$(CONFIG_MATROSKA_DEMUXER) += matroska.o riff.o OBJS-$(CONFIG_MM_DEMUXER) += mm.o @@ -132,8 +128,6 @@ OBJS-$(CONFIG_WV_DEMUXER) += wv.o OBJS-$(CONFIG_YUV4MPEGPIPE_MUXER) += yuv4mpeg.o OBJS-$(CONFIG_YUV4MPEGPIPE_DEMUXER) += yuv4mpeg.o -# image formats -OBJS+= pnm.o yuv.o png.o jpeg.o gifdec.o sgi.o OBJS+= framehook.o ifeq ($(CONFIG_VIDEO4LINUX),yes) diff --git a/libavformat/allformats.c b/libavformat/allformats.c index dafbfb4e8ac363b489d9363a53496d50d09e3951..5536ea9e6ba2bb0db0afa2234733ede2a5cc3a96 100644 --- a/libavformat/allformats.c +++ b/libavformat/allformats.c @@ -167,18 +167,6 @@ void av_register_all(void) #ifdef CONFIG_IMAGE2PIPE_MUXER av_register_output_format(&image2pipe_muxer); #endif -#ifdef CONFIG_IMAGE_DEMUXER - av_register_input_format(&image_demuxer); -#endif -#ifdef CONFIG_IMAGEPIPE_DEMUXER - av_register_input_format(&imagepipe_demuxer); -#endif -#ifdef CONFIG_IMAGE_MUXER - av_register_output_format(&image_muxer); -#endif -#ifdef CONFIG_IMAGEPIPE_MUXER - av_register_output_format(&imagepipe_muxer); -#endif #ifdef CONFIG_IPMOVIE_DEMUXER av_register_input_format(&ipmovie_demuxer); #endif @@ -483,23 +471,6 @@ void av_register_all(void) av_register_input_format(&tiertexseq_demuxer); #endif - /* image formats */ -#if 0 - av_register_image_format(&pnm_image_format); - av_register_image_format(&pbm_image_format); - av_register_image_format(&pgm_image_format); - av_register_image_format(&ppm_image_format); - av_register_image_format(&pam_image_format); - av_register_image_format(&pgmyuv_image_format); - av_register_image_format(&yuv_image_format); -#ifdef CONFIG_ZLIB - av_register_image_format(&png_image_format); -#endif - av_register_image_format(&jpeg_image_format); -#endif - av_register_image_format(&gif_image_format); -// av_register_image_format(&sgi_image_format); heap corruption, dont enable - #ifdef CONFIG_PROTOCOLS /* file protocols */ register_protocol(&file_protocol); diff --git a/libavformat/allformats.h b/libavformat/allformats.h index 27f09520981bf500bb3be2d650f0faf1fe693d53..a138841c9c3e52d27648534bce023cdaa277ec2b 100644 --- a/libavformat/allformats.h +++ b/libavformat/allformats.h @@ -173,21 +173,4 @@ int redir_open(AVFormatContext **ic_ptr, ByteIOContext *f); /* rtp.c */ void av_register_rtp_dynamic_payload_handlers(); - -#if 0 -extern AVImageFormat pnm_image_format; -extern AVImageFormat pbm_image_format; -extern AVImageFormat pgm_image_format; -extern AVImageFormat ppm_image_format; -extern AVImageFormat pam_image_format; -extern AVImageFormat pgmyuv_image_format; -extern AVImageFormat yuv_image_format; -#ifdef CONFIG_ZLIB -extern AVImageFormat png_image_format; -#endif -extern AVImageFormat jpeg_image_format; -#endif -extern AVImageFormat gif_image_format; -//extern AVImageFormat sgi_image_format; //broken in itself - #endif diff --git a/libavformat/avformat.h b/libavformat/avformat.h index a1d6b3617aff160f1e63cb41cdeaf01685e64323..c4f27f9193aedf6887dc06cd6d8c673aa887708b 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -25,8 +25,8 @@ extern "C" { #endif -#define LIBAVFORMAT_VERSION_INT ((50<<16)+(6<<8)+0) -#define LIBAVFORMAT_VERSION 50.6.0 +#define LIBAVFORMAT_VERSION_INT ((51<<16)+(6<<8)+0) +#define LIBAVFORMAT_VERSION 51.6.0 #define LIBAVFORMAT_BUILD LIBAVFORMAT_VERSION_INT #define LIBAVFORMAT_IDENT "Lavf" AV_STRINGIFY(LIBAVFORMAT_VERSION) @@ -122,7 +122,6 @@ typedef struct AVFormatParameters { int width; int height; enum PixelFormat pix_fmt; - struct AVImageFormat *image_format; int channel; /* used to select dv channel */ const char *device; /* video, audio or DV device */ const char *standard; /* tv standard, NTSC, PAL, SECAM */ @@ -377,49 +376,7 @@ typedef struct AVPacketList { extern AVInputFormat *first_iformat; extern AVOutputFormat *first_oformat; -/* still image support */ -struct AVInputImageContext attribute_deprecated; -typedef struct AVInputImageContext AVInputImageContext attribute_deprecated; - -typedef struct AVImageInfo { - enum PixelFormat pix_fmt; /* requested pixel format */ - int width; /* requested width */ - int height; /* requested height */ - int interleaved; /* image is interleaved (e.g. interleaved GIF) */ - AVPicture pict; /* returned allocated image */ -} AVImageInfo attribute_deprecated; - -/* AVImageFormat.flags field constants */ -#define AVIMAGE_INTERLEAVED 0x0001 /* image format support interleaved output */ - -typedef struct AVImageFormat { - const char *name; - const char *extensions; - /* tell if a given file has a chance of being parsing by this format */ - int (*img_probe)(AVProbeData *); - /* read a whole image. 'alloc_cb' is called when the image size is - known so that the caller can allocate the image. If 'allo_cb' - returns non zero, then the parsing is aborted. Return '0' if - OK. */ - int (*img_read)(ByteIOContext *, - int (*alloc_cb)(void *, AVImageInfo *info), void *); - /* write the image */ - int supported_pixel_formats; /* mask of supported formats for output */ - int (*img_write)(ByteIOContext *, AVImageInfo *); - int flags; - struct AVImageFormat *next; -} AVImageFormat attribute_deprecated; - -void av_register_image_format(AVImageFormat *img_fmt) attribute_deprecated; -AVImageFormat *av_probe_image_format(AVProbeData *pd) attribute_deprecated; -AVImageFormat *guess_image_format(const char *filename) attribute_deprecated; enum CodecID av_guess_image2_codec(const char *filename); -int av_read_image(ByteIOContext *pb, const char *filename, - AVImageFormat *fmt, - int (*alloc_cb)(void *, AVImageInfo *info), void *opaque) attribute_deprecated; -int av_write_image(ByteIOContext *pb, AVImageFormat *fmt, AVImageInfo *img) attribute_deprecated; - -extern AVImageFormat *first_image_format attribute_deprecated; /* XXX: use automatic init with either ELF sections or C file parser */ /* modules */ diff --git a/libavformat/gif.c b/libavformat/gif.c index 03dc6dc265359e57c97c80b38d04575d6e936f11..1083710d5cdaea8576dfe3aa660d69e8d96e9651 100644 --- a/libavformat/gif.c +++ b/libavformat/gif.c @@ -405,19 +405,6 @@ static int gif_write_trailer(AVFormatContext *s) return 0; } -/* better than nothing gif image writer */ -int gif_write(ByteIOContext *pb, AVImageInfo *info) -{ - gif_image_write_header(pb, info->width, info->height, AVFMT_NOOUTPUTLOOP, - (uint32_t *)info->pict.data[1]); - gif_image_write_image(pb, 0, 0, info->width, info->height, - info->pict.data[0], info->pict.linesize[0], - PIX_FMT_PAL8); - put_byte(pb, 0x3b); - put_flush_packet(pb); - return 0; -} - AVOutputFormat gif_muxer = { "gif", "GIF Animation", diff --git a/libavformat/gifdec.c b/libavformat/gifdec.c index c70d3d942c5fec3cdf6f330e28c3c8c3fd75f582..692ca6466d0b4926e58fb938f921b84260e7b507 100644 --- a/libavformat/gifdec.c +++ b/libavformat/gifdec.c @@ -20,8 +20,6 @@ */ #include "avformat.h" -int gif_write(ByteIOContext *pb, AVImageInfo *info); - //#define DEBUG #define MAXBITS 12 @@ -144,17 +142,6 @@ static int gif_video_probe(AVProbeData * pd) return 0; } -static int gif_image_probe(AVProbeData * pd) -{ - if (pd->buf_size >= 24 && - (memcmp(pd->buf, gif87a_sig, 6) == 0 || - memcmp(pd->buf, gif89a_sig, 6) == 0)) - return AVPROBE_SCORE_MAX - 1; - else - return 0; -} - - static void GLZWDecodeInit(GifState * s, int csize) { /* read buffer */ @@ -594,33 +581,6 @@ static int gif_read_close(AVFormatContext *s1) return 0; } -/* read gif as image */ -static int gif_read(ByteIOContext *f, - int (*alloc_cb)(void *opaque, AVImageInfo *info), void *opaque) -{ - GifState s1, *s = &s1; - AVImageInfo info1, *info = &info1; - int ret; - - memset(s, 0, sizeof(GifState)); - s->f = f; - if (gif_read_header1(s) < 0) - return -1; - info->width = s->screen_width; - info->height = s->screen_height; - info->pix_fmt = PIX_FMT_PAL8; - ret = alloc_cb(opaque, info); - if (ret) - return ret; - s->image_buf = info->pict.data[0]; - s->image_linesize = info->pict.linesize[0]; - s->image_palette = (uint32_t *)info->pict.data[1]; - - if (gif_parse_next_image(s) < 0) - return -1; - return 0; -} - AVInputFormat gif_demuxer = { "gif", @@ -631,14 +591,3 @@ AVInputFormat gif_demuxer = gif_read_packet, gif_read_close, }; - -AVImageFormat gif_image_format = { - "gif", - "gif", - gif_image_probe, - gif_read, - (1 << PIX_FMT_PAL8), -#ifdef CONFIG_GIF_MUXER - gif_write, -#endif -}; diff --git a/libavformat/utils.c b/libavformat/utils.c index 52ed0185f2f94bc25a4bcaf7f5e3c9d903d12114..78974c7e7404bc48a3c5c402bf3996a0d3e06b53 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -38,8 +38,6 @@ static void av_frac_set(AVFrac *f, int64_t val); AVInputFormat *first_iformat = NULL; /** head of registered output format linked list. */ AVOutputFormat *first_oformat = NULL; -/** head of registered image format linked list. */ -AVImageFormat *first_image_format = NULL; void av_register_input_format(AVInputFormat *format) { @@ -100,12 +98,6 @@ AVOutputFormat *guess_format(const char *short_name, const char *filename, return guess_format("image2", NULL, NULL); } #endif - if (!short_name && filename && - av_filename_number_test(filename) && - guess_image_format(filename)) { - return guess_format("image", NULL, NULL); - } - /* find the proper file type */ fmt_found = NULL; score_max = 0; @@ -3092,93 +3084,3 @@ static void av_frac_add(AVFrac *f, int64_t incr) } f->num = num; } - -/** - * register a new image format - * @param img_fmt Image format descriptor - */ -void av_register_image_format(AVImageFormat *img_fmt) -{ - AVImageFormat **p; - - p = &first_image_format; - while (*p != NULL) p = &(*p)->next; - *p = img_fmt; - img_fmt->next = NULL; -} - -/** - * Guesses image format based on data in the image. - */ -AVImageFormat *av_probe_image_format(AVProbeData *pd) -{ - AVImageFormat *fmt1, *fmt; - int score, score_max; - - fmt = NULL; - score_max = 0; - for(fmt1 = first_image_format; fmt1 != NULL; fmt1 = fmt1->next) { - if (fmt1->img_probe) { - score = fmt1->img_probe(pd); - if (score > score_max) { - score_max = score; - fmt = fmt1; - } - } - } - return fmt; -} - -/** - * Guesses image format based on file name extensions. - */ -AVImageFormat *guess_image_format(const char *filename) -{ - AVImageFormat *fmt1; - - for(fmt1 = first_image_format; fmt1 != NULL; fmt1 = fmt1->next) { - if (fmt1->extensions && match_ext(filename, fmt1->extensions)) - return fmt1; - } - return NULL; -} - -/** - * Read an image from a stream. - * @param gb byte stream containing the image - * @param fmt image format, NULL if probing is required - */ -int av_read_image(ByteIOContext *pb, const char *filename, - AVImageFormat *fmt, - int (*alloc_cb)(void *, AVImageInfo *info), void *opaque) -{ - uint8_t buf[PROBE_BUF_MIN]; - AVProbeData probe_data, *pd = &probe_data; - offset_t pos; - int ret; - - if (!fmt) { - pd->filename = filename; - pd->buf = buf; - pos = url_ftell(pb); - pd->buf_size = get_buffer(pb, buf, PROBE_BUF_MIN); - url_fseek(pb, pos, SEEK_SET); - fmt = av_probe_image_format(pd); - } - if (!fmt) - return AVERROR_NOFMT; - ret = fmt->img_read(pb, alloc_cb, opaque); - return ret; -} - -/** - * Write an image to a stream. - * @param pb byte stream for the image output - * @param fmt image format - * @param img image data and informations - */ -int av_write_image(ByteIOContext *pb, AVImageFormat *fmt, AVImageInfo *img) -{ - return fmt->img_write(pb, img); -} -