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