bytedeco/javacv

Filled side_ data not received correctly(javacv 1.5.9)

Open

#2,138 opened on Dec 5, 2023

View on GitHub
 (8 comments) (0 reactions) (0 assignees)Java (1,583 forks)batch import
enhancementhelp wantedquestion

Repository metrics

Stars
 (6,985 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

my app:project A send side_data To B I used mediamtx as the RTSP server
java code: A:

        private static String inputUrl = "rtsp://localhost:8554/stream";
        private static String outputUrl = "rtsp://localhost:8554/stream1";
        FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(inputUrl);
        grabber.setOption("rtsp_transport", "tcp");

        grabber.start();
        FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(outputUrl, grabber.getImageWidth(), grabber.getImageHeight());
        recorder.setVideoCodec(AV_CODEC_ID_H264);
        recorder.setOption("rtsp_transport", "tcp");
        recorder.setPixelFormat(AV_PIX_FMT_YUV420P);
        recorder.setFormat("rtsp");
        recorder.start(grabber.getFormatContext());
        AVPacket packet = null;
        while ((packet = grabber.grabPacket()) != null) {

            BytePointer retrievedData = av_packet_new_side_data(packet, AV_PKT_DATA_NEW_EXTRADATA, extradata.length);
            retrievedData.put(seiBytes,0,seiBytes.length);
            // Consistent with the 'extradata' filled in
            System.out.println(Arrays.toString(av_packet_get_side_data(packet, AV_PKT_DATA_NEW_EXTRADATA, new SizeTPointer()).getStringBytes()));
            recorder.recordPacket(packet);
            avcodec.av_packet_unref(packet);
        }

B:

        private static String inputUrl = "rtsp://localhost:8554/stream1";
        FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(inputUrl);
        grabber.setOption("rtsp_transport", "tcp");
        // retrievedData is null
        BytePointer retrievedData = av_packet_get_side_data(avPacket, AV_PKT_DATA_NEW_EXTRADATA, new SizeTPointer());
        

How should I modify the code so that the A can transmit the side correctly_ Data to B

Contributor guide