Merge commit 'bc8c1cdc7bfe7b1fe56df812aabdac3de2555cec'
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 18 May 2013 09:04:11 +0000 (11:04 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 18 May 2013 09:04:11 +0000 (11:04 +0200)
* commit 'bc8c1cdc7bfe7b1fe56df812aabdac3de2555cec':
  lavfi doxy: add a page for lavfi.
  jpegls: check the scan offset

Conflicts:
libavcodec/jpeglsdec.c
libavfilter/avfilter.h
libavutil/avutil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/jpeglsdec.c
libavfilter/avfilter.h
libavfilter/version.h
libavutil/avutil.h

@@@ -300,19 -297,21 +300,23 @@@ int ff_jpegls_decode_picture(MJpegDecod
      else
          shift = point_transform + (16 - s->bits);
  
 -    av_dlog(s->avctx,
 -            "JPEG-LS params: %ix%i NEAR=%i MV=%i T(%i,%i,%i) "
 -            "RESET=%i, LIMIT=%i, qbpp=%i, RANGE=%i\n",
 -            s->width, s->height, state->near, state->maxval,
 -            state->T1, state->T2, state->T3,
 -            state->reset, state->limit, state->qbpp, state->range);
 -    av_dlog(s->avctx, "JPEG params: ILV=%i Pt=%i BPP=%i, scan = %i\n",
 -            ilv, point_transform, s->bits, s->cur_scan);
 +    if (s->avctx->debug & FF_DEBUG_PICT_INFO) {
 +        av_log(s->avctx, AV_LOG_DEBUG,
 +               "JPEG-LS params: %ix%i NEAR=%i MV=%i T(%i,%i,%i) "
 +               "RESET=%i, LIMIT=%i, qbpp=%i, RANGE=%i\n",
 +                s->width, s->height, state->near, state->maxval,
 +                state->T1, state->T2, state->T3,
 +                state->reset, state->limit, state->qbpp, state->range);
 +        av_log(s->avctx, AV_LOG_DEBUG, "JPEG params: ILV=%i Pt=%i BPP=%i, scan = %i\n",
 +                ilv, point_transform, s->bits, s->cur_scan);
 +    }
      if (ilv == 0) { /* separate planes */
 -        off    = s->cur_scan - 1;
+         if (s->cur_scan > s->nb_components) {
+             ret = AVERROR_INVALIDDATA;
+             goto end;
+         }
          stride = (s->nb_components > 1) ? 3 : 1;
 +        off    = av_clip(s->cur_scan - 1, 0, stride - 1);
          width  = s->width * stride;
          cur   += off;
          for (i = 0; i < s->height; i++) {
@@@ -1231,71 -972,7 +1231,72 @@@ int avfilter_graph_parse2(AVFilterGrap
                            AVFilterInOut **outputs);
  
  /**
 + * Send a command to one or more filter instances.
 + *
 + * @param graph  the filter graph
 + * @param target the filter(s) to which the command should be sent
 + *               "all" sends to all filters
 + *               otherwise it can be a filter or filter instance name
 + *               which will send the command to all matching filters.
 + * @param cmd    the command to send, for handling simplicity all commands must be alphanumeric only
 + * @param arg    the argument for the command
 + * @param res    a buffer with size res_size where the filter(s) can return a response.
 + *
 + * @returns >=0 on success otherwise an error code.
 + *              AVERROR(ENOSYS) on unsupported commands
 + */
 +int avfilter_graph_send_command(AVFilterGraph *graph, const char *target, const char *cmd, const char *arg, char *res, int res_len, int flags);
 +
 +/**
 + * Queue a command for one or more filter instances.
 + *
 + * @param graph  the filter graph
 + * @param target the filter(s) to which the command should be sent
 + *               "all" sends to all filters
 + *               otherwise it can be a filter or filter instance name
 + *               which will send the command to all matching filters.
 + * @param cmd    the command to sent, for handling simplicity all commands must be alphanummeric only
 + * @param arg    the argument for the command
 + * @param ts     time at which the command should be sent to the filter
 + *
 + * @note As this executes commands after this function returns, no return code
 + *       from the filter is provided, also AVFILTER_CMD_FLAG_ONE is not supported.
 + */
 +int avfilter_graph_queue_command(AVFilterGraph *graph, const char *target, const char *cmd, const char *arg, int flags, double ts);
 +
 +
 +/**
 + * Dump a graph into a human-readable string representation.
 + *
 + * @param graph    the graph to dump
 + * @param options  formatting options; currently ignored
 + * @return  a string, or NULL in case of memory allocation failure;
 + *          the string must be freed using av_free
 + */
 +char *avfilter_graph_dump(AVFilterGraph *graph, const char *options);
 +
 +/**
 + * Request a frame on the oldest sink link.
 + *
 + * If the request returns AVERROR_EOF, try the next.
 + *
 + * Note that this function is not meant to be the sole scheduling mechanism
 + * of a filtergraph, only a convenience function to help drain a filtergraph
 + * in a balanced way under normal circumstances.
 + *
 + * Also note that AVERROR_EOF does not mean that frames did not arrive on
 + * some of the sinks during the process.
 + * When there are multiple sink links, in case the requested link
 + * returns an EOF, this may cause a filter to flush pending frames
 + * which are sent to another sink link, although unrequested.
 + *
 + * @return  the return value of ff_request_frame(),
 + *          or AVERROR_EOF if all links returned AVERROR_EOF
 + */
 +int avfilter_graph_request_oldest(AVFilterGraph *graph);
 +
 +/**
   * @}
   */
  #endif /* AVFILTER_AVFILTER_H */
Simple merge
  /**
   * @mainpage
   *
 - * @section libav_intro Introduction
 + * @section ffmpeg_intro Introduction
   *
   * This document describes the usage of the different libraries
 - * provided by Libav.
 + * provided by FFmpeg.
   *
   * @li @ref libavc "libavcodec" encoding/decoding library
-  * @li @ref lavfi "libavfilter" graph based frame editing library
+  * @li @ref lavfi "libavfilter" graph-based frame editing library
   * @li @ref libavf "libavformat" I/O and muxing/demuxing library
   * @li @ref lavd "libavdevice" special devices muxing/demuxing library
   * @li @ref lavu "libavutil" common utility library