<div dir="ltr"><div dir="ltr">Hey Strahinja,<div><br></div><div>Yeah that is what I have. Here is the link to the latest version of the modified code:</div><div><br></div><div><a href="https://drive.google.com/file/d/1UQaGv4EwEj81hqk7GNeVz5hGFG0784RD/view?usp=sharing">https://drive.google.com/file/d/1UQaGv4EwEj81hqk7GNeVz5hGFG0784RD/view?usp=sharing</a><br></div><div><br></div><div>Let me know what you think.</div><div><br></div><div>Thanks</div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div>Chris Bennett</div></div></div></div></div></div></div></div></div>
<br><div class="gmail_quote">On Tue, Sep 4, 2018 at 12:06 PM, Strahinja Radman <span dir="ltr"><<a href="mailto:dr.strashni@gmail.com" target="_blank">dr.strashni@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-GB" link="blue" vlink="#954F72"><div class="m_-8869978842305006034WordSection1"><p class="MsoNormal">Hey Chris,</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I am not sure how exactly you modified your code but this should be the look of the loop</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">while(av_read_frame(fmt_ctx, &packet) > 0)</p><p class="MsoNormal">{</p><p class="MsoNormal">                decode(c, frame, pkt, outfilename);</p><p class="MsoNormal">}</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Kind regards,</p><p class="MsoNormal">Strahinja</p><p class="MsoNormal"><u></u> <u></u></p><div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm 0cm 0cm"><p class="MsoNormal" style="border:none;padding:0cm"><b>From: </b><a href="mailto:chris.bennett@dreamworks.com" target="_blank">Chris Bennett</a><br><b>Sent: </b>04 September 2018 20:54</p><div><div class="h5"><br><b>To: </b><a href="mailto:libav-user@ffmpeg.org" target="_blank">This list is about using libavcodec, libavformat, libavutil, libavdevice and libavfilter.</a><br><b>Subject: </b>Re: [Libav-user] decode_video example pgm files distorted?(v4.0.2Winbuild)</div></div><p></p></div><div><div class="h5"><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal">Hm. Here is something strange.</p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">When I try using  <span style="font-size:9.5pt;background:white">while(av_read_frame(fmt_ctx, &packet) > 0), the method immediately passes, making nothing happen.</span></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">I turned on debug in my stream, and this is the output (not much makes sense/looks useful to me)</p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><a href="https://drive.google.com/file/d/1Twft75sGLGGsHN5tuwkcI1KQVsPM5lt4/view?usp=sharing" target="_blank">https://drive.google.com/file/<wbr>d/<wbr>1Twft75sGLGGsHN5tuwkcI1KQVsPM5<wbr>lt4/view?usp=sharing</a></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Let me know what you think. Thanks!</p></div><div><p class="MsoNormal"><br clear="all"></p><div><div><div><div><div><div><div><div><div><p class="MsoNormal">Chris Bennett</p></div></div></div></div></div></div></div></div></div><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">On Sat, Sep 1, 2018 at 12:48 AM, Strahinja Radman <<a href="mailto:dr.strashni@gmail.com" target="_blank">dr.strashni@gmail.com</a>> wrote:</p><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm"><div><div><p class="MsoNormal">Hey Chris,</p><p class="MsoNormal"> </p><p class="MsoNormal">Can you try using </p><p class="MsoNormal">                while(av_read_frame(fmt_ctx, &packet) > 0) </p><p class="MsoNormal">instead of using </p><p class="MsoNormal">                while(!feof(f)) </p><p class="MsoNormal"> </p><p class="MsoNormal">and then just send a packet to your decode method instead of a raw frame?</p><p class="MsoNormal"> </p><div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm 0cm 0cm"><p class="MsoNormal"><b>From: </b><a href="mailto:chris.bennett@dreamworks.com" target="_blank">Chris Bennett</a><br><b>Sent: </b>31 August 2018 22:57<br><b>To: </b><a href="mailto:libav-user@ffmpeg.org" target="_blank">This list is about using libavcodec, libavformat, libavutil, libavdevice and libavfilter.</a><br><b>Subject: </b>Re: [Libav-user] decode_video example pgm files distorted? (v4.0.2Winbuild)</p></div><div><div><p class="MsoNormal"> </p><div><div><div><p class="MsoNormal">Hey Strahinja!</p><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">Thank you very much for taking the time to help me out.</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">the pgm snippet you sent looks the same as the decode video example I am seeing.</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">Here is the code that I am compiling and running if it helps, hopefully its not too long. ( I had to add an extern "C" wrapper since my goal is to build c++ tools with this, and also changed how the example finds the decoder).</p></div><div><p class="MsoNormal"> </p></div><div><div><p class="MsoNormal">/*</p></div><div><p class="MsoNormal">* Copyright (c) 2001 Fabrice Bellard</p></div><div><p class="MsoNormal">*</p></div><div><p class="MsoNormal">* Permission is hereby granted, free of charge, to any person obtaining a copy</p></div><div><p class="MsoNormal">* of this software and associated documentation files (the "Software"), to deal</p></div><div><p class="MsoNormal">* in the Software without restriction, including without limitation the rights</p></div><div><p class="MsoNormal">* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</p></div><div><p class="MsoNormal">* copies of the Software, and to permit persons to whom the Software is</p></div><div><p class="MsoNormal">* furnished to do so, subject to the following conditions:</p></div><div><p class="MsoNormal">*</p></div><div><p class="MsoNormal">* The above copyright notice and this permission notice shall be included in</p></div><div><p class="MsoNormal">* all copies or substantial portions of the Software.</p></div><div><p class="MsoNormal">*</p></div><div><p class="MsoNormal">* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</p></div><div><p class="MsoNormal">* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</p></div><div><p class="MsoNormal">* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL</p></div><div><p class="MsoNormal">* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</p></div><div><p class="MsoNormal">* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</p></div><div><p class="MsoNormal">* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</p></div><div><p class="MsoNormal">* THE SOFTWARE.</p></div><div><p class="MsoNormal">*/</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">/**</p></div><div><p class="MsoNormal">* @file</p></div><div><p class="MsoNormal">* video decoding with libavcodec API example</p></div><div><p class="MsoNormal">*</p></div><div><p class="MsoNormal">* @example decode_video.c</p></div><div><p class="MsoNormal">*/</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">#include <stdio.h></p></div><div><p class="MsoNormal">#include <stdlib.h></p></div><div><p class="MsoNormal">#include <string.h></p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">extern "C"</p></div><div><p class="MsoNormal">{</p></div><div><p class="MsoNormal">#include <libavcodec/avcodec.h></p></div><div><p class="MsoNormal">#include <libavformat\avformat.h></p></div><div><p class="MsoNormal">}</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">#define INBUF_SIZE 4096</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">static void pgm_save(unsigned char *buf, int wrap, int xsize, int ysize,</p></div><div><p class="MsoNormal">                char *filename)</p></div><div><p class="MsoNormal">{</p></div><div><p class="MsoNormal">                FILE *f;</p></div><div><p class="MsoNormal">                int i;</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                f = fopen(filename, "w");</p></div><div><p class="MsoNormal">                fprintf(f, "P5\n%d %d\n%d\n", xsize, ysize, 255);</p></div><div><p class="MsoNormal">                for (i = 0; i < ysize; i++)</p></div><div><p class="MsoNormal">                              <wbr>  fwrite(buf + i * wrap, 1, xsize, f);</p></div><div><p class="MsoNormal">                fclose(f);</p></div><div><p class="MsoNormal">}</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">static void decode(AVCodecContext *dec_ctx, AVFrame *frame, AVPacket *pkt,</p></div><div><p class="MsoNormal">                const char *filename)</p></div><div><p class="MsoNormal">{</p></div><div><p class="MsoNormal">                char buf[1024];</p></div><div><p class="MsoNormal">                int ret;</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                ret = avcodec_send_packet(dec_ctx, pkt);</p></div><div><p class="MsoNormal">                if (ret < 0) {</p></div><div><p class="MsoNormal">                              <wbr>  fprintf(stderr, "Error sending a packet for decoding\n");</p></div><div><p class="MsoNormal">                              <wbr>  exit(1);</p></div><div><p class="MsoNormal">                }</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                while (ret >= 0) {</p></div><div><p class="MsoNormal">                              <wbr>  ret = avcodec_receive_frame(dec_ctx, frame);</p></div><div><p class="MsoNormal">                              <wbr>  if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF)</p></div><div><p class="MsoNormal">                              <wbr>                  return;</p></div><div><p class="MsoNormal">                              <wbr>  else if (ret < 0) {</p></div><div><p class="MsoNormal">                              <wbr>                  fprintf(stderr, "Error during decoding\n");</p></div><div><p class="MsoNormal">                              <wbr>                  exit(1);</p></div><div><p class="MsoNormal">                              <wbr>  }</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                              <wbr>  printf("saving frame %3d\n", dec_ctx->frame_number);</p></div><div><p class="MsoNormal">                              <wbr>  fflush(stdout);</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                              <wbr>  /* the picture is allocated by the decoder. no need to</p></div><div><p class="MsoNormal">                              <wbr>  free it */</p></div><div><p class="MsoNormal">                              <wbr>  _snprintf(buf, sizeof(buf), "%s-%d.pgm", filename, dec_ctx->frame_number);</p></div><div><p class="MsoNormal">                              <wbr>  pgm_save(frame->data[0], frame->linesize[0],</p></div><div><p class="MsoNormal">                              <wbr>                  frame->width, frame->height, buf);</p></div><div><p class="MsoNormal">                }</p></div><div><p class="MsoNormal">}</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">int main(int argc, char **argv)</p></div><div><p class="MsoNormal">{</p></div><div><p class="MsoNormal">                const char *filename, *outfilename;</p></div><div><p class="MsoNormal">                const AVCodec *codec;</p></div><div><p class="MsoNormal">                AVCodecParserContext *parser;</p></div><div><p class="MsoNormal">                AVCodecContext *c = NULL;</p></div><div><p class="MsoNormal">                FILE *f;</p></div><div><p class="MsoNormal">                AVFrame *frame;</p></div><div><p class="MsoNormal">                uint8_t inbuf[INBUF_SIZE + AV_INPUT_BUFFER_PADDING_SIZE];</p></div><div><p class="MsoNormal">                uint8_t *data;</p></div><div><p class="MsoNormal">                size_t   data_size;</p></div><div><p class="MsoNormal">                int ret;</p></div><div><p class="MsoNormal">                AVPacket *pkt;</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                if (argc <= 2) {</p></div><div><p class="MsoNormal">                              <wbr>  fprintf(stderr, "Usage: %s <input file> <output file>\n", argv[0]);</p></div><div><p class="MsoNormal">                              <wbr>  exit(0);</p></div><div><p class="MsoNormal">                }</p></div><div><p class="MsoNormal">                filename = argv[1];</p></div><div><p class="MsoNormal">                outfilename = argv[2];</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                pkt = av_packet_alloc();</p></div><div><p class="MsoNormal">                if (!pkt)</p></div><div><p class="MsoNormal">                              <wbr>  exit(1);</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                /* set end of buffer to 0 (this ensures that no overreading happens for damaged MPEG streams) */</p></div><div><p class="MsoNormal">                memset(inbuf + INBUF_SIZE, 0, AV_INPUT_BUFFER_PADDING_SIZE);</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                //---from test1.cpp</p></div><div><p class="MsoNormal">                AVFormatContext *pFormatContext = avformat_alloc_context();</p></div><div><p class="MsoNormal">                if (!pFormatContext) {</p></div><div><p class="MsoNormal">                              <wbr>  fprintf(stderr, "ERROR could not allocate memory for Format Context");</p></div><div><p class="MsoNormal">                              <wbr>  return -1;</p></div><div><p class="MsoNormal">                }</p></div><div><p class="MsoNormal">                if (avformat_open_input(&<wbr>pFormatContext, argv[1], NULL, NULL) != 0) {</p></div><div><p class="MsoNormal">                              <wbr>  fprintf(stderr, "ERROR could not open the file");</p></div><div><p class="MsoNormal">                              <wbr>  return -1;</p></div><div><p class="MsoNormal">                }</p></div><div><p class="MsoNormal">                AVCodecParameters *pLocalCodecParameters = NULL;</p></div><div><p class="MsoNormal">                pLocalCodecParameters = pFormatContext->streams[0]-><wbr>codecpar;</p></div><div><p class="MsoNormal">                //-----</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                /* find the video decoder */</p></div><div><p class="MsoNormal">                //codec = avcodec_find_decoder(AV_CODEC_<wbr>ID_MJPEG);</p></div><div><p class="MsoNormal">                codec = avcodec_find_decoder(<wbr>pLocalCodecParameters->codec_<wbr>id);</p></div><div><p class="MsoNormal">                if (!codec) {</p></div><div><p class="MsoNormal">                              <wbr>  fprintf(stderr, "Codec not found\n");</p></div><div><p class="MsoNormal">                              <wbr>  exit(1);</p></div><div><p class="MsoNormal">                }</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                parser = av_parser_init(codec->id);</p></div><div><p class="MsoNormal">                if (!parser) {</p></div><div><p class="MsoNormal">                              <wbr>  fprintf(stderr, "parser not found\n");</p></div><div><p class="MsoNormal">                              <wbr>  exit(1);</p></div><div><p class="MsoNormal">                }</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                c = avcodec_alloc_context3(codec);</p></div><div><p class="MsoNormal">                if (!c) {</p></div><div><p class="MsoNormal">                              <wbr>  fprintf(stderr, "Could not allocate video codec context\n");</p></div><div><p class="MsoNormal">                              <wbr>  exit(1);</p></div><div><p class="MsoNormal">                }</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                /* For some codecs, such as msmpeg4 and mpeg4, width and height</p></div><div><p class="MsoNormal">                MUST be initialized there because this information is not</p></div><div><p class="MsoNormal">                available in the bitstream. */</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                /* open it */</p></div><div><p class="MsoNormal">                if (avcodec_open2(c, codec, NULL) < 0) {</p></div><div><p class="MsoNormal">                              <wbr>  fprintf(stderr, "Could not open codec\n");</p></div><div><p class="MsoNormal">                              <wbr>  exit(1);</p></div><div><p class="MsoNormal">                }</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                f = fopen(filename, "rb");</p></div><div><p class="MsoNormal">                if (!f) {</p></div><div><p class="MsoNormal">                              <wbr>  fprintf(stderr, "Could not open %s\n", filename);</p></div><div><p class="MsoNormal">                              <wbr>  exit(1);</p></div><div><p class="MsoNormal">                }</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                frame = av_frame_alloc();</p></div><div><p class="MsoNormal">                if (!frame) {</p></div><div><p class="MsoNormal">                              <wbr>  fprintf(stderr, "Could not allocate video frame\n");</p></div><div><p class="MsoNormal">                              <wbr>  exit(1);</p></div><div><p class="MsoNormal">                }</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                while (!feof(f)) {</p></div><div><p class="MsoNormal">                              <wbr>  /* read raw data from the input file */</p></div><div><p class="MsoNormal">                              <wbr>  data_size = fread(inbuf, 1, INBUF_SIZE, f);</p></div><div><p class="MsoNormal">                              <wbr>  if (!data_size)</p></div><div><p class="MsoNormal">                              <wbr>                  break;</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                              <wbr>  /* use the parser to split the data into frames */</p></div><div><p class="MsoNormal">                              <wbr>  data = inbuf;</p></div><div><p class="MsoNormal">                              <wbr>  while (data_size > 0) {</p></div><div><p class="MsoNormal">                              <wbr>                  ret = av_parser_parse2(parser, c, &pkt->data, &pkt->size,</p></div><div><p class="MsoNormal">                              <wbr>                              <wbr>    data, data_size, AV_NOPTS_VALUE, AV_NOPTS_VALUE, 0);</p></div><div><p class="MsoNormal">                              <wbr>                  if (ret < 0) {</p></div><div><p class="MsoNormal">                              <wbr>                              <wbr>    fprintf(stderr, "Error while parsing\n");</p></div><div><p class="MsoNormal">                              <wbr>                              <wbr>    exit(1);</p></div><div><p class="MsoNormal">                              <wbr>                  }</p></div><div><p class="MsoNormal">                              <wbr>                  data += ret;</p></div><div><p class="MsoNormal">                              <wbr>                  data_size -= ret;</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                              <wbr>                  if (pkt->size)</p></div><div><p class="MsoNormal">                              <wbr>                              <wbr>    decode(c, frame, pkt, outfilename);</p></div><div><p class="MsoNormal">                              <wbr>  }</p></div><div><p class="MsoNormal">                }</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                /* flush the decoder */</p></div><div><p class="MsoNormal">                decode(c, frame, NULL, outfilename);</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                fclose(f);</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                av_parser_close(parser);</p></div><div><p class="MsoNormal">                avcodec_free_context(&c);</p></div><div><p class="MsoNormal">                av_frame_free(&frame);</p></div><div><p class="MsoNormal">                av_packet_free(&pkt);</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">                return 0;</p></div><div><p class="MsoNormal">}</p></div></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">Please let me know if you see anything incorrect with this.</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">Thanks!</p></div><div><p class="MsoNormal"> </p></div></div></div></div></div></div><div><p class="MsoNormal"><br clear="all"></p><div><div><div><div><div><div><div><div><div><div><div><p class="MsoNormal">Chris Bennett</p></div><div><p class="MsoNormal">Lead Animation Pipeline TD - Television</p></div></div></div><p class="MsoNormal"><img border="0" width="576" height="72" style="width:6.0in;height:.75in" id="m_-8869978842305006034_x0000_i1025" src="http://www.dreamworksanimation.com/brand/signatures/Central/CentralEmailSigs06.jpg" alt="http://www.dreamworksanimation.com/brand/signatures/Central/CentralEmailSigs06.jpg"></p></div></div></div></div></div></div></div></div><div><div><p class="MsoNormal"> </p><div><p class="MsoNormal">On Fri, Aug 31, 2018 at 10:48 AM, Strahinja Radman <<a href="mailto:dr.strashni@gmail.com" target="_blank">dr.strashni@gmail.com</a>> wrote:</p><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt"><div><div><p class="MsoNormal">Hi Chris,</p><p class="MsoNormal"> </p><p class="MsoNormal">To me that looks like you wrote some wrong data inside the picture and it looks skewed. Some indexes could be wrong.</p><p class="MsoNormal"> </p><p class="MsoNormal">void pgm_save(unsigned char *buf, int wrap, int xsize, int ysize, const char *filename)</p><p class="MsoNormal">{</p><p class="MsoNormal">                FILE *f;</p><p class="MsoNormal">                int i;</p><p class="MsoNormal"> </p><p class="MsoNormal">                f = fopen(filename, "w");</p><p class="MsoNormal">                fprintf(f, "P5\n%d %d\n%d\n", xsize, ysize, 255);</p><p class="MsoNormal">                for (i = 0; i < ysize; i++)</p><p class="MsoNormal">                              <wbr>  fwrite(buf + i * wrap, 1, xsize, f);</p><p class="MsoNormal">                fclose(f);</p><p class="MsoNormal">}</p><p class="MsoNormal"> </p><p class="MsoNormal">The above method should be called with pgm_save(frame->data[0], frame->linesize[0], frame->width, frame->height, “name.pgm”);</p><p class="MsoNormal"> </p><p class="MsoNormal">Kind regards,</p><p class="MsoNormal">Strahinja</p><p class="MsoNormal"> </p><div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm 0cm 0cm"><p class="MsoNormal"><b>From: </b><a href="mailto:chris.bennett@dreamworks.com" target="_blank">Chris Bennett</a><br><b>Sent: </b>31 August 2018 19:41<br><b>To: </b><a href="mailto:libav-user@ffmpeg.org" target="_blank">libav-user@ffmpeg.org</a><br><b>Subject: </b>[Libav-user] decode_video example pgm files distorted? (v4.0.2 Winbuild)</p></div><div><div><p class="MsoNormal"> </p><div><div><div><div><p class="MsoNormal" style="background:white"><span style="font-size:9.5pt">Hello All!</span></p></div><div><p class="MsoNormal" style="background:white"><span style="font-size:9.5pt"> </span></p></div><div><p class="MsoNormal" style="background:white"><span style="font-size:9.5pt">My apologies if this is a rookie question as I am just now learning the innards of ffmpeg, but I am reaching out hoping someone may have had the same issue as myself or has any advice.</span></p></div><div><p class="MsoNormal" style="background:white"><span style="font-size:9.5pt"> </span></p></div><div><p class="MsoNormal" style="background:white"><span style="font-size:9.5pt">I cloned 4.0.2 and compiled the libraries (MS VS 2013 x64) without issue.</span></p></div><div><p class="MsoNormal" style="background:white"><span style="font-size:9.5pt">I decided to try the examples as a learning opportunity, choosing decode_video. I ended up with this result:  </span><span style="font-size:12.0pt"><a href="https://drive.google.com/file/d/1DPu1EaM7i5J3LFaaGmZNO4Hoi_QzVcKM/view?usp=sharing" target="_blank">https://drive.google.com/file/<wbr>d/1DPu1EaM7i5J3LFaaGmZNO4Hoi_<wbr>QzVcKM/view?usp=sharing</a></span><span style="font-size:9.5pt"> </span></p></div><div><p class="MsoNormal" style="background:white"><span style="font-size:9.5pt"> </span></p></div><div><p class="MsoNormal" style="background:white"><span style="font-size:9.5pt">At the top and bottom of the image there is is wavy distortion. I am not sure what is causing it.</span></p></div><div><p class="MsoNormal" style="background:white"><span style="font-size:9.5pt">The source file is a quicktime of a Motion JPEG video.</span></p></div><div><p class="MsoNormal" style="background:white"><span style="font-size:9.5pt"> </span></p></div><div><p class="MsoNormal" style="background:white"><span style="font-size:9.5pt">I had also compiled the exe as well and ran this command</span></p></div><div><p class="MsoNormal" style="background:white"><span style="font-size:9.5pt"> </span></p></div><div><p class="MsoNormal" style="background:white"><span style="font-size:9.5pt">ffmpeg.exe -ss 0.5 -i my_quicktime.mov  -t 1 -s 480x300 -f image2 C:/frame-%03d.jpg</span></p></div><div><p class="MsoNormal" style="background:white"><span style="font-size:9.5pt"> </span></p></div><div><p class="MsoNormal" style="background:white"><span style="font-size:9.5pt">and those images turned out just fine (I am sure this probably runs some completely different underlying code but I just wanted to make sure what I compiled was capable of a successful result)</span></p></div><div><p class="MsoNormal" style="background:white"><span style="font-size:9.5pt"> </span></p></div><div><p class="MsoNormal" style="background:white"><span style="font-size:9.5pt">I figure I am doing something incorrectly but I do not know where else to look. If anyone has any advice on what to tinker with, I would greatly appreciate it.</span></p></div><div><p class="MsoNormal" style="background:white"><span style="font-size:9.5pt"> </span></p></div><div><p class="MsoNormal" style="background:white"><span style="font-size:9.5pt">Thanks,</span></p></div></div></div></div><p class="MsoNormal" style="background:white"><span style="font-size:9.5pt">Chris Bennett</span></p><p class="MsoNormal"> </p></div></div></div></div><p class="MsoNormal" style="margin-bottom:12.0pt"><br>______________________________<wbr>_________________<br>Libav-user mailing list<br><a href="mailto:Libav-user@ffmpeg.org" target="_blank">Libav-user@ffmpeg.org</a><br><a href="http://ffmpeg.org/mailman/listinfo/libav-user" target="_blank">http://ffmpeg.org/mailman/<wbr>listinfo/libav-user</a></p></blockquote></div></div></div></div><p class="MsoNormal"> </p><p class="MsoNormal"> </p></div></div><p class="MsoNormal" style="margin-bottom:12.0pt"><br>______________________________<wbr>_________________<br>Libav-user mailing list<br><a href="mailto:Libav-user@ffmpeg.org" target="_blank">Libav-user@ffmpeg.org</a><br><a href="http://ffmpeg.org/mailman/listinfo/libav-user" target="_blank">http://ffmpeg.org/mailman/<wbr>listinfo/libav-user</a></p></blockquote></div></div></div></div><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p></div></div></div></div><br>______________________________<wbr>_________________<br>
Libav-user mailing list<br>
<a href="mailto:Libav-user@ffmpeg.org">Libav-user@ffmpeg.org</a><br>
<a href="http://ffmpeg.org/mailman/listinfo/libav-user" rel="noreferrer" target="_blank">http://ffmpeg.org/mailman/<wbr>listinfo/libav-user</a><br>
<br></blockquote></div><br></div></div>