]> git.sesse.net Git - nageru/blobdiff - futatabi/export.cpp
Fix a dangling reference (found by GCC 14).
[nageru] / futatabi / export.cpp
index ca6a5589501be64cdeb57d242b8e82d4cbd4c015..b02361e9d2bc3f71ebbd54f0800d778b9e9e947d 100644 (file)
@@ -34,16 +34,15 @@ struct BufferedFrame {
 bool write_buffered_frames(AVFormatContext *avctx, const vector<BufferedFrame> &buffered_frames)
 {
        for (const BufferedFrame &frame : buffered_frames) {
-               AVPacket pkt;
-               av_init_packet(&pkt);
-               pkt.stream_index = frame.video_stream_idx;
-               pkt.data = (uint8_t *)frame.data.data();
-               pkt.size = frame.data.size();
-               pkt.pts = frame.pts;
-               pkt.dts = frame.pts;
-               pkt.flags = AV_PKT_FLAG_KEY;
+               AVPacketWithDeleter pkt = av_packet_alloc_unique();
+               pkt->stream_index = frame.video_stream_idx;
+               pkt->data = (uint8_t *)frame.data.data();
+               pkt->size = frame.data.size();
+               pkt->pts = frame.pts;
+               pkt->dts = frame.pts;
+               pkt->flags = AV_PKT_FLAG_KEY;
 
-               if (av_write_frame(avctx, &pkt) < 0) {
+               if (av_write_frame(avctx, pkt.get()) < 0) {
                        return false;
                }
        }
@@ -136,8 +135,9 @@ void export_multitrack_clip(const string &filename, const Clip &clip)
                avstream_audio->time_base = AVRational{ 1, TIMEBASE };
                avstream_audio->codecpar->codec_type = AVMEDIA_TYPE_AUDIO;
                avstream_audio->codecpar->codec_id = AV_CODEC_ID_PCM_S32LE;
-               avstream_audio->codecpar->channel_layout = AV_CH_LAYOUT_STEREO;
-               avstream_audio->codecpar->channels = 2;
+               avstream_audio->codecpar->ch_layout.order = AV_CHANNEL_ORDER_NATIVE;
+               avstream_audio->codecpar->ch_layout.nb_channels = 2;
+               avstream_audio->codecpar->ch_layout.u.mask = AV_CH_LAYOUT_STEREO;
                avstream_audio->codecpar->sample_rate = OUTPUT_FREQUENCY;
                audio_streams.push_back(avstream_audio);
        }