<div dir="rtl"><div dir="ltr">you right (I tried to make it simpler) this is the code:<br><br>#include "libavformat/avformat.h"<br>#include <libavcodec/avcodec.h><br>#include <libavutil/avutil.h><br>#include <libavutil/rational.h><br>#include <libavutil/samplefmt.h><br>#include "libswresample/swresample.h"<br><br>#include <stdio.h><br>#include <assert.h><br><br>#define AVCODEC_MAX_AUDIO_FRAME_SIZE 19200<br><br>void die(const char *msg)<br>{<br>    fprintf(stderr,"%s\n",msg);<br>    exit(1);<br>}<br><br>int main(int argc, char** argv)<br>{<br>    <br>    av_register_all();<br>   avformat_network_init();<br>  <br>  <br>    const char* input_filename=argv[1];<br>   <br>   AVFormatContext* container=avformat_alloc_context();<br>    if(avformat_open_input(&container,input_filename,NULL,NULL)<0)<br>        die("Could not open file");<br>   <br>    if(avformat_find_stream_info(container,NULL)<0)<br>        die("Could not find file info");<br>   <br>  <br>   av_dump_format(container,0,input_filename,0);<br><br>   <br>    int stream_id=-1;<br>    int i;<br>    for(i=0;i<container->nb_streams;i++)<br>    {<br>       if(container->streams[i]->codec->codec_type==AVMEDIA_TYPE_AUDIO)<br>        {<br>            stream_id=i;//audio stream index<br>            break;<br>        }<br>    }<br>    if(stream_id==-1){<br>        die("Could not find Audio Stream");<br>    }<br><br>    AVDictionary *metadata=container->metadata;<br><br>    AVCodecContext *ctx=container->streams[stream_id]->codec;<br>    AVCodec *codec=avcodec_find_decoder(ctx->codec_id);<br> <br>    ctx=avcodec_alloc_context3(codec);<br>    <br>    if(codec==NULL){<br>        die("cannot find codec!");<br>    }<br><br>   <br>    if(avcodec_open2(ctx,codec, NULL)<0){<br>        die("Codec cannot be found");<br>    }<br>     <br>    int bits;<br>    enum AVSampleFormat sfmt=ctx->sample_fmt;<br><br>    if(sfmt==AV_SAMPLE_FMT_U8){<br>        printf("U8\n");<br><br>        bits=8;<br>    }else if(sfmt==AV_SAMPLE_FMT_S16){<br>        printf("S16\n");<br>        bits=16;<br>    }else if(sfmt==AV_SAMPLE_FMT_S32){<br>        printf("S32\n");<br>        bits=32;<br>    }<br>   else if(sfmt==AV_SAMPLE_FMT_FLTP){<br>        bits=32;<br>   }<br>   <br>   printf("\nBits: %d, Channels:%d\nRate: %d\n",bits, ctx->channels, ctx->sample_rate );<br>   <br>     <br>    // prepare to read data<br>    AVPacket packet;<br>    av_init_packet(&packet);<br><br>    AVFrame *frame=av_frame_alloc();<br>    if (!frame)<br>    {<br>        fprintf(stderr, "Error allocating the frame\n");<br>        return -1;<br>    }<br>   <br>    int buffer_size=AVCODEC_MAX_AUDIO_FRAME_SIZE+ FF_INPUT_BUFFER_PADDING_SIZE;<br>   <br>    uint8_t buffer[buffer_size];<br>    packet.data=buffer;<br>    packet.size =buffer_size;<br>    packet.pos = 0; //add from <a href="https://lists.ffmpeg.org/pipermail/ffmpeg-user/2013-August/017040.html">https://lists.ffmpeg.org/pipermail/ffmpeg-user/2013-August/017040.html</a><br>   <br>    int len;<br>    int frameFinished=0;<br>    i = 0;<br>  <br>     while(av_read_frame(container,&packet)>=0)<br>    {<br><br>        if(packet.stream_index==stream_id){<br>            //printf("Audio Frame read  \n");<br>            int len=avcodec_decode_audio4(ctx,frame,&frameFinished,&packet);<br>            //frame-><br>            if(frameFinished){<br>              printf("Finished reading Frame len : %d , nb_samples:%d buffer_size:%d line size: %d \n",len,frame->nb_samples,buffer_size,frame->linesize[0]);<br>              <br>                if (i == 0)<br>                {<br>                    printf("play\n");<br>                    i++;<br>                }<br>            }else<br>            {<br>                printf("Not Finished\n");<br>            }<br><br>        }else {<br>            printf("Some other packet possibly Video\n");<br>        }<br><br><br>    }<br><br>    avformat_close_input(&container);<br>    return 0;<br>}<br></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div dir="ltr">2017-04-04 13:35 GMT+03:00 Carl Eugen Hoyos <span dir="ltr"><<a href="mailto:ceffmpeg@gmail.com" target="_blank">ceffmpeg@gmail.com</a>></span>:</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">2017-04-04 12:15 GMT+02:00 יוסף אלון <<a href="mailto:yos104104@gmail.com">yos104104@gmail.com</a>>:<br>
><br>
> I am reading a udp data and recieve:<br>
><br>
> Input #0, mpegts, from 'udp://<a href="http://224.10.0.15:1234" rel="noreferrer" target="_blank">224.10.0.15:1234</a>':<br>
>   Duration: N/A, start: 66502.042356, bitrate: N/A<br>
>   Program 29<br>
>     Metadata:<br>
>       service_name    : Galatz<br>
>       service_provider: Idan +<br>
>     Stream #0:0[0xb81]: Audio: aac_latm (HE-AAC) ([17][0][0][0] / 0x0011),<br>
> 48000 Hz, stereo, fltp<br>
><br>
> But when I print the codec context I receive the following data:<br>
> Bits: 8, Channels:2048<br>
> sample_rate: 8.<br>
<br>
</span>The code you posted looks different from this output.<br>
<br>
Carl Eugen<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>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="rtl"><div style="TEXT-ALIGN:center">בברכה, יוסף אלון</div>
<div style="TEXT-ALIGN:center">050-4916740</div></div></div>
</div>