This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4AL-Q1: How to revert libavcodec

Part Number: TDA4AL-Q1

Hello. Ti experts.

I'm trying to libavcodec, libavutil in PSDK 9.0.0.2.

But it seems like some of the features are not supported such as AVBitStreamFilterContext type, av_register_all(), and so on.

It's supported in PSDK 8.6. So I found out if those things are in targets.

For example In PSDK8.6, AVBitStreamFilterContext is in targetfs/usr/include/libavcodec/avcode.h as below.

#if FF_API_OLD_BSF
typedef struct AVBitStreamFilterContext {
    void *priv_data;
    const struct AVBitStreamFilter *filter;
    AVCodecParserContext *parser;
    struct AVBitStreamFilterContext *next;
    /**
     * Internal default arguments, used if NULL is passed to av_bitstream_filter_filter().
     * Not for access by library users.
     */
    char *args;
} AVBitStreamFilterContext;

...
...

#endif

av_register_all() is defined in avformat.h as below.

#if FF_API_NEXT
/**
 * Initialize libavformat and register all the muxers, demuxers and
 * protocols. If you do not call this function, then you can select
 * exactly which formats you want to support.
 *
 * @see av_register_input_format()
 * @see av_register_output_format()
 */
attribute_deprecated
void av_register_all(void);

attribute_deprecated
void av_register_input_format(AVInputFormat *format);
attribute_deprecated
void av_register_output_format(AVOutputFormat *format);
#endif

These are in the defined option using #ifdef.

But, In targets of PSDK9.0.0.2, AVBitStreamFilterContext type, av_register_all() are not defined anywhere.

So I can't build my app which is using libavcodec.

 

I would like to know how to revert that libs into targetfs.

Best regards

Yongsig

  • Hi Yongsig,

    I am not too familiar with this topic but as far as I know these libraries no longer get compiled in PSDK. If you did want to bring these in then you can do one of the following: 

    1. Cross-compile and install the libraries on the new device
    2. Enable it in Yocto and install new rootfs. 

    I recommend 2 to be a better option because Yocto handles any risk of messing up the cross-compilation when doing it yourself.

    Thanks,
    Sarabesh S.

  • Hi Yongsig, 

    After looking into it I believe you need to upgrade the API of your app's code as these functions are deprecated as of FFmpeg 4.0. FFmpeg pulls these libraries and as a result to maintain an up to date version of FFmpeg these functions were deprecated.

    You can find information on AVBitStreamFilterContext being deprecated HERE.
    You can find information on av_register_all being deprecated HERE

    Regards,
    Sarabesh S.