<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 12 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="2050" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">I’m trying to seek to a byte offset in an MP4 file.  I can’t use avformat_seek_file() because the AVFMT_NO_BYTE_SEEK flag is set in the demuxer.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I’m reading the first 150 frames in the file, then seeking to a known file location.  I’ve been able to use avio_seek to set the m_pFormatCtx->pb->pos value to the correct offset, but the next call to av_read_frame() puts it right back
 to where it was, such that the next frame read is #151.  The seek code is:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">                    
</span><span style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white">int64_t</span><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white"> filePos = m_posData.GetFrameOffset(frameNum);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">                    
</span><span style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white">int64_t</span><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white"> ret = avio_seek(m_pFormatCtx->pb,
 filePos, </span><span style="font-size:9.5pt;font-family:Consolas;color:#6F008A;background:white;mso-highlight:white">SEEK_SET</span><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">                     avformat_flush(m_pFormatCtx);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">                     avcodec_flush_buffers(m_pVideoCodecCtx);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">                     avcodec_flush_buffers(m_pAudioCodecCtx);<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Is there something else that needs to be called to actually clear up the internal buffers so that av_read_frame will start at the correct location?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
<p class="MsoNormal">Blake<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b><span style="font-size:14.0pt;color:#0D0D0D">Blake Williams</span></b><span style="font-size:14.0pt;color:#0D0D0D"><o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;color:#50555A">Principal Software Engineer, Training and Control Systems<o:p></o:p></span></b></p>
<p class="MsoNormal"><span style="font-size:10.0pt;color:#50555A">DRS Technologies, Inc.</span><span style="color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><span style="font-family:"Arial","sans-serif";color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#E61E0F"><img width="193" height="144" id="Picture_x0020_3" src="cid:image002.png@01D1B121.8B79FDC0" alt="Final-New-DRS-Color.png"><o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;color:#E61E0F"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><span style="font-size:8.0pt;color:#50555A">645 Anchors Street<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:8.0pt;color:#50555A">Fort Walton Beach, Florida 32548</span><span style="font-size:12.0pt;color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:8.0pt;color:#50555A">Tel: 850.302-3281<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><span style="font-size:10.0pt;color:#1F497D"><a href="mailto:CKuypers@DRS-DS.com"><b><span style="color:blue">bwilliams@drs.com</span></b></a>  ||
</span><b><u><span style="font-size:10.0pt;color:blue"><a href="http://www.drs.com/"><span style="color:blue">www.drs.com</span></a></span></u></b><span style="font-size:10.0pt;color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:8.0pt;color:#50555A"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:8.0pt;color:#50555A">This communication is intended only for use by the addressee(s) named herein and may contain business proprietary and/or legally privileged information. If you are not the intended recipient of
 this e-mail, you are hereby notified that any dissemination, distribution, disclosure or copying of this e-mail and its contents is strictly prohibited. If you have received this e-mail in error, kindly notify the sender by replying to this message. In addition,
 please permanently delete the message and any attachments without copying or disclosing the contents. Thank you for your cooperation.<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>