<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>I am trying to implement a custom IO read, where I have some jpeg frames coming as byte array and I have to decode them for later processing.<div>For now my function just read the first two successive frames, then the call to </div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><h1 itemprop="name" style="margin: 0px 0px 0.5em; padding: 0px; border: 0px; line-height: 1.3; color: rgb(34, 34, 34); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; background-color: rgb(255, 255, 255);"><font size="3" style="margin: 0px 0px 0.5em; padding: 0px; border: 0px; text-decoration: none; cursor: pointer; color: rgb(34, 34, 34); line-height: 1.35; font-weight: normal;"><a href="http://stackoverflow.com/questions/30890744/libav-avformat-open-input-error-code-1094995529" class="question-hyperlink" style="margin: 0px 0px 0.5em; padding: 0px; border: 0px; text-decoration: none; cursor: pointer; color: rgb(34, 34, 34); line-height: 1.35; font-weight: normal;">avformat_open_input return -1094995529</a></font></h1><div><br></div><div><br></div></blockquote><div>uint8_t* buffer = NULL, * avioCxt_buffer = NULL;</div><div><span class="Apple-tab-span" style="white-space:pre">           </span>buffer_data bd;</div><div><span class="Apple-tab-span" style="white-space:pre">              </span>int ret = 0;</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>bd.ptr = (uint8_t *) pJPEGFrame;</div><div><span class="Apple-tab-span" style="white-space:pre">             </span>bd.size = len;</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">              </span>// allocate the context data structure</div><div><span class="Apple-tab-span" style="white-space:pre">               </span>if ( (*outputFormatCxt = avformat_alloc_context() ) == NULL)</div><div><span class="Apple-tab-span" style="white-space:pre">         </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">                    </span>fprintf(stderr, "convert_JPEG_Frame_TO_AVFrame @line(%d) - failed to allocate memory for context", __LINE__);</div><div><span class="Apple-tab-span" style="white-space:pre">                      </span>return -1;</div><div><span class="Apple-tab-span" style="white-space:pre">           </span>}</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">           </span>if ( (avioCxt_buffer = (uint8_t *) av_malloc(len)) == NULL)</div><div><span class="Apple-tab-span" style="white-space:pre">          </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">                    </span>fprintf(stderr, "convert_JPEG_Frame_TO_AVFrame @line(%d) - failed to allocate memory", __LINE__);</div><div><span class="Apple-tab-span" style="white-space:pre">                  </span>avformat_close_input(outputFormatCxt);</div><div><span class="Apple-tab-span" style="white-space:pre">                       </span>return -1;</div><div><span class="Apple-tab-span" style="white-space:pre">           </span>}</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">           </span>if ( (*pAvIOCxt = avio_alloc_context(avioCxt_buffer, len, 0, &bd, read_packet, NULL, NULL)) == NULL)</div><div><span class="Apple-tab-span" style="white-space:pre">             </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">                    </span>fprintf(stderr, "convert_JPEG_Frame_TO_AVFrame @line(%d) - failed to allocate memory", __LINE__);</div><div><span class="Apple-tab-span" style="white-space:pre">                  </span>return -1;</div><div><span class="Apple-tab-span" style="white-space:pre">           </span>}</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">           </span>(*outputFormatCxt)->pb = *pAvIOCxt;</div><div><span class="Apple-tab-span" style="white-space:pre">               </span>if ( (ret = avformat_open_input(outputFormatCxt, NULL, NULL, NULL)) < 0)</div><div><span class="Apple-tab-span" style="white-space:pre">          </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">                    </span>fprintf(stderr, "convert_JPEG_Frame_TO_AVFrame @line(%d) - failed to allocate memory", __LINE__);</div><div><span class="Apple-tab-span" style="white-space:pre">                  </span>return -1;</div><div><span class="Apple-tab-span" style="white-space:pre">           </span>}</div><div><br></div><div>I am following the avio_read example using the same read callback function for the avio context.</div><div><br></div><div>Thanks in advance.</div>                                      </div></body>
</html>