Ticket #8134: ticket_8134_fix.patch

File ticket_8134_fix.patch, 1.5 KB (added by skamithi, 14 years ago)
  • mythtv/libs/libavcodec/pcm.c

    diff --git a/mythtv/libs/libavcodec/pcm.c b/mythtv/libs/libavcodec/pcm.c
    index b16f663..572ee94 100644
    a b static int pcm_decode_frame(AVCodecContext *avctx, 
    373373
    374374    n = buf_size/sample_size;
    375375
    376     switch(avctx->codec_id) {
     376    switch(avctx->codec->id) {
    377377    case CODEC_ID_PCM_U32LE:
    378378        DECODE(uint32_t, le32, src, samples, n, 0, 0x80000000)
    379379        break;
  • mythtv/libs/libavformat/mpeg.c

    diff --git a/mythtv/libs/libavformat/mpeg.c b/mythtv/libs/libavformat/mpeg.c
    index 436480a..e9ecc9f 100644
    a b static int mpegps_read_packet(AVFormatContext *s, 
    560560        st->codec->bit_rate = st->codec->channels *
    561561                              st->codec->sample_rate *
    562562                              st->codec->bits_per_coded_sample;
    563         if (st->codec->bits_per_coded_sample == 16)
     563        if (st->codec->bits_per_coded_sample == 16) {
    564564            st->codec->codec_id = CODEC_ID_PCM_S16BE;
     565            st->codec->sample_fmt = SAMPLE_FMT_S16;
     566            if (st->codec->codec) {
     567                AVCodec *pcm_s16be_codec;
     568                avcodec_close(st->codec);
     569                pcm_s16be_codec = avcodec_find_decoder(CODEC_ID_PCM_S16BE);
     570                if (pcm_s16be_codec) {
     571                    st->codec->codec = pcm_s16be_codec;
     572                }
     573            }
     574        }
    565575        else if (st->codec->bits_per_coded_sample == 28)
    566576            return AVERROR(EINVAL);
    567577    }