Fix transcoding example about timebase (#69)

* Fix transcoding example about timebase

* applied review feedback

* remove comment
This commit is contained in:
Han Gyoung-Su
2024-08-31 22:00:11 +09:00
committed by GitHub
parent 9b42cf0970
commit 75ad7b5757
3 changed files with 8 additions and 3 deletions

View File

@@ -275,7 +275,7 @@ func openOutputFile() (err error) {
} else { } else {
s.encCodecContext.SetSampleFormat(s.decCodecContext.SampleFormat()) s.encCodecContext.SetSampleFormat(s.decCodecContext.SampleFormat())
} }
s.encCodecContext.SetTimeBase(s.decCodecContext.TimeBase()) s.encCodecContext.SetTimeBase(astiav.NewRational(1, s.encCodecContext.SampleRate()))
} else { } else {
s.encCodecContext.SetHeight(s.decCodecContext.Height()) s.encCodecContext.SetHeight(s.decCodecContext.Height())
if v := s.encCodec.PixelFormats(); len(v) > 0 { if v := s.encCodec.PixelFormats(); len(v) > 0 {
@@ -284,7 +284,7 @@ func openOutputFile() (err error) {
s.encCodecContext.SetPixelFormat(s.decCodecContext.PixelFormat()) s.encCodecContext.SetPixelFormat(s.decCodecContext.PixelFormat())
} }
s.encCodecContext.SetSampleAspectRatio(s.decCodecContext.SampleAspectRatio()) s.encCodecContext.SetSampleAspectRatio(s.decCodecContext.SampleAspectRatio())
s.encCodecContext.SetTimeBase(s.decCodecContext.TimeBase()) s.encCodecContext.SetTimeBase(s.decCodecContext.Framerate().Invert())
s.encCodecContext.SetWidth(s.decCodecContext.Width()) s.encCodecContext.SetWidth(s.decCodecContext.Width())
} }
@@ -376,7 +376,7 @@ func initFilters() (err error) {
args = astiav.FilterArgs{ args = astiav.FilterArgs{
"pix_fmt": strconv.Itoa(int(s.decCodecContext.PixelFormat())), "pix_fmt": strconv.Itoa(int(s.decCodecContext.PixelFormat())),
"pixel_aspect": s.decCodecContext.SampleAspectRatio().String(), "pixel_aspect": s.decCodecContext.SampleAspectRatio().String(),
"time_base": s.decCodecContext.TimeBase().String(), "time_base": s.inputStream.TimeBase().String(),
"video_size": strconv.Itoa(s.decCodecContext.Width()) + "x" + strconv.Itoa(s.decCodecContext.Height()), "video_size": strconv.Itoa(s.decCodecContext.Width()) + "x" + strconv.Itoa(s.decCodecContext.Height()),
} }
buffersrc = astiav.FindFilterByName("buffer") buffersrc = astiav.FindFilterByName("buffer")

View File

@@ -50,3 +50,7 @@ func (r Rational) String() string {
} }
return strconv.Itoa(r.Num()) + "/" + strconv.Itoa(r.Den()) return strconv.Itoa(r.Num()) + "/" + strconv.Itoa(r.Den())
} }
func (r Rational) Invert() Rational {
return NewRational(r.Den(), r.Num())
}

View File

@@ -10,6 +10,7 @@ func TestRational(t *testing.T) {
r := NewRational(2, 1) r := NewRational(2, 1)
require.Equal(t, 2, r.Num()) require.Equal(t, 2, r.Num())
require.Equal(t, 1, r.Den()) require.Equal(t, 1, r.Den())
require.Equal(t, 0.5, r.Invert().Float64())
r.SetNum(1) r.SetNum(1)
r.SetDen(2) r.SetDen(2)
require.Equal(t, 1, r.Num()) require.Equal(t, 1, r.Num())