Unified · Split
| @@ -689,6 +689,10 @@ OBJS-$(CONFIG_PCM_S32LE_DECODER) += pcm.o · 688 unmodified lines | |||
| 689 | OBJS-$(CONFIG_PCM_S32LE_ENCODER) += pcm.o | 689 | OBJS-$(CONFIG_PCM_S32LE_ENCODER) += pcm.o |
| 690 | OBJS-$(CONFIG_PCM_S32LE_PLANAR_DECODER) += pcm.o | 690 | OBJS-$(CONFIG_PCM_S32LE_PLANAR_DECODER) += pcm.o |
| 691 | OBJS-$(CONFIG_PCM_S32LE_PLANAR_ENCODER) += pcm.o | 691 | OBJS-$(CONFIG_PCM_S32LE_PLANAR_ENCODER) += pcm.o |
| 692 | OBJS-$(CONFIG_PCM_S64BE_DECODER) += pcm.o | ||
| 693 | OBJS-$(CONFIG_PCM_S64BE_ENCODER) += pcm.o | ||
| 694 | OBJS-$(CONFIG_PCM_S64LE_DECODER) += pcm.o | ||
| 695 | OBJS-$(CONFIG_PCM_S64LE_ENCODER) += pcm.o | ||
| 692 | OBJS-$(CONFIG_PCM_U8_DECODER) += pcm.o | 696 | OBJS-$(CONFIG_PCM_U8_DECODER) += pcm.o |
| 693 | OBJS-$(CONFIG_PCM_U8_ENCODER) += pcm.o | 697 | OBJS-$(CONFIG_PCM_U8_ENCODER) += pcm.o |
| 694 | OBJS-$(CONFIG_PCM_U16BE_DECODER) += pcm.o | 698 | OBJS-$(CONFIG_PCM_U16BE_DECODER) += pcm.o |
| @@ -487,6 +487,8 @@ void avcodec_register_all(void) · 486 unmodified lines | |||
| 487 | REGISTER_ENCDEC (PCM_S32BE, pcm_s32be); | 487 | REGISTER_ENCDEC (PCM_S32BE, pcm_s32be); |
| 488 | REGISTER_ENCDEC (PCM_S32LE, pcm_s32le); | 488 | REGISTER_ENCDEC (PCM_S32LE, pcm_s32le); |
| 489 | REGISTER_ENCDEC (PCM_S32LE_PLANAR, pcm_s32le_planar); | 489 | REGISTER_ENCDEC (PCM_S32LE_PLANAR, pcm_s32le_planar); |
| 490 | REGISTER_ENCDEC (PCM_S64BE, pcm_s64be); | ||
| 491 | REGISTER_ENCDEC (PCM_S64LE, pcm_s64le); | ||
| 490 | REGISTER_ENCDEC (PCM_U8, pcm_u8); | 492 | REGISTER_ENCDEC (PCM_U8, pcm_u8); |
| 491 | REGISTER_ENCDEC (PCM_U16BE, pcm_u16be); | 493 | REGISTER_ENCDEC (PCM_U16BE, pcm_u16be); |
| 492 | REGISTER_ENCDEC (PCM_U16LE, pcm_u16le); | 494 | REGISTER_ENCDEC (PCM_U16LE, pcm_u16le); |
| @@ -445,9 +445,9 @@ enum AVCodecID { · 444 unmodified lines | |||
| 445 | AV_CODEC_ID_PCM_S24LE_PLANAR, | 445 | AV_CODEC_ID_PCM_S24LE_PLANAR, |
| 446 | AV_CODEC_ID_PCM_S32LE_PLANAR, | 446 | AV_CODEC_ID_PCM_S32LE_PLANAR, |
| 447 | AV_CODEC_ID_PCM_S16BE_PLANAR, | 447 | AV_CODEC_ID_PCM_S16BE_PLANAR, |
| 448 | /* new PCM "codecs" should be added right below this line starting with | 448 | |
| 449 | * an explicit value of for example 0x10800 | 449 | AV_CODEC_ID_PCM_S64LE = 0x10800, |
| 450 | */ | 450 | AV_CODEC_ID_PCM_S64BE, |
| 451 | 451 | ||
| 452 | /* various ADPCM codecs */ | 452 | /* various ADPCM codecs */ |
| 453 | AV_CODEC_ID_ADPCM_IMA_QT = 0x11000, | 453 | AV_CODEC_ID_ADPCM_IMA_QT = 0x11000, |
| @@ -1636,6 +1636,20 @@ static const AVCodecDescriptor codec_descriptors[] = { · 1635 unmodified lines | |||
| 1636 | .long_name = NULL_IF_CONFIG_SMALL("PCM signed 32-bit big-endian"), | 1636 | .long_name = NULL_IF_CONFIG_SMALL("PCM signed 32-bit big-endian"), |
| 1637 | .props = AV_CODEC_PROP_LOSSLESS, | 1637 | .props = AV_CODEC_PROP_LOSSLESS, |
| 1638 | }, | 1638 | }, |
| 1639 | { | ||
| 1640 | .id = AV_CODEC_ID_PCM_S64LE, | ||
| 1641 | .type = AVMEDIA_TYPE_AUDIO, | ||
| 1642 | .name = "pcm_s64le", | ||
| 1643 | .long_name = NULL_IF_CONFIG_SMALL("PCM signed 64-bit little-endian"), | ||
| 1644 | .props = AV_CODEC_PROP_LOSSLESS, | ||
| 1645 | }, | ||
| 1646 | { | ||
| 1647 | .id = AV_CODEC_ID_PCM_S64BE, | ||
| 1648 | .type = AVMEDIA_TYPE_AUDIO, | ||
| 1649 | .name = "pcm_s64be", | ||
| 1650 | .long_name = NULL_IF_CONFIG_SMALL("PCM signed 64-bit big-endian"), | ||
| 1651 | .props = AV_CODEC_PROP_LOSSLESS, | ||
| 1652 | }, | ||
| 1639 | { | 1653 | { |
| 1640 | .id = AV_CODEC_ID_PCM_U32LE, | 1654 | .id = AV_CODEC_ID_PCM_U32LE, |
| 1641 | .type = AVMEDIA_TYPE_AUDIO, | 1655 | .type = AVMEDIA_TYPE_AUDIO, |
| @@ -145,6 +145,7 @@ static int pcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, · 144 unmodified lines | |||
| 145 | ENCODE_PLANAR(uint8_t, byte, dst, n, 0, -128) | 145 | ENCODE_PLANAR(uint8_t, byte, dst, n, 0, -128) |
| 146 | break; | 146 | break; |
| 147 | #if HAVE_BIGENDIAN | 147 | #if HAVE_BIGENDIAN |
| 148 | case AV_CODEC_ID_PCM_S64LE: | ||
| 148 | case AV_CODEC_ID_PCM_F64LE: | 149 | case AV_CODEC_ID_PCM_F64LE: |
| 149 | ENCODE(int64_t, le64, samples, dst, n, 0, 0) | 150 | ENCODE(int64_t, le64, samples, dst, n, 0, 0) |
| 150 | break; | 151 | break; |
| @@ -163,9 +164,11 @@ static int pcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, · 12 unmodified lines | |||
| 163 | break; | 164 | break; |
| 164 | case AV_CODEC_ID_PCM_F64BE: | 165 | case AV_CODEC_ID_PCM_F64BE: |
| 165 | case AV_CODEC_ID_PCM_F32BE: | 166 | case AV_CODEC_ID_PCM_F32BE: |
| 167 | case AV_CODEC_ID_PCM_S64BE: | ||
| 166 | case AV_CODEC_ID_PCM_S32BE: | 168 | case AV_CODEC_ID_PCM_S32BE: |
| 167 | case AV_CODEC_ID_PCM_S16BE: | 169 | case AV_CODEC_ID_PCM_S16BE: |
| 168 | #else | 170 | #else |
| 171 | case AV_CODEC_ID_PCM_S64BE: | ||
| 169 | case AV_CODEC_ID_PCM_F64BE: | 172 | case AV_CODEC_ID_PCM_F64BE: |
| 170 | ENCODE(int64_t, be64, samples, dst, n, 0, 0) | 173 | ENCODE(int64_t, be64, samples, dst, n, 0, 0) |
| 171 | break; | 174 | break; |
| @@ -181,6 +184,7 @@ static int pcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, · 9 unmodified lines | |||
| 181 | break; | 184 | break; |
| 182 | case AV_CODEC_ID_PCM_F64LE: | 185 | case AV_CODEC_ID_PCM_F64LE: |
| 183 | case AV_CODEC_ID_PCM_F32LE: | 186 | case AV_CODEC_ID_PCM_F32LE: |
| 187 | case AV_CODEC_ID_PCM_S64LE: | ||
| 184 | case AV_CODEC_ID_PCM_S32LE: | 188 | case AV_CODEC_ID_PCM_S32LE: |
| 185 | case AV_CODEC_ID_PCM_S16LE: | 189 | case AV_CODEC_ID_PCM_S16LE: |
| 186 | #endif /* HAVE_BIGENDIAN */ | 190 | #endif /* HAVE_BIGENDIAN */ |
| @@ -390,6 +394,7 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, · 203 unmodified lines | |||
| 390 | } | 394 | } |
| 391 | break; | 395 | break; |
| 392 | #if HAVE_BIGENDIAN | 396 | #if HAVE_BIGENDIAN |
| 397 | case AV_CODEC_ID_PCM_S64LE: | ||
| 393 | case AV_CODEC_ID_PCM_F64LE: | 398 | case AV_CODEC_ID_PCM_F64LE: |
| 394 | DECODE(64, le64, src, samples, n, 0, 0) | 399 | DECODE(64, le64, src, samples, n, 0, 0) |
| 395 | break; | 400 | break; |
| @@ -408,9 +413,11 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, · 12 unmodified lines | |||
| 408 | break; | 413 | break; |
| 409 | case AV_CODEC_ID_PCM_F64BE: | 414 | case AV_CODEC_ID_PCM_F64BE: |
| 410 | case AV_CODEC_ID_PCM_F32BE: | 415 | case AV_CODEC_ID_PCM_F32BE: |
| 416 | case AV_CODEC_ID_PCM_S64BE: | ||
| 411 | case AV_CODEC_ID_PCM_S32BE: | 417 | case AV_CODEC_ID_PCM_S32BE: |
| 412 | case AV_CODEC_ID_PCM_S16BE: | 418 | case AV_CODEC_ID_PCM_S16BE: |
| 413 | #else | 419 | #else |
| 420 | case AV_CODEC_ID_PCM_S64BE: | ||
| 414 | case AV_CODEC_ID_PCM_F64BE: | 421 | case AV_CODEC_ID_PCM_F64BE: |
| 415 | DECODE(64, be64, src, samples, n, 0, 0) | 422 | DECODE(64, be64, src, samples, n, 0, 0) |
| 416 | break; | 423 | break; |
| @@ -426,6 +433,7 @@ static int pcm_decode_frame(AVCodecContext *avctx, void *data, · 9 unmodified lines | |||
| 426 | break; | 433 | break; |
| 427 | case AV_CODEC_ID_PCM_F64LE: | 434 | case AV_CODEC_ID_PCM_F64LE: |
| 428 | case AV_CODEC_ID_PCM_F32LE: | 435 | case AV_CODEC_ID_PCM_F32LE: |
| 436 | case AV_CODEC_ID_PCM_S64LE: | ||
| 429 | case AV_CODEC_ID_PCM_S32LE: | 437 | case AV_CODEC_ID_PCM_S32LE: |
| 430 | case AV_CODEC_ID_PCM_S16LE: | 438 | case AV_CODEC_ID_PCM_S16LE: |
| 431 | #endif /* HAVE_BIGENDIAN */ | 439 | #endif /* HAVE_BIGENDIAN */ |
| @@ -568,4 +576,5 @@ PCM_CODEC (PCM_U24LE, AV_SAMPLE_FMT_S32, pcm_u24le, "PCM unsigned · 136 unmodified lines | |||
| 568 | PCM_CODEC (PCM_U32BE, AV_SAMPLE_FMT_S32, pcm_u32be, "PCM unsigned 32-bit big-endian"); | 576 | PCM_CODEC (PCM_U32BE, AV_SAMPLE_FMT_S32, pcm_u32be, "PCM unsigned 32-bit big-endian"); |
| 569 | PCM_CODEC (PCM_U32LE, AV_SAMPLE_FMT_S32, pcm_u32le, "PCM unsigned 32-bit little-endian"); | 577 | PCM_CODEC (PCM_U32LE, AV_SAMPLE_FMT_S32, pcm_u32le, "PCM unsigned 32-bit little-endian"); |
| 570 | PCM_DECODER(PCM_ZORK, AV_SAMPLE_FMT_U8, pcm_zork, "PCM Zork"); | 578 | PCM_DECODER(PCM_ZORK, AV_SAMPLE_FMT_U8, pcm_zork, "PCM Zork"); |
| 571 | 579 | PCM_CODEC (PCM_S64BE, AV_SAMPLE_FMT_S64, pcm_s64be, "PCM signed 64-bit big-endian"); | |
| 580 | PCM_CODEC (PCM_S64LE, AV_SAMPLE_FMT_S64, pcm_s64le, "PCM signed 64-bit little-endian"); | ||
| @@ -3419,6 +3419,8 @@ int av_get_exact_bits_per_sample(enum AVCodecID codec_id) · 3418 unmodified lines | |||
| 3419 | return 32; | 3419 | return 32; |
| 3420 | case AV_CODEC_ID_PCM_F64BE: | 3420 | case AV_CODEC_ID_PCM_F64BE: |
| 3421 | case AV_CODEC_ID_PCM_F64LE: | 3421 | case AV_CODEC_ID_PCM_F64LE: |
| 3422 | case AV_CODEC_ID_PCM_S64BE: | ||
| 3423 | case AV_CODEC_ID_PCM_S64LE: | ||
| 3422 | return 64; | 3424 | return 64; |
| 3423 | default: | 3425 | default: |
| 3424 | return 0; | 3426 | return 0; |
| @@ -3436,6 +3438,7 @@ enum AVCodecID av_get_pcm_codec(enum AVSampleFormat fmt, int be) · 11 unmodified lines | |||
| 3436 | [AV_SAMPLE_FMT_U8P ] = { AV_CODEC_ID_PCM_U8, AV_CODEC_ID_PCM_U8 }, | 3438 | [AV_SAMPLE_FMT_U8P ] = { AV_CODEC_ID_PCM_U8, AV_CODEC_ID_PCM_U8 }, |
| 3437 | [AV_SAMPLE_FMT_S16P] = { AV_CODEC_ID_PCM_S16LE, AV_CODEC_ID_PCM_S16BE }, | 3439 | [AV_SAMPLE_FMT_S16P] = { AV_CODEC_ID_PCM_S16LE, AV_CODEC_ID_PCM_S16BE }, |
| 3438 | [AV_SAMPLE_FMT_S32P] = { AV_CODEC_ID_PCM_S32LE, AV_CODEC_ID_PCM_S32BE }, | 3440 | [AV_SAMPLE_FMT_S32P] = { AV_CODEC_ID_PCM_S32LE, AV_CODEC_ID_PCM_S32BE }, |
| 3441 | [AV_SAMPLE_FMT_S64P] = { AV_CODEC_ID_PCM_S64LE, AV_CODEC_ID_PCM_S64BE }, | ||
| 3439 | [AV_SAMPLE_FMT_FLTP] = { AV_CODEC_ID_PCM_F32LE, AV_CODEC_ID_PCM_F32BE }, | 3442 | [AV_SAMPLE_FMT_FLTP] = { AV_CODEC_ID_PCM_F32LE, AV_CODEC_ID_PCM_F32BE }, |
| 3440 | [AV_SAMPLE_FMT_DBLP] = { AV_CODEC_ID_PCM_F64LE, AV_CODEC_ID_PCM_F64BE }, | 3443 | [AV_SAMPLE_FMT_DBLP] = { AV_CODEC_ID_PCM_F64LE, AV_CODEC_ID_PCM_F64BE }, |
| 3441 | }; | 3444 | }; |
| @@ -28,7 +28,7 @@ · 27 unmodified lines | |||
| 28 | #include "libavutil/version.h" | 28 | #include "libavutil/version.h" |
| 29 | 29 | ||
| 30 | #define LIBAVCODEC_VERSION_MAJOR 57 | 30 | #define LIBAVCODEC_VERSION_MAJOR 57 |
| 31 | #define LIBAVCODEC_VERSION_MINOR 53 | 31 | #define LIBAVCODEC_VERSION_MINOR 54 |
| 32 | #define LIBAVCODEC_VERSION_MICRO 100 | 32 | #define LIBAVCODEC_VERSION_MICRO 100 |
| 33 | 33 | ||
| 34 | #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ | 34 | #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ |
| @@ -436,6 +436,7 @@ const AVCodecTag ff_codec_wav_tags[] = { · 435 unmodified lines | |||
| 436 | { AV_CODEC_ID_PCM_U8, 0x0001 }, | 436 | { AV_CODEC_ID_PCM_U8, 0x0001 }, |
| 437 | { AV_CODEC_ID_PCM_S24LE, 0x0001 }, | 437 | { AV_CODEC_ID_PCM_S24LE, 0x0001 }, |
| 438 | { AV_CODEC_ID_PCM_S32LE, 0x0001 }, | 438 | { AV_CODEC_ID_PCM_S32LE, 0x0001 }, |
| 439 | { AV_CODEC_ID_PCM_S64LE, 0x0001 }, | ||
| 439 | { AV_CODEC_ID_ADPCM_MS, 0x0002 }, | 440 | { AV_CODEC_ID_ADPCM_MS, 0x0002 }, |
| 440 | { AV_CODEC_ID_PCM_F32LE, 0x0003 }, | 441 | { AV_CODEC_ID_PCM_F32LE, 0x0003 }, |
| 441 | /* must come after f32le in this list */ | 442 | /* must come after f32le in this list */ |
| @@ -2991,6 +2991,8 @@ enum AVCodecID ff_get_pcm_codec_id(int bps, int flt, int be, int sflags) · 2990 unmodified lines | |||
| 2991 | return be ? AV_CODEC_ID_PCM_S24BE : AV_CODEC_ID_PCM_S24LE; | 2991 | return be ? AV_CODEC_ID_PCM_S24BE : AV_CODEC_ID_PCM_S24LE; |
| 2992 | case 4: | 2992 | case 4: |
| 2993 | return be ? AV_CODEC_ID_PCM_S32BE : AV_CODEC_ID_PCM_S32LE; | 2993 | return be ? AV_CODEC_ID_PCM_S32BE : AV_CODEC_ID_PCM_S32LE; |
| 2994 | case 8: | ||
| 2995 | return be ? AV_CODEC_ID_PCM_S64BE : AV_CODEC_ID_PCM_S64LE; | ||
| 2994 | default: | 2996 | default: |
| 2995 | return AV_CODEC_ID_NONE; | 2997 | return AV_CODEC_ID_NONE; |
| 2996 | } | 2998 | } |