On 12/8/24 22:55, Michael Niedermayer wrote:
On Wed, Dec 04, 2024 at 03:14:07PM +0100, ffnicol...@sfr.fr wrote:
From: Nicolas Gaullier <nicolas.gaullier@cji.paris>
Move s302m decoder from avcodec to avformat.
Set AVSTREAM_PARSE_FULL for s337m support.
Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris>
---
libavformat/mpegts.c | 138 +++++++++++++++++++++++++++++++++++++++++-
tests/fate/acodec.mak | 3 +-
2 files changed, 139 insertions(+), 2 deletions(-)
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index 177e610e53..fd649751fc 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -31,6 +31,7 @@
#include "libavutil/opt.h"
#include "libavutil/avassert.h"
#include "libavutil/dovi_meta.h"
+#include "libavutil/reverse.h"
#include "libavcodec/bytestream.h"
#include "libavcodec/defs.h"
#include "libavcodec/get_bits.h"
[...]
+static int s302m_demux(AVCodecParameters *par, AVPacket *pkt)
+{
+ int ret = av_packet_make_writable(pkt);
+ if (ret < 0)
+ return ret;
+ pkt->data += AES3_HEADER_LEN;
+ av_shrink_packet(pkt, pkt->size - AES3_HEADER_LEN);
+
+ if (par->bits_per_raw_sample == 24) {
+ uint8_t *buf = pkt->data;
+ uint8_t *buf_out = buf;
+ for (; buf + 6 < pkt->data + pkt->size; buf+=7, buf_out+=6)
+ AV_WL48(buf_out,
+ ((uint64_t)ff_reverse[buf[2]] << 16) |
+ ((uint64_t)ff_reverse[buf[1]] << 8) |
+ ((uint64_t)ff_reverse[buf[0]]) |
+ ((uint64_t)ff_reverse[buf[6] & 0xf0] << 44) |
+ ((uint64_t)ff_reverse[buf[5]] << 36) |
+ ((uint64_t)ff_reverse[buf[4]] << 28) |
+ ((uint64_t)ff_reverse[buf[3] & 0x0f] << 20));
+ av_shrink_packet(pkt, buf_out - pkt->data);
/usr/bin/ld: libavformat/libavformat.so: undefined reference to `ff_reverse'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Makefile:142: ffprobe_g] Error 1
make: *** Waiting for unfinished jobs....
/usr/bin/ld: libavformat/libavformat.so: undefined reference to `ff_reverse'
/usr/bin/ld: libavformat/libavformat.so: undefined reference to `ff_reverse'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Makefile:142: ffplay_g] Error 1
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Makefile:142: ffmpeg_g] Error 1
thx
ff_* symbols are not exported and are internal to each library. Some of
the other libraries `#include "libavutil/reverse.c"` in a file. Should
ff_reverse be renamed avpriv_reverse so that is not necessary?
Regards,
Scott Theisen
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".