This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit 90a20fd15b6aa9336bab7dec8e2d18b70703786d
Author:     Kacper Michajłow <[email protected]>
AuthorDate: Sat Sep 5 21:43:23 2026 +0200
Commit:     Kacper Michajłow <[email protected]>
CommitDate: Sun Sep 6 00:48:24 2026 +0200

    avformat: set the sample format of DSD streams
    
    The DSF, DSDIFF and WavPack demuxers know that a stream carries DSD, so
    report AV_SAMPLE_FMT_DSD as its sample format.
    
    Signed-off-by: Kacper Michajłow <[email protected]>
---
 libavformat/dsfdec.c | 1 +
 libavformat/iff.c    | 1 +
 libavformat/wvdec.c  | 2 ++
 3 files changed, 4 insertions(+)

diff --git a/libavformat/dsfdec.c b/libavformat/dsfdec.c
index 87a5fd0272..c8f5bb5668 100644
--- a/libavformat/dsfdec.c
+++ b/libavformat/dsfdec.c
@@ -130,6 +130,7 @@ static int dsf_read_header(AVFormatContext *s)
         avpriv_request_sample(s, "unknown most significant bit");
         return AVERROR_INVALIDDATA;
     }
+    st->codecpar->format = AV_SAMPLE_FMT_DSD;
 
     dsf->audio_size = avio_rl64(pb) / 8 * st->codecpar->ch_layout.nb_channels;
     st->codecpar->block_align = avio_rl32(pb);
diff --git a/libavformat/iff.c b/libavformat/iff.c
index 456b7e35da..df926cb59a 100644
--- a/libavformat/iff.c
+++ b/libavformat/iff.c
@@ -314,6 +314,7 @@ static int parse_dsd_prop(AVFormatContext *s, AVStream *st, 
uint64_t eof)
                        av_fourcc2str(tag));
                 return AVERROR_PATCHWELCOME;
             }
+            st->codecpar->format = AV_SAMPLE_FMT_DSD;
             break;
 
         case MKTAG('F','S',' ',' '):
diff --git a/libavformat/wvdec.c b/libavformat/wvdec.c
index 8abba2ccf2..6571aaf3c3 100644
--- a/libavformat/wvdec.c
+++ b/libavformat/wvdec.c
@@ -259,6 +259,8 @@ static int wv_read_header(AVFormatContext *s)
     av_channel_layout_from_mask(&st->codecpar->ch_layout, wc->chmask);
     st->codecpar->sample_rate           = wc->rate;
     st->codecpar->bits_per_coded_sample = wc->bpp;
+    if (wc->header.flags & WV_DSD)
+        st->codecpar->format = AV_SAMPLE_FMT_DSD;
     avpriv_set_pts_info(st, 64, 1, wc->rate);
     st->start_time = 0;
     if (wc->header.total_samples != 0xFFFFFFFFu)

-- 
To stop receiving notification emails like this one, please contact
[email protected].
_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to