[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