[Libav-user] Find audio frames headers within bitstream

Paul B Mahol onemda at gmail.com
Wed Nov 7 14:34:24 EET 2018


On 11/7/18, Vasiliy Volkov <volk.vasiliy at gmail.com> wrote:
> ср, 7 нояб. 2018 г. в 14:44, Paul B Mahol <onemda at gmail.com>:
>
>> On 11/7/18, Vasiliy Volkov <volk.vasiliy at gmail.com> wrote:
>> > ср, 7 нояб. 2018 г. в 14:14, Paul B Mahol <onemda at gmail.com>:
>> >
>> >> On 11/7/18, Vasiliy Volkov <volk.vasiliy at gmail.com> wrote:
>> >> > Hi, again,
>> >> >
>> >> > we've encountered an issue with decoding audio streams. Sometimes
>> audio
>> >> > codec headers are not aligned to PES packets (we work with mpegts).
>> >> > So
>> >> when
>> >> > we try to decode such streams libav decoder fails, because he can't
>> >> > find
>> >> > where to start decoding process. For such task libav has parsers,
>> which
>> >> > need to be used for correct decoding arbitrary bitstreams: first you
>> >> > find
>> >> > position of header, next send to decoder. We've find that there are
>> >> exists
>> >> > private api for such task: libavcodec/mpegaudiodecheader.h but it's
>> >> > private, and using it in our project is not very clean way, and all
>> >> public
>> >> > API's requires to use avio* methods which we don't like to use.
>> >> >
>> >> > Is there any other of private API way to find audio frames headers
>> >> > positions?
>> >> >
>> >>
>> >> What is wrong with using parsers?
>> >>
>> >
>> > Parsers are private api and when we compile libav they are not
>> > included,
>> > so we need to copy header file into our project and then access -- it's
>> not
>> > good way.
>>
>> Why they are not included when you compile FFmpeg?
>>
>
> Paul, ok, we've found why they are not included :) Not all headers take
> into account in Makefile:
> libavcodec/Makefile
> HEADERS = ac3_parser.h                                                  \
>           adts_parser.h                                                 \
>           avcodec.h                                                     \
>           avdct.h                                                       \
>           avfft.h                                                       \
>           d3d11va.h                                                     \
>           dirac.h                                                       \
>           dv_profile.h                                                  \
>           dxva2.h                                                       \
>           jni.h                                                         \
>           mediacodec.h                                                  \
>           qsv.h                                                         \
>           vaapi.h                                                       \
>           vdpau.h                                                       \
>           version.h                                                     \
>           videotoolbox.h                                                \
>           vorbis_parser.h                                               \
>           xvmc.h                                                        \
>
>  And libavcodec/mpegaudiodecheader.h just not selected here.

Please post configure line of your ffmpeg compilation. It is part of
ffmpeg output wihtout -hide-banner.


More information about the Libav-user mailing list